summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac4
-rw-r--r--patches/smack/808bass.ingen.ttl497
-rw-r--r--patches/smack/808clave.ingen.ttl351
-rw-r--r--patches/smack/808cowbell.ingen.ttl475
-rw-r--r--patches/smack/808hihat.ingen.ttl1259
-rw-r--r--patches/smack/808snare.ingen.ttl608
-rw-r--r--src/libs/client/DeprecatedLoader.cpp7
-rw-r--r--src/libs/engine/MidiControlNode.cpp4
-rw-r--r--src/libs/engine/MidiNoteNode.cpp8
-rw-r--r--src/libs/engine/MidiTriggerNode.cpp13
-rw-r--r--src/libs/engine/events/ConnectionEvent.cpp42
-rw-r--r--src/libs/serialisation/Loader.cpp8
-rw-r--r--src/libs/serialisation/Serialiser.cpp34
13 files changed, 3268 insertions, 42 deletions
diff --git a/configure.ac b/configure.ac
index 636adb2c..9c9971a7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -254,7 +254,9 @@ if test "$build_ingen_client_lib" = "yes"; then
AC_CHECK_HEADERS([sys/time.h unistd.h])
PKG_CHECK_MODULES(LXML2, libxml-2.0 >= 2.6.0) # FIXME: deprecated, make optional
PKG_CHECK_MODULES(LSIGCPP, sigc++-2.0)
- PKG_CHECK_MODULES(REDLANDMM, [redlandmm])
+ PKG_CHECK_MODULES(REDLANDMM, redlandmm)
+ # Explicitly check for a more recent librdf than redlandmm itself needs
+ PKG_CHECK_MODULES(REDLANDMM, redland >= 1.0.8)
else
AC_MSG_WARN([Ingen client library/executable will not be built!])
fi
diff --git a/patches/smack/808bass.ingen.ttl b/patches/smack/808bass.ingen.ttl
new file mode 100644
index 00000000..8a7c0fe6
--- /dev/null
+++ b/patches/smack/808bass.ingen.ttl
@@ -0,0 +1,497 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix dc: <http://purl.org/dc/elements/1.1/> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix ingen: <http://drobilla.net/ns/ingen#> .
+@prefix ingenuity: <http://drobilla.net/ns/ingenuity#> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix lv2_midi: <http://lv2plug.in/ns/ext/midi> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<>
+ ingen:enabled true ;
+ ingen:node [
+ ingen:name "adenv_0" ;
+ ingen:plugin <ladspa:2661> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Attack_Time" ;
+ ingen:value 0.00019999999494757503271 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:Decay ;
+ ingen:name "Decay_Time" ;
+ ingen:value 0.70343101024627685547 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:adenv_0_Envelope_Out, [
+ ingen:name "Gate" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in0_trigger ;
+ ingen:name "Trigger" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1319.125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1059.25
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "adenv_1" ;
+ ingen:plugin <ladspa:2661> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Attack_Time" ;
+ ingen:value 0.00011999999696854501963 ;
+ ingen:variable [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:name "Decay_Time" ;
+ ingen:value 0.013700000010430812836 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:adenv_1_Envelope_Out, [
+ ingen:name "Gate" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in0_trigger ;
+ ingen:name "Trigger" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1319.125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1251.75
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "amp_mono_0" ;
+ ingen:plugin <ladspa:1067> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:volume ;
+ ingen:name "Gain" ;
+ ingen:value 0.67579400539398193359 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:lowpass_iir0_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:amp_mono_0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1916.125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1221.25
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "lowpass_iir0" ;
+ ingen:plugin <ladspa:1891> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:Tone ;
+ ingen:name "Cutoff_Frequency" ;
+ ingen:value 367.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 2637.24609375
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 21600.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 4.7999997138977050781
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:mixer0_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:lowpass_iir0_Output, [
+ ingen:name "Stages" ;
+ ingen:value 2.0009999275207519531 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 10.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1750.125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1212.75
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "midi_trigger_in0" ;
+ ingen:plugin ingen:trigger_node ;
+ ingen:polyphonic false ;
+ ingen:port [
+ ingen:name "gate" ;
+ a ingen:AudioPort, ingen:OutputPort
+ ], [
+ ingen:connectedTo _:bass_trigger ;
+ ingen:name "input" ;
+ a ingen:EventPort, ingen:InputPort
+ ], [
+ ingen:name "note" ;
+ ingen:value 35.0 ;
+ ingen:variable [
+ ingen:key ingen:integer ;
+ ingen:value true
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 127.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:midi_trigger_in0_trigger, _:midi_trigger_in0_velocity ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1149.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1251.75
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "mixer0" ;
+ ingen:plugin <ladspa:1071> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:product_iaia_oa1_Product_Output ;
+ ingen:name "Input_1" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:product_iaia_oa0_Product_Output ;
+ ingen:name "Input_2" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:mixer0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1643.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1221.25
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "noise_source_white_0" ;
+ ingen:plugin <ladspa:1069> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Amplitude" ;
+ ingen:value 1.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:noise_source_white_0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1296.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1181.0
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa0" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:adenv_0_Envelope_Out ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa0_Product_Output, [
+ ingen:connectedTo _:sine_fcac0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1482.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1076.25
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa1" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:adenv_1_Envelope_Out ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa1_Product_Output, [
+ ingen:connectedTo _:noise_source_white_0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1482.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1221.25
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa_0" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:midi_trigger_in0_velocity ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa_0_Product_Output, [
+ ingen:connectedTo _:amp_mono_0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2049.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1287.5
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "sine_fcac0" ;
+ ingen:plugin <ladspa:1066> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Amplitude" ;
+ ingen:value 1.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:Tune ;
+ ingen:name "Frequency" ;
+ ingen:value 78.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:sine_fcac0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1329.125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 972.5
+ ] ;
+ a ingen:Node
+ ] ;
+ ingen:polyphony 1 ;
+ ingen:port _:Decay, _:Tone, _:Tune, _:bass_trigger, [
+ ingen:connectedTo _:product_iaia_oa_0_Product_Output ;
+ ingen:name "output0" ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2212.875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1312.75
+ ] ;
+ a ingen:AudioPort, ingen:OutputPort
+ ], _:volume ;
+ a ingen:Patch .
+
+_:Decay
+ ingen:name "Decay" ;
+ ingen:value 0.70343101024627685547 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1166.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1101.5
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:Tone
+ ingen:name "Tone" ;
+ ingen:value 367.0 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1641.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1175.25
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:Tune
+ ingen:name "Tune" ;
+ ingen:value 78.0 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1170.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 997.75
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:adenv_0_Envelope_Out
+ ingen:name "Envelope_Out" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:adenv_1_Envelope_Out
+ ingen:name "Envelope_Out" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:amp_mono_0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:bass_trigger
+ ingen:name "bass_trigger" ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 995.125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1294.0
+ ] ;
+ a ingen:EventPort, ingen:InputPort .
+
+_:lowpass_iir0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:midi_trigger_in0_trigger
+ ingen:name "trigger" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:midi_trigger_in0_velocity
+ ingen:name "velocity" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:mixer0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:noise_source_white_0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa0_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa1_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa_0_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:sine_fcac0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:volume
+ ingen:name "volume" ;
+ ingen:value 0.52340400218963623047 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1772.125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1167.75
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
diff --git a/patches/smack/808clave.ingen.ttl b/patches/smack/808clave.ingen.ttl
new file mode 100644
index 00000000..3b8ecbfa
--- /dev/null
+++ b/patches/smack/808clave.ingen.ttl
@@ -0,0 +1,351 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix dc: <http://purl.org/dc/elements/1.1/> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix ingen: <http://drobilla.net/ns/ingen#> .
+@prefix ingenuity: <http://drobilla.net/ns/ingenuity#> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix lv2_midi: <http://lv2plug.in/ns/ext/midi> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<>
+ ingen:enabled true ;
+ ingen:node [
+ ingen:name "adenv_0" ;
+ ingen:plugin <ladspa:2661> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Attack_Time" ;
+ ingen:value 0.00019999999494757503271 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:name "Decay_Time" ;
+ ingen:value 0.06665299832820892334 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:adenv_0_Envelope_Out, [
+ ingen:name "Gate" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in0_trigger ;
+ ingen:name "Trigger" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1451.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1177.375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "amp_mono_0" ;
+ ingen:plugin <ladspa:1067> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:volume ;
+ ingen:name "Gain" ;
+ ingen:value 0.63630002737045288086 ;
+ ingen:variable [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ], [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:product_iaia_oa0_Product_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:amp_mono_0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1764.875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1210.625
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "bandpass_a_iir0" ;
+ ingen:plugin <ladspa:1893> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Bandwidth" ;
+ ingen:value 790.8919677734375 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 321.993804931640625
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 21600.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 4.7999997138977050781
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:BPF ;
+ ingen:name "Center_Frequency" ;
+ ingen:value 497.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 39.313739776611328125
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 21600.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 4.7999997138977050781
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:triangle_fcsc_oa0_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:bandpass_a_iir0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1437.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1074.625
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "midi_trigger_in0" ;
+ ingen:plugin ingen:trigger_node ;
+ ingen:polyphonic false ;
+ ingen:port [
+ ingen:name "gate" ;
+ a ingen:AudioPort, ingen:OutputPort
+ ], [
+ ingen:connectedTo _:midi_input ;
+ ingen:name "input" ;
+ a ingen:EventPort, ingen:InputPort
+ ], [
+ ingen:name "note" ;
+ ingen:value 75.0 ;
+ ingen:variable [
+ ingen:key ingen:integer ;
+ ingen:value true
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 127.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:midi_trigger_in0_trigger, _:midi_trigger_in0_velocity ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1284.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1216.125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa0" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:adenv_0_Envelope_Out ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa0_Product_Output, [
+ ingen:connectedTo _:bandpass_a_iir0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1606.125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1148.125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa_0" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:midi_trigger_in0_velocity ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa_0_Product_Output, [
+ ingen:connectedTo _:amp_mono_0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1898.125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1244.375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "triangle_fcsc_oa0" ;
+ ingen:plugin <ladspa:1652> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:Tune ;
+ ingen:name "Frequency" ;
+ ingen:value 892.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:triangle_fcsc_oa0_Output, [
+ ingen:name "Slope" ;
+ ingen:value 0.5 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.5
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1278.875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1119.375
+ ] ;
+ a ingen:Node
+ ] ;
+ ingen:polyphony 1 ;
+ ingen:port _:BPF, _:Tune, _:midi_input, [
+ ingen:connectedTo _:product_iaia_oa_0_Product_Output ;
+ ingen:name "output0" ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2061.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1269.625
+ ] ;
+ a ingen:AudioPort, ingen:OutputPort
+ ], _:volume ;
+ a ingen:Patch .
+
+_:BPF
+ ingen:name "BPF" ;
+ ingen:value 497.0 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1308.875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1073.375
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:Tune
+ ingen:name "Tune" ;
+ ingen:value 892.0 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1155.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1144.625
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:adenv_0_Envelope_Out
+ ingen:name "Envelope_Out" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:amp_mono_0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:bandpass_a_iir0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:midi_input
+ ingen:name "midi_input" ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1138.875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1258.375
+ ] ;
+ a ingen:EventPort, ingen:InputPort .
+
+_:midi_trigger_in0_trigger
+ ingen:name "trigger" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:midi_trigger_in0_velocity
+ ingen:name "velocity" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa0_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa_0_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:triangle_fcsc_oa0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:volume
+ ingen:name "volume" ;
+ ingen:value 0.63630002737045288086 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1624.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1244.625
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
diff --git a/patches/smack/808cowbell.ingen.ttl b/patches/smack/808cowbell.ingen.ttl
new file mode 100644
index 00000000..0bb27e2a
--- /dev/null
+++ b/patches/smack/808cowbell.ingen.ttl
@@ -0,0 +1,475 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix dc: <http://purl.org/dc/elements/1.1/> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix ingen: <http://drobilla.net/ns/ingen#> .
+@prefix ingenuity: <http://drobilla.net/ns/ingenuity#> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix lv2_midi: <http://lv2plug.in/ns/ext/midi> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<>
+ ingen:enabled true ;
+ ingen:node [
+ ingen:name "adenv_0" ;
+ ingen:plugin <ladspa:2661> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Attack_Time" ;
+ ingen:value 0.00069999997504055500031 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:Decay ;
+ ingen:name "Decay_Time" ;
+ ingen:value 0.34000000357627868652 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:adenv_0_Envelope_Out, [
+ ingen:name "Gate" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in0_trigger ;
+ ingen:name "Trigger" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1348.8184814453125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1004.44012451171875
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "amp_mono_0" ;
+ ingen:plugin <ladspa:1067> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:volume ;
+ ingen:name "Gain" ;
+ ingen:value 0.69798201322555541992 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:bandpass_a_iir0_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:amp_mono_0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1948.7703857421875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1083.4600830078125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "amp_mono_1" ;
+ ingen:plugin <ladspa:1067> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Gain" ;
+ ingen:value 0.85000002384185791016 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:triangle_fcsc_oa1_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:amp_mono_1_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1353.7703857421875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1255.9600830078125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "bandpass_a_iir0" ;
+ ingen:plugin <ladspa:1893> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Bandwidth" ;
+ ingen:value 4405.08984375 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 321.993804931640625
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 21600.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 4.7999997138977050781
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:name "Center_Frequency" ;
+ ingen:value 2640.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 39.313739776611328125
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 21600.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 4.7999997138977050781
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:product_iaia_oa0_Product_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:bandpass_a_iir0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1746.849853515625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1072.7000732421875
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "midi_trigger_in0" ;
+ ingen:plugin ingen:trigger_node ;
+ ingen:polyphonic false ;
+ ingen:port [
+ ingen:name "gate" ;
+ a ingen:AudioPort, ingen:OutputPort
+ ], [
+ ingen:connectedTo _:cowbell_trigger ;
+ ingen:name "input" ;
+ a ingen:EventPort, ingen:InputPort
+ ], [
+ ingen:name "note" ;
+ ingen:value 56.0 ;
+ ingen:variable [
+ ingen:key ingen:integer ;
+ ingen:value true
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 127.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:midi_trigger_in0_trigger, _:midi_trigger_in0_velocity ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1119.6097412109375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 908.19012451171875
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "pink_interpolated_audio_0" ;
+ ingen:plugin <ladspa:1841> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Highest_frequency" ;
+ ingen:value 12165.517578125 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 48000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:pink_interpolated_audio_0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1300.4158935546875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1361.7200927734375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa0" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:adenv_0_Envelope_Out ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa0_Product_Output, [
+ ingen:connectedTo _:amp_mono_1_Output, _:pink_interpolated_audio_0_Output, _:triangle_fcsc_oa0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1560.0037841796875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1150.9600830078125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa_0" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:midi_trigger_in0_velocity ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa_0_Product_Output, [
+ ingen:connectedTo _:amp_mono_0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2104.849853515625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1007.2100830078125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "triangle_fcsc_oa0" ;
+ ingen:plugin <ladspa:1652> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:Tune2 ;
+ ingen:name "Frequency" ;
+ ingen:value 845.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:triangle_fcsc_oa0_Output, [
+ ingen:name "Slope" ;
+ ingen:value 0.5 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.5
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1336.2025146484375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1150.9600830078125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "triangle_fcsc_oa1" ;
+ ingen:plugin <ladspa:1652> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:Tune1 ;
+ ingen:name "Frequency" ;
+ ingen:value 587.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:triangle_fcsc_oa1_Output, [
+ ingen:name "Slope" ;
+ ingen:value 0.5 ;
+ ingen:variable [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:default ;
+ ingen:value 0.5
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1112.4525146484375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1255.9600830078125
+ ] ;
+ a ingen:Node
+ ] ;
+ ingen:polyphony 1 ;
+ ingen:port _:Decay, _:Tune1, _:Tune2, _:cowbell_trigger, [
+ ingen:connectedTo _:product_iaia_oa_0_Product_Output ;
+ ingen:name "output0" ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2301.591796875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1039.239990234375
+ ] ;
+ a ingen:AudioPort, ingen:OutputPort
+ ], _:volume ;
+ a ingen:Patch .
+
+_:Decay
+ ingen:name "Decay" ;
+ ingen:value 0.34000000357627868652 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1145.649658203125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1061.739990234375
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:Tune1
+ ingen:name "Tune1" ;
+ ingen:value 587.0 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 953.14971923828125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1287.989990234375
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:Tune2
+ ingen:name "Tune2" ;
+ ingen:value 845.0 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1145.649658203125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1182.989990234375
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:adenv_0_Envelope_Out
+ ingen:name "Envelope_Out" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:amp_mono_0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:amp_mono_1_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:bandpass_a_iir0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:cowbell_trigger
+ ingen:name "cowbell_trigger" ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 916.71246337890625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 961.739990234375
+ ] ;
+ a ingen:EventPort, ingen:InputPort .
+
+_:midi_trigger_in0_trigger
+ ingen:name "trigger" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:midi_trigger_in0_velocity
+ ingen:name "velocity" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:pink_interpolated_audio_0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa0_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa_0_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:triangle_fcsc_oa0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:triangle_fcsc_oa1_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:volume
+ ingen:name "volume" ;
+ ingen:value 0.69798201322555541992 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1781.7457275390625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1205.489990234375
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
diff --git a/patches/smack/808hihat.ingen.ttl b/patches/smack/808hihat.ingen.ttl
new file mode 100644
index 00000000..36310a6f
--- /dev/null
+++ b/patches/smack/808hihat.ingen.ttl
@@ -0,0 +1,1259 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix dc: <http://purl.org/dc/elements/1.1/> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix ingen: <http://drobilla.net/ns/ingen#> .
+@prefix ingenuity: <http://drobilla.net/ns/ingenuity#> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix lv2_midi: <http://lv2plug.in/ns/ext/midi> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<>
+ ingen:enabled true ;
+ ingen:node [
+ ingen:name "adenv_0" ;
+ ingen:plugin <ladspa:2661> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Attack_Time" ;
+ ingen:value 0.0049999998882412910461 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:CH_Decay ;
+ ingen:name "Decay_Time" ;
+ ingen:value 0.17389599978923797607 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:adenv_0_Envelope_Out, [
+ ingen:name "Gate" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in1_trigger ;
+ ingen:name "Trigger" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1358.739013671875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1247.8486328125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "adenv_1" ;
+ ingen:plugin <ladspa:2661> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Attack_Time" ;
+ ingen:value 0.00030000001424923539162 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:OH_Decay ;
+ ingen:name "Decay_Time" ;
+ ingen:value 0.89710700511932373047 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:adenv_1_Envelope_Out, [
+ ingen:name "Gate" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in0_trigger ;
+ ingen:name "Trigger" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1358.739013671875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 385.3486328125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "adenv_lvl_0" ;
+ ingen:plugin <ladspa:2662> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Attack_Time" ;
+ ingen:value 9.9999997473787516356e-06 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:name "Attack_to_Level" ;
+ ingen:value 1.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:name "Decay_Time" ;
+ ingen:value 0.0075369998812675476074 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:name "Decay_to_Level" ;
+ ingen:value 0.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:adenv_lvl_0_Envelope_Out, [
+ ingen:name "Gate" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:name "Initial_Level" ;
+ ingen:value 1.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in0_trigger ;
+ ingen:name "Reset_Level" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in1_trigger ;
+ ingen:name "Trigger" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1348.2552490234375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 576.66436767578125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "adenv_lvl_1" ;
+ ingen:plugin <ladspa:2662> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Attack_Time" ;
+ ingen:value 1.9999999494757503271e-05 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:name "Attack_to_Level" ;
+ ingen:value 1.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:name "Decay_Time" ;
+ ingen:value 0.0053500002250075340271 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:name "Decay_to_Level" ;
+ ingen:value 0.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:adenv_lvl_1_Envelope_Out, [
+ ingen:name "Gate" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:name "Initial_Level" ;
+ ingen:value 1.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in1_trigger ;
+ ingen:name "Reset_Level" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in0_trigger ;
+ ingen:name "Trigger" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1348.2552490234375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 886.66436767578125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "amp_gcia_oa0" ;
+ ingen:plugin <ladspa:1655> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Gain" ;
+ ingen:value -4.7407879829406738281 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value -96.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 96.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value -96.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:mixer3_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:amp_gcia_oa0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 670.42669677734375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1575.9407958984375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "amp_gcia_oa1" ;
+ ingen:plugin <ladspa:1655> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Gain" ;
+ ingen:value -4.2985548973083496094 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value -96.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 96.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value -96.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:mixer2_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:amp_gcia_oa1_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 670.42669677734375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1713.4407958984375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "amp_gcia_oa2" ;
+ ingen:plugin <ladspa:1655> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Gain" ;
+ ingen:value -3.3684689998626708984 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value -96.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 96.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value -96.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:mixer4_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:amp_gcia_oa2_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 885.42669677734375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1438.4407958984375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "amp_mono_0" ;
+ ingen:plugin <ladspa:1067> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:volume ;
+ ingen:name "Gain" ;
+ ingen:value 1.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:mixer5_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:amp_mono_0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2780.84814453125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 962.19073486328125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "bandpass_a_iir0" ;
+ ingen:plugin <ladspa:1893> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Bandwidth" ;
+ ingen:value 697.53106689453125 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 321.993804931640625
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 21600.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 4.7999997138977050781
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:Tune ;
+ ingen:name "Center_Frequency" ;
+ ingen:value 9751.4248046875 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 39.313739776611328125
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 21600.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 4.7999997138977050781
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:mixer0_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:bandpass_a_iir0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1332.052978515625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1444.3946533203125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "highpass_iir0" ;
+ ingen:plugin <ladspa:1890> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Cutoff_Frequency" ;
+ ingen:value 7570.08251953125 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 39.313739776611328125
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 21600.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 4.7999997138977050781
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:product_iaia_oa0_Product_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:highpass_iir0_Output, [
+ ingen:name "Stages" ;
+ ingen:value 2.5058200359344482422 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 10.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1844.318359375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1034.3946533203125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "highpass_iir1" ;
+ ingen:plugin <ladspa:1890> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Cutoff_Frequency" ;
+ ingen:value 9402.5830078125 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 39.313739776611328125
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 21600.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 4.7999997138977050781
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:product_iaia_oa1_Product_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:highpass_iir1_Output, [
+ ingen:name "Stages" ;
+ ingen:value 1.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 10.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1844.318359375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1255.6446533203125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "midi_trigger_in0" ;
+ ingen:plugin ingen:trigger_node ;
+ ingen:polyphonic false ;
+ ingen:port [
+ ingen:name "gate" ;
+ a ingen:AudioPort, ingen:OutputPort
+ ], [
+ ingen:connectedTo _:OH_trigger ;
+ ingen:name "input" ;
+ a ingen:EventPort, ingen:InputPort
+ ], [
+ ingen:name "note" ;
+ ingen:value 42.048000335693359375 ;
+ ingen:variable [
+ ingen:key ingen:integer ;
+ ingen:value true
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 127.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:midi_trigger_in0_trigger, _:midi_trigger_in0_velocity ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1100.5989990234375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 574.0986328125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "midi_trigger_in1" ;
+ ingen:plugin ingen:trigger_node ;
+ ingen:polyphonic false ;
+ ingen:port [
+ ingen:name "gate" ;
+ a ingen:AudioPort, ingen:OutputPort
+ ], [
+ ingen:connectedTo _:CH_trigger ;
+ ingen:name "input" ;
+ a ingen:EventPort, ingen:InputPort
+ ], [
+ ingen:name "note" ;
+ ingen:value 60.063999176025390625 ;
+ ingen:variable [
+ ingen:key ingen:integer ;
+ ingen:value true
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 127.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:midi_trigger_in1_trigger, _:midi_trigger_in1_velocity ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1100.5989990234375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1035.3486328125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "mixer0" ;
+ ingen:plugin <ladspa:1071> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:amp_gcia_oa2_Output ;
+ ingen:name "Input_1" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:mixer1_Output ;
+ ingen:name "Input_2" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:mixer0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1147.15869140625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1507.1907958984375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "mixer1" ;
+ ingen:plugin <ladspa:1071> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:amp_gcia_oa0_Output ;
+ ingen:name "Input_1" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:amp_gcia_oa1_Output ;
+ ingen:name "Input_2" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:mixer1_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 923.40875244140625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1575.9407958984375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "mixer2" ;
+ ingen:plugin <ladspa:1071> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:square_fc_oa4_Output ;
+ ingen:name "Input_1" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:square_fc_oa5_Output ;
+ ingen:name "Input_2" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:mixer2_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 490.90875244140625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1713.4407958984375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "mixer3" ;
+ ingen:plugin <ladspa:1071> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:square_fc_oa2_Output ;
+ ingen:name "Input_1" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:square_fc_oa3_Output ;
+ ingen:name "Input_2" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:mixer3_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 490.90875244140625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1575.9407958984375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "mixer4" ;
+ ingen:plugin <ladspa:1071> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:square_fc_oa0_Output ;
+ ingen:name "Input_1" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:square_fc_oa1_Output ;
+ ingen:name "Input_2" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:mixer4_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 708.40875244140625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1438.4407958984375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "mixer5" ;
+ ingen:plugin <ladspa:1071> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:product_iaia_oa_0_Product_Output ;
+ ingen:name "Input_1" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:product_iaia_oa_1_Product_Output ;
+ ingen:name "Input_2" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:mixer5_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2630.90869140625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 913.44073486328125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa0" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:adenv_1_Envelope_Out ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa0_Product_Output, [
+ ingen:connectedTo _:bandpass_a_iir0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1597.0213623046875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1049.6907958984375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa1" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:adenv_0_Envelope_Out ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa1_Product_Output, [
+ ingen:connectedTo _:bandpass_a_iir0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1597.0213623046875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1278.4407958984375
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa_0" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:midi_trigger_in0_velocity ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa_0_Product_Output, [
+ ingen:connectedTo _:product_iaia_oa_3_Product_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2360.052978515625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 824.69073486328125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa_1" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:midi_trigger_in1_velocity ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa_1_Product_Output, [
+ ingen:connectedTo _:product_iaia_oa_4_Product_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2360.052978515625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1003.44073486328125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa_3" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:highpass_iir0_Output ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa_3_Product_Output, [
+ ingen:connectedTo _:adenv_lvl_0_Envelope_Out ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2100.052978515625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 824.69073486328125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa_4" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:highpass_iir1_Output ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa_4_Product_Output, [
+ ingen:connectedTo _:adenv_lvl_1_Envelope_Out ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2100.052978515625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1003.44073486328125
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "square_fc_oa0" ;
+ ingen:plugin <ladspa:1644> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Frequency" ;
+ ingen:value 11840.5029296875 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:square_fc_oa0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 451.020538330078125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1351.23681640625
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "square_fc_oa1" ;
+ ingen:plugin <ladspa:1644> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Frequency" ;
+ ingen:value 9530.23046875 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:square_fc_oa1_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 451.020538330078125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1461.23681640625
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "square_fc_oa2" ;
+ ingen:plugin <ladspa:1644> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Frequency" ;
+ ingen:value 17164.123046875 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:square_fc_oa2_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 231.0205535888671875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1487.48681640625
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "square_fc_oa3" ;
+ ingen:plugin <ladspa:1644> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Frequency" ;
+ ingen:value 11749.078125 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:square_fc_oa3_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 231.0205535888671875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1597.48681640625
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "square_fc_oa4" ;
+ ingen:plugin <ladspa:1644> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Frequency" ;
+ ingen:value 16200.244140625 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:square_fc_oa4_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 231.0205535888671875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1721.23681640625
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "square_fc_oa5" ;
+ ingen:plugin <ladspa:1644> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Frequency" ;
+ ingen:value 8874.3291015625 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:square_fc_oa5_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 231.0205535888671875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1831.23681640625
+ ] ;
+ a ingen:Node
+ ] ;
+ ingen:polyphony 1 ;
+ ingen:port _:CH_Decay, _:CH_trigger, _:OH_Decay, _:OH_trigger, _:Tune, [
+ ingen:connectedTo _:amp_mono_0_Output ;
+ ingen:name "output0" ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2984.596435546875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1007.82891845703125
+ ] ;
+ a ingen:AudioPort, ingen:OutputPort
+ ], _:volume ;
+ a ingen:Patch .
+
+_:CH_Decay
+ ingen:name "CH_Decay" ;
+ ingen:value 0.17000000178813934326 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1122.8626708984375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1324.0789794921875
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:CH_trigger
+ ingen:name "CH_trigger" ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 895.3004150390625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1111.5789794921875
+ ] ;
+ a ingen:EventPort, ingen:InputPort .
+
+_:OH_Decay
+ ingen:name "OH_Decay" ;
+ ingen:value 0.88999998569488525391 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1121.9095458984375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 461.578948974609375
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:OH_trigger
+ ingen:name "OH_trigger" ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 894.34735107421875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 650.32891845703125
+ ] ;
+ a ingen:EventPort, ingen:InputPort .
+
+_:Tune
+ ingen:name "Tune" ;
+ ingen:value 9751.0 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1152.4078369140625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1456.5789794921875
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:adenv_0_Envelope_Out
+ ingen:name "Envelope_Out" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:adenv_1_Envelope_Out
+ ingen:name "Envelope_Out" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:adenv_lvl_0_Envelope_Out
+ ingen:name "Envelope_Out" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:adenv_lvl_1_Envelope_Out
+ ingen:name "Envelope_Out" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:amp_gcia_oa0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:amp_gcia_oa1_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:amp_gcia_oa2_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:amp_mono_0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:bandpass_a_iir0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:highpass_iir0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:highpass_iir1_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:midi_trigger_in0_trigger
+ ingen:name "trigger" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:midi_trigger_in0_velocity
+ ingen:name "velocity" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:midi_trigger_in1_trigger
+ ingen:name "trigger" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:midi_trigger_in1_velocity
+ ingen:name "velocity" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:mixer0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:mixer1_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:mixer2_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:mixer3_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:mixer4_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:mixer5_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa0_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa1_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa_0_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa_1_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa_3_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa_4_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:square_fc_oa0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:square_fc_oa1_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:square_fc_oa2_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:square_fc_oa3_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:square_fc_oa4_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:square_fc_oa5_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:volume
+ ingen:name "volume" ;
+ ingen:value 0.77594798803329467773 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2622.81494140625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1055.3289794921875
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
diff --git a/patches/smack/808snare.ingen.ttl b/patches/smack/808snare.ingen.ttl
new file mode 100644
index 00000000..26f7bd33
--- /dev/null
+++ b/patches/smack/808snare.ingen.ttl
@@ -0,0 +1,608 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix dc: <http://purl.org/dc/elements/1.1/> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix ingen: <http://drobilla.net/ns/ingen#> .
+@prefix ingenuity: <http://drobilla.net/ns/ingenuity#> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix lv2_midi: <http://lv2plug.in/ns/ext/midi> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<>
+ ingen:enabled true ;
+ ingen:node [
+ ingen:name "adenv_0" ;
+ ingen:plugin <ladspa:2661> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Attack_Time" ;
+ ingen:value 0.00011999999696854501963 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:Decay ;
+ ingen:name "Decay_Time" ;
+ ingen:value 0.17800000309944152832 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:adenv_0_Envelope_Out, [
+ ingen:name "Gate" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in0_trigger ;
+ ingen:name "Trigger" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1377.875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1144.25
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "adenv_1" ;
+ ingen:plugin <ladspa:2661> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Attack_Time" ;
+ ingen:value 0.00039999998989515006542 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:name "Decay_Time" ;
+ ingen:value 0.10831200331449508667 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:adenv_1_Envelope_Out, [
+ ingen:name "Gate" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in0_trigger ;
+ ingen:name "Trigger" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1377.875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1351.75
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "adenv_2" ;
+ ingen:plugin <ladspa:2661> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Attack_Time" ;
+ ingen:value 0.00031999999191612005234 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:Decay ;
+ ingen:name "Decay_Time" ;
+ ingen:value 0.17800000309944152832 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 0.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:adenv_2_Envelope_Out, [
+ ingen:name "Gate" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:midi_trigger_in0_trigger ;
+ ingen:name "Trigger" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1377.875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1024.25
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "amp_mono_0" ;
+ ingen:plugin <ladspa:1067> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:Volume ;
+ ingen:name "Gain" ;
+ ingen:value 0.036171998828649520874 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:highpass_iir0_Output, _:product_iaia_oa0_Product_Output, _:product_iaia_oa1_Product_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:amp_mono_0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1862.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1170.0
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "highpass_iir0" ;
+ ingen:plugin <ladspa:1890> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:HPF ;
+ ingen:name "Cutoff_Frequency" ;
+ ingen:value 1972.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 39.313739776611328125
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 21600.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 4.7999997138977050781
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:product_iaia_oa2_Product_Output ;
+ ingen:name "Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:highpass_iir0_Output, [
+ ingen:name "Stages" ;
+ ingen:value 1.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 10.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1696.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1161.5
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "midi_trigger_in0" ;
+ ingen:plugin ingen:trigger_node ;
+ ingen:polyphonic false ;
+ ingen:port [
+ ingen:name "gate" ;
+ a ingen:AudioPort, ingen:OutputPort
+ ], [
+ ingen:connectedTo _:snare_trigger ;
+ ingen:name "input" ;
+ a ingen:EventPort, ingen:InputPort
+ ], [
+ ingen:name "note" ;
+ ingen:value 38.0 ;
+ ingen:variable [
+ ingen:key ingen:integer ;
+ ingen:value true
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 127.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 0.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:midi_trigger_in0_trigger, _:midi_trigger_in0_velocity ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1210.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1291.75
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "noise_source_white0" ;
+ ingen:plugin <ladspa:1069> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:Snappy ;
+ ingen:name "Amplitude" ;
+ ingen:value 0.96204900741577148438 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:noise_source_white0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1358.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 953.5
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa0" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:adenv_1_Envelope_Out ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa0_Product_Output, [
+ ingen:connectedTo _:sine_fcac0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1538.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1265.0
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa1" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:adenv_2_Envelope_Out ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa1_Product_Output, [
+ ingen:connectedTo _:sine_fcac1_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1538.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1027.5
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa2" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:adenv_0_Envelope_Out ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa2_Product_Output, [
+ ingen:connectedTo _:noise_source_white0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1538.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1170.0
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "product_iaia_oa_0" ;
+ ingen:plugin <ladspa:1668> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:connectedTo _:midi_trigger_in0_velocity ;
+ ingen:name "First_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ], _:product_iaia_oa_0_Product_Output, [
+ ingen:connectedTo _:amp_mono_0_Output ;
+ ingen:name "Second_Input" ;
+ a ingen:AudioPort, ingen:InputPort
+ ] ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1995.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1311.25
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "sine_fcac0" ;
+ ingen:plugin <ladspa:1066> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Amplitude" ;
+ ingen:value 0.89999997615814208984 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:name "Frequency" ;
+ ingen:value 330.46148681640625 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:sine_fcac0_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1387.875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1265.0
+ ] ;
+ a ingen:Node
+ ], [
+ ingen:name "sine_fcac1" ;
+ ingen:plugin <ladspa:1066> ;
+ ingen:polyphonic true ;
+ ingen:port [
+ ingen:name "Amplitude" ;
+ ingen:value 0.89999997615814208984 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 1.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], [
+ ingen:connectedTo _:Tone ;
+ ingen:name "Frequency" ;
+ ingen:value 151.0 ;
+ ingen:variable [
+ ingen:key ingen:default ;
+ ingen:value 440.0
+ ], [
+ ingen:key ingen:maximum ;
+ ingen:value 24000.0
+ ], [
+ ingen:key ingen:minimum ;
+ ingen:value 1.1920928955078125e-07
+ ] ;
+ a ingen:ControlPort, ingen:InputPort
+ ], _:sine_fcac1_Output ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1387.875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 865.0
+ ] ;
+ a ingen:Node
+ ] ;
+ ingen:polyphony 1 ;
+ ingen:port _:Decay, _:HPF, _:Snappy, _:Tone, _:Volume, [
+ ingen:connectedTo _:product_iaia_oa_0_Product_Output ;
+ ingen:name "output0" ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 2159.125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1336.5
+ ] ;
+ a ingen:AudioPort, ingen:OutputPort
+ ], _:snare_trigger ;
+ a ingen:Patch .
+
+_:Decay
+ ingen:name "Decay" ;
+ ingen:value 0.17800000309944152832 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1227.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1126.5
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:HPF
+ ingen:name "HPF" ;
+ ingen:value 1972.0 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1567.125
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1124.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:Snappy
+ ingen:name "Snappy" ;
+ ingen:value 0.96204900741577148438 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1223.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 970.25
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:Tone
+ ingen:name "Tone" ;
+ ingen:value 151.0 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1231.625
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 890.25
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:Volume
+ ingen:name "Volume" ;
+ ingen:value 0.036171998828649520874 ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1717.375
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1069.0
+ ] ;
+ a ingen:ControlPort, ingen:InputPort .
+
+_:adenv_0_Envelope_Out
+ ingen:name "Envelope_Out" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:adenv_1_Envelope_Out
+ ingen:name "Envelope_Out" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:adenv_2_Envelope_Out
+ ingen:name "Envelope_Out" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:amp_mono_0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:highpass_iir0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:midi_trigger_in0_trigger
+ ingen:name "trigger" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:midi_trigger_in0_velocity
+ ingen:name "velocity" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:noise_source_white0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa0_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa1_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa2_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:product_iaia_oa_0_Product_Output
+ ingen:name "Product_Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:sine_fcac0_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:sine_fcac1_Output
+ ingen:name "Output" ;
+ a ingen:AudioPort, ingen:OutputPort .
+
+_:snare_trigger
+ ingen:name "snare_trigger" ;
+ ingen:variable [
+ ingen:key ingenuity:canvas-x ;
+ ingen:value 1050.875
+ ], [
+ ingen:key ingenuity:canvas-y ;
+ ingen:value 1334.0
+ ] ;
+ a ingen:EventPort, ingen:InputPort .
+
diff --git a/src/libs/client/DeprecatedLoader.cpp b/src/libs/client/DeprecatedLoader.cpp
index fa1dc7b9..e5179fa0 100644
--- a/src/libs/client/DeprecatedLoader.cpp
+++ b/src/libs/client/DeprecatedLoader.cpp
@@ -72,9 +72,9 @@ DeprecatedLoader::translate_load_path(const string& path)
// (FIXME: apply these less heavy handedly, only when it's an internal module)
} else if (path.find("midi") != string::npos) {
assert(Path::is_valid(path));
- if (path.substr(path.find_last_of("/")) == "/midi_in")
+ if (path.substr(path.find_last_of("/")) == "/MIDI_In")
return path.substr(0, path.find_last_of("/")) + "/input";
- else if (path.substr(path.find_last_of("/")) == "/note_number")
+ else if (path.substr(path.find_last_of("/")) == "/Note_Number")
return path.substr(0, path.find_last_of("/")) + "/note";
else if (path.substr(path.find_last_of("/")) == "/Gate")
return path.substr(0, path.find_last_of("/")) + "/gate";
@@ -284,7 +284,8 @@ DeprecatedLoader::load_patch(const Glib::ustring& filename,
list<ControlModel>::const_iterator i = pm->controls().begin();
for ( ; i != pm->controls().end(); ++i) {
const float value = i->value();
- _engine->set_port_value(i->port_path(), "ingen:Float", sizeof(float), &value);
+ _engine->set_port_value(translate_load_path(i->port_path()),
+ "ingen:Float", sizeof(float), &value);
}
} else {
cerr << "WARNING: Unknown preset: \"" << pm->name() << endl;
diff --git a/src/libs/engine/MidiControlNode.cpp b/src/libs/engine/MidiControlNode.cpp
index d9c426e3..afd588ea 100644
--- a/src/libs/engine/MidiControlNode.cpp
+++ b/src/libs/engine/MidiControlNode.cpp
@@ -48,11 +48,11 @@ MidiControlNode::MidiControlNode(const string& path,
_param_port = new InputPort(this, "controller", 1, 1, DataType::CONTROL, 0.0f, 1);
_param_port->set_variable("ingen:minimum", 0.0f);
_param_port->set_variable("ingen:maximum", 127.0f);
- _param_port->set_variable("ingen:integer", 1);
+ _param_port->set_variable("ingen:integer", true);
_ports->at(1) = _param_port;
_log_port = new InputPort(this, "logarithmic", 2, 1, DataType::CONTROL, 0.0f, 1);
- _log_port->set_variable("ingen:toggled", 1);
+ _log_port->set_variable("ingen:toggled", true);
_ports->at(2) = _log_port;
_min_port = new InputPort(this, "minimum", 3, 1, DataType::CONTROL, 0.0f, 1);
diff --git a/src/libs/engine/MidiNoteNode.cpp b/src/libs/engine/MidiNoteNode.cpp
index 729cf2c3..3c4f0e56 100644
--- a/src/libs/engine/MidiNoteNode.cpp
+++ b/src/libs/engine/MidiNoteNode.cpp
@@ -57,11 +57,11 @@ MidiNoteNode::MidiNoteNode(const string& path, bool polyphonic, PatchImpl* paren
_ports->at(2) = _vel_port;
_gate_port = new OutputPort(this, "gate", 3, _polyphony, DataType::AUDIO, 0.0f, _buffer_size);
- _gate_port->set_variable("ingen:toggled", 1);
+ _gate_port->set_variable("ingen:toggled", true);
_ports->at(3) = _gate_port;
_trig_port = new OutputPort(this, "trigger", 4, _polyphony, DataType::AUDIO, 0.0f, _buffer_size);
- _trig_port->set_variable("ingen:toggled", 1);
+ _trig_port->set_variable("ingen:toggled", true);
_ports->at(4) = _trig_port;
}
@@ -225,8 +225,8 @@ MidiNoteNode::note_on(uchar note_num, uchar velocity, FrameTime time, ProcessCon
assert(voice != NULL);
assert(voice == &(*_voices)[voice_num]);
- //cerr << "[MidiNoteNode] Note " << (int)note_num << " on @ " << time
- // << ". Voice " << voice_num << " / " << _polyphony << endl;
+ cerr << "[MidiNoteNode] Note " << (int)note_num << " on @ " << time
+ << ". Voice " << voice_num << " / " << _polyphony << endl;
// Update stolen key, if applicable
if (voice->state == Voice::Voice::ACTIVE) {
diff --git a/src/libs/engine/MidiTriggerNode.cpp b/src/libs/engine/MidiTriggerNode.cpp
index 0ae67c27..5fa1cd4b 100644
--- a/src/libs/engine/MidiTriggerNode.cpp
+++ b/src/libs/engine/MidiTriggerNode.cpp
@@ -26,6 +26,8 @@
#include "EventBuffer.hpp"
#include "util.hpp"
+using namespace std;
+
namespace Ingen {
@@ -41,7 +43,7 @@ MidiTriggerNode::MidiTriggerNode(const string& path, bool polyphonic, PatchImpl*
_note_port = new InputPort(this, "note", 1, 1, DataType::CONTROL, 60.0f, 1);
_note_port->set_variable("ingen:minimum", 0.0f);
_note_port->set_variable("ingen:maximum", 127.0f);
- _note_port->set_variable("ingen:integer", 1);
+ _note_port->set_variable("ingen:integer", true);
_ports->at(1) = _note_port;
_gate_port = new OutputPort(this, "gate", 2, 1, DataType::AUDIO, 0.0f, _buffer_size);
@@ -105,11 +107,14 @@ MidiTriggerNode::note_on(uchar note_num, uchar velocity, FrameTime time, Process
assert(time >= context.start() && time <= context.end());
assert(time - context.start() < _buffer_size);
- //std::cerr << "Note on starting at sample " << offset << std::endl;
+ cerr << "[MidiTriggerNode] " << path() << " Note " << (int)note_num << " on @ " << time << endl;
- const Sample filter_note = ((AudioBuffer*)_note_port->buffer(0))->value_at(0);
- if (filter_note >= 0.0 && filter_note < 127.0 && (note_num == (uchar)filter_note)){
+ Sample filter_note = ((AudioBuffer*)_note_port->buffer(0))->value_at(0);
+ cerr << "note: " << (int)note_num << ", filter: " << filter_note << endl;
+ if (filter_note >= 0.0 && filter_note < 127.0 && (note_num == (uchar)filter_note)) {
+ cerr << "!\n";
+
// FIXME FIXME FIXME
SampleCount offset = time - context.start();
diff --git a/src/libs/engine/events/ConnectionEvent.cpp b/src/libs/engine/events/ConnectionEvent.cpp
index 4c8e7f72..893dc9cb 100644
--- a/src/libs/engine/events/ConnectionEvent.cpp
+++ b/src/libs/engine/events/ConnectionEvent.cpp
@@ -15,20 +15,22 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#include "ConnectionEvent.hpp"
+
#include <string>
+#include <boost/format.hpp>
#include <raul/Maid.hpp>
#include <raul/Path.hpp>
-#include "Responder.hpp"
-#include "types.hpp"
-#include "Engine.hpp"
+#include "ClientBroadcaster.hpp"
+#include "ConnectionEvent.hpp"
#include "ConnectionImpl.hpp"
+#include "Engine.hpp"
#include "InputPort.hpp"
+#include "ObjectStore.hpp"
#include "OutputPort.hpp"
#include "PatchImpl.hpp"
-#include "ClientBroadcaster.hpp"
#include "PortImpl.hpp"
-#include "ObjectStore.hpp"
+#include "Responder.hpp"
+#include "types.hpp"
using std::string;
namespace Ingen {
@@ -164,15 +166,33 @@ ConnectionEvent::execute(ProcessContext& context)
void
ConnectionEvent::post_process()
{
+ std::ostringstream ss;
if (_error == NO_ERROR) {
_responder->respond_ok();
_engine.broadcaster()->send_connection(_connection);
- } else {
- // FIXME: better error messages
- string msg = "Unable to make connection ";
- msg.append(_src_port_path + " -> " + _dst_port_path);
- _responder->respond_error(msg);
+ return;
+ }
+
+ ss << boost::format("Unable to make connection %1% -> %2% (") % _src_port_path % _dst_port_path;
+
+ switch (_error) {
+ case PARENT_PATCH_DIFFERENT:
+ ss << "Ports have mismatched parents"; break;
+ case PORT_NOT_FOUND:
+ ss << "Port not found"; break;
+ case TYPE_MISMATCH:
+ ss << "Type mismatch"; break;
+ case DIRECTION_MISMATCH:
+ ss << "Direction mismatch"; break;
+ case ALREADY_CONNECTED:
+ ss << "Already connected"; break;
+ case PARENTS_NOT_FOUND:
+ ss << "Parents not found"; break;
+ default:
+ ss << "Unknown error";
}
+ ss << ")";
+ _responder->respond_error(ss.str());
}
diff --git a/src/libs/serialisation/Loader.cpp b/src/libs/serialisation/Loader.cpp
index da2e6507..6708a0e3 100644
--- a/src/libs/serialisation/Loader.cpp
+++ b/src/libs/serialisation/Loader.cpp
@@ -212,8 +212,9 @@ Loader::load(Ingen::Shared::World* world,
const string port_name = (*i)["portname"].to_string();
const float val = (*i)["portval"].to_float();
- const Path port_path = patch_path.base() + Path::nameify(node_name)
- +"/"+ Path::nameify(port_name);
+ assert(Path::is_valid_name(node_name));
+ assert(Path::is_valid_name(port_name));
+ const Path port_path = patch_path.base() + node_name + "/" + port_name;
world->engine->set_port_value(port_path, "ingen:Float", sizeof(float), &val);
}
@@ -243,7 +244,8 @@ Loader::load(Ingen::Shared::World* world,
const string type = world->rdf_world->qualify((*i)["type"].to_string());
const string datatype = world->rdf_world->qualify((*i)["datatype"].to_string());
- const Path port_path = patch_path.base() + (string)name;
+ assert(Path::is_valid_name(name));
+ const Path port_path = patch_path.base() + name;
if (created.find(port_path) == created.end()) {
bool is_output = (type == "ingen:OutputPort"); // FIXME: check validity
diff --git a/src/libs/serialisation/Serialiser.cpp b/src/libs/serialisation/Serialiser.cpp
index a81c76f6..710a538c 100644
--- a/src/libs/serialisation/Serialiser.cpp
+++ b/src/libs/serialisation/Serialiser.cpp
@@ -100,9 +100,15 @@ Serialiser::start_to_filename(const string& filename)
{
setlocale(LC_NUMERIC, "C");
- _base_uri = "file://" + filename;
+ cout << "STARTING SERIALIZATION TO FILENAME: " << filename << endl;
+
+ assert(filename.find(":") == string::npos || filename.substr(0, 5) == "file:");
+ if (filename.find(":") == string::npos)
+ _base_uri = "file://" + filename;
+ else
+ _base_uri = filename;
_model = new Redland::Model(_world);
- _model->set_base_uri(string("file://" + filename));
+ _model->set_base_uri(_base_uri);
_mode = TO_FILE;
}
@@ -429,19 +435,19 @@ void
Serialiser::serialise_variables(Redland::Node subject, const GraphObject::Variables& variables)
{
for (GraphObject::Variables::const_iterator v = variables.begin(); v != variables.end(); ++v) {
- if (v->first.find(":") != string::npos) {
+ if (v->first.find(":") != string::npos && v->first != "ingen:document") {
if (v->second.is_valid()) {
- const Redland::Node var_id = _world.blank_id();
- const Redland::Node key(_model->world(), Redland::Node::RESOURCE, v->first);
- const Redland::Node value = AtomRDF::atom_to_node(_model->world(), v->second);
- if (value) {
- _model->add_statement(subject, "ingen:variable", var_id);
- _model->add_statement(var_id, "ingen:key", key);
- _model->add_statement(var_id, "ingen:value", value);
- } else {
- cerr << "Warning: can not serialise value: key '" << v->first << "', type "
- << (int)v->second.type() << endl;
- }
+ const Redland::Node var_id = _world.blank_id();
+ const Redland::Node key(_model->world(), Redland::Node::RESOURCE, v->first);
+ const Redland::Node value = AtomRDF::atom_to_node(_model->world(), v->second);
+ if (value) {
+ _model->add_statement(subject, "ingen:variable", var_id);
+ _model->add_statement(var_id, "ingen:key", key);
+ _model->add_statement(var_id, "ingen:value", value);
+ } else {
+ cerr << "Warning: can not serialise value: key '" << v->first << "', type "
+ << (int)v->second.type() << endl;
+ }
} else {
cerr << "Warning: variable with no value: key '" << v->first << "'" << endl;
}