From 87e158540c5846998cc5535acd714a5062bacefa Mon Sep 17 00:00:00 2001 From: Holger Wirtz Date: Mon, 14 Nov 2016 14:54:58 +0100 Subject: [PATCH] Compiles... but works? --- src/Dexed.ttl | 695 ++++++++++----------- src/Dexed.ttl.O | 1531 ++++++++++++++++++++++++++++++++++++++++++++++ src/Makefile | 10 +- src/PluginFx.cpp | 7 +- src/dexed-ttl.h | 333 ---------- src/dexed.cpp | 499 ++++++++++++++- src/dexed.h | 34 +- 7 files changed, 2398 insertions(+), 711 deletions(-) create mode 100644 src/Dexed.ttl.O delete mode 100644 src/dexed-ttl.h diff --git a/src/Dexed.ttl b/src/Dexed.ttl index 6901e3c..f50875e 100644 --- a/src/Dexed.ttl +++ b/src/Dexed.ttl @@ -1,12 +1,15 @@ -@prefix atom: . -@prefix doap: . +@prefix atom: . +@prefix doap: . @prefix foaf: . -@prefix lv2: . -@prefix rdfs: . -@prefix ll: . -@prefix pg: . +@prefix ll: . +@prefix lv2: . +@prefix pg: . +@prefix rdf: . +@prefix rdfs: . +@prefix ui: . +@prefix urid: . - + a lv2:InstrumentPlugin, lv2:Plugin ; lv2:binary ; ll:pegName "p"; @@ -14,43 +17,21 @@ lv2:port [ a lv2:InputPort, atom:AtomPort ; atom:bufferType atom:Sequence ; - atom:supports ; + atom:supports , + ; lv2:index 0 ; - lv2:symbol "lv2_events_in" ; - lv2:name "Events Input" ; - lv2:designation lv2:control ; - ] ; - - lv2:port [ - a lv2:InputPort, lv2:ControlPort ; - lv2:index 1 ; - lv2:symbol "lv2_freewheel" ; - lv2:name "Freewheel" ; - lv2:default 0.0 ; - lv2:minimum 0.0 ; - lv2:maximum 1.0 ; - lv2:designation ; - lv2:portProperty lv2:toggled, ; + lv2:symbol "midi_in" ; + lv2:name "MIDI Input" ; ] , [ - a lv2:OutputPort, lv2:ControlPort ; - lv2:index 2 ; - lv2:symbol "lv2_latency" ; - lv2:name "Latency" ; - lv2:designation ; - lv2:portProperty lv2:reportsLatency, lv2:integer ; - ] ; - - lv2:port [ a lv2:OutputPort, lv2:AudioPort ; - lv2:index 3 ; - lv2:symbol "lv2_audio_out_1" ; - lv2:name "Audio Output 1" ; - ] ; - - lv2:port [ + lv2:index 1 ; + lv2:symbol "audio_out" ; + lv2:name "Audio Output" ; + ] , + [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 4 ; + lv2:index 2 ; lv2:symbol "cutoff" ; lv2:name "Cutoff" ; lv2:default 1.000000 ; @@ -59,7 +40,7 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 5 ; + lv2:index 3 ; lv2:symbol "resonance" ; lv2:name "Resonance" ; lv2:default 0.000000 ; @@ -68,7 +49,7 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 6 ; + lv2:index 4 ; lv2:symbol "output" ; lv2:name "Output" ; lv2:default 1.000000 ; @@ -77,58 +58,58 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 7 ; - lv2:symbol "algorithm" ; + lv2:index 5 ; + lv2:symbol "algorithm_num" ; lv2:name "ALGORITHM" ; - lv2:default 1 ; + lv2:default 5 ; lv2:minimum 1 ; lv2:maximum 32 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 8 ; + lv2:index 6 ; lv2:symbol "feedback" ; lv2:name "FEEDBACK" ; - lv2:default 1 ; - lv2:minimum 1 ; - lv2:maximum 8 ; + lv2:default 6 ; + lv2:minimum 0 ; + lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 9 ; - lv2:symbol "osc_key_sync" ; + lv2:index 7 ; + lv2:symbol "oscillator_sync" ; lv2:name "OSC KEY SYNC" ; lv2:default 0 ; - lv2:minimum 1 ; + lv2:minimum 0 ; lv2:maximum 1 ; lv2:portProperty lv2:toggled, lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 10 ; + lv2:index 8 ; lv2:symbol "lfo_speed" ; lv2:name "LFO SPEED" ; - lv2:default 0 ; + lv2:default 34 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 11 ; + lv2:index 9 ; lv2:symbol "lfo_delay" ; lv2:name "LFO DELAY" ; - lv2:default 0 ; + lv2:default 33 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 12 ; - lv2:symbol "lfo_pm_depth" ; + lv2:index 10 ; + lv2:symbol "lfo_pitch_mod_depth" ; lv2:name "LFO PM DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -137,8 +118,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 13 ; - lv2:symbol "lfo_am_depth" ; + lv2:index 11 ; + lv2:symbol "lfo_amp_mod_depth" ; lv2:name "LFO AM DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -147,8 +128,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 14 ; - lv2:symbol "lfo_key_sync" ; + lv2:index 12 ; + lv2:symbol "lfo_sync" ; lv2:name "LFO KEY SYNC" ; lv2:default 0 ; lv2:minimum 0 ; @@ -157,18 +138,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 15 ; - lv2:symbol "lfo_wave" ; + lv2:index 13 ; + lv2:symbol "lfo_waveform" ; lv2:name "LFO WAVE" ; - lv2:default 1 ; - lv2:minimum 1 ; - lv2:maximum 6 ; + lv2:default 4 ; + lv2:minimum 0 ; + lv2:maximum 5 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 16 ; - lv2:symbol "middle_c" ; + lv2:index 14 ; + lv2:symbol "transpose" ; lv2:name "MIDDLE C" ; lv2:default 24 ; lv2:minimum 0 ; @@ -177,157 +158,157 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 17 ; - lv2:symbol "p_mode_sens_" ; + lv2:index 15 ; + lv2:symbol "pitch_mod_sensitivity" ; lv2:name "P MODE SENS." ; - lv2:default 1 ; - lv2:minimum 1 ; - lv2:maximum 8 ; + lv2:default 3 ; + lv2:minimum 0 ; + lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 18 ; + lv2:index 16 ; lv2:symbol "pitch_eg_rate_1" ; lv2:name "PITCH EG RATE 1" ; - lv2:default 0 ; + lv2:default 94 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 19 ; + lv2:index 17 ; lv2:symbol "pitch_eg_rate_2" ; lv2:name "PITCH EG RATE 2" ; - lv2:default 0 ; + lv2:default 67 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 20 ; + lv2:index 18 ; lv2:symbol "pitch_eg_rate_3" ; lv2:name "PITCH EG RATE 3" ; - lv2:default 0 ; + lv2:default 95 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 21 ; + lv2:index 19 ; lv2:symbol "pitch_eg_rate_4" ; lv2:name "PITCH EG RATE 4" ; - lv2:default 0 ; + lv2:default 60 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 22 ; + lv2:index 20 ; lv2:symbol "pitch_eg_level_1" ; lv2:name "PITCH EG LEVEL 1" ; - lv2:default 0 ; + lv2:default 50 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 23 ; + lv2:index 21 ; lv2:symbol "pitch_eg_level_2" ; lv2:name "PITCH EG LEVEL 2" ; - lv2:default 0 ; + lv2:default 50 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 24 ; + lv2:index 22 ; lv2:symbol "pitch_eg_level_3" ; lv2:name "PITCH EG LEVEL 3" ; - lv2:default 0 ; + lv2:default 50 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 25 ; + lv2:index 23 ; lv2:symbol "pitch_eg_level_4" ; lv2:name "PITCH EG LEVEL 4" ; - lv2:default 0 ; + lv2:default 50 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 26 ; + lv2:index 24 ; lv2:symbol "op1_eg_rate_1" ; lv2:name "OP1 EG RATE 1" ; - lv2:default 0 ; + lv2:default 96 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 27 ; + lv2:index 25 ; lv2:symbol "op1_eg_rate_2" ; lv2:name "OP1 EG RATE 2" ; - lv2:default 0 ; + lv2:default 25 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 28 ; + lv2:index 26 ; lv2:symbol "op1_eg_rate_3" ; lv2:name "OP1 EG RATE 3" ; - lv2:default 0 ; + lv2:default 25 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 29 ; + lv2:index 27 ; lv2:symbol "op1_eg_rate_4" ; lv2:name "OP1 EG RATE 4" ; - lv2:default 0 ; + lv2:default 67 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 30 ; + lv2:index 28 ; lv2:symbol "op1_eg_level_1" ; lv2:name "OP1 EG LEVEL 1" ; - lv2:default 0 ; + lv2:default 99 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 31 ; + lv2:index 29 ; lv2:symbol "op1_eg_level_2" ; lv2:name "OP1 EG LEVEL 2" ; - lv2:default 0 ; + lv2:default 75 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 32 ; + lv2:index 30 ; lv2:symbol "op1_eg_level_3" ; lv2:name "OP1 EG LEVEL 3" ; lv2:default 0 ; @@ -337,7 +318,7 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 33 ; + lv2:index 31 ; lv2:symbol "op1_eg_level_4" ; lv2:name "OP1 EG LEVEL 4" ; lv2:default 0 ; @@ -347,18 +328,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 34 ; - lv2:symbol "op1_output_level" ; + lv2:index 32 ; + lv2:symbol "op1_operator_output_level" ; lv2:name "OP1 OUTPUT LEVEL" ; - lv2:default 0 ; + lv2:default 99 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 35 ; - lv2:symbol "op1_mode" ; + lv2:index 33 ; + lv2:symbol "op1_osc_mode" ; lv2:name "OP1 MODE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -367,18 +348,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 36 ; - lv2:symbol "op1_f_coarse" ; + lv2:index 34 ; + lv2:symbol "op1_osc_freq_coarse" ; lv2:name "OP1 F COARSE" ; - lv2:default 0 ; + lv2:default 1 ; lv2:minimum 0 ; lv2:maximum 31 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 37 ; - lv2:symbol "op1_f_fine" ; + lv2:index 35 ; + lv2:symbol "op1_osc_freq_fine" ; lv2:name "OP1 F FINE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -387,18 +368,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 38 ; + lv2:index 36 ; lv2:symbol "op1_osc_detune" ; lv2:name "OP1 OSC DETUNE" ; - lv2:default 0 ; + lv2:default 3 ; lv2:minimum -7 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 39 ; - lv2:symbol "op1_break_point" ; + lv2:index 37 ; + lv2:symbol "op1_kbd_lev_scl_brk_pt" ; lv2:name "OP1 BREAK POINT" ; lv2:default 0 ; lv2:minimum 0 ; @@ -407,8 +388,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 40 ; - lv2:symbol "op1_l_scale_depth" ; + lv2:index 38 ; + lv2:symbol "op1_kbd_lev_scl_lft_depth" ; lv2:name "OP1 L SCALE DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -417,8 +398,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 41 ; - lv2:symbol "op1_r_scale_depth" ; + lv2:index 39 ; + lv2:symbol "op1_kbd_lev_scl_rht_depth" ; lv2:name "OP1 R SCALE DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -427,9 +408,9 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 42 ; - lv2:symbol "op1_l_key_scale" ; - lv2:name "OP1 L KEY SCALE" ; + lv2:index 40 ; + lv2:symbol "op1_kbd_lev_scl_lft_curve" ; + lv2:name "OP1 L KEY CURVE" ; lv2:default 0 ; lv2:minimum 0 ; lv2:maximum 3 ; @@ -437,9 +418,9 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 43 ; - lv2:symbol "op1_r_key_scale" ; - lv2:name "OP1 R KEY SCALE" ; + lv2:index 41 ; + lv2:symbol "op1_kbd_lev_scl_rht_curve" ; + lv2:name "OP1 R KEY CURVE" ; lv2:default 0 ; lv2:minimum 0 ; lv2:maximum 3 ; @@ -447,18 +428,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 44 ; - lv2:symbol "op1_rate_scaling" ; + lv2:index 42 ; + lv2:symbol "op1_kbd_rate_scaling" ; lv2:name "OP1 RATE SCALING" ; - lv2:default 0 ; + lv2:default 3 ; lv2:minimum 0 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 45 ; - lv2:symbol "op1_a_mod_sens_" ; + lv2:index 43 ; + lv2:symbol "op1_amp_mod_sensitivity" ; lv2:name "OP1 A MOD SENS." ; lv2:default 0 ; lv2:minimum 0 ; @@ -467,77 +448,77 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 46 ; - lv2:symbol "op1_key_velocity" ; + lv2:index 44 ; + lv2:symbol "op1_key_vel_sensitivity" ; lv2:name "OP1 KEY VELOCITY" ; - lv2:default 0 ; + lv2:default 2 ; lv2:minimum 0 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 47 ; + lv2:index 45 ; lv2:symbol "op2_eg_rate_1" ; lv2:name "OP2 EG RATE 1" ; - lv2:default 0 ; + lv2:default 95 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 48 ; + lv2:index 46 ; lv2:symbol "op2_eg_rate_2" ; lv2:name "OP2 EG RATE 2" ; - lv2:default 0 ; + lv2:default 50 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 49 ; + lv2:index 47 ; lv2:symbol "op2_eg_rate_3" ; lv2:name "OP2 EG RATE 3" ; - lv2:default 0 ; + lv2:default 35 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 50 ; + lv2:index 48 ; lv2:symbol "op2_eg_rate_4" ; lv2:name "OP2 EG RATE 4" ; - lv2:default 0 ; + lv2:default 78 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 51 ; + lv2:index 49 ; lv2:symbol "op2_eg_level_1" ; lv2:name "OP2 EG LEVEL 1" ; - lv2:default 0 ; + lv2:default 99 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 52 ; + lv2:index 50 ; lv2:symbol "op2_eg_level_2" ; lv2:name "OP2 EG LEVEL 2" ; - lv2:default 0 ; + lv2:default 75 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 53 ; + lv2:index 51 ; lv2:symbol "op2_eg_level_3" ; lv2:name "OP2 EG LEVEL 3" ; lv2:default 0 ; @@ -547,7 +528,7 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 54 ; + lv2:index 52 ; lv2:symbol "op2_eg_level_4" ; lv2:name "OP2 EG LEVEL 4" ; lv2:default 0 ; @@ -557,18 +538,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 55 ; - lv2:symbol "op2_output_level" ; + lv2:index 53 ; + lv2:symbol "op2_operator_output_level" ; lv2:name "OP2 OUTPUT LEVEL" ; - lv2:default 0 ; + lv2:default 58 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 56 ; - lv2:symbol "op2_mode" ; + lv2:index 54 ; + lv2:symbol "op2_osc_mode" ; lv2:name "OP2 MODE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -577,18 +558,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 57 ; - lv2:symbol "op2_f_coarse" ; + lv2:index 55 ; + lv2:symbol "op2_osc_freq_coarse" ; lv2:name "OP2 F COARSE" ; - lv2:default 0 ; + lv2:default 14 ; lv2:minimum 0 ; lv2:maximum 31 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 58 ; - lv2:symbol "op2_f_fine" ; + lv2:index 56 ; + lv2:symbol "op2_osc_freq_fine" ; lv2:name "OP2 F FINE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -597,7 +578,7 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 59 ; + lv2:index 57 ; lv2:symbol "op2_osc_detune" ; lv2:name "OP2 OSC DETUNE" ; lv2:default 0 ; @@ -607,8 +588,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 60 ; - lv2:symbol "op2_break_point" ; + lv2:index 58 ; + lv2:symbol "op2_kbd_lev_scl_brk_pt" ; lv2:name "OP2 BREAK POINT" ; lv2:default 0 ; lv2:minimum 0 ; @@ -617,8 +598,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 61 ; - lv2:symbol "op2_l_scale_depth" ; + lv2:index 59 ; + lv2:symbol "op2_kbd_lev_scl_lft_depth" ; lv2:name "OP2 L SCALE DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -627,8 +608,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 62 ; - lv2:symbol "op2_r_scale_depth" ; + lv2:index 60 ; + lv2:symbol "op2_kbd_lev_scl_rht_depth" ; lv2:name "OP2 R SCALE DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -637,8 +618,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 63 ; - lv2:symbol "op2_l_key_scale" ; + lv2:index 61 ; + lv2:symbol "op2_kbd_lev_scl_lft_curve" ; lv2:name "OP2 L KEY SCALE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -647,8 +628,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 64 ; - lv2:symbol "op2_r_key_scale" ; + lv2:index 62 ; + lv2:symbol "op2_kbd_lev_scl_rht_curve" ; lv2:name "OP2 R KEY SCALE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -657,18 +638,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 65 ; - lv2:symbol "op2_rate_scaling" ; + lv2:index 63 ; + lv2:symbol "op2_kbd_rate_scaling" ; lv2:name "OP2 RATE SCALING" ; - lv2:default 0 ; + lv2:default 3 ; lv2:minimum 0 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 66 ; - lv2:symbol "op2_a_mod_sens_" ; + lv2:index 64 ; + lv2:symbol "op2_amp_mod_sensitivity" ; lv2:name "OP2 A MOD SENS." ; lv2:default 0 ; lv2:minimum 0 ; @@ -677,77 +658,77 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 67 ; - lv2:symbol "op2_key_velocity" ; + lv2:index 65 ; + lv2:symbol "op2_key_vel_sensitivity" ; lv2:name "OP2 KEY VELOCITY" ; - lv2:default 0 ; + lv2:default 7 ; lv2:minimum 0 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 68 ; + lv2:index 66 ; lv2:symbol "op3_eg_rate_1" ; lv2:name "OP3 EG RATE 1" ; - lv2:default 0 ; + lv2:default 95 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 69 ; + lv2:index 67 ; lv2:symbol "op3_eg_rate_2" ; lv2:name "OP3 EG RATE 2" ; - lv2:default 0 ; + lv2:default 20 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 70 ; + lv2:index 68 ; lv2:symbol "op3_eg_rate_3" ; lv2:name "OP3 EG RATE 3" ; - lv2:default 0 ; + lv2:default 20 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 71 ; + lv2:index 69 ; lv2:symbol "op3_eg_rate_4" ; lv2:name "OP3 EG RATE 4" ; - lv2:default 0 ; + lv2:default 50 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 72 ; + lv2:index 70 ; lv2:symbol "op3_eg_level_1" ; lv2:name "OP3 EG LEVEL 1" ; - lv2:default 0 ; + lv2:default 99 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 73 ; + lv2:index 71 ; lv2:symbol "op3_eg_level_2" ; lv2:name "OP3 EG LEVEL 2" ; - lv2:default 0 ; + lv2:default 95 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 74 ; + lv2:index 72 ; lv2:symbol "op3_eg_level_3" ; lv2:name "OP3 EG LEVEL 3" ; lv2:default 0 ; @@ -757,7 +738,7 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 75 ; + lv2:index 73 ; lv2:symbol "op3_eg_level_4" ; lv2:name "OP3 EG LEVEL 4" ; lv2:default 0 ; @@ -767,18 +748,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 76 ; - lv2:symbol "op3_output_level" ; + lv2:index 74 ; + lv2:symbol "op3_operator_output_level" ; lv2:name "OP3 OUTPUT LEVEL" ; - lv2:default 0 ; + lv2:default 99 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 77 ; - lv2:symbol "op3_mode" ; + lv2:index 75 ; + lv2:symbol "op3_osc_mode" ; lv2:name "OP3 MODE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -787,18 +768,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 78 ; - lv2:symbol "op3_f_coarse" ; + lv2:index 76 ; + lv2:symbol "op3_osc_freq_coarse" ; lv2:name "OP3 F COARSE" ; - lv2:default 0 ; + lv2:default 1 ; lv2:minimum 0 ; lv2:maximum 31 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 79 ; - lv2:symbol "op3_f_fine" ; + lv2:index 77 ; + lv2:symbol "op3_osc_freq_fine" ; lv2:name "OP3 F FINE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -807,7 +788,7 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 80 ; + lv2:index 78 ; lv2:symbol "op3_osc_detune" ; lv2:name "OP3 OSC DETUNE" ; lv2:default 0 ; @@ -817,8 +798,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 81 ; - lv2:symbol "op3_break_point" ; + lv2:index 79 ; + lv2:symbol "op3_kbd_lev_scl_brk_pt" ; lv2:name "OP3 BREAK POINT" ; lv2:default 0 ; lv2:minimum 0 ; @@ -827,8 +808,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 82 ; - lv2:symbol "op3_l_scale_depth" ; + lv2:index 80 ; + lv2:symbol "op3_kbd_lev_scl_lft_depth" ; lv2:name "OP3 L SCALE DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -837,8 +818,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 83 ; - lv2:symbol "op3_r_scale_depth" ; + lv2:index 81 ; + lv2:symbol "op3_kbd_lev_scl_rht_depth" ; lv2:name "OP3 R SCALE DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -847,8 +828,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 84 ; - lv2:symbol "op3_l_key_scale" ; + lv2:index 82 ; + lv2:symbol "op3_kbd_lev_scl_lft_curve" ; lv2:name "OP3 L KEY SCALE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -857,8 +838,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 85 ; - lv2:symbol "op3_r_key_scale" ; + lv2:index 83 ; + lv2:symbol "op3_kbd_lev_scl_rht_curve" ; lv2:name "OP3 R KEY SCALE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -867,18 +848,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 86 ; - lv2:symbol "op3_rate_scaling" ; + lv2:index 84 ; + lv2:symbol "op3_kbd_rate_scaling" ; lv2:name "OP3 RATE SCALING" ; - lv2:default 0 ; + lv2:default 3 ; lv2:minimum 0 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 87 ; - lv2:symbol "op3_a_mod_sens_" ; + lv2:index 85 ; + lv2:symbol "op3_amp_mod_sensitivity" ; lv2:name "OP3 A MOD SENS." ; lv2:default 0 ; lv2:minimum 0 ; @@ -887,57 +868,57 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 88 ; - lv2:symbol "op3_key_velocity" ; + lv2:index 86 ; + lv2:symbol "op3_key_vel_sensitivity" ; lv2:name "OP3 KEY VELOCITY" ; - lv2:default 0 ; + lv2:default 2 ; lv2:minimum 0 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 89 ; + lv2:index 87 ; lv2:symbol "op4_eg_rate_1" ; lv2:name "OP4 EG RATE 1" ; - lv2:default 1 ; + lv2:default 95 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 90 ; + lv2:index 88 ; lv2:symbol "op4_eg_rate_2" ; lv2:name "OP4 EG RATE 2" ; - lv2:default 0 ; + lv2:default 29 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 91 ; + lv2:index 89 ; lv2:symbol "op4_eg_rate_3" ; lv2:name "OP4 EG RATE 3" ; - lv2:default 7 ; + lv2:default 20 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 92 ; + lv2:index 90 ; lv2:symbol "op4_eg_rate_4" ; lv2:name "OP4 EG RATE 4" ; - lv2:default 99 ; + lv2:default 50 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 93 ; + lv2:index 91 ; lv2:symbol "op4_eg_level_1" ; lv2:name "OP4 EG LEVEL 1" ; lv2:default 99 ; @@ -947,48 +928,48 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 94 ; + lv2:index 92 ; lv2:symbol "op4_eg_level_2" ; lv2:name "OP4 EG LEVEL 2" ; - lv2:default 99 ; + lv2:default 95 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 95 ; + lv2:index 93 ; lv2:symbol "op4_eg_level_3" ; lv2:name "OP4 EG LEVEL 3" ; - lv2:default 99 ; + lv2:default 0 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 96 ; + lv2:index 94 ; lv2:symbol "op4_eg_level_4" ; lv2:name "OP4 EG LEVEL 4" ; - lv2:default 99 ; + lv2:default 0 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 97 ; - lv2:symbol "op4_output_level" ; + lv2:index 95 ; + lv2:symbol "op4_operator_output_level" ; lv2:name "OP4 OUTPUT LEVEL" ; - lv2:default 0 ; + lv2:default 89 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 98 ; - lv2:symbol "op4_mode" ; + lv2:index 96 ; + lv2:symbol "op4_osc_mode" ; lv2:name "OP4 MODE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -997,18 +978,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 99 ; - lv2:symbol "op4_f_coarse" ; + lv2:index 97 ; + lv2:symbol "op4_osc_freq_coarse" ; lv2:name "OP4 F COARSE" ; - lv2:default 0 ; + lv2:default 1 ; lv2:minimum 0 ; lv2:maximum 31 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 100 ; - lv2:symbol "op4_f_fine" ; + lv2:index 98 ; + lv2:symbol "op4_osc_freq_fine" ; lv2:name "OP4 F FINE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1017,7 +998,7 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 101 ; + lv2:index 99 ; lv2:symbol "op4_osc_detune" ; lv2:name "OP4 OSC DETUNE" ; lv2:default 0 ; @@ -1027,28 +1008,28 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 102 ; - lv2:symbol "op4_break_point" ; + lv2:index 100 ; + lv2:symbol "op4_kbd_lev_scl_brk_pt" ; lv2:name "OP4 BREAK POINT" ; - lv2:default 99 ; + lv2:default 0 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 103 ; - lv2:symbol "op4_l_scale_depth" ; + lv2:index 101 ; + lv2:symbol "op4_kbd_lev_scl_lft_depth" ; lv2:name "OP4 L SCALE DEPTH" ; - lv2:default 99 ; + lv2:default 0 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 104 ; - lv2:symbol "op4_r_scale_depth" ; + lv2:index 102 ; + lv2:symbol "op4_kbd_lev_scl_rht_depth" ; lv2:name "OP4 R SCALE DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1057,18 +1038,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 105 ; - lv2:symbol "op4_l_key_scale" ; + lv2:index 103 ; + lv2:symbol "op4_kbd_lev_scl_lft_curve" ; lv2:name "OP4 L KEY SCALE" ; - lv2:default 39 ; + lv2:default 0 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 106 ; - lv2:symbol "op4_r_key_scale" ; + lv2:index 104 ; + lv2:symbol "op4_kbd_lev_scl_rht_curve" ; lv2:name "OP4 R KEY SCALE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1077,18 +1058,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 107 ; - lv2:symbol "op4_rate_scaling" ; + lv2:index 105 ; + lv2:symbol "op4_kbd_rate_scaling" ; lv2:name "OP4 RATE SCALING" ; - lv2:default 0 ; + lv2:default 3 ; lv2:minimum 0 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 108 ; - lv2:symbol "op4_a_mod_sens_" ; + lv2:index 106 ; + lv2:symbol "op4_amp_mod_sensitivity" ; lv2:name "OP4 A MOD SENS." ; lv2:default 0 ; lv2:minimum 0 ; @@ -1097,57 +1078,57 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 109 ; - lv2:symbol "op4_key_velocity" ; + lv2:index 107 ; + lv2:symbol "op4_key_vel_sensitivity" ; lv2:name "OP4 KEY VELOCITY" ; - lv2:default 0 ; + lv2:default 6 ; lv2:minimum 0 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 110 ; + lv2:index 108 ; lv2:symbol "op5_eg_rate_1" ; lv2:name "OP5 EG RATE 1" ; - lv2:default 99 ; + lv2:default 95 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 111 ; + lv2:index 109 ; lv2:symbol "op5_eg_rate_2" ; lv2:name "OP5 EG RATE 2" ; - lv2:default 99 ; + lv2:default 20 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 112 ; + lv2:index 110 ; lv2:symbol "op5_eg_rate_3" ; lv2:name "OP5 EG RATE 3" ; - lv2:default 99 ; + lv2:default 20 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 113 ; + lv2:index 111 ; lv2:symbol "op5_eg_rate_4" ; lv2:name "OP5 EG RATE 4" ; - lv2:default 99 ; + lv2:default 50 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 114 ; + lv2:index 112 ; lv2:symbol "op5_eg_level_1" ; lv2:name "OP5 EG LEVEL 1" ; lv2:default 99 ; @@ -1157,27 +1138,27 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 115 ; + lv2:index 113 ; lv2:symbol "op5_eg_level_2" ; lv2:name "OP5 EG LEVEL 2" ; - lv2:default 99 ; + lv2:default 95 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 116 ; + lv2:index 114 ; lv2:symbol "op5_eg_level_3" ; lv2:name "OP5 EG LEVEL 3" ; - lv2:default 99 ; + lv2:default 0 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 117 ; + lv2:index 115 ; lv2:symbol "op5_eg_level_4" ; lv2:name "OP5 EG LEVEL 4" ; lv2:default 0 ; @@ -1187,18 +1168,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 118 ; - lv2:symbol "op5_output_level" ; + lv2:index 116 ; + lv2:symbol "op5_operator_output_level" ; lv2:name "OP5 OUTPUT LEVEL" ; - lv2:default 0 ; + lv2:default 99 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 119 ; - lv2:symbol "op5_mode" ; + lv2:index 117 ; + lv2:symbol "op5_osc_mode" ; lv2:name "OP5 MODE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1207,18 +1188,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 120 ; - lv2:symbol "op5_f_coarse" ; + lv2:index 118 ; + lv2:symbol "op5_osc_freq_coarse" ; lv2:name "OP5 F COARSE" ; - lv2:default 0 ; + lv2:default 1 ; lv2:minimum 0 ; lv2:maximum 31 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 121 ; - lv2:symbol "op5_f_fine" ; + lv2:index 119 ; + lv2:symbol "op5_osc_freq_fine" ; lv2:name "OP5 F FINE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1227,28 +1208,28 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 122 ; + lv2:index 120 ; lv2:symbol "op5_osc_detune" ; lv2:name "OP5 OSC DETUNE" ; - lv2:default 0 ; + lv2:default -7 ; lv2:minimum -7 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 123 ; - lv2:symbol "op5_break_point" ; + lv2:index 121 ; + lv2:symbol "op5_kbd_lev_scl_brk_pt" ; lv2:name "OP5 BREAK POINT" ; - lv2:default 39 ; + lv2:default 0 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 124 ; - lv2:symbol "op5_l_scale_depth" ; + lv2:index 122 ; + lv2:symbol "op5_kbd_lev_scl_lft_depth" ; lv2:name "OP5 L SCALE DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1257,8 +1238,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 125 ; - lv2:symbol "op5_r_scale_depth" ; + lv2:index 123 ; + lv2:symbol "op5_kbd_lev_scl_rht_depth" ; lv2:name "OP5 R SCALE DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1267,8 +1248,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 126 ; - lv2:symbol "op5_l_key_scale" ; + lv2:index 124 ; + lv2:symbol "op5_kbd_lev_scl_lft_curve" ; lv2:name "OP5 L KEY SCALE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1277,8 +1258,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 127 ; - lv2:symbol "op5_r_key_scale" ; + lv2:index 125 ; + lv2:symbol "op5_kbd_lev_scl_rht_curve" ; lv2:name "OP5 R KEY SCALE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1287,18 +1268,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 128 ; - lv2:symbol "op5_rate_scaling" ; + lv2:index 126 ; + lv2:symbol "op5_kbd_rate_scaling" ; lv2:name "OP5 RATE SCALING" ; - lv2:default 0 ; + lv2:default 3 ; lv2:minimum 0 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 129 ; - lv2:symbol "op5_a_mod_sens_" ; + lv2:index 127 ; + lv2:symbol "op5_amp_mod_sensitivity" ; lv2:name "OP5 A MOD SENS." ; lv2:default 0 ; lv2:minimum 0 ; @@ -1307,8 +1288,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 130 ; - lv2:symbol "op5_key_velocity" ; + lv2:index 128 ; + lv2:symbol "op5_key_vel_sensitivity" ; lv2:name "OP5 KEY VELOCITY" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1317,47 +1298,47 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 131 ; + lv2:index 129 ; lv2:symbol "op6_eg_rate_1" ; lv2:name "OP6 EG RATE 1" ; - lv2:default 99 ; + lv2:default 95 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 132 ; + lv2:index 130 ; lv2:symbol "op6_eg_rate_2" ; lv2:name "OP6 EG RATE 2" ; - lv2:default 99 ; + lv2:default 29 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 133 ; + lv2:index 131 ; lv2:symbol "op6_eg_rate_3" ; lv2:name "OP6 EG RATE 3" ; - lv2:default 99 ; + lv2:default 20 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 134 ; + lv2:index 132 ; lv2:symbol "op6_eg_rate_4" ; lv2:name "OP6 EG RATE 4" ; - lv2:default 99 ; + lv2:default 50 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 135 ; + lv2:index 133 ; lv2:symbol "op6_eg_level_1" ; lv2:name "OP6 EG LEVEL 1" ; lv2:default 99 ; @@ -1367,27 +1348,27 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 136 ; + lv2:index 134 ; lv2:symbol "op6_eg_level_2" ; lv2:name "OP6 EG LEVEL 2" ; - lv2:default 99 ; + lv2:default 95 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 137 ; + lv2:index 135 ; lv2:symbol "op6_eg_level_3" ; lv2:name "OP6 EG LEVEL 3" ; - lv2:default 99 ; + lv2:default 0 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 138 ; + lv2:index 136 ; lv2:symbol "op6_eg_level_4" ; lv2:name "OP6 EG LEVEL 4" ; lv2:default 0 ; @@ -1397,18 +1378,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 139 ; - lv2:symbol "op6_output_level" ; + lv2:index 137 ; + lv2:symbol "op6_operator_output_level" ; lv2:name "OP6 OUTPUT LEVEL" ; - lv2:default 0 ; + lv2:default 79 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 140 ; - lv2:symbol "op6_mode" ; + lv2:index 138 ; + lv2:symbol "op6_osc_mode" ; lv2:name "OP6 MODE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1417,8 +1398,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 141 ; - lv2:symbol "op6_f_coarse" ; + lv2:index 139 ; + lv2:symbol "op6_osc_freq_coarse" ; lv2:name "OP6 F COARSE" ; lv2:default 1 ; lv2:minimum 0 ; @@ -1427,8 +1408,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 142 ; - lv2:symbol "op6_f_fine" ; + lv2:index 140 ; + lv2:symbol "op6_osc_freq_fine" ; lv2:name "OP6 F FINE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1437,7 +1418,7 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 143 ; + lv2:index 141 ; lv2:symbol "op6_osc_detune" ; lv2:name "OP6 OSC DETUNE" ; lv2:default 7 ; @@ -1447,18 +1428,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 144 ; - lv2:symbol "op6_break_point" ; + lv2:index 142 ; + lv2:symbol "op6_kbd_lev_scl_brk_pt" ; lv2:name "OP6 BREAK POINT" ; - lv2:default 39 ; + lv2:default 41 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 145 ; - lv2:symbol "op6_l_scale_depth" ; + lv2:index 143 ; + lv2:symbol "op6_kbd_lev_scl_lft_depth" ; lv2:name "OP6 L SCALE DEPTH" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1467,18 +1448,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 146 ; - lv2:symbol "op6_r_scale_depth" ; + lv2:index 144 ; + lv2:symbol "op6_kbd_lev_scl_rht_depth" ; lv2:name "OP6 R SCALE DEPTH" ; - lv2:default 0 ; + lv2:default 19 ; lv2:minimum 0 ; lv2:maximum 99 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 147 ; - lv2:symbol "op6_l_key_scale" ; + lv2:index 145 ; + lv2:symbol "op6_kbd_lev_scl_lft_curve" ; lv2:name "OP6 L KEY SCALE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1487,8 +1468,8 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 148 ; - lv2:symbol "op6_r_key_scale" ; + lv2:index 146 ; + lv2:symbol "op6_kbd_lev_scl_rht_curve" ; lv2:name "OP6 R KEY SCALE" ; lv2:default 0 ; lv2:minimum 0 ; @@ -1497,18 +1478,18 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 149 ; - lv2:symbol "op6_rate_scaling" ; + lv2:index 147 ; + lv2:symbol "op6_kbd_rate_scaling" ; lv2:name "OP6 RATE SCALING" ; - lv2:default 0 ; + lv2:default 3 ; lv2:minimum 0 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 150 ; - lv2:symbol "op6_a_mod_sens_" ; + lv2:index 148 ; + lv2:symbol "op6_amp_mod_sensitivity" ; lv2:name "OP6 A MOD SENS." ; lv2:default 0 ; lv2:minimum 0 ; @@ -1517,15 +1498,15 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 151 ; - lv2:symbol "op6_key_velocity" ; + lv2:index 149 ; + lv2:symbol "op6_key_vel_sensitivity" ; lv2:name "OP6 KEY VELOCITY" ; - lv2:default 0 ; + lv2:default 6 ; lv2:minimum 0 ; lv2:maximum 7 ; lv2:portProperty lv2:integer ; ] ; - doap:name "Dexed" ; + doap:name "DeeAxe7" ; doap:maintainer [ foaf:name "dcoredump" ] . diff --git a/src/Dexed.ttl.O b/src/Dexed.ttl.O new file mode 100644 index 0000000..6901e3c --- /dev/null +++ b/src/Dexed.ttl.O @@ -0,0 +1,1531 @@ +@prefix atom: . +@prefix doap: . +@prefix foaf: . +@prefix lv2: . +@prefix rdfs: . +@prefix ll: . +@prefix pg: . + + + a lv2:InstrumentPlugin, lv2:Plugin ; + lv2:binary ; + ll:pegName "p"; + + lv2:port [ + a lv2:InputPort, atom:AtomPort ; + atom:bufferType atom:Sequence ; + atom:supports ; + lv2:index 0 ; + lv2:symbol "lv2_events_in" ; + lv2:name "Events Input" ; + lv2:designation lv2:control ; + ] ; + + lv2:port [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 1 ; + lv2:symbol "lv2_freewheel" ; + lv2:name "Freewheel" ; + lv2:default 0.0 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + lv2:designation ; + lv2:portProperty lv2:toggled, ; + ] , + [ + a lv2:OutputPort, lv2:ControlPort ; + lv2:index 2 ; + lv2:symbol "lv2_latency" ; + lv2:name "Latency" ; + lv2:designation ; + lv2:portProperty lv2:reportsLatency, lv2:integer ; + ] ; + + lv2:port [ + a lv2:OutputPort, lv2:AudioPort ; + lv2:index 3 ; + lv2:symbol "lv2_audio_out_1" ; + lv2:name "Audio Output 1" ; + ] ; + + lv2:port [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 4 ; + lv2:symbol "cutoff" ; + lv2:name "Cutoff" ; + lv2:default 1.000000 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 5 ; + lv2:symbol "resonance" ; + lv2:name "Resonance" ; + lv2:default 0.000000 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 6 ; + lv2:symbol "output" ; + lv2:name "Output" ; + lv2:default 1.000000 ; + lv2:minimum 0.0 ; + lv2:maximum 2.0 ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 7 ; + lv2:symbol "algorithm" ; + lv2:name "ALGORITHM" ; + lv2:default 1 ; + lv2:minimum 1 ; + lv2:maximum 32 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 8 ; + lv2:symbol "feedback" ; + lv2:name "FEEDBACK" ; + lv2:default 1 ; + lv2:minimum 1 ; + lv2:maximum 8 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 9 ; + lv2:symbol "osc_key_sync" ; + lv2:name "OSC KEY SYNC" ; + lv2:default 0 ; + lv2:minimum 1 ; + lv2:maximum 1 ; + lv2:portProperty lv2:toggled, lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 10 ; + lv2:symbol "lfo_speed" ; + lv2:name "LFO SPEED" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 11 ; + lv2:symbol "lfo_delay" ; + lv2:name "LFO DELAY" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 12 ; + lv2:symbol "lfo_pm_depth" ; + lv2:name "LFO PM DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 13 ; + lv2:symbol "lfo_am_depth" ; + lv2:name "LFO AM DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 14 ; + lv2:symbol "lfo_key_sync" ; + lv2:name "LFO KEY SYNC" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 1 ; + lv2:portProperty lv2:toggled, lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 15 ; + lv2:symbol "lfo_wave" ; + lv2:name "LFO WAVE" ; + lv2:default 1 ; + lv2:minimum 1 ; + lv2:maximum 6 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 16 ; + lv2:symbol "middle_c" ; + lv2:name "MIDDLE C" ; + lv2:default 24 ; + lv2:minimum 0 ; + lv2:maximum 48 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 17 ; + lv2:symbol "p_mode_sens_" ; + lv2:name "P MODE SENS." ; + lv2:default 1 ; + lv2:minimum 1 ; + lv2:maximum 8 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 18 ; + lv2:symbol "pitch_eg_rate_1" ; + lv2:name "PITCH EG RATE 1" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 19 ; + lv2:symbol "pitch_eg_rate_2" ; + lv2:name "PITCH EG RATE 2" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 20 ; + lv2:symbol "pitch_eg_rate_3" ; + lv2:name "PITCH EG RATE 3" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 21 ; + lv2:symbol "pitch_eg_rate_4" ; + lv2:name "PITCH EG RATE 4" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 22 ; + lv2:symbol "pitch_eg_level_1" ; + lv2:name "PITCH EG LEVEL 1" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 23 ; + lv2:symbol "pitch_eg_level_2" ; + lv2:name "PITCH EG LEVEL 2" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 24 ; + lv2:symbol "pitch_eg_level_3" ; + lv2:name "PITCH EG LEVEL 3" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 25 ; + lv2:symbol "pitch_eg_level_4" ; + lv2:name "PITCH EG LEVEL 4" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 26 ; + lv2:symbol "op1_eg_rate_1" ; + lv2:name "OP1 EG RATE 1" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 27 ; + lv2:symbol "op1_eg_rate_2" ; + lv2:name "OP1 EG RATE 2" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 28 ; + lv2:symbol "op1_eg_rate_3" ; + lv2:name "OP1 EG RATE 3" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 29 ; + lv2:symbol "op1_eg_rate_4" ; + lv2:name "OP1 EG RATE 4" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 30 ; + lv2:symbol "op1_eg_level_1" ; + lv2:name "OP1 EG LEVEL 1" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 31 ; + lv2:symbol "op1_eg_level_2" ; + lv2:name "OP1 EG LEVEL 2" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 32 ; + lv2:symbol "op1_eg_level_3" ; + lv2:name "OP1 EG LEVEL 3" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 33 ; + lv2:symbol "op1_eg_level_4" ; + lv2:name "OP1 EG LEVEL 4" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 34 ; + lv2:symbol "op1_output_level" ; + lv2:name "OP1 OUTPUT LEVEL" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 35 ; + lv2:symbol "op1_mode" ; + lv2:name "OP1 MODE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 1 ; + lv2:portProperty lv2:toggled, lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 36 ; + lv2:symbol "op1_f_coarse" ; + lv2:name "OP1 F COARSE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 31 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 37 ; + lv2:symbol "op1_f_fine" ; + lv2:name "OP1 F FINE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 38 ; + lv2:symbol "op1_osc_detune" ; + lv2:name "OP1 OSC DETUNE" ; + lv2:default 0 ; + lv2:minimum -7 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 39 ; + lv2:symbol "op1_break_point" ; + lv2:name "OP1 BREAK POINT" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 40 ; + lv2:symbol "op1_l_scale_depth" ; + lv2:name "OP1 L SCALE DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 41 ; + lv2:symbol "op1_r_scale_depth" ; + lv2:name "OP1 R SCALE DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 42 ; + lv2:symbol "op1_l_key_scale" ; + lv2:name "OP1 L KEY SCALE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 43 ; + lv2:symbol "op1_r_key_scale" ; + lv2:name "OP1 R KEY SCALE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 44 ; + lv2:symbol "op1_rate_scaling" ; + lv2:name "OP1 RATE SCALING" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 45 ; + lv2:symbol "op1_a_mod_sens_" ; + lv2:name "OP1 A MOD SENS." ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 46 ; + lv2:symbol "op1_key_velocity" ; + lv2:name "OP1 KEY VELOCITY" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 47 ; + lv2:symbol "op2_eg_rate_1" ; + lv2:name "OP2 EG RATE 1" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 48 ; + lv2:symbol "op2_eg_rate_2" ; + lv2:name "OP2 EG RATE 2" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 49 ; + lv2:symbol "op2_eg_rate_3" ; + lv2:name "OP2 EG RATE 3" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 50 ; + lv2:symbol "op2_eg_rate_4" ; + lv2:name "OP2 EG RATE 4" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 51 ; + lv2:symbol "op2_eg_level_1" ; + lv2:name "OP2 EG LEVEL 1" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 52 ; + lv2:symbol "op2_eg_level_2" ; + lv2:name "OP2 EG LEVEL 2" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 53 ; + lv2:symbol "op2_eg_level_3" ; + lv2:name "OP2 EG LEVEL 3" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 54 ; + lv2:symbol "op2_eg_level_4" ; + lv2:name "OP2 EG LEVEL 4" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 55 ; + lv2:symbol "op2_output_level" ; + lv2:name "OP2 OUTPUT LEVEL" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 56 ; + lv2:symbol "op2_mode" ; + lv2:name "OP2 MODE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 1 ; + lv2:portProperty lv2:toggled, lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 57 ; + lv2:symbol "op2_f_coarse" ; + lv2:name "OP2 F COARSE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 31 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 58 ; + lv2:symbol "op2_f_fine" ; + lv2:name "OP2 F FINE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 100 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 59 ; + lv2:symbol "op2_osc_detune" ; + lv2:name "OP2 OSC DETUNE" ; + lv2:default 0 ; + lv2:minimum -7 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 60 ; + lv2:symbol "op2_break_point" ; + lv2:name "OP2 BREAK POINT" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 100 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 61 ; + lv2:symbol "op2_l_scale_depth" ; + lv2:name "OP2 L SCALE DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 100 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 62 ; + lv2:symbol "op2_r_scale_depth" ; + lv2:name "OP2 R SCALE DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 100 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 63 ; + lv2:symbol "op2_l_key_scale" ; + lv2:name "OP2 L KEY SCALE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 64 ; + lv2:symbol "op2_r_key_scale" ; + lv2:name "OP2 R KEY SCALE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 65 ; + lv2:symbol "op2_rate_scaling" ; + lv2:name "OP2 RATE SCALING" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 66 ; + lv2:symbol "op2_a_mod_sens_" ; + lv2:name "OP2 A MOD SENS." ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 67 ; + lv2:symbol "op2_key_velocity" ; + lv2:name "OP2 KEY VELOCITY" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 68 ; + lv2:symbol "op3_eg_rate_1" ; + lv2:name "OP3 EG RATE 1" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 69 ; + lv2:symbol "op3_eg_rate_2" ; + lv2:name "OP3 EG RATE 2" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 70 ; + lv2:symbol "op3_eg_rate_3" ; + lv2:name "OP3 EG RATE 3" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 71 ; + lv2:symbol "op3_eg_rate_4" ; + lv2:name "OP3 EG RATE 4" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 72 ; + lv2:symbol "op3_eg_level_1" ; + lv2:name "OP3 EG LEVEL 1" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 73 ; + lv2:symbol "op3_eg_level_2" ; + lv2:name "OP3 EG LEVEL 2" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 74 ; + lv2:symbol "op3_eg_level_3" ; + lv2:name "OP3 EG LEVEL 3" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 75 ; + lv2:symbol "op3_eg_level_4" ; + lv2:name "OP3 EG LEVEL 4" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 76 ; + lv2:symbol "op3_output_level" ; + lv2:name "OP3 OUTPUT LEVEL" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 77 ; + lv2:symbol "op3_mode" ; + lv2:name "OP3 MODE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 1 ; + lv2:portProperty lv2:toggled, lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 78 ; + lv2:symbol "op3_f_coarse" ; + lv2:name "OP3 F COARSE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 31 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 79 ; + lv2:symbol "op3_f_fine" ; + lv2:name "OP3 F FINE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 80 ; + lv2:symbol "op3_osc_detune" ; + lv2:name "OP3 OSC DETUNE" ; + lv2:default 0 ; + lv2:minimum -7 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 81 ; + lv2:symbol "op3_break_point" ; + lv2:name "OP3 BREAK POINT" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 82 ; + lv2:symbol "op3_l_scale_depth" ; + lv2:name "OP3 L SCALE DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 83 ; + lv2:symbol "op3_r_scale_depth" ; + lv2:name "OP3 R SCALE DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 84 ; + lv2:symbol "op3_l_key_scale" ; + lv2:name "OP3 L KEY SCALE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 85 ; + lv2:symbol "op3_r_key_scale" ; + lv2:name "OP3 R KEY SCALE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 86 ; + lv2:symbol "op3_rate_scaling" ; + lv2:name "OP3 RATE SCALING" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 87 ; + lv2:symbol "op3_a_mod_sens_" ; + lv2:name "OP3 A MOD SENS." ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 88 ; + lv2:symbol "op3_key_velocity" ; + lv2:name "OP3 KEY VELOCITY" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 89 ; + lv2:symbol "op4_eg_rate_1" ; + lv2:name "OP4 EG RATE 1" ; + lv2:default 1 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 90 ; + lv2:symbol "op4_eg_rate_2" ; + lv2:name "OP4 EG RATE 2" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 91 ; + lv2:symbol "op4_eg_rate_3" ; + lv2:name "OP4 EG RATE 3" ; + lv2:default 7 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 92 ; + lv2:symbol "op4_eg_rate_4" ; + lv2:name "OP4 EG RATE 4" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 93 ; + lv2:symbol "op4_eg_level_1" ; + lv2:name "OP4 EG LEVEL 1" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 94 ; + lv2:symbol "op4_eg_level_2" ; + lv2:name "OP4 EG LEVEL 2" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 95 ; + lv2:symbol "op4_eg_level_3" ; + lv2:name "OP4 EG LEVEL 3" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 96 ; + lv2:symbol "op4_eg_level_4" ; + lv2:name "OP4 EG LEVEL 4" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 97 ; + lv2:symbol "op4_output_level" ; + lv2:name "OP4 OUTPUT LEVEL" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 98 ; + lv2:symbol "op4_mode" ; + lv2:name "OP4 MODE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 1 ; + lv2:portProperty lv2:toggled, lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 99 ; + lv2:symbol "op4_f_coarse" ; + lv2:name "OP4 F COARSE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 31 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 100 ; + lv2:symbol "op4_f_fine" ; + lv2:name "OP4 F FINE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 101 ; + lv2:symbol "op4_osc_detune" ; + lv2:name "OP4 OSC DETUNE" ; + lv2:default 0 ; + lv2:minimum -7 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 102 ; + lv2:symbol "op4_break_point" ; + lv2:name "OP4 BREAK POINT" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 103 ; + lv2:symbol "op4_l_scale_depth" ; + lv2:name "OP4 L SCALE DEPTH" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 104 ; + lv2:symbol "op4_r_scale_depth" ; + lv2:name "OP4 R SCALE DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 105 ; + lv2:symbol "op4_l_key_scale" ; + lv2:name "OP4 L KEY SCALE" ; + lv2:default 39 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 106 ; + lv2:symbol "op4_r_key_scale" ; + lv2:name "OP4 R KEY SCALE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 107 ; + lv2:symbol "op4_rate_scaling" ; + lv2:name "OP4 RATE SCALING" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 108 ; + lv2:symbol "op4_a_mod_sens_" ; + lv2:name "OP4 A MOD SENS." ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 109 ; + lv2:symbol "op4_key_velocity" ; + lv2:name "OP4 KEY VELOCITY" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 110 ; + lv2:symbol "op5_eg_rate_1" ; + lv2:name "OP5 EG RATE 1" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 111 ; + lv2:symbol "op5_eg_rate_2" ; + lv2:name "OP5 EG RATE 2" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 112 ; + lv2:symbol "op5_eg_rate_3" ; + lv2:name "OP5 EG RATE 3" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 113 ; + lv2:symbol "op5_eg_rate_4" ; + lv2:name "OP5 EG RATE 4" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 114 ; + lv2:symbol "op5_eg_level_1" ; + lv2:name "OP5 EG LEVEL 1" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 115 ; + lv2:symbol "op5_eg_level_2" ; + lv2:name "OP5 EG LEVEL 2" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 116 ; + lv2:symbol "op5_eg_level_3" ; + lv2:name "OP5 EG LEVEL 3" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 117 ; + lv2:symbol "op5_eg_level_4" ; + lv2:name "OP5 EG LEVEL 4" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 118 ; + lv2:symbol "op5_output_level" ; + lv2:name "OP5 OUTPUT LEVEL" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 119 ; + lv2:symbol "op5_mode" ; + lv2:name "OP5 MODE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 1 ; + lv2:portProperty lv2:toggled, lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 120 ; + lv2:symbol "op5_f_coarse" ; + lv2:name "OP5 F COARSE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 31 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 121 ; + lv2:symbol "op5_f_fine" ; + lv2:name "OP5 F FINE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 122 ; + lv2:symbol "op5_osc_detune" ; + lv2:name "OP5 OSC DETUNE" ; + lv2:default 0 ; + lv2:minimum -7 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 123 ; + lv2:symbol "op5_break_point" ; + lv2:name "OP5 BREAK POINT" ; + lv2:default 39 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 124 ; + lv2:symbol "op5_l_scale_depth" ; + lv2:name "OP5 L SCALE DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 125 ; + lv2:symbol "op5_r_scale_depth" ; + lv2:name "OP5 R SCALE DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 126 ; + lv2:symbol "op5_l_key_scale" ; + lv2:name "OP5 L KEY SCALE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 127 ; + lv2:symbol "op5_r_key_scale" ; + lv2:name "OP5 R KEY SCALE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 128 ; + lv2:symbol "op5_rate_scaling" ; + lv2:name "OP5 RATE SCALING" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 129 ; + lv2:symbol "op5_a_mod_sens_" ; + lv2:name "OP5 A MOD SENS." ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 130 ; + lv2:symbol "op5_key_velocity" ; + lv2:name "OP5 KEY VELOCITY" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 131 ; + lv2:symbol "op6_eg_rate_1" ; + lv2:name "OP6 EG RATE 1" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 132 ; + lv2:symbol "op6_eg_rate_2" ; + lv2:name "OP6 EG RATE 2" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 133 ; + lv2:symbol "op6_eg_rate_3" ; + lv2:name "OP6 EG RATE 3" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 134 ; + lv2:symbol "op6_eg_rate_4" ; + lv2:name "OP6 EG RATE 4" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 135 ; + lv2:symbol "op6_eg_level_1" ; + lv2:name "OP6 EG LEVEL 1" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 136 ; + lv2:symbol "op6_eg_level_2" ; + lv2:name "OP6 EG LEVEL 2" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 137 ; + lv2:symbol "op6_eg_level_3" ; + lv2:name "OP6 EG LEVEL 3" ; + lv2:default 99 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 138 ; + lv2:symbol "op6_eg_level_4" ; + lv2:name "OP6 EG LEVEL 4" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 139 ; + lv2:symbol "op6_output_level" ; + lv2:name "OP6 OUTPUT LEVEL" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 140 ; + lv2:symbol "op6_mode" ; + lv2:name "OP6 MODE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 1 ; + lv2:portProperty lv2:toggled, lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 141 ; + lv2:symbol "op6_f_coarse" ; + lv2:name "OP6 F COARSE" ; + lv2:default 1 ; + lv2:minimum 0 ; + lv2:maximum 31 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 142 ; + lv2:symbol "op6_f_fine" ; + lv2:name "OP6 F FINE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 143 ; + lv2:symbol "op6_osc_detune" ; + lv2:name "OP6 OSC DETUNE" ; + lv2:default 7 ; + lv2:minimum -7 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 144 ; + lv2:symbol "op6_break_point" ; + lv2:name "OP6 BREAK POINT" ; + lv2:default 39 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 145 ; + lv2:symbol "op6_l_scale_depth" ; + lv2:name "OP6 L SCALE DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 146 ; + lv2:symbol "op6_r_scale_depth" ; + lv2:name "OP6 R SCALE DEPTH" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 99 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 147 ; + lv2:symbol "op6_l_key_scale" ; + lv2:name "OP6 L KEY SCALE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 148 ; + lv2:symbol "op6_r_key_scale" ; + lv2:name "OP6 R KEY SCALE" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 149 ; + lv2:symbol "op6_rate_scaling" ; + lv2:name "OP6 RATE SCALING" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 150 ; + lv2:symbol "op6_a_mod_sens_" ; + lv2:name "OP6 A MOD SENS." ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 3 ; + lv2:portProperty lv2:integer ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 151 ; + lv2:symbol "op6_key_velocity" ; + lv2:name "OP6 KEY VELOCITY" ; + lv2:default 0 ; + lv2:minimum 0 ; + lv2:maximum 7 ; + lv2:portProperty lv2:integer ; + ] ; + + doap:name "Dexed" ; + doap:maintainer [ foaf:name "dcoredump" ] . + diff --git a/src/Makefile b/src/Makefile index 692baa6..a2d575e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -3,14 +3,14 @@ BUNDLE=dexed.lv2 INSTALL_DIR=/home/pi/zynthian/zynthian-plugins/mod-lv2 TARGET=dexed.so -OBJ=ringbuffer.o fm_core.o env.o lfo.o dx7note.o sin.o pitchenv.o fm_op_kernel.o freqlut.o exp2.o EngineMkI.o EngineOpl.o +OBJ=ringbuffer.o fm_core.o env.o lfo.o dx7note.o sin.o pitchenv.o fm_op_kernel.o freqlut.o exp2.o EngineMkI.o EngineOpl.o PluginFx.o CFLAGS=-fPIC -DPIC $(DEBUG) -std=c++11 -I. -I/usr/local/include/lvtk-2 LDFLAGS=-L/usr/local/lib -llvtk_plugin2 all: $(BUNDLE) Makefile clean: - rm -f *.o *~ *.bak *.gch dexed-ttl.h *.so + rm -f *.o *~ *.bak *.gch dexed.peg *.so rm -rf $(BUNDLE) install: $(BUNDLE) @@ -34,7 +34,7 @@ dexed.so: $(OBJ) dexed.o #dexed-test.o: dexed-test.cpp # $(CXX) $(CFLAGS) -Wall -c dexed-test.cpp -dexed.o: dexed.cpp dexed-ttl.h +dexed.o: dexed.cpp dexed.peg $(CXX) $(CFLAGS) -Wall -c dexed.cpp ringbuffer.o: msfa/ringbuffer.cc @@ -76,6 +76,6 @@ EngineOpl.o: EngineOpl.cpp PluginFx.o: PluginFx.cpp $(CXX) $(CFLAGS) -Wall -c PluginFx.cpp -dexed-ttl.h: Dexed.ttl - ttl2c Dexed.ttl dexed-ttl.h +dexed.peg: Dexed.ttl + lv2peg Dexed.ttl dexed.peg diff --git a/src/PluginFx.cpp b/src/PluginFx.cpp index c3d4862..05c4db8 100644 --- a/src/PluginFx.cpp +++ b/src/PluginFx.cpp @@ -25,7 +25,6 @@ #define _USE_MATH_DEFINES #include #include "PluginFx.h" -#include "PluginProcessor.h" const float dc = 1e-18; @@ -44,9 +43,9 @@ inline static float tptlpupw(float & state , float inp , float cutoff , float sr return res; } -static float linsc(float param,const float min,const float max) { - return (param) * (max - min) + min; -} +//static float linsc(float param,const float min,const float max) { +// return (param) * (max - min) + min; +//} static float logsc(float param, const float min,const float max,const float rolloff = 19.0f) { return ((expf(param * logf(rolloff+1)) - 1.0f) / (rolloff)) * (max-min) + min; diff --git a/src/dexed-ttl.h b/src/dexed-ttl.h deleted file mode 100644 index 9701d66..0000000 --- a/src/dexed-ttl.h +++ /dev/null @@ -1,333 +0,0 @@ -#ifndef dexed_ttl_h -#define dexed_ttl_h - - -#ifndef PEG_STRUCT -#define PEG_STRUCT -typedef struct { - float min; - float max; - float default_value; - char toggled; - char integer; - char logarithmic; -} peg_data_t; -#endif - -/* */ - -static const char p_uri[] = "https://github.com/dcoredump/dexed"; - -enum p_port_enum { - p_lv2_events_in, - p_lv2_freewheel, - p_lv2_latency, - p_lv2_audio_out_1, - p_cutoff, - p_resonance, - p_output, - p_algorithm, - p_feedback, - p_osc_key_sync, - p_lfo_speed, - p_lfo_delay, - p_lfo_pm_depth, - p_lfo_am_depth, - p_lfo_key_sync, - p_lfo_wave, - p_middle_c, - p_p_mode_sens_, - p_pitch_eg_rate_1, - p_pitch_eg_rate_2, - p_pitch_eg_rate_3, - p_pitch_eg_rate_4, - p_pitch_eg_level_1, - p_pitch_eg_level_2, - p_pitch_eg_level_3, - p_pitch_eg_level_4, - p_op1_eg_rate_1, - p_op1_eg_rate_2, - p_op1_eg_rate_3, - p_op1_eg_rate_4, - p_op1_eg_level_1, - p_op1_eg_level_2, - p_op1_eg_level_3, - p_op1_eg_level_4, - p_op1_output_level, - p_op1_mode, - p_op1_f_coarse, - p_op1_f_fine, - p_op1_osc_detune, - p_op1_break_point, - p_op1_l_scale_depth, - p_op1_r_scale_depth, - p_op1_l_key_scale, - p_op1_r_key_scale, - p_op1_rate_scaling, - p_op1_a_mod_sens_, - p_op1_key_velocity, - p_op2_eg_rate_1, - p_op2_eg_rate_2, - p_op2_eg_rate_3, - p_op2_eg_rate_4, - p_op2_eg_level_1, - p_op2_eg_level_2, - p_op2_eg_level_3, - p_op2_eg_level_4, - p_op2_output_level, - p_op2_mode, - p_op2_f_coarse, - p_op2_f_fine, - p_op2_osc_detune, - p_op2_break_point, - p_op2_l_scale_depth, - p_op2_r_scale_depth, - p_op2_l_key_scale, - p_op2_r_key_scale, - p_op2_rate_scaling, - p_op2_a_mod_sens_, - p_op2_key_velocity, - p_op3_eg_rate_1, - p_op3_eg_rate_2, - p_op3_eg_rate_3, - p_op3_eg_rate_4, - p_op3_eg_level_1, - p_op3_eg_level_2, - p_op3_eg_level_3, - p_op3_eg_level_4, - p_op3_output_level, - p_op3_mode, - p_op3_f_coarse, - p_op3_f_fine, - p_op3_osc_detune, - p_op3_break_point, - p_op3_l_scale_depth, - p_op3_r_scale_depth, - p_op3_l_key_scale, - p_op3_r_key_scale, - p_op3_rate_scaling, - p_op3_a_mod_sens_, - p_op3_key_velocity, - p_op4_eg_rate_1, - p_op4_eg_rate_2, - p_op4_eg_rate_3, - p_op4_eg_rate_4, - p_op4_eg_level_1, - p_op4_eg_level_2, - p_op4_eg_level_3, - p_op4_eg_level_4, - p_op4_output_level, - p_op4_mode, - p_op4_f_coarse, - p_op4_f_fine, - p_op4_osc_detune, - p_op4_break_point, - p_op4_l_scale_depth, - p_op4_r_scale_depth, - p_op4_l_key_scale, - p_op4_r_key_scale, - p_op4_rate_scaling, - p_op4_a_mod_sens_, - p_op4_key_velocity, - p_op5_eg_rate_1, - p_op5_eg_rate_2, - p_op5_eg_rate_3, - p_op5_eg_rate_4, - p_op5_eg_level_1, - p_op5_eg_level_2, - p_op5_eg_level_3, - p_op5_eg_level_4, - p_op5_output_level, - p_op5_mode, - p_op5_f_coarse, - p_op5_f_fine, - p_op5_osc_detune, - p_op5_break_point, - p_op5_l_scale_depth, - p_op5_r_scale_depth, - p_op5_l_key_scale, - p_op5_r_key_scale, - p_op5_rate_scaling, - p_op5_a_mod_sens_, - p_op5_key_velocity, - p_op6_eg_rate_1, - p_op6_eg_rate_2, - p_op6_eg_rate_3, - p_op6_eg_rate_4, - p_op6_eg_level_1, - p_op6_eg_level_2, - p_op6_eg_level_3, - p_op6_eg_level_4, - p_op6_output_level, - p_op6_mode, - p_op6_f_coarse, - p_op6_f_fine, - p_op6_osc_detune, - p_op6_break_point, - p_op6_l_scale_depth, - p_op6_r_scale_depth, - p_op6_l_key_scale, - p_op6_r_key_scale, - p_op6_rate_scaling, - p_op6_a_mod_sens_, - p_op6_key_velocity, - p_n_ports -}; - -static const peg_data_t p_ports[] = { - { -3.40282e+38, 3.40282e+38, -3.40282e+38, 0, 0, 0 }, - { 0, 1, 0, 1, 0, 0 }, - { -3.40282e+38, 3.40282e+38, -3.40282e+38, 0, 1, 0 }, - { -3.40282e+38, 3.40282e+38, -3.40282e+38, 0, 0, 0 }, - { 0, 1, 1, 0, 0, 0 }, - { 0, 1, 0, 0, 0, 0 }, - { 0, 2, 1, 0, 0, 0 }, - { 1, 32, 1, 0, 1, 0 }, - { 1, 8, 1, 0, 1, 0 }, - { 1, 1, 0, 1, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 1, 0, 1, 1, 0 }, - { 1, 6, 1, 0, 1, 0 }, - { 0, 48, 24, 0, 1, 0 }, - { 1, 8, 1, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 1, 0, 1, 1, 0 }, - { 0, 31, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { -7, 7, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 1, 0, 1, 1, 0 }, - { 0, 31, 0, 0, 1, 0 }, - { 0, 100, 0, 0, 1, 0 }, - { -7, 7, 0, 0, 1, 0 }, - { 0, 100, 0, 0, 1, 0 }, - { 0, 100, 0, 0, 1, 0 }, - { 0, 100, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 1, 0, 1, 1, 0 }, - { 0, 31, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { -7, 7, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, - { 0, 99, 1, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 7, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 1, 0, 1, 1, 0 }, - { 0, 31, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { -7, 7, 0, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 39, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 1, 0, 1, 1, 0 }, - { 0, 31, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { -7, 7, 0, 0, 1, 0 }, - { 0, 99, 39, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 99, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 1, 0, 1, 1, 0 }, - { 0, 31, 1, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { -7, 7, 7, 0, 1, 0 }, - { 0, 99, 39, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 99, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, - { 0, 3, 0, 0, 1, 0 }, - { 0, 7, 0, 0, 1, 0 }, -}; - - -#endif /* dexed_ttl_h */ diff --git a/src/dexed.cpp b/src/dexed.cpp index c3db851..0d728d8 100644 --- a/src/dexed.cpp +++ b/src/dexed.cpp @@ -1,8 +1,7 @@ // from: http://ll-plugins.nongnu.org/lv2pftci/#A_synth #include -#include -#include "dexed-ttl.h" +#include "dexed.peg" #include "dexed.h" #include "EngineMkI.h" #include "EngineOpl.h" @@ -11,8 +10,10 @@ #include "msfa/freqlut.h" #include "msfa/controllers.h" #include "msfa/ringbuffer.h" +#include "PluginFx.h" +#include -Dexed::Dexed(double rate) : lvtk::Synth(p_n_ports, p_lv2_events_in) +Dexed::Dexed(double rate) : lvtk::Synth(p_n_ports, p_midi_in) { TRACE("Hi"); @@ -58,7 +59,7 @@ Dexed::Dexed(double rate) : lvtk::Synth(p_n_ports, p_lv2_even add_voices(new DexedVoice(rate)); - add_audio_outputs(p_lv2_audio_out_1); + add_audio_outputs(p_audio_out); } Dexed::~Dexed() @@ -67,9 +68,499 @@ Dexed::~Dexed() delete [] outbuf16_; + currentNote = -1; + + for (int note = 0; note < MAX_ACTIVE_NOTES; ++note) { + if ( voices[note].dx7_note != NULL ) { + delete voices[note].dx7_note; + voices[note].dx7_note = NULL; + } + voices[note].keydown = false; + voices[note].sustained = false; + voices[note].live = false; + } + TRACE("Bye"); } +void Dexed::set_params(void) +{ + TRACE("Hi"); + + // OP6 + onParam(0,static_cast(*p(p_op6_eg_rate_1))); + onParam(1,static_cast(*p(p_op6_eg_rate_2))); + onParam(2,static_cast(*p(p_op6_eg_rate_3))); + onParam(3,static_cast(*p(p_op6_eg_rate_4))); + onParam(4,static_cast(*p(p_op6_eg_level_1))); + onParam(5,static_cast(*p(p_op6_eg_level_2))); + onParam(6,static_cast(*p(p_op6_eg_level_3))); + onParam(7,static_cast(*p(p_op6_eg_level_4))); + onParam(8,static_cast(*p(p_op6_kbd_lev_scl_brk_pt))); + onParam(9,static_cast(*p(p_op6_kbd_lev_scl_lft_depth))); + onParam(10,static_cast(*p(p_op6_kbd_lev_scl_rht_depth))); + onParam(11,static_cast(*p(p_op6_kbd_lev_scl_lft_curve))); + onParam(12,static_cast(*p(p_op6_kbd_lev_scl_rht_curve))); + onParam(13,static_cast(*p(p_op6_kbd_rate_scaling))); + onParam(14,static_cast(*p(p_op6_amp_mod_sensitivity))); + onParam(15,static_cast(*p(p_op6_key_vel_sensitivity))); + onParam(16,static_cast(*p(p_op6_operator_output_level))); + onParam(17,static_cast(*p(p_op6_osc_mode))); + onParam(18,static_cast(*p(p_op6_osc_freq_coarse))); + onParam(19,static_cast(*p(p_op6_osc_freq_fine))); + onParam(20,static_cast(*p(p_op6_osc_detune)+7)); + // OP5 + onParam(21,static_cast(*p(p_op5_eg_rate_1))); + onParam(22,static_cast(*p(p_op5_eg_rate_2))); + onParam(23,static_cast(*p(p_op5_eg_rate_3))); + onParam(24,static_cast(*p(p_op5_eg_rate_4))); + onParam(25,static_cast(*p(p_op5_eg_level_1))); + onParam(26,static_cast(*p(p_op5_eg_level_2))); + onParam(27,static_cast(*p(p_op5_eg_level_3))); + onParam(28,static_cast(*p(p_op5_eg_level_4))); + onParam(29,static_cast(*p(p_op5_kbd_lev_scl_brk_pt))); + onParam(30,static_cast(*p(p_op5_kbd_lev_scl_lft_depth))); + onParam(31,static_cast(*p(p_op5_kbd_lev_scl_rht_depth))); + onParam(32,static_cast(*p(p_op5_kbd_lev_scl_lft_curve))); + onParam(33,static_cast(*p(p_op5_kbd_lev_scl_rht_curve))); + onParam(34,static_cast(*p(p_op5_kbd_rate_scaling))); + onParam(35,static_cast(*p(p_op5_amp_mod_sensitivity))); + onParam(36,static_cast(*p(p_op5_key_vel_sensitivity))); + onParam(37,static_cast(*p(p_op5_operator_output_level))); + onParam(38,static_cast(*p(p_op5_osc_mode))); + onParam(39,static_cast(*p(p_op5_osc_freq_coarse))); + onParam(40,static_cast(*p(p_op5_osc_freq_fine))); + onParam(41,static_cast(*p(p_op5_osc_detune)+7)); + // OP4 + onParam(42,static_cast(*p(p_op4_eg_rate_1))); + onParam(43,static_cast(*p(p_op4_eg_rate_2))); + onParam(44,static_cast(*p(p_op4_eg_rate_3))); + onParam(45,static_cast(*p(p_op4_eg_rate_4))); + onParam(46,static_cast(*p(p_op4_eg_level_1))); + onParam(47,static_cast(*p(p_op4_eg_level_2))); + onParam(48,static_cast(*p(p_op4_eg_level_3))); + onParam(49,static_cast(*p(p_op4_eg_level_4))); + onParam(50,static_cast(*p(p_op4_kbd_lev_scl_brk_pt))); + onParam(51,static_cast(*p(p_op4_kbd_lev_scl_lft_depth))); + onParam(52,static_cast(*p(p_op4_kbd_lev_scl_rht_depth))); + onParam(53,static_cast(*p(p_op4_kbd_lev_scl_lft_curve))); + onParam(54,static_cast(*p(p_op4_kbd_lev_scl_rht_curve))); + onParam(55,static_cast(*p(p_op4_kbd_rate_scaling))); + onParam(56,static_cast(*p(p_op4_amp_mod_sensitivity))); + onParam(57,static_cast(*p(p_op4_key_vel_sensitivity))); + onParam(58,static_cast(*p(p_op4_operator_output_level))); + onParam(59,static_cast(*p(p_op4_osc_mode))); + onParam(60,static_cast(*p(p_op4_osc_freq_coarse))); + onParam(61,static_cast(*p(p_op4_osc_freq_fine))); + onParam(62,static_cast(*p(p_op4_osc_detune)+7)); + // OP3 + onParam(63,static_cast(*p(p_op3_eg_rate_1))); + onParam(64,static_cast(*p(p_op3_eg_rate_2))); + onParam(65,static_cast(*p(p_op3_eg_rate_3))); + onParam(66,static_cast(*p(p_op3_eg_rate_4))); + onParam(67,static_cast(*p(p_op3_eg_level_1))); + onParam(68,static_cast(*p(p_op3_eg_level_2))); + onParam(69,static_cast(*p(p_op3_eg_level_3))); + onParam(70,static_cast(*p(p_op3_eg_level_4))); + onParam(71,static_cast(*p(p_op3_kbd_lev_scl_brk_pt))); + onParam(72,static_cast(*p(p_op3_kbd_lev_scl_lft_depth))); + onParam(73,static_cast(*p(p_op3_kbd_lev_scl_rht_depth))); + onParam(74,static_cast(*p(p_op3_kbd_lev_scl_lft_curve))); + onParam(75,static_cast(*p(p_op3_kbd_lev_scl_rht_curve))); + onParam(76,static_cast(*p(p_op3_kbd_rate_scaling))); + onParam(77,static_cast(*p(p_op3_amp_mod_sensitivity))); + onParam(78,static_cast(*p(p_op3_key_vel_sensitivity))); + onParam(79,static_cast(*p(p_op3_operator_output_level))); + onParam(80,static_cast(*p(p_op3_osc_mode))); + onParam(81,static_cast(*p(p_op3_osc_freq_coarse))); + onParam(82,static_cast(*p(p_op3_osc_freq_fine))); + onParam(83,static_cast(*p(p_op3_osc_detune)+7)); + // OP2 + onParam(84,static_cast(*p(p_op2_eg_rate_1))); + onParam(85,static_cast(*p(p_op2_eg_rate_2))); + onParam(86,static_cast(*p(p_op2_eg_rate_3))); + onParam(87,static_cast(*p(p_op2_eg_rate_4))); + onParam(88,static_cast(*p(p_op2_eg_level_1))); + onParam(89,static_cast(*p(p_op2_eg_level_2))); + onParam(90,static_cast(*p(p_op2_eg_level_3))); + onParam(91,static_cast(*p(p_op2_eg_level_4))); + onParam(92,static_cast(*p(p_op2_kbd_lev_scl_brk_pt))); + onParam(93,static_cast(*p(p_op2_kbd_lev_scl_lft_depth))); + onParam(94,static_cast(*p(p_op2_kbd_lev_scl_rht_depth))); + onParam(95,static_cast(*p(p_op2_kbd_lev_scl_lft_curve))); + onParam(96,static_cast(*p(p_op2_kbd_lev_scl_rht_curve))); + onParam(97,static_cast(*p(p_op2_kbd_rate_scaling))); + onParam(98,static_cast(*p(p_op2_amp_mod_sensitivity))); + onParam(99,static_cast(*p(p_op2_key_vel_sensitivity))); + onParam(100,static_cast(*p(p_op2_operator_output_level))); + onParam(101,static_cast(*p(p_op2_osc_mode))); + onParam(102,static_cast(*p(p_op2_osc_freq_coarse))); + onParam(103,static_cast(*p(p_op2_osc_freq_fine))); + onParam(104,static_cast(*p(p_op2_osc_detune)+7)); + // OP1 + onParam(105,static_cast(*p(p_op1_eg_rate_1))); + onParam(106,static_cast(*p(p_op1_eg_rate_2))); + onParam(107,static_cast(*p(p_op1_eg_rate_3))); + onParam(108,static_cast(*p(p_op1_eg_rate_4))); + onParam(109,static_cast(*p(p_op1_eg_level_1))); + onParam(110,static_cast(*p(p_op1_eg_level_2))); + onParam(111,static_cast(*p(p_op1_eg_level_3))); + onParam(112,static_cast(*p(p_op1_eg_level_4))); + onParam(113,static_cast(*p(p_op1_kbd_lev_scl_brk_pt))); + onParam(114,static_cast(*p(p_op1_kbd_lev_scl_lft_depth))); + onParam(115,static_cast(*p(p_op1_kbd_lev_scl_rht_depth))); + onParam(116,static_cast(*p(p_op1_kbd_lev_scl_lft_curve))); + onParam(117,static_cast(*p(p_op1_kbd_lev_scl_rht_curve))); + onParam(118,static_cast(*p(p_op1_kbd_rate_scaling))); + onParam(119,static_cast(*p(p_op1_amp_mod_sensitivity))); + onParam(120,static_cast(*p(p_op1_key_vel_sensitivity))); + onParam(121,static_cast(*p(p_op1_operator_output_level))); + onParam(122,static_cast(*p(p_op1_osc_mode))); + onParam(123,static_cast(*p(p_op1_osc_freq_coarse))); + onParam(124,static_cast(*p(p_op1_osc_freq_fine))); + onParam(125,static_cast(*p(p_op1_osc_detune)+7)); + // Global for all OPs + onParam(126,static_cast(*p(p_pitch_eg_rate_1))); + onParam(127,static_cast(*p(p_pitch_eg_rate_2))); + onParam(128,static_cast(*p(p_pitch_eg_rate_3))); + onParam(129,static_cast(*p(p_pitch_eg_rate_4))); + onParam(130,static_cast(*p(p_pitch_eg_level_1))); + onParam(131,static_cast(*p(p_pitch_eg_level_2))); + onParam(132,static_cast(*p(p_pitch_eg_level_3))); + onParam(133,static_cast(*p(p_pitch_eg_level_4))); + onParam(134,static_cast(*p(p_algorithm_num)-1)); + onParam(135,static_cast(*p(p_feedback))); + onParam(136,static_cast(*p(p_oscillator_sync))); + onParam(137,static_cast(*p(p_lfo_speed))); + onParam(138,static_cast(*p(p_lfo_delay))); + onParam(139,static_cast(*p(p_lfo_pitch_mod_depth))); + onParam(140,static_cast(*p(p_lfo_amp_mod_depth))); + onParam(141,static_cast(*p(p_lfo_sync))); + onParam(142,static_cast(*p(p_lfo_waveform))); + onParam(143,static_cast(*p(p_pitch_mod_sensitivity))); + onParam(144,static_cast(*p(p_transpose))); + // 10 bytes (145-154) are the name of the patch + onParam(155,0x3f); // operator on/off => All OPs on + + TRACE("Bye"); +} + +// override the run() method +void Dexed::run (uint32_t sample_count) +{ + const LV2_Atom_Sequence* seq = p (p_midi_in); + float* output = p(p_audio_out); + uint32_t last_frame = 0, num_this_time = 0; + float level=*p(p_output)*scaler; + + set_params(); // pre_process: copy actual voice params + + for (LV2_Atom_Event* ev = lv2_atom_sequence_begin (&seq->body); + !lv2_atom_sequence_is_end(&seq->body, seq->atom.size, ev); + ev = lv2_atom_sequence_next (ev)) + { + num_this_time = ev->time.frames - last_frame; + + // If it's midi, send it to the engine + if (ev->body.type == m_midi_type) + ring_buffer_.Write ((uint8_t*) LV2_ATOM_BODY (&ev->body), ev->body.size); + + // render audio from the last frame until the timestamp of this event + GetSamples (num_this_time, outbuf16_); + + // i is the index of the engine's buf, which always starts at 0 (i think) + // j is the index of the plugin's float output buffer which will be the timestamp + // of the last processed atom event. + for (uint32_t i = 0, j = last_frame; i < num_this_time; ++i, ++j) + output[j] = (static_cast (outbuf16_[i])) * level; + + last_frame = ev->time.frames; + } + + // render remaining samples if any left + if (last_frame < sample_count) + { + // do the same thing as above except from last frame until the end of + // the processing cycles last sample. at this point, all events have + // already been handled. + + num_this_time = sample_count - last_frame; + GetSamples (num_this_time, outbuf16_); + for (uint32_t i = 0, j = last_frame; i < num_this_time; ++i, ++j) + output[j] = (static_cast (outbuf16_[i])) * level; + } + + fx.process(output, sample_count); +} + +void Dexed::GetSamples(int n_samples, int16_t *buffer) +{ + int i; + size_t input_offset; + + TransferInput(); + for (input_offset = 0; input_offset < input_buffer_index_; ) { + int bytes_available = input_buffer_index_ - input_offset; + int bytes_consumed = ProcessMidiMessage(input_buffer_ + input_offset, bytes_available); + if (bytes_consumed == 0) { + break; + } + input_offset += bytes_consumed; + } + ConsumeInput(input_offset); + + if ( refreshVoice ) { + for(i=0;i < MAX_ACTIVE_NOTES;i++) { + if ( voices[i].live ) + voices[i].dx7_note->update(data, voices[i].midi_note, feedback_bitdepth); + } + lfo.reset(data + 137); + refreshVoice = false; + } + + // flush first events + for (i=0; i < n_samples && i < extra_buf_size_; i++) { + buffer[i] = extra_buf_[i]; + } + + // remaining buffer is still to be processed + if (extra_buf_size_ > n_samples) { + for (int j = 0; j < extra_buf_size_ - n_samples; j++) { + extra_buf_[j] = extra_buf_[j + n_samples]; + } + extra_buf_size_ -= n_samples; + + // flush the events, they will be process in the next cycle + //while(getNextEvent(&it, n_samples)) { + // processMidiMessage(midiMsg); + // } + } else { + for (; i < n_samples; i += N) { + AlignedBuf audiobuf; + float sumbuf[N]; + + //while(getNextEvent(&it, i)) { + // processMidiMessage(midiMsg); + //} + + for (int j = 0; j < N; ++j) { + audiobuf.get()[j] = 0; + sumbuf[j] = 0; + } + int32_t lfovalue = lfo.getsample(); + int32_t lfodelay = lfo.getdelay(); + + for (int note = 0; note < MAX_ACTIVE_NOTES; ++note) { + if (voices[note].live) { + voices[note].dx7_note->compute(audiobuf.get(), lfovalue, lfodelay, &controllers); + + for (int j=0; j < N; ++j) { + int32_t val = audiobuf.get()[j]; + + val = val >> 4; + int clip_val = val < -(1 << 24) ? 0x8000 : val >= (1 << 24) ? 0x7fff : val >> 9; + float f = ((float) clip_val) / (float) 0x8000; + if( f > 1 ) f = 1; + if( f < -1 ) f = -1; + sumbuf[j] += f; + audiobuf.get()[j] = 0; + } + } + } + + int jmax = n_samples - i; + for (int j = 0; j < N; ++j) { + if (j < jmax) { + buffer[i + j] = sumbuf[j]; + } else { + extra_buf_[j - jmax] = sumbuf[j]; + } + } + } + extra_buf_size_ = i - n_samples; + } +} + +//void Dexed::processMidiMessage(const MidiMessage *msg) { +int Dexed::ProcessMidiMessage(const uint8_t *buf, int buf_size) { + uint8_t cmd = buf[0]; + + switch(cmd & 0xf0) { + case 0x80 : + keyup(buf[1]); + return(3); + + case 0x90 : + keydown(buf[1], buf[2]); + return(3); + + case 0xb0 : { + int ctrl = buf[1]; + int value = buf[2]; + + switch(ctrl) { + case 1: + controllers.modwheel_cc = value; + controllers.refresh(); + break; + case 2: + controllers.breath_cc = value; + controllers.refresh(); + break; + case 4: + controllers.foot_cc = value; + controllers.refresh(); + break; + case 64: + sustain = value > 63; + if (!sustain) { + for (int note = 0; note < MAX_ACTIVE_NOTES; note++) { + if (voices[note].sustained && !voices[note].keydown) { + voices[note].dx7_note->keyup(); + voices[note].sustained = false; + } + } + } + break; + } + } + return(3); + + case 0xc0 : + //setCurrentProgram(buf[1]); + return(3); + + // aftertouch + case 0xd0 : + controllers.aftertouch_cc = buf[1]; + controllers.refresh(); + return(3); + + } + + switch (cmd) { + case 0xe0 : + controllers.values_[kControllerPitch] = buf[1] | (buf[2] << 7); + return(3); + break; + } + return(3); +} + +void Dexed::TransferInput() { + size_t bytes_available = ring_buffer_.BytesAvailable(); + int bytes_to_read = min(bytes_available, + sizeof(input_buffer_) - input_buffer_index_); + if (bytes_to_read > 0) { + ring_buffer_.Read(bytes_to_read, input_buffer_ + input_buffer_index_); + input_buffer_index_ += bytes_to_read; + } +} + +void Dexed::ConsumeInput(size_t n_input_bytes) { + if (n_input_bytes < input_buffer_index_) { + memmove(input_buffer_, input_buffer_ + n_input_bytes, + input_buffer_index_ - n_input_bytes); + } + input_buffer_index_ -= n_input_bytes; +} + +void Dexed::keydown(uint8_t pitch, uint8_t velo) { + if ( velo == 0 ) { + keyup(pitch); + return; + } + + pitch += data[144] - 24; + + if ( normalizeDxVelocity ) { + velo = ((float)velo) * 0.7874015; // 100/127 + } + + int note = currentNote; + for (int i=0; iinit(data, pitch, velo, feedback_bitdepth); + if ( data[136] ) + voices[note].dx7_note->oscSync(); + break; + } + note = (note + 1) % MAX_ACTIVE_NOTES; + } + + if ( monoMode ) { + for(int i=0; itransferSignal(*voices[i].dx7_note); + break; + } + if ( voices[i].midi_note < pitch ) { + voices[i].live = false; + voices[note].dx7_note->transferState(*voices[i].dx7_note); + break; + } + return; + } + } + } + + voices[note].live = true; +} + +void Dexed::keyup(uint8_t pitch) { + pitch += data[144] - 24; + + int note; + for (note=0; note= MAX_ACTIVE_NOTES ) { + TRACE("note-off not found???"); + return; + } + + if ( monoMode ) { + int highNote = -1; + int target = 0; + for (int i=0; i highNote ) { + target = i; + highNote = voices[i].midi_note; + } + } + + if ( highNote != -1 ) { + voices[note].live = false; + voices[target].live = true; + voices[target].dx7_note->transferState(*voices[note].dx7_note); + } + } + + if ( sustain ) { + voices[note].sustained = true; + } else { + voices[note].dx7_note->keyup(); + } +} + +void Dexed::onParam(int param_num,int param_val) +{ + data[param_num]=param_val; +} + //============================================================================== DexedVoice::DexedVoice(double rate) : m_key(lvtk::INVALID_KEY), m_rate(rate) diff --git a/src/dexed.h b/src/dexed.h index b878120..eb07c9d 100644 --- a/src/dexed.h +++ b/src/dexed.h @@ -30,6 +30,7 @@ #include "PluginFx.h" #include "EngineMkI.h" #include "EngineOpl.h" +#include "dexed.peg" struct ProcessorVoice { int midi_note; @@ -51,6 +52,10 @@ enum DexedEngineResolution { #define TRACE(fmt, ...) #endif +// GLOBALS +//static const float scaler = 0.00003051757813; +static const float scaler = 0.00003; + //============================================================================== class DexedVoice : public lvtk::Voice @@ -65,6 +70,8 @@ class DexedVoice : public lvtk::Voice protected: unsigned char m_key; double m_rate; + + private: }; //============================================================================== @@ -74,17 +81,26 @@ class Dexed : public lvtk::Synth public: Dexed(double rate); ~Dexed(); + void run(uint32_t sample_count); int getEngineType(); void setEngineType(int rs); - bool isMonoMode(); - void setMonoMode(bool mode); - void setParameter (int index, int newValue); + void set_params(void); + void GetSamples(int n_samples, int16_t *buffer); + //bool isMonoMode(); + //void setMonoMode(bool mode); uint8_t data[161]; Controllers controllers; VoiceStatus voiceStatus; protected: + int ProcessMidiMessage(const uint8_t *buf, int buf_size); + void onParam(int param_num,int param_val); + void TransferInput(); + void ConsumeInput(size_t n_input_bytes); + void keyup(uint8_t pitch); + void keydown(uint8_t pitch, uint8_t velo); + static const int MAX_ACTIVE_NOTES = 16; ProcessorVoice voices[MAX_ACTIVE_NOTES]; int currentNote; @@ -100,13 +116,15 @@ class Dexed : public lvtk::Synth FmCore engineMsfa; EngineMkI engineMkI; EngineOpl engineOpl; + RingBuffer ring_buffer_; int16_t* outbuf16_; uint32_t bufsize_; -}; + int16_t extra_buf_[N]; + int extra_buf_size_; + uint8_t input_buffer_[8192]; + size_t input_buffer_index_; -// GLOBALS -RingBuffer ring_buffer_; -//static const float scaler = 0.00003051757813; -static const float scaler = 0.00003; + private: +}; #endif // PLUGINPROCESSOR_H_INCLUDED