diff --git a/src/Makefile b/src/Makefile index d9d57b7..7c96700 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,5 +1,6 @@ BUNDLE=dexed.lv2 INSTALL_DIR=/zynthian/zynthian-plugins/lv2 +INSTALL_MYPLUGINS_DIR=/zynthian/zynthian-my-plugins/lv2 TARGET=dexed.so OBJ=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 trace.o CFLAGS=-fPIC -DPIC -std=c++11 -I. -I/usr/local/include/lvtk-2 -DLVTK_DEBUG=false @@ -66,9 +67,11 @@ clean: Makefile install: $(BUNDLE) mkdir -p $(INSTALL_DIR) + mkdir -p $(INSTALL_MYPLUGINS_DIR) rm -rf $(INSTALL_DIR)/$(BUNDLE) rm -rf ${HOME}/.lv2/$(BUNDLE) cp -R $(BUNDLE) $(INSTALL_DIR) + cp -R user-presets/* $(INSTALL_MYPLUGINS_DIR) $(BUNDLE): manifest.ttl Dexed.ttl modgui.ttl presets.ttl dexed.so rm -rf $(BUNDLE) diff --git a/src/dexed.cpp b/src/dexed.cpp index 7912f41..14e34e2 100644 --- a/src/dexed.cpp +++ b/src/dexed.cpp @@ -745,7 +745,7 @@ void Dexed::onParam(uint8_t param_num,float param_val) case 169: case 170: case 171: - controllers.opSwitch=data[166]|(data[167]<<1)|(data[168]<<2)|(data[169]<<3)|(data[170]<<4)|(data[171]<<5); + controllers.opSwitch=(data[166]<<5)|(data[167]<<4)|(data[168]<<3)|(data[169]<<2)|(data[170]<<1)|data[171]; break; case 165: int32_t tune=param_val*0x4000; diff --git a/src/user-presets/dexed_lv2-INIT_VOICE.lv2/INIT_VOICE.ttl b/src/user-presets/dexed_lv2-INIT_VOICE.lv2/INIT_VOICE.ttl new file mode 100644 index 0000000..3074cec --- /dev/null +++ b/src/user-presets/dexed_lv2-INIT_VOICE.lv2/INIT_VOICE.ttl @@ -0,0 +1,513 @@ +@prefix atom: . +@prefix lv2: . +@prefix pset: . +@prefix rdf: . +@prefix rdfs: . +@prefix state: . +@prefix xsd: . + +<> + a pset:Preset ; + lv2:appliesTo ; + lv2:port [ + lv2:symbol "cutoff" ; + pset:value 1.0 + ] , [ + lv2:symbol "resonance" ; + pset:value 0.0 + ] , [ + lv2:symbol "output" ; + pset:value 1.0 + ] , [ + lv2:symbol "engine" ; + pset:value 0.0 + ] , [ + lv2:symbol "polymono" ; + pset:value 0.0 + ] , [ + lv2:symbol "pitch_bend_range" ; + pset:value 1.0 + ] , [ + lv2:symbol "pitch_bend_step" ; + pset:value 0.0 + ] , [ + lv2:symbol "mod_wheel_range" ; + pset:value 99.0 + ] , [ + lv2:symbol "mod_wheel_assign" ; + pset:value 0.0 + ] , [ + lv2:symbol "foot_ctrl_range" ; + pset:value 99.0 + ] , [ + lv2:symbol "foot_ctrl_assign" ; + pset:value 0.0 + ] , [ + lv2:symbol "breath_ctrl_range" ; + pset:value 99.0 + ] , [ + lv2:symbol "breath_ctrl_assign" ; + pset:value 0.0 + ] , [ + lv2:symbol "aftertouch_range" ; + pset:value 99.0 + ] , [ + lv2:symbol "aftertouch_assign" ; + pset:value 0.0 + ] , [ + lv2:symbol "master_tune" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_enable" ; + pset:value 1.0 + ] , [ + lv2:symbol "op2_enable" ; + pset:value 1.0 + ] , [ + lv2:symbol "op3_enable" ; + pset:value 1.0 + ] , [ + lv2:symbol "op4_enable" ; + pset:value 1.0 + ] , [ + lv2:symbol "op5_enable" ; + pset:value 1.0 + ] , [ + lv2:symbol "op6_enable" ; + pset:value 1.0 + ] , [ + lv2:symbol "op6_eg_rate_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op6_eg_rate_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op6_eg_rate_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op6_eg_rate_4" ; + pset:value 99.0 + ] , [ + lv2:symbol "op6_eg_level_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op6_eg_level_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op6_eg_level_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op6_eg_level_4" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_kbd_lev_scl_brk_pt" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_kbd_lev_scl_lft_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_kbd_lev_scl_rht_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_kbd_lev_scl_lft_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_kbd_lev_scl_rht_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_osc_detune" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_kbd_rate_scaling" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_key_vel_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_amp_mod_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_operator_output_level" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_osc_freq_coarse" ; + pset:value 1.0 + ] , [ + lv2:symbol "op6_osc_mode" ; + pset:value 0.0 + ] , [ + lv2:symbol "op6_osc_freq_fine" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_eg_rate_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op5_eg_rate_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op5_eg_rate_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op5_eg_rate_4" ; + pset:value 99.0 + ] , [ + lv2:symbol "op5_eg_level_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op5_eg_level_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op5_eg_level_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op5_eg_level_4" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_kbd_lev_scl_brk_pt" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_kbd_lev_scl_lft_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_kbd_lev_scl_rht_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_kbd_lev_scl_lft_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_kbd_lev_scl_rht_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_osc_detune" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_kbd_rate_scaling" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_key_vel_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_amp_mod_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_operator_output_level" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_osc_freq_coarse" ; + pset:value 1.0 + ] , [ + lv2:symbol "op5_osc_mode" ; + pset:value 0.0 + ] , [ + lv2:symbol "op5_osc_freq_fine" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_eg_rate_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op4_eg_rate_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op4_eg_rate_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op4_eg_rate_4" ; + pset:value 99.0 + ] , [ + lv2:symbol "op4_eg_level_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op4_eg_level_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op4_eg_level_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op4_eg_level_4" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_kbd_lev_scl_brk_pt" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_kbd_lev_scl_lft_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_kbd_lev_scl_rht_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_kbd_lev_scl_lft_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_kbd_lev_scl_rht_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_osc_detune" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_kbd_rate_scaling" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_key_vel_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_amp_mod_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_operator_output_level" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_osc_freq_coarse" ; + pset:value 1.0 + ] , [ + lv2:symbol "op4_osc_mode" ; + pset:value 0.0 + ] , [ + lv2:symbol "op4_osc_freq_fine" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_eg_rate_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op3_eg_rate_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op3_eg_rate_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op3_eg_rate_4" ; + pset:value 99.0 + ] , [ + lv2:symbol "op3_eg_level_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op3_eg_level_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op3_eg_level_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op3_eg_level_4" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_kbd_lev_scl_brk_pt" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_kbd_lev_scl_lft_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_kbd_lev_scl_rht_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_kbd_lev_scl_lft_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_kbd_lev_scl_rht_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_osc_detune" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_kbd_rate_scaling" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_key_vel_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_amp_mod_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_operator_output_level" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_osc_freq_coarse" ; + pset:value 1.0 + ] , [ + lv2:symbol "op3_osc_mode" ; + pset:value 0.0 + ] , [ + lv2:symbol "op3_osc_freq_fine" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_eg_rate_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op2_eg_rate_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op2_eg_rate_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op2_eg_rate_4" ; + pset:value 99.0 + ] , [ + lv2:symbol "op2_eg_level_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op2_eg_level_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op2_eg_level_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op2_eg_level_4" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_kbd_lev_scl_brk_pt" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_kbd_lev_scl_lft_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_kbd_lev_scl_rht_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_kbd_lev_scl_lft_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_kbd_lev_scl_rht_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_osc_detune" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_kbd_rate_scaling" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_key_vel_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_amp_mod_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_operator_output_level" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_osc_freq_coarse" ; + pset:value 1.0 + ] , [ + lv2:symbol "op2_osc_mode" ; + pset:value 0.0 + ] , [ + lv2:symbol "op2_osc_freq_fine" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_eg_rate_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op1_eg_rate_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op1_eg_rate_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op1_eg_rate_4" ; + pset:value 99.0 + ] , [ + lv2:symbol "op1_eg_level_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "op1_eg_level_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "op1_eg_level_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "op1_eg_level_4" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_kbd_lev_scl_brk_pt" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_kbd_lev_scl_lft_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_kbd_lev_scl_rht_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_kbd_lev_scl_lft_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_kbd_lev_scl_rht_curve" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_osc_detune" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_kbd_rate_scaling" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_key_vel_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_amp_mod_sensitivity" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_operator_output_level" ; + pset:value 99.0 + ] , [ + lv2:symbol "op1_osc_freq_coarse" ; + pset:value 1.0 + ] , [ + lv2:symbol "op1_osc_mode" ; + pset:value 0.0 + ] , [ + lv2:symbol "op1_osc_freq_fine" ; + pset:value 0.0 + ] , [ + lv2:symbol "pitch_eg_rate_1" ; + pset:value 99.0 + ] , [ + lv2:symbol "pitch_eg_rate_2" ; + pset:value 99.0 + ] , [ + lv2:symbol "pitch_eg_rate_3" ; + pset:value 99.0 + ] , [ + lv2:symbol "pitch_eg_rate_4" ; + pset:value 99.0 + ] , [ + lv2:symbol "pitch_eg_level_1" ; + pset:value 50.0 + ] , [ + lv2:symbol "pitch_eg_level_2" ; + pset:value 50.0 + ] , [ + lv2:symbol "pitch_eg_level_3" ; + pset:value 50.0 + ] , [ + lv2:symbol "pitch_eg_level_4" ; + pset:value 50.0 + ] , [ + lv2:symbol "algorithm_num" ; + pset:value 1.0 + ] , [ + lv2:symbol "feedback" ; + pset:value 0.0 + ] , [ + lv2:symbol "oscillator_sync" ; + pset:value 1.0 + ] , [ + lv2:symbol "lfo_speed" ; + pset:value 35.0 + ] , [ + lv2:symbol "lfo_delay" ; + pset:value 0.0 + ] , [ + lv2:symbol "lfo_pitch_mod_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "lfo_amp_mod_depth" ; + pset:value 0.0 + ] , [ + lv2:symbol "pitch_mod_sensitivity" ; + pset:value 3.0 + ] , [ + lv2:symbol "lfo_waveform" ; + pset:value 0.0 + ] , [ + lv2:symbol "lfo_sync" ; + pset:value 1.0 + ] , [ + lv2:symbol "transpose" ; + pset:value 24.0 + ] . diff --git a/src/user-presets/dexed_lv2-INIT_VOICE.lv2/manifest.ttl b/src/user-presets/dexed_lv2-INIT_VOICE.lv2/manifest.ttl new file mode 100644 index 0000000..ffd7b8e --- /dev/null +++ b/src/user-presets/dexed_lv2-INIT_VOICE.lv2/manifest.ttl @@ -0,0 +1,13 @@ +@prefix atom: . +@prefix lv2: . +@prefix pset: . +@prefix rdf: . +@prefix rdfs: . +@prefix state: . +@prefix xsd: . + + + lv2:appliesTo ; + a pset:Preset ; + rdfs:label "INIT_VOICE" ; + rdfs:seeAlso .