summaryrefslogtreecommitdiffstats
path: root/src/clients/patches/testing
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-06-09 15:07:31 +0000
committerDavid Robillard <d@drobilla.net>2006-06-09 15:07:31 +0000
commitacbda29f838280ba98cf9e9e539e9d8a6e8fc6ad (patch)
treee31b37a2456e6d1e564c9a7146c88be259d338b0 /src/clients/patches/testing
downloadingen-acbda29f838280ba98cf9e9e539e9d8a6e8fc6ad.tar.gz
ingen-acbda29f838280ba98cf9e9e539e9d8a6e8fc6ad.tar.bz2
ingen-acbda29f838280ba98cf9e9e539e9d8a6e8fc6ad.zip
Added Om aka Graph aka god knows what
git-svn-id: http://svn.drobilla.net/lad/grauph@9 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/clients/patches/testing')
-rw-r--r--src/clients/patches/testing/303-test.om520
-rw-r--r--src/clients/patches/testing/bar.om105
-rw-r--r--src/clients/patches/testing/connecttest.om74
-rw-r--r--src/clients/patches/testing/convert_test.om96
-rw-r--r--src/clients/patches/testing/convert_test2.om31
-rw-r--r--src/clients/patches/testing/dssi_test.om42
-rw-r--r--src/clients/patches/testing/envtest.om203
-rw-r--r--src/clients/patches/testing/exptest.om95
-rw-r--r--src/clients/patches/testing/foo.om43
-rw-r--r--src/clients/patches/testing/formanttest.om61
-rw-r--r--src/clients/patches/testing/learntest.om70
-rw-r--r--src/clients/patches/testing/miditest.om83
-rw-r--r--src/clients/patches/testing/new_test/master.om98
-rw-r--r--src/clients/patches/testing/new_test/quick-bass.om319
-rw-r--r--src/clients/patches/testing/rangetest.om171
-rw-r--r--src/clients/patches/testing/rangetest2.om111
-rw-r--r--src/clients/patches/testing/subpatching/bar.om15
-rw-r--r--src/clients/patches/testing/subpatching/baz.om181
-rw-r--r--src/clients/patches/testing/subpatching/baz2.om57
-rw-r--r--src/clients/patches/testing/subpatching/blah.om50
-rw-r--r--src/clients/patches/testing/subpatching/blahz0r.om181
-rw-r--r--src/clients/patches/testing/subpatching/foo.om15
-rw-r--r--src/clients/patches/testing/subpatching/quuux.om8
-rw-r--r--src/clients/patches/testing/subpatching/quuux2.om8
-rw-r--r--src/clients/patches/testing/subpatching/quux.om22
-rw-r--r--src/clients/patches/testing/subpatching/qwe.om62
-rw-r--r--src/clients/patches/testing/test.om38
-rw-r--r--src/clients/patches/testing/transport-test.om100
-rw-r--r--src/clients/patches/testing/voice_test.om36
29 files changed, 2895 insertions, 0 deletions
diff --git a/src/clients/patches/testing/303-test.om b/src/clients/patches/testing/303-test.om
new file mode 100644
index 00000000..2d42505b
--- /dev/null
+++ b/src/clients/patches/testing/303-test.om
@@ -0,0 +1,520 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>303</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>dahdsr_g+t_control_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>dahdsr_g+t_control</plugin-label>
+ <library-name>dahdsr_2021.so</library-name>
+ <module-x>1642.000000</module-x>
+ <module-y>1286.000000</module-y>
+ <port>
+ <name>Delay Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Attack Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>0.100000</user-max>
+ </port>
+ <port>
+ <name>Hold Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Decay Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Release Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>dahdsr_g+t_control_1</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>dahdsr_g+t_control</plugin-label>
+ <library-name>dahdsr_2021.so</library-name>
+ <module-x>1426.000000</module-x>
+ <module-y>1116.000000</module-y>
+ <port>
+ <name>Delay Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Attack Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Hold Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Decay Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Release Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>dahdsr_g+t_control_2</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>dahdsr_g+t_control</plugin-label>
+ <library-name>dahdsr_2021.so</library-name>
+ <module-x>1427.000000</module-x>
+ <module-y>978.000000</module-y>
+ <port>
+ <name>Delay Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Attack Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>0.100000</user-max>
+ </port>
+ <port>
+ <name>Hold Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Decay Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Release Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>lp4pole_faraia_oa_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>lp4pole_faraia_oa</plugin-label>
+ <library-name>lp4pole_1671.so</library-name>
+ <module-x>1798.000000</module-x>
+ <module-y>1162.000000</module-y>
+ </node>
+ <node>
+ <name>midi_control_in_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>midi_control_in</plugin-label>
+ <module-x>1299.000000</module-x>
+ <module-y>1000.000000</module-y>
+ </node>
+ <node>
+ <name>midi_control_in_1</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>midi_control_in</plugin-label>
+ <module-x>1557.000000</module-x>
+ <module-y>964.000000</module-y>
+ </node>
+ <node>
+ <name>note_in_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>note_in</plugin-label>
+ <module-x>1297.000000</module-x>
+ <module-y>1246.000000</module-y>
+ </node>
+ <node>
+ <name>output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>2049.000000</module-x>
+ <module-y>1237.000000</module-y>
+ </node>
+ <node>
+ <name>product_iaia_oa_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>product_iaia_oa</plugin-label>
+ <library-name>product_1668.so</library-name>
+ <module-x>1936.000000</module-x>
+ <module-y>1214.000000</module-y>
+ </node>
+ <node>
+ <name>product_iaic_oa_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>product_iaic_oa</plugin-label>
+ <library-name>product_1668.so</library-name>
+ <module-x>1566.000000</module-x>
+ <module-y>1060.000000</module-y>
+ <port>
+ <name>Second Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>99999.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>product_iaic_oa_1</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>product_iaic_oa</plugin-label>
+ <library-name>product_1668.so</library-name>
+ <module-x>1563.000000</module-x>
+ <module-y>1160.000000</module-y>
+ <port>
+ <name>Second Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>3.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>sine_faac_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>sine_faac</plugin-label>
+ <library-name>cmt.so</library-name>
+ <module-x>1443.000000</module-x>
+ <module-y>1322.000000</module-y>
+ </node>
+ <node>
+ <name>sum_iaic_oa_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>sum_iaic_oa</plugin-label>
+ <library-name>sum_1665.so</library-name>
+ <module-x>1692.000000</module-x>
+ <module-y>1084.000000</module-y>
+ </node>
+ <node>
+ <name>sum_iaic_oa_1</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>sum_iaic_oa</plugin-label>
+ <library-name>sum_1665.so</library-name>
+ <module-x>1683.000000</module-x>
+ <module-y>1164.000000</module-y>
+ </node>
+ <node>
+ <name>triangle_fasc_oa_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>triangle_fasc_oa</plugin-label>
+ <library-name>triangle_1649.so</library-name>
+ <module-x>1436.000000</module-x>
+ <module-y>1250.000000</module-y>
+ </node>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Frequency</source-port>
+ <destination-node>triangle_fasc_oa_0</destination-node>
+ <destination-port>Frequency</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Gate</source-port>
+ <destination-node>dahdsr_g+t_control_1</destination-node>
+ <destination-port>Gate</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Gate</source-port>
+ <destination-node>dahdsr_g+t_control_0</destination-node>
+ <destination-port>Gate</destination-port>
+ </connection>
+ <connection>
+ <source-node>triangle_fasc_oa_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>lp4pole_faraia_oa_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>dahdsr_g+t_control_2</source-node>
+ <source-port>Envelope Out</source-port>
+ <destination-node>product_iaic_oa_0</destination-node>
+ <destination-port>First Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>product_iaic_oa_0</source-node>
+ <source-port>Product Output</source-port>
+ <destination-node>sum_iaic_oa_0</destination-node>
+ <destination-port>First Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>sum_iaic_oa_0</source-node>
+ <source-port>Summed Output</source-port>
+ <destination-node>lp4pole_faraia_oa_0</destination-node>
+ <destination-port>Cutoff Frequency</destination-port>
+ </connection>
+ <connection>
+ <source-node>lp4pole_faraia_oa_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>product_iaia_oa_0</destination-node>
+ <destination-port>First Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>dahdsr_g+t_control_0</source-node>
+ <source-port>Envelope Out</source-port>
+ <destination-node>product_iaia_oa_0</destination-node>
+ <destination-port>Second Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>product_iaia_oa_0</source-node>
+ <source-port>Product Output</source-port>
+ <destination-node>output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Gate</source-port>
+ <destination-node>dahdsr_g+t_control_2</destination-node>
+ <destination-port>Gate</destination-port>
+ </connection>
+ <connection>
+ <source-node>product_iaic_oa_1</source-node>
+ <source-port>Product Output</source-port>
+ <destination-node>sum_iaic_oa_1</destination-node>
+ <destination-port>First Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>sum_iaic_oa_1</source-node>
+ <source-port>Summed Output</source-port>
+ <destination-node>lp4pole_faraia_oa_0</destination-node>
+ <destination-port>Resonance</destination-port>
+ </connection>
+ <connection>
+ <source-node>dahdsr_g+t_control_1</source-node>
+ <source-port>Envelope Out</source-port>
+ <destination-node>product_iaic_oa_1</destination-node>
+ <destination-port>First Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>midi_control_in_1</source-node>
+ <source-port>Out (CR)</source-port>
+ <destination-node>sum_iaic_oa_0</destination-node>
+ <destination-port>Second Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>midi_control_in_0</source-node>
+ <source-port>Out (CR)</source-port>
+ <destination-node>sum_iaic_oa_1</destination-node>
+ <destination-port>Second Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>sine_faac_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>product_iaia_oa_0</destination-node>
+ <destination-port>First Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Frequency</source-port>
+ <destination-node>sine_faac_0</destination-node>
+ <destination-port>Frequency</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Trigger</source-port>
+ <destination-node>dahdsr_g+t_control_1</destination-node>
+ <destination-port>Trigger</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Trigger</source-port>
+ <destination-node>dahdsr_g+t_control_2</destination-node>
+ <destination-port>Trigger</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Trigger</source-port>
+ <destination-node>dahdsr_g+t_control_0</destination-node>
+ <destination-port>Trigger</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Delay Time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Attack Time (s)</port-name>
+ <value>0.001455</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Hold Time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Decay Time (s)</port-name>
+ <value>0.043685</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Sustain Level</port-name>
+ <value>0.999900</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Release Time (s)</port-name>
+ <value>0.363600</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_1</node-name>
+ <port-name>Delay Time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_1</node-name>
+ <port-name>Attack Time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_1</node-name>
+ <port-name>Hold Time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_1</node-name>
+ <port-name>Decay Time (s)</port-name>
+ <value>0.227250</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_1</node-name>
+ <port-name>Sustain Level</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_1</node-name>
+ <port-name>Release Time (s)</port-name>
+ <value>0.045450</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_2</node-name>
+ <port-name>Delay Time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_2</node-name>
+ <port-name>Attack Time (s)</port-name>
+ <value>0.004541</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_2</node-name>
+ <port-name>Hold Time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_2</node-name>
+ <port-name>Decay Time (s)</port-name>
+ <value>0.090900</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_2</node-name>
+ <port-name>Sustain Level</port-name>
+ <value>0.090900</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_2</node-name>
+ <port-name>Release Time (s)</port-name>
+ <value>0.636300</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Controller Number</port-name>
+ <value>98.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Logarithmic</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Min</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Max</port-name>
+ <value>4.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Out (CR)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_1</node-name>
+ <port-name>Controller Number</port-name>
+ <value>97.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_1</node-name>
+ <port-name>Logarithmic</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_1</node-name>
+ <port-name>Min</port-name>
+ <value>471.474823</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_1</node-name>
+ <port-name>Max</port-name>
+ <value>16501.619141</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_1</node-name>
+ <port-name>Out (CR)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>product_iaic_oa_0</node-name>
+ <port-name>Second Input</port-name>
+ <value>4999.950195</value>
+ </control>
+ <control>
+ <node-name>product_iaic_oa_1</node-name>
+ <port-name>Second Input</port-name>
+ <value>2.174927</value>
+ </control>
+ <control>
+ <node-name>sine_faac_0</node-name>
+ <port-name>Amplitude</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>sum_iaic_oa_0</node-name>
+ <port-name>Second Input</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>sum_iaic_oa_1</node-name>
+ <port-name>Second Input</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>triangle_fasc_oa_0</node-name>
+ <port-name>Slope</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/bar.om b/src/clients/patches/testing/bar.om
new file mode 100644
index 00000000..a23e8015
--- /dev/null
+++ b/src/clients/patches/testing/bar.om
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>bar</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1436.000000</module-x>
+ <module-y>1050.000000</module-y>
+ </node>
+ <node>
+ <name>mbeq_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>mbeq</plugin-label>
+ <library-name>mbeq_1197.so</library-name>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </node>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>50Hz gain (low shelving)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>100Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>156Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>220Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>311Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>440Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>622Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>880Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>1250Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>1750Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>2500Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>3500Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>5000Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>10000Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>20000Hz gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mbeq_0</node-name>
+ <port-name>latency</port-name>
+ <value>768.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/connecttest.om b/src/clients/patches/testing/connecttest.om
new file mode 100644
index 00000000..5db78844
--- /dev/null
+++ b/src/clients/patches/testing/connecttest.om
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>conntest</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>amp_mono_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>amp_mono</plugin-label>
+ <library-name>cmt.so</library-name>
+ <module-x>1457.000000</module-x>
+ <module-y>1009.000000</module-y>
+ </node>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1593.000000</module-x>
+ <module-y>1029.000000</module-y>
+ </node>
+ <node>
+ <name>sine_fcac_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>sine_fcac</plugin-label>
+ <library-name>sine.so</library-name>
+ <module-x>1303.000000</module-x>
+ <module-y>998.000000</module-y>
+ </node>
+ <node>
+ <name>sine_fcac_1</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>sine_fcac</plugin-label>
+ <library-name>sine.so</library-name>
+ <module-x>1306.000000</module-x>
+ <module-y>1065.000000</module-y>
+ </node>
+ <connection>
+ <source-node>amp_mono_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>amp_mono_0</node-name>
+ <port-name>Gain</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>sine_fcac_0</node-name>
+ <port-name>Frequency (Hz)</port-name>
+ <value>440.000000</value>
+ </control>
+ <control>
+ <node-name>sine_fcac_0</node-name>
+ <port-name>Amplitude</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>sine_fcac_1</node-name>
+ <port-name>Frequency (Hz)</port-name>
+ <value>440.000000</value>
+ </control>
+ <control>
+ <node-name>sine_fcac_1</node-name>
+ <port-name>Amplitude</port-name>
+ <value>1.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/convert_test.om b/src/clients/patches/testing/convert_test.om
new file mode 100644
index 00000000..257de8d7
--- /dev/null
+++ b/src/clients/patches/testing/convert_test.om
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>converttest</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>Saw-VCO_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>Saw-VCO</plugin-label>
+ <library-name>vco_sawpulse.so</library-name>
+ <module-x>1595.000000</module-x>
+ <module-y>1034.000000</module-y>
+ </node>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1692.000000</module-x>
+ <module-y>1044.000000</module-y>
+ </node>
+ <node>
+ <name>hz_voct_ar_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>hz_voct_ar</plugin-label>
+ <library-name>hz_voct_4200.so</library-name>
+ <module-x>1489.000000</module-x>
+ <module-y>1045.000000</module-y>
+ </node>
+ <node>
+ <name>interpolator_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>interpolator</plugin-label>
+ <library-name>interpolator_1660.so</library-name>
+ <module-x>1320.000000</module-x>
+ <module-y>1069.000000</module-y>
+ <port>
+ <name>Control Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>100.000000</user-max>
+ </port>
+ </node>
+ <connection>
+ <source-node>Saw-VCO_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>interpolator_0</source-node>
+ <source-port>Interpolated Output</source-port>
+ <destination-node>hz_voct_ar_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>hz_voct_ar_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>Saw-VCO_0</destination-node>
+ <destination-port>Frequency</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Octave</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Tune</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Exp FM gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Lin FM gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>LP filter</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>interpolator_0</node-name>
+ <port-name>Control Input</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/convert_test2.om b/src/clients/patches/testing/convert_test2.om
new file mode 100644
index 00000000..0ed51b5f
--- /dev/null
+++ b/src/clients/patches/testing/convert_test2.om
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>converttest</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1692.000000</module-x>
+ <module-y>1044.000000</module-y>
+ </node>
+ <node>
+ <name>hz_voct_ar_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>hz_voct_ar</plugin-label>
+ <library-name>hz_voct_4200.so</library-name>
+ <module-x>1587.000000</module-x>
+ <module-y>1016.000000</module-y>
+ </node>
+ <connection>
+ <source-node>hz_voct_ar_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/dssi_test.om b/src/clients/patches/testing/dssi_test.om
new file mode 100644
index 00000000..86980337
--- /dev/null
+++ b/src/clients/patches/testing/dssi_test.om
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>foo</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>hexter_0</name>
+ <polyphonic>false</polyphonic>
+ <type>DSSI</type>
+ <plugin-label>hexter</plugin-label>
+ <library-name>hexter.so</library-name>
+ <dssi-program>0/65</dssi-program>
+ <module-x>1600.000000</module-x>
+ <module-y>1200.000000</module-y>
+ </node>
+ <node>
+ <name>output_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>output</plugin-label>
+ <module-x>1705.000000</module-x>
+ <module-y>1206.000000</module-y>
+ </node>
+ <connection>
+ <source-node>hexter_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>hexter_0</node-name>
+ <port-name>Tuning</port-name>
+ <value>440.000000</value>
+ </control>
+ <control>
+ <node-name>hexter_0</node-name>
+ <port-name>Volume</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/envtest.om b/src/clients/patches/testing/envtest.om
new file mode 100644
index 00000000..b8f43001
--- /dev/null
+++ b/src/clients/patches/testing/envtest.om
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>envtest</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>Sin_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>Sin</plugin-label>
+ <library-name>caps.so</library-name>
+ <module-x>1554.000000</module-x>
+ <module-y>985.000000</module-y>
+ </node>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1761.000000</module-x>
+ <module-y>1072.000000</module-y>
+ </node>
+ <node>
+ <name>dahdsr_g+t_control_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>dahdsr_g+t_control</plugin-label>
+ <library-name>dahdsr_2021.so</library-name>
+ <module-x>1458.000000</module-x>
+ <module-y>1097.000000</module-y>
+ <port>
+ <name>Delay Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Attack Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Hold Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Decay Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Release Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>impulse_fc_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>impulse_fc</plugin-label>
+ <library-name>impulse_1885.so</library-name>
+ <module-x>1263.000000</module-x>
+ <module-y>1142.000000</module-y>
+ <port>
+ <name>Frequency (Hz)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>interpolator_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>interpolator</plugin-label>
+ <library-name>interpolator_1660.so</library-name>
+ <module-x>1313.000000</module-x>
+ <module-y>1040.000000</module-y>
+ <port>
+ <name>Control Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>interpolator_1</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>interpolator</plugin-label>
+ <library-name>interpolator_1660.so</library-name>
+ <module-x>1307.000000</module-x>
+ <module-y>1092.000000</module-y>
+ <port>
+ <name>Control Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>note_in_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>note_in</plugin-label>
+ <module-x>1336.000000</module-x>
+ <module-y>1156.000000</module-y>
+ </node>
+ <node>
+ <name>product_iaia_oa_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>product_iaia_oa</plugin-label>
+ <library-name>product_1668.so</library-name>
+ <module-x>1647.000000</module-x>
+ <module-y>1053.000000</module-y>
+ </node>
+ <connection>
+ <source-node>product_iaia_oa_0</source-node>
+ <source-port>Product Output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>Sin_0</source-node>
+ <source-port>out</source-port>
+ <destination-node>product_iaia_oa_0</destination-node>
+ <destination-port>First Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>dahdsr_g+t_control_0</source-node>
+ <source-port>Envelope Out</source-port>
+ <destination-node>product_iaia_oa_0</destination-node>
+ <destination-port>Second Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>interpolator_0</source-node>
+ <source-port>Interpolated Output</source-port>
+ <destination-node>dahdsr_g+t_control_0</destination-node>
+ <destination-port>Gate</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Trigger</source-port>
+ <destination-node>dahdsr_g+t_control_0</destination-node>
+ <destination-port>Trigger</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>Sin_0</node-name>
+ <port-name>f</port-name>
+ <value>440.000000</value>
+ </control>
+ <control>
+ <node-name>Sin_0</node-name>
+ <port-name>volume</port-name>
+ <value>0.999900</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Delay Time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Attack Time (s)</port-name>
+ <value>0.999900</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Hold Time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Decay Time (s)</port-name>
+ <value>0.136350</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Sustain Level</port-name>
+ <value>0.272700</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Release Time (s)</port-name>
+ <value>0.636300</value>
+ </control>
+ <control>
+ <node-name>impulse_fc_0</node-name>
+ <port-name>Frequency (Hz)</port-name>
+ <value>0.449955</value>
+ </control>
+ <control>
+ <node-name>interpolator_0</node-name>
+ <port-name>Control Input</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>interpolator_1</node-name>
+ <port-name>Control Input</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/exptest.om b/src/clients/patches/testing/exptest.om
new file mode 100644
index 00000000..4727c639
--- /dev/null
+++ b/src/clients/patches/testing/exptest.om
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>exptest</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>Saw-VCO_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>Saw-VCO</plugin-label>
+ <library-name>vco_sawpulse.so</library-name>
+ <module-x>1503.000000</module-x>
+ <module-y>1075.000000</module-y>
+ </node>
+ <node>
+ <name>midi_control_in_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>midi_control_in</plugin-label>
+ <module-x>1384.000000</module-x>
+ <module-y>1092.000000</module-y>
+ </node>
+ <node>
+ <name>output_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>output</plugin-label>
+ <module-x>1616.000000</module-x>
+ <module-y>1167.000000</module-y>
+ </node>
+ <connection>
+ <source-node>Saw-VCO_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>midi_control_in_0</source-node>
+ <source-port>Out (AR)</source-port>
+ <destination-node>Saw-VCO_0</destination-node>
+ <destination-port>Frequency</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Octave</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Tune</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Exp FM gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Lin FM gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>LP filter</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Controller Number</port-name>
+ <value>97.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Logarithmic</port-name>
+ <value>0.172915</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Min</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Max</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Out (CR)</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/foo.om b/src/clients/patches/testing/foo.om
new file mode 100644
index 00000000..3d94abaf
--- /dev/null
+++ b/src/clients/patches/testing/foo.om
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>foo</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1446.000000</module-x>
+ <module-y>1053.000000</module-y>
+ </node>
+ <subpatch>
+ <name>bar</name>
+ <filename>bar.om</filename>
+ <polyphony>1</polyphony>
+ <filename>/home/dave/code/om/om-synth/src/clients/patches/testing/bar.om</filename>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </subpatch>
+ <node>
+ <name>slide_tc_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>slide_tc</plugin-label>
+ <library-name>slide_2741.so</library-name>
+ <module-x>1335.000000</module-x>
+ <module-y>1074.000000</module-y>
+ </node>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>slide_tc_0</node-name>
+ <port-name>Rise time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>slide_tc_0</node-name>
+ <port-name>Fall time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/formanttest.om b/src/clients/patches/testing/formanttest.om
new file mode 100644
index 00000000..62cbd2f0
--- /dev/null
+++ b/src/clients/patches/testing/formanttest.om
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>formanttest</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1612.000000</module-x>
+ <module-y>1124.000000</module-y>
+ </node>
+ <node>
+ <name>formant_vc_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>formant_vc</plugin-label>
+ <library-name>formant_filter_4300.so</library-name>
+ <module-x>1501.000000</module-x>
+ <module-y>1094.000000</module-y>
+ </node>
+ <node>
+ <name>noise_source_white_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>noise_source_white</plugin-label>
+ <library-name>cmt.so</library-name>
+ <module-x>1350.000000</module-x>
+ <module-y>1083.000000</module-y>
+ <port>
+ <name>Amplitude</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <connection>
+ <source-node>formant_vc_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>noise_source_white_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>formant_vc_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>formant_vc_0</node-name>
+ <port-name>Vowel</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>noise_source_white_0</node-name>
+ <port-name>Amplitude</port-name>
+ <value>1.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/learntest.om b/src/clients/patches/testing/learntest.om
new file mode 100644
index 00000000..4dcbcb8d
--- /dev/null
+++ b/src/clients/patches/testing/learntest.om
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>foo</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1680.000000</module-x>
+ <module-y>1181.000000</module-y>
+ </node>
+ <node>
+ <name>midi_control_in_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>midi_control_in</plugin-label>
+ <module-x>1418.000000</module-x>
+ <module-y>1133.000000</module-y>
+ </node>
+ <node>
+ <name>square_fa_oa_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>square_fa_oa</plugin-label>
+ <library-name>square_1643.so</library-name>
+ <module-x>1547.000000</module-x>
+ <module-y>1168.000000</module-y>
+ </node>
+ <connection>
+ <source-node>square_fa_oa_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>midi_control_in_0</source-node>
+ <source-port>Out (AR)</source-port>
+ <destination-node>square_fa_oa_0</destination-node>
+ <destination-port>Frequency</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Controller Number</port-name>
+ <value>60.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Logarithmic</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Min</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Max</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Out (CR)</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/miditest.om b/src/clients/patches/testing/miditest.om
new file mode 100644
index 00000000..584514e2
--- /dev/null
+++ b/src/clients/patches/testing/miditest.om
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>miditest</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>midi_control_in_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>midi_control_in</plugin-label>
+ <module-x>1351.000000</module-x>
+ <module-y>1255.000000</module-y>
+ </node>
+ <node>
+ <name>note_in_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>note_in</plugin-label>
+ <module-x>1348.000000</module-x>
+ <module-y>1170.000000</module-y>
+ </node>
+ <node>
+ <name>output_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1632.000000</module-x>
+ <module-y>1222.000000</module-y>
+ </node>
+ <node>
+ <name>triangle_fasc_oa_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>triangle_fasc_oa</plugin-label>
+ <library-name>triangle_1649.so</library-name>
+ <module-x>1481.000000</module-x>
+ <module-y>1248.000000</module-y>
+ </node>
+ <connection>
+ <source-node>triangle_fasc_oa_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>midi_control_in_0</source-node>
+ <source-port>Out (AR)</source-port>
+ <destination-node>triangle_fasc_oa_0</destination-node>
+ <destination-port>Frequency</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Controller Number</port-name>
+ <value>97.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Logarithmic</port-name>
+ <value>0.231861</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Min</port-name>
+ <value>30.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Max</port-name>
+ <value>400.000000</value>
+ </control>
+ <control>
+ <node-name>midi_control_in_0</node-name>
+ <port-name>Out (CR)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>triangle_fasc_oa_0</node-name>
+ <port-name>Slope</port-name>
+ <value>0.500000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/new_test/master.om b/src/clients/patches/testing/new_test/master.om
new file mode 100644
index 00000000..f9a2d969
--- /dev/null
+++ b/src/clients/patches/testing/new_test/master.om
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>master</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1599.000000</module-x>
+ <module-y>1143.000000</module-y>
+ </node>
+ <node>
+ <name>audio_output_1</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1602.000000</module-x>
+ <module-y>1197.000000</module-y>
+ </node>
+ <node>
+ <name>gverb_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>gverb</plugin-label>
+ <library-name>gverb_1216.so</library-name>
+ <module-x>1445.000000</module-x>
+ <module-y>1053.000000</module-y>
+ </node>
+ <subpatch>
+ <name>quick_bass</name>
+ <filename>quick_bass.om</filename>
+ <polyphony>1</polyphony>
+ <module-x>1265.000000</module-x>
+ <module-y>1076.000000</module-y>
+ </subpatch>
+ <connection>
+ <source-node>gverb_0</source-node>
+ <source-port>Left output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>gverb_0</source-node>
+ <source-port>Right output</source-port>
+ <destination-node>audio_output_1</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>quick_bass</source-node>
+ <source-port>output_0</source-port>
+ <destination-node>gverb_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>gverb_0</node-name>
+ <port-name>Roomsize (m)</port-name>
+ <value>191.272659</value>
+ </control>
+ <control>
+ <node-name>gverb_0</node-name>
+ <port-name>Reverb time (s)</port-name>
+ <value>7.575000</value>
+ </control>
+ <control>
+ <node-name>gverb_0</node-name>
+ <port-name>Damping</port-name>
+ <value>0.500000</value>
+ </control>
+ <control>
+ <node-name>gverb_0</node-name>
+ <port-name>Input bandwidth</port-name>
+ <value>0.750000</value>
+ </control>
+ <control>
+ <node-name>gverb_0</node-name>
+ <port-name>Dry signal level (dB)</port-name>
+ <value>-0.000100</value>
+ </control>
+ <control>
+ <node-name>gverb_0</node-name>
+ <port-name>Early reflection level (dB)</port-name>
+ <value>-28.636423</value>
+ </control>
+ <control>
+ <node-name>gverb_0</node-name>
+ <port-name>Tail level (dB)</port-name>
+ <value>-38.181862</value>
+ </control>
+ <control>
+ <node-name>quick_bass</node-name>
+ <port-name>volume</port-name>
+ <value>0.554124</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/new_test/quick-bass.om b/src/clients/patches/testing/new_test/quick-bass.om
new file mode 100644
index 00000000..2e716288
--- /dev/null
+++ b/src/clients/patches/testing/new_test/quick-bass.om
@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>quick-bass</name>
+ <polyphony>2</polyphony>
+ <node>
+ <name>Saw-VCO_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>Saw-VCO</plugin-label>
+ <library-name>vco_sawpulse.so</library-name>
+ <module-x>1585.000000</module-x>
+ <module-y>1139.000000</module-y>
+ </node>
+ <node>
+ <name>adenv_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>adenv</plugin-label>
+ <library-name>adenv.so</library-name>
+ <module-x>1389.000000</module-x>
+ <module-y>1028.000000</module-y>
+ <port>
+ <name>Attack Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>0.100000</user-max>
+ </port>
+ <port>
+ <name>Decay Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1955.000000</module-x>
+ <module-y>1149.000000</module-y>
+ </node>
+ <node>
+ <name>dahdsr_g+t_control_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>dahdsr_g+t_control</plugin-label>
+ <library-name>dahdsr_2021.so</library-name>
+ <module-x>1463.000000</module-x>
+ <module-y>1228.000000</module-y>
+ <port>
+ <name>Delay Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Attack Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>0.100000</user-max>
+ </port>
+ <port>
+ <name>Hold Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Decay Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Release Time (s)</name>
+ <user-min>0.000000</user-min>
+ <user-max>0.200000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>hz_voct_ar_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>hz_voct_ar</plugin-label>
+ <library-name>hz_voct_4200.so</library-name>
+ <module-x>1447.000000</module-x>
+ <module-y>1136.000000</module-y>
+ </node>
+ <node>
+ <name>interpolator_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>interpolator</plugin-label>
+ <library-name>interpolator_1660.so</library-name>
+ <module-x>1583.000000</module-x>
+ <module-y>1085.000000</module-y>
+ <port>
+ <name>Control Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>4.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>lp4pole_faraia_oa_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>lp4pole_faraia_oa</plugin-label>
+ <library-name>lp4pole_1671.so</library-name>
+ <module-x>1708.000000</module-x>
+ <module-y>1086.000000</module-y>
+ </node>
+ <node>
+ <name>note_in_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>note_in</plugin-label>
+ <module-x>1293.000000</module-x>
+ <module-y>1128.000000</module-y>
+ </node>
+ <node>
+ <name>product_iaia_oa_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>product_iaia_oa</plugin-label>
+ <library-name>product_1668.so</library-name>
+ <module-x>1826.000000</module-x>
+ <module-y>1136.000000</module-y>
+ </node>
+ <node>
+ <name>product_iaic_oa_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>product_iaic_oa</plugin-label>
+ <library-name>product_1668.so</library-name>
+ <module-x>1484.000000</module-x>
+ <module-y>1019.000000</module-y>
+ <port>
+ <name>Second Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>5000.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>sum_iaic_oa_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>sum_iaic_oa</plugin-label>
+ <library-name>sum_1665.so</library-name>
+ <module-x>1598.000000</module-x>
+ <module-y>1026.000000</module-y>
+ <port>
+ <name>Second Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>1000.000000</user-max>
+ </port>
+ </node>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Gate</source-port>
+ <destination-node>dahdsr_g+t_control_0</destination-node>
+ <destination-port>Gate</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Trigger</source-port>
+ <destination-node>dahdsr_g+t_control_0</destination-node>
+ <destination-port>Trigger</destination-port>
+ </connection>
+ <connection>
+ <source-node>Saw-VCO_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>lp4pole_faraia_oa_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>lp4pole_faraia_oa_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>product_iaia_oa_0</destination-node>
+ <destination-port>First Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>dahdsr_g+t_control_0</source-node>
+ <source-port>Envelope Out</source-port>
+ <destination-node>product_iaia_oa_0</destination-node>
+ <destination-port>Second Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>product_iaia_oa_0</source-node>
+ <source-port>Product Output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Gate</source-port>
+ <destination-node>adenv_0</destination-node>
+ <destination-port>Gate</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Trigger</source-port>
+ <destination-node>adenv_0</destination-node>
+ <destination-port>Trigger</destination-port>
+ </connection>
+ <connection>
+ <source-node>product_iaic_oa_0</source-node>
+ <source-port>Product Output</source-port>
+ <destination-node>sum_iaic_oa_0</destination-node>
+ <destination-port>First Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Frequency</source-port>
+ <destination-node>hz_voct_ar_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>hz_voct_ar_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>Saw-VCO_0</destination-node>
+ <destination-port>Frequency</destination-port>
+ </connection>
+ <connection>
+ <source-node>interpolator_0</source-node>
+ <source-port>Interpolated Output</source-port>
+ <destination-node>lp4pole_faraia_oa_0</destination-node>
+ <destination-port>Resonance</destination-port>
+ </connection>
+ <connection>
+ <source-node>adenv_0</source-node>
+ <source-port>Envelope Out</source-port>
+ <destination-node>product_iaic_oa_0</destination-node>
+ <destination-port>First Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>sum_iaic_oa_0</source-node>
+ <source-port>Summed Output</source-port>
+ <destination-node>lp4pole_faraia_oa_0</destination-node>
+ <destination-port>Cutoff Frequency</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Octave</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Tune</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Exp FM gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>Lin FM gain</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>Saw-VCO_0</node-name>
+ <port-name>LP filter</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>adenv_0</node-name>
+ <port-name>Attack Time (s)</port-name>
+ <value>0.001514</value>
+ </control>
+ <control>
+ <node-name>adenv_0</node-name>
+ <port-name>Decay Time (s)</port-name>
+ <value>0.181800</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Delay Time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Attack Time (s)</port-name>
+ <value>0.004541</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Hold Time (s)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Decay Time (s)</port-name>
+ <value>0.112665</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Sustain Level</port-name>
+ <value>0.844986</value>
+ </control>
+ <control>
+ <node-name>dahdsr_g+t_control_0</node-name>
+ <port-name>Release Time (s)</port-name>
+ <value>0.199900</value>
+ </control>
+ <control>
+ <node-name>interpolator_0</node-name>
+ <port-name>Control Input</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>product_iaic_oa_0</node-name>
+ <port-name>Second Input</port-name>
+ <value>1000.000000</value>
+ </control>
+ <control>
+ <node-name>sum_iaic_oa_0</node-name>
+ <port-name>Second Input</port-name>
+ <value>349.999969</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/rangetest.om b/src/clients/patches/testing/rangetest.om
new file mode 100644
index 00000000..9ac64a58
--- /dev/null
+++ b/src/clients/patches/testing/rangetest.om
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>rangetest</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1746.000000</module-x>
+ <module-y>1096.000000</module-y>
+ </node>
+ <node>
+ <name>interpolator_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>interpolator</plugin-label>
+ <library-name>interpolator_1660.so</library-name>
+ <module-x>1322.000000</module-x>
+ <module-y>970.000000</module-y>
+ <port>
+ <name>Control Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>interpolator_1</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>interpolator</plugin-label>
+ <library-name>interpolator_1660.so</library-name>
+ <module-x>1321.000000</module-x>
+ <module-y>1029.000000</module-y>
+ <port>
+ <name>Control Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>interpolator_2</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>interpolator</plugin-label>
+ <library-name>interpolator_1660.so</library-name>
+ <module-x>1322.000000</module-x>
+ <module-y>1086.000000</module-y>
+ <port>
+ <name>Control Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>5.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>interpolator_3</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>interpolator</plugin-label>
+ <library-name>interpolator_1660.so</library-name>
+ <module-x>1311.000000</module-x>
+ <module-y>1143.000000</module-y>
+ <port>
+ <name>Control Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>100.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>interpolator_4</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>interpolator</plugin-label>
+ <library-name>interpolator_1660.so</library-name>
+ <module-x>1370.000000</module-x>
+ <module-y>1239.000000</module-y>
+ <port>
+ <name>Control Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>range_trans_ar_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>range_trans_ar</plugin-label>
+ <library-name>range_trans_4210.so</library-name>
+ <module-x>1539.000000</module-x>
+ <module-y>1023.000000</module-y>
+ </node>
+ <node>
+ <name>square_fa_oa_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>square_fa_oa</plugin-label>
+ <library-name>square_1643.so</library-name>
+ <module-x>1645.000000</module-x>
+ <module-y>1081.000000</module-y>
+ </node>
+ <connection>
+ <source-node>interpolator_0</source-node>
+ <source-port>Interpolated Output</source-port>
+ <destination-node>range_trans_ar_0</destination-node>
+ <destination-port>Input Min</destination-port>
+ </connection>
+ <connection>
+ <source-node>interpolator_1</source-node>
+ <source-port>Interpolated Output</source-port>
+ <destination-node>range_trans_ar_0</destination-node>
+ <destination-port>Input Max</destination-port>
+ </connection>
+ <connection>
+ <source-node>interpolator_2</source-node>
+ <source-port>Interpolated Output</source-port>
+ <destination-node>range_trans_ar_0</destination-node>
+ <destination-port>Output Min</destination-port>
+ </connection>
+ <connection>
+ <source-node>interpolator_3</source-node>
+ <source-port>Interpolated Output</source-port>
+ <destination-node>range_trans_ar_0</destination-node>
+ <destination-port>Output Max</destination-port>
+ </connection>
+ <connection>
+ <source-node>square_fa_oa_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>range_trans_ar_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>square_fa_oa_0</destination-node>
+ <destination-port>Frequency</destination-port>
+ </connection>
+ <connection>
+ <source-node>interpolator_4</source-node>
+ <source-port>Interpolated Output</source-port>
+ <destination-node>range_trans_ar_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>interpolator_0</node-name>
+ <port-name>Control Input</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>interpolator_1</node-name>
+ <port-name>Control Input</port-name>
+ <value>0.999900</value>
+ </control>
+ <control>
+ <node-name>interpolator_2</node-name>
+ <port-name>Control Input</port-name>
+ <value>5.000000</value>
+ </control>
+ <control>
+ <node-name>interpolator_3</node-name>
+ <port-name>Control Input</port-name>
+ <value>99.999901</value>
+ </control>
+ <control>
+ <node-name>interpolator_4</node-name>
+ <port-name>Control Input</port-name>
+ <value>0.999900</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/rangetest2.om b/src/clients/patches/testing/rangetest2.om
new file mode 100644
index 00000000..3b3b3f4d
--- /dev/null
+++ b/src/clients/patches/testing/rangetest2.om
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>rangetest</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1746.000000</module-x>
+ <module-y>1096.000000</module-y>
+ </node>
+ <node>
+ <name>interpolator_4</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>interpolator</plugin-label>
+ <library-name>interpolator_1660.so</library-name>
+ <module-x>1317.000000</module-x>
+ <module-y>1081.000000</module-y>
+ <port>
+ <name>Control Input</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>range_trans_cr_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>range_trans_cr</plugin-label>
+ <library-name>range_trans_4210.so</library-name>
+ <module-x>1485.000000</module-x>
+ <module-y>1050.000000</module-y>
+ <port>
+ <name>Input Min</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Input Max</name>
+ <user-min>0.000000</user-min>
+ <user-max>1.000000</user-max>
+ </port>
+ <port>
+ <name>Output Min</name>
+ <user-min>0.000000</user-min>
+ <user-max>10.000000</user-max>
+ </port>
+ <port>
+ <name>Output Max</name>
+ <user-min>0.000000</user-min>
+ <user-max>300.000000</user-max>
+ </port>
+ </node>
+ <node>
+ <name>square_fa_oa_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>square_fa_oa</plugin-label>
+ <library-name>square_1643.so</library-name>
+ <module-x>1645.000000</module-x>
+ <module-y>1081.000000</module-y>
+ </node>
+ <connection>
+ <source-node>square_fa_oa_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>range_trans_cr_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>square_fa_oa_0</destination-node>
+ <destination-port>Frequency</destination-port>
+ </connection>
+ <connection>
+ <source-node>interpolator_4</source-node>
+ <source-port>Interpolated Output</source-port>
+ <destination-node>range_trans_cr_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>interpolator_4</node-name>
+ <port-name>Control Input</port-name>
+ <value>0.599940</value>
+ </control>
+ <control>
+ <node-name>range_trans_cr_0</node-name>
+ <port-name>Input Min</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>range_trans_cr_0</node-name>
+ <port-name>Input Max</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>range_trans_cr_0</node-name>
+ <port-name>Output Min</port-name>
+ <value>10.000000</value>
+ </control>
+ <control>
+ <node-name>range_trans_cr_0</node-name>
+ <port-name>Output Max</port-name>
+ <value>300.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/subpatching/bar.om b/src/clients/patches/testing/subpatching/bar.om
new file mode 100644
index 00000000..d6ff063d
--- /dev/null
+++ b/src/clients/patches/testing/subpatching/bar.om
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>bar</name>
+ <polyphony>1</polyphony>
+ <subpatch>
+ <name>baz</name>
+ <filename>/home/dave/code/om/om-synth/src/clients/gtk/patches/subpatching/baz.om</filename>
+ <polyphony>1</polyphony>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </subpatch>
+ <preset>
+ <name>default</name>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/subpatching/baz.om b/src/clients/patches/testing/subpatching/baz.om
new file mode 100644
index 00000000..f20a5707
--- /dev/null
+++ b/src/clients/patches/testing/subpatching/baz.om
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>baz</name>
+ <polyphony>1</polyphony>
+ <subpatch>
+ <name>baz2</name>
+ <filename>/home/dave/code/om/om-synth/src/clients/gtk/patches/subpatching/baz2.om</filename>
+ <polyphony>1</polyphony>
+ <module-x>1369.000000</module-x>
+ <module-y>1023.000000</module-y>
+ </subpatch>
+ <subpatch>
+ <name>blah</name>
+ <filename>/home/dave/code/om/om-synth/src/clients/gtk/patches/subpatching/blah.om</filename>
+ <polyphony>1</polyphony>
+ <module-x>1742.000000</module-x>
+ <module-y>1057.000000</module-y>
+ </subpatch>
+ <subpatch>
+ <name>blahz0r</name>
+ <filename>/home/dave/code/om/om-synth/src/clients/gtk/patches/subpatching/blahz0r.om</filename>
+ <polyphony>1</polyphony>
+ <module-x>1484.000000</module-x>
+ <module-y>987.000000</module-y>
+ </subpatch>
+ <node>
+ <name>branch_ia_oaoa_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>branch_ia_oaoa</plugin-label>
+ <library-name>branch_1673.so</library-name>
+ <module-x>1619.000000</module-x>
+ <module-y>977.000000</module-y>
+ </node>
+ <node>
+ <name>branch_ia_oaoa_1</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>branch_ia_oaoa</plugin-label>
+ <library-name>branch_1673.so</library-name>
+ <module-x>1761.000000</module-x>
+ <module-y>976.000000</module-y>
+ </node>
+ <node>
+ <name>branch_ic_ococ_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>branch_ic_ococ</plugin-label>
+ <library-name>branch_1673.so</library-name>
+ <module-x>1632.000000</module-x>
+ <module-y>1120.000000</module-y>
+ </node>
+ <node>
+ <name>branch_ic_ococ_1</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>branch_ic_ococ</plugin-label>
+ <library-name>branch_1673.so</library-name>
+ <module-x>1476.000000</module-x>
+ <module-y>1119.000000</module-y>
+ </node>
+ <connection>
+ <source-node>blahz0r</source-node>
+ <source-port>audio_output_0</source-port>
+ <destination-node>blah</destination-node>
+ <destination-port>audio_input_0</destination-port>
+ </connection>
+ <connection>
+ <source-node>baz2</source-node>
+ <source-port>audio_output_0</source-port>
+ <destination-node>blahz0r</destination-node>
+ <destination-port>audio_input_0</destination-port>
+ </connection>
+ <connection>
+ <source-node>baz2</source-node>
+ <source-port>control_output_0</source-port>
+ <destination-node>blah</destination-node>
+ <destination-port>control_input_0</destination-port>
+ </connection>
+ <connection>
+ <source-node>blahz0r</source-node>
+ <source-port>audio_output_1</source-port>
+ <destination-node>branch_ia_oaoa_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>blahz0r</source-node>
+ <source-port>audio_output_1</source-port>
+ <destination-node>blah</destination-node>
+ <destination-port>audio_input_0</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ia_oaoa_0</source-node>
+ <source-port>Second Output</source-port>
+ <destination-node>blah</destination-node>
+ <destination-port>audio_input_0</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ia_oaoa_0</source-node>
+ <source-port>First Output</source-port>
+ <destination-node>branch_ia_oaoa_1</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>baz2</source-node>
+ <source-port>control_output_0</source-port>
+ <destination-node>branch_ic_ococ_1</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ic_ococ_1</source-node>
+ <source-port>First Output</source-port>
+ <destination-node>branch_ic_ococ_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ic_ococ_1</source-node>
+ <source-port>Second Output</source-port>
+ <destination-node>branch_ic_ococ_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ic_ococ_0</source-node>
+ <source-port>First Output</source-port>
+ <destination-node>blah</destination-node>
+ <destination-port>control_input_0</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>baz2</node-name>
+ <port-name>control_input_0</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>baz2</node-name>
+ <port-name>control_output_0</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>blah</node-name>
+ <port-name>control_input_0</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>blah</node-name>
+ <port-name>control_output_0</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>branch_ic_ococ_0</node-name>
+ <port-name>Input</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>branch_ic_ococ_0</node-name>
+ <port-name>First Output</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>branch_ic_ococ_0</node-name>
+ <port-name>Second Output</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>branch_ic_ococ_1</node-name>
+ <port-name>Input</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>branch_ic_ococ_1</node-name>
+ <port-name>First Output</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>branch_ic_ococ_1</node-name>
+ <port-name>Second Output</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/subpatching/baz2.om b/src/clients/patches/testing/subpatching/baz2.om
new file mode 100644
index 00000000..72530f47
--- /dev/null
+++ b/src/clients/patches/testing/subpatching/baz2.om
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>baz2</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_input_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_input</plugin-label>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </node>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </node>
+ <node>
+ <name>control_input_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>control_input</plugin-label>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </node>
+ <node>
+ <name>control_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>control_output</plugin-label>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </node>
+ <subpatch>
+ <name>quux</name>
+ <filename>/home/dave/code/om/om-synth/src/clients/gtk/patches/subpatching/quux.om</filename>
+ <polyphony>1</polyphony>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </subpatch>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>control_input_0</node-name>
+ <port-name>in</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>control_output_0</node-name>
+ <port-name>out</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/subpatching/blah.om b/src/clients/patches/testing/subpatching/blah.om
new file mode 100644
index 00000000..584691ff
--- /dev/null
+++ b/src/clients/patches/testing/subpatching/blah.om
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>blah</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_input_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_input</plugin-label>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </node>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </node>
+ <node>
+ <name>control_input_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>control_input</plugin-label>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </node>
+ <node>
+ <name>control_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>control_output</plugin-label>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </node>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>control_input_0</node-name>
+ <port-name>in</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>control_output_0</node-name>
+ <port-name>out</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/subpatching/blahz0r.om b/src/clients/patches/testing/subpatching/blahz0r.om
new file mode 100644
index 00000000..6a00efb8
--- /dev/null
+++ b/src/clients/patches/testing/subpatching/blahz0r.om
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>blahz0r</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_input_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_input</plugin-label>
+ <module-x>1295.000000</module-x>
+ <module-y>1036.000000</module-y>
+ </node>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1684.000000</module-x>
+ <module-y>1051.000000</module-y>
+ </node>
+ <node>
+ <name>audio_output_1</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1738.000000</module-x>
+ <module-y>1183.000000</module-y>
+ </node>
+ <node>
+ <name>branch_ia_oaoa_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>branch_ia_oaoa</plugin-label>
+ <library-name>branch_1673.so</library-name>
+ <module-x>1376.000000</module-x>
+ <module-y>1084.000000</module-y>
+ </node>
+ <node>
+ <name>branch_ia_oaoa_1</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>branch_ia_oaoa</plugin-label>
+ <library-name>branch_1673.so</library-name>
+ <module-x>1620.000000</module-x>
+ <module-y>1145.000000</module-y>
+ </node>
+ <node>
+ <name>branch_ic_ococ_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>branch_ic_ococ</plugin-label>
+ <library-name>branch_1673.so</library-name>
+ <module-x>1558.000000</module-x>
+ <module-y>1221.000000</module-y>
+ </node>
+ <node>
+ <name>branch_ic_ococ_1</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>branch_ic_ococ</plugin-label>
+ <library-name>branch_1673.so</library-name>
+ <module-x>1393.000000</module-x>
+ <module-y>1208.000000</module-y>
+ </node>
+ <subpatch>
+ <name>qwe</name>
+ <filename>/home/dave/code/om/om-synth/src/clients/gtk/patches/subpatching/qwe.om</filename>
+ <polyphony>1</polyphony>
+ <module-x>1528.000000</module-x>
+ <module-y>1035.000000</module-y>
+ </subpatch>
+ <connection>
+ <source-node>audio_input_0</source-node>
+ <source-port>in</source-port>
+ <destination-node>qwe</destination-node>
+ <destination-port>audio_input_0</destination-port>
+ </connection>
+ <connection>
+ <source-node>qwe</source-node>
+ <source-port>audio_output_0</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ia_oaoa_0</source-node>
+ <source-port>First Output</source-port>
+ <destination-node>qwe</destination-node>
+ <destination-port>audio_input_0</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ia_oaoa_1</source-node>
+ <source-port>First Output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>qwe</source-node>
+ <source-port>audio_output_0</source-port>
+ <destination-node>branch_ia_oaoa_1</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ic_ococ_1</source-node>
+ <source-port>First Output</source-port>
+ <destination-node>qwe</destination-node>
+ <destination-port>control_input_0</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ic_ococ_1</source-node>
+ <source-port>First Output</source-port>
+ <destination-node>branch_ic_ococ_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ia_oaoa_1</source-node>
+ <source-port>Second Output</source-port>
+ <destination-node>audio_output_1</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>audio_input_0</source-node>
+ <source-port>in</source-port>
+ <destination-node>branch_ia_oaoa_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ia_oaoa_1</source-node>
+ <source-port>First Output</source-port>
+ <destination-node>audio_output_1</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>branch_ia_oaoa_0</source-node>
+ <source-port>Second Output</source-port>
+ <destination-node>qwe</destination-node>
+ <destination-port>audio_input_0</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>branch_ic_ococ_0</node-name>
+ <port-name>Input</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>branch_ic_ococ_0</node-name>
+ <port-name>First Output</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>branch_ic_ococ_0</node-name>
+ <port-name>Second Output</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>branch_ic_ococ_1</node-name>
+ <port-name>Input</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>branch_ic_ococ_1</node-name>
+ <port-name>First Output</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>branch_ic_ococ_1</node-name>
+ <port-name>Second Output</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>qwe</node-name>
+ <port-name>control_input_0</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>qwe</node-name>
+ <port-name>control_output_0</port-name>
+ <value>1.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/subpatching/foo.om b/src/clients/patches/testing/subpatching/foo.om
new file mode 100644
index 00000000..98f41e2b
--- /dev/null
+++ b/src/clients/patches/testing/subpatching/foo.om
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>foo</name>
+ <polyphony>1</polyphony>
+ <subpatch>
+ <name>bar</name>
+ <filename>/home/dave/code/om/om-synth/src/clients/gtk/patches/subpatching/bar.om</filename>
+ <polyphony>1</polyphony>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </subpatch>
+ <preset>
+ <name>default</name>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/subpatching/quuux.om b/src/clients/patches/testing/subpatching/quuux.om
new file mode 100644
index 00000000..9bcb560f
--- /dev/null
+++ b/src/clients/patches/testing/subpatching/quuux.om
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>quuux</name>
+ <polyphony>1</polyphony>
+ <preset>
+ <name>default</name>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/subpatching/quuux2.om b/src/clients/patches/testing/subpatching/quuux2.om
new file mode 100644
index 00000000..73737a60
--- /dev/null
+++ b/src/clients/patches/testing/subpatching/quuux2.om
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>quuux2</name>
+ <polyphony>1</polyphony>
+ <preset>
+ <name>default</name>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/subpatching/quux.om b/src/clients/patches/testing/subpatching/quux.om
new file mode 100644
index 00000000..25270515
--- /dev/null
+++ b/src/clients/patches/testing/subpatching/quux.om
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>quux</name>
+ <polyphony>1</polyphony>
+ <subpatch>
+ <name>quuux</name>
+ <filename>/home/dave/code/om/om-synth/src/clients/gtk/patches/subpatching/quuux.om</filename>
+ <polyphony>1</polyphony>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </subpatch>
+ <subpatch>
+ <name>quuux2</name>
+ <filename>/home/dave/code/om/om-synth/src/clients/gtk/patches/subpatching/quuux2.om</filename>
+ <polyphony>1</polyphony>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </subpatch>
+ <preset>
+ <name>default</name>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/subpatching/qwe.om b/src/clients/patches/testing/subpatching/qwe.om
new file mode 100644
index 00000000..a740b478
--- /dev/null
+++ b/src/clients/patches/testing/subpatching/qwe.om
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>qwe</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_input_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_input</plugin-label>
+ <module-x>1299.000000</module-x>
+ <module-y>1139.000000</module-y>
+ </node>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1408.000000</module-x>
+ <module-y>1164.000000</module-y>
+ </node>
+ <node>
+ <name>control_input_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>control_input</plugin-label>
+ <module-x>1327.000000</module-x>
+ <module-y>1017.000000</module-y>
+ </node>
+ <node>
+ <name>control_output_0</name>
+ <polyphonic>true</polyphonic>
+ <type>Internal</type>
+ <plugin-label>control_output</plugin-label>
+ <module-x>1569.000000</module-x>
+ <module-y>1062.000000</module-y>
+ </node>
+ <connection>
+ <source-node>control_input_0</source-node>
+ <source-port>in</source-port>
+ <destination-node>control_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <connection>
+ <source-node>audio_input_0</source-node>
+ <source-port>in</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>control_input_0</node-name>
+ <port-name>in</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>control_output_0</node-name>
+ <port-name>out</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/test.om b/src/clients/patches/testing/test.om
new file mode 100644
index 00000000..df96cdce
--- /dev/null
+++ b/src/clients/patches/testing/test.om
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>asd</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>mono_sampler_0</name>
+ <polyphonic>true</polyphonic>
+ <type>DSSI</type>
+ <plugin-label>mono_sampler</plugin-label>
+ <library-name>trivial_sampler.so</library-name>
+ <dssi-configure>load=/usr/share/sounds/gaim/leave.wav</dssi-configure>
+ <module-x>1300.000000</module-x>
+ <module-y>980.000000</module-y>
+ </node>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>mono_sampler_0</node-name>
+ <port-name>Tuned (on-off)</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>mono_sampler_0</node-name>
+ <port-name>Base pitch (MIDI)</port-name>
+ <value>60.000000</value>
+ </control>
+ <control>
+ <node-name>mono_sampler_0</node-name>
+ <port-name>Sustain (on-off)</port-name>
+ <value>0.000000</value>
+ </control>
+ <control>
+ <node-name>mono_sampler_0</node-name>
+ <port-name>Release time (s)</port-name>
+ <value>0.001000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/transport-test.om b/src/clients/patches/testing/transport-test.om
new file mode 100644
index 00000000..3e1ba6d3
--- /dev/null
+++ b/src/clients/patches/testing/transport-test.om
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>transport-test</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>audio_output_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>audio_output</plugin-label>
+ <module-x>1666.000000</module-x>
+ <module-y>1146.000000</module-y>
+ </node>
+ <node>
+ <name>fbdelay_1s_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>fbdelay_1s</plugin-label>
+ <library-name>cmt.so</library-name>
+ <module-x>1545.000000</module-x>
+ <module-y>1110.000000</module-y>
+ </node>
+ <node>
+ <name>note_in_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>note_in</plugin-label>
+ <module-x>1302.000000</module-x>
+ <module-y>1144.000000</module-y>
+ </node>
+ <node>
+ <name>sine_faaa_0</name>
+ <polyphonic>false</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>sine_faaa</plugin-label>
+ <library-name>cmt.so</library-name>
+ <module-x>1431.000000</module-x>
+ <module-y>1156.000000</module-y>
+ </node>
+ <node>
+ <name>transport_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>transport</plugin-label>
+ <module-x>1435.000000</module-x>
+ <module-y>1086.000000</module-y>
+ </node>
+ <connection>
+ <source-node>transport_0</source-node>
+ <source-port>s-per-beat</source-port>
+ <destination-node>fbdelay_1s_0</destination-node>
+ <destination-port>Delay (Seconds)</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Frequency</source-port>
+ <destination-node>sine_faaa_0</destination-node>
+ <destination-port>Frequency</destination-port>
+ </connection>
+ <connection>
+ <source-node>note_in_0</source-node>
+ <source-port>Gate</source-port>
+ <destination-node>sine_faaa_0</destination-node>
+ <destination-port>Amplitude</destination-port>
+ </connection>
+ <connection>
+ <source-node>sine_faaa_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>fbdelay_1s_0</destination-node>
+ <destination-port>Input</destination-port>
+ </connection>
+ <connection>
+ <source-node>fbdelay_1s_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>audio_output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>fbdelay_1s_0</node-name>
+ <port-name>Delay (Seconds)</port-name>
+ <value>1.000000</value>
+ </control>
+ <control>
+ <node-name>fbdelay_1s_0</node-name>
+ <port-name>Dry-Wet Balance</port-name>
+ <value>0.500000</value>
+ </control>
+ <control>
+ <node-name>fbdelay_1s_0</node-name>
+ <port-name>Feedback</port-name>
+ <value>0.500000</value>
+ </control>
+ <control>
+ <node-name>transport_0</node-name>
+ <port-name>s-per-beat</port-name>
+ <value>0.000000</value>
+ </control>
+ </preset>
+</patch>
diff --git a/src/clients/patches/testing/voice_test.om b/src/clients/patches/testing/voice_test.om
new file mode 100644
index 00000000..7c35c71a
--- /dev/null
+++ b/src/clients/patches/testing/voice_test.om
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patch>
+ <name>foo</name>
+ <polyphony>1</polyphony>
+ <node>
+ <name>output_0</name>
+ <polyphonic>false</polyphonic>
+ <type>Internal</type>
+ <plugin-label>output</plugin-label>
+ <module-x>1600.000000</module-x>
+ <module-y>1200.000000</module-y>
+ </node>
+ <node>
+ <name>square_fc_oa_0</name>
+ <polyphonic>true</polyphonic>
+ <type>LADSPA</type>
+ <plugin-label>square_fc_oa</plugin-label>
+ <library-name>square_1643.so</library-name>
+ <module-x>1496.000000</module-x>
+ <module-y>1187.000000</module-y>
+ </node>
+ <connection>
+ <source-node>square_fc_oa_0</source-node>
+ <source-port>Output</source-port>
+ <destination-node>output_0</destination-node>
+ <destination-port>out</destination-port>
+ </connection>
+ <preset>
+ <name>default</name>
+ <control>
+ <node-name>square_fc_oa_0</node-name>
+ <port-name>Frequency</port-name>
+ <value>440.000000</value>
+ </control>
+ </preset>
+</patch>