Subversion Repositories svn.mios32

Compare Revisions

Ignore whitespace Rev 1959 → Rev 1960

/trunk/apps/processing/midibox_cv_v2/tools/curve_c_charge.pl
8,7 → 8,8
#
 
 
my $tau = 100.0;
my $tau = 100.0; # exp1
#my $tau = 500.0; # exp2
my $steps = 1024;
my $y_max = 65535.0;
my $x_offset = 15.0;
/trunk/apps/processing/midibox_cv_v2/lemur/MIDIbox_CV_V2.jzml
104,13 → 104,13
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ARP_T2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Container" text="Setup" x="82" y="25" width="718" height="466" id="30" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Text" text="OctTranspT" x="76" y="314" width="100" height="25" id="12" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Oct.Transp.">
<WINDOW class="Text" text="OctTranspT" x="152" y="310" width="100" height="25" id="12" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Oct.Transp.">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/OctTranspT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="SemiTranspT" x="186" y="314" width="100" height="25" id="14" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="SemiTransp.">
<WINDOW class="Text" text="SemiTranspT" x="262" y="310" width="100" height="25" id="14" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="SemiTransp.">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/SemiTranspT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="SemiTransp" x="186" y="340" width="100" height="100" id="13" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<WINDOW class="Knob" text="SemiTransp" x="262" y="336" width="100" height="100" id="13" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.500000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Setup/SemiTransp/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/SemiTransp/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/SemiTransp/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
121,7 → 121,7
 
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/Setup/SemiTransp/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Knob" text="OctTransp" x="76" y="340" width="100" height="100" id="11" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<WINDOW class="Knob" text="OctTransp" x="152" y="336" width="100" height="100" id="11" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.500000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Setup/OctTransp/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/OctTransp/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/OctTransp/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
162,10 → 162,10
<SCRIPT name="action()" script="sendCVNRPN(0x0022, floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/Setup/SusKey/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="FinetuneT" x="296" y="314" width="100" height="25" id="45" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Finetune">
<WINDOW class="Text" text="FinetuneT" x="372" y="310" width="100" height="25" id="45" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Finetune">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/FinetuneT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Finetune" x="296" y="340" width="100" height="100" id="46" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<WINDOW class="Knob" text="Finetune" x="372" y="336" width="100" height="100" id="46" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.501961" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Setup/Finetune/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/Finetune/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/Finetune/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
191,10 → 191,10
++PortamentoMode.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/Setup/PortamentoModeInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="KeytrackT" x="406" y="314" width="100" height="25" id="50" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Keytrack">
<WINDOW class="Text" text="KeytrackT" x="482" y="310" width="100" height="25" id="50" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Keytrack">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/KeytrackT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Keytrack" x="406" y="340" width="100" height="100" id="51" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<WINDOW class="Knob" text="Keytrack" x="482" y="336" width="100" height="100" id="51" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.501961" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Setup/Keytrack/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/Keytrack/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/Keytrack/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
348,10 → 348,10
++AOUTCurve.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/Setup/AOUTCurveInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="PitchRangeT" x="516" y="314" width="100" height="25" id="74" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="PitchRange">
<WINDOW class="Text" text="PitchRangeT" x="592" y="310" width="100" height="25" id="74" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="PitchRange">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/PitchRangeT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="PitchRange" x="516" y="340" width="100" height="100" id="75" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<WINDOW class="Knob" text="PitchRange" x="592" y="336" width="100" height="100" id="75" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.083333" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Setup/PitchRange/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/PitchRange/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/PitchRange/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
362,7 → 362,7
 
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/Setup/PitchRange/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="InvertGate" x="48" y="235" width="60" height="48" id="76" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="Invert Gate" label_on="Invert Gate" outline="1">
<WINDOW class="CustomButton" text="InvertGate" x="9" y="235" width="60" height="48" id="76" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="Invert Gate" label_on="Invert Gate" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Setup/InvertGate/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/InvertGate/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x001a, floor(x));
398,19 → 398,19
<WINDOW class="Monitor" text="CCNumberM" x="424" y="241" width="39" height="34" id="86" state="245" group="0" font="tahoma,16,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=CCNumber.x*127" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/CCNumberM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Monitor" text="FinetuneM" x="324" y="372" width="44" height="34" id="89" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<WINDOW class="Monitor" text="FinetuneM" x="400" y="368" width="44" height="34" id="89" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Finetune.x*255-128" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/FinetuneM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Monitor" text="KeytrackM" x="434" y="372" width="44" height="34" id="90" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<WINDOW class="Monitor" text="KeytrackM" x="510" y="368" width="44" height="34" id="90" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Keytrack.x*255-128" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/KeytrackM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Monitor" text="PitchRangeM" x="544" y="372" width="44" height="34" id="91" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<WINDOW class="Monitor" text="PitchRangeM" x="620" y="368" width="44" height="34" id="91" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=PitchRange.x*24" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/PitchRangeM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Monitor" text="OctTranspM" x="104" y="372" width="44" height="34" id="87" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<WINDOW class="Monitor" text="OctTranspM" x="180" y="368" width="44" height="34" id="87" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=OctTransp.x*16-8" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/OctTranspM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Monitor" text="SemiTranspM" x="214" y="372" width="44" height="34" id="88" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<WINDOW class="Monitor" text="SemiTranspM" x="290" y="368" width="44" height="34" id="88" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=SemiTransp.x*16-8" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/SemiTranspM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="PortamentoMode" x="516" y="150" width="132" height="50" id="47" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="Portamento,Glide,Glissando">
428,57 → 428,37
<SCRIPT name="action()" script="sendCVNRPN(0x0018, floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/Setup/AOUTCurve/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="ForceToScale" x="81" y="235" width="60" height="48" id="92" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="Force Scale" label_on="Force Scale" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Setup/ForceToScale/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/ForceToScale/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0024, floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/Setup/ForceToScale/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="SetupT" x="0" y="25" width="74" height="32" id="31" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Setup">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/SetupT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<WINDOW class="Text" text="ExtGateT" x="27" y="309" width="100" height="25" id="93" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Ext.Gate Thrs.">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/ExtGateT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Container" text="Scope" x="812" y="25" width="137" height="466" id="32" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Text" text="ScopeT" x="0" y="11" width="121" height="25" id="41" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Scope">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/ScopeT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<WINDOW class="Knob" text="ExtGate" x="27" y="335" width="100" height="100" id="94" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Setup/ExtGate/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/ExtGate/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/ExtGate/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/ExtGate/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/ExtGate/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/ExtGate/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0025, floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/Setup/ExtGate/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="OversamplingT" x="0" y="106" width="121" height="25" id="48" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Oversampling">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/OversamplingT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<WINDOW class="Monitor" text="ExtTriggerM" x="55" y="368" width="44" height="34" id="95" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=ExtGate.x*255" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Setup/ExtTriggerM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Oversampling" x="10" y="131" width="100" height="100" id="49" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32202,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.031373" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Scope/Oversampling/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/Oversampling/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/Oversampling/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/Oversampling/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/Oversampling/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/Oversampling/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0041, floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/Scope/Oversampling/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="OversamplingM" x="38" y="163" width="44" height="34" id="78" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Oversampling.x*255" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/OversamplingM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<WINDOW class="Text" text="SetupT" x="0" y="25" width="74" height="32" id="31" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Setup">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/SetupT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="TriggerLevel" x="10" y="276" width="100" height="100" id="79" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32202,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.500000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Scope/TriggerLevel/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/TriggerLevel/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/TriggerLevel/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/TriggerLevel/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/TriggerLevel/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/TriggerLevel/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0042, floor(x*100));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/Scope/TriggerLevel/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="TriggerLevelM" x="38" y="308" width="44" height="34" id="80" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=TriggerLevel.x*100" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/TriggerLevelM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="TriggerLevelT" x="0" y="251" width="121" height="25" id="81" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Trigger Level">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Scope/TriggerLevelT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="ScopeSelect" x="9" y="36" width="101" height="50" id="47" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="Off,Scope 1,Scope 2,Scope 3,Scope 4">
<PARAM name="selection=" value="1.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Scope/ScopeSelect/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0040, floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/Scope/ScopeSelect/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
</WINDOW>
</WINDOW>
<WINDOW class="Tab" text="LFO" x="0" y="0" width="958" height="676" id="1" state="0" group="0" font="tahoma,11,0" >
<WINDOW class="Container" text="LFO1" x="119" y="41" width="739" height="287" id="28" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Knob" text="Rate" x="110" y="26" width="100" height="100" id="5" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.976471" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/LFO1/Rate/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="x=" value="0.250980" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/LFO1/Rate/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/LFO1/Rate/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/LFO1/Rate/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/LFO1/Rate/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
488,7 → 468,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/LFO1/Rate/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="RateM2" x="138" y="58" width="44" height="34" id="89" state="244" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=" value="'1/8'" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/LFO1/RateM2/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=" value="'6 bars'" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/LFO1/RateM2/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Amplitude" x="0" y="26" width="100" height="100" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="0" type="1" unit="" value="0">
<PARAM name="x=" value="0.752941" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/LFO1/Amplitude/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
1026,7 → 1006,7
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Delay/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Delay/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Delay/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0202, floor(x*255));
<SCRIPT name="action()" script="sendCVNRPN(0x0203, floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/Delay/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="DelayT2" x="110" y="0" width="100" height="25" id="6" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Delay">
1045,7 → 1025,7
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Attack/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Attack/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Attack/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0203, floor(x*255));
<SCRIPT name="action()" script="sendCVNRPN(0x0204, floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/Attack/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="AttackT" x="222" y="0" width="100" height="25" id="12" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Attack">
1058,7 → 1038,7
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Decay/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Decay/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Decay/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0204, floor(x*255));
<SCRIPT name="action()" script="sendCVNRPN(0x0205, floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/Decay/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="DecayT" x="333" y="0" width="100" height="25" id="14" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Decay">
1139,7 → 1119,7
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Sustain/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Sustain/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Sustain/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0205, floor(x*255));
<SCRIPT name="action()" script="sendCVNRPN(0x0206, floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/Sustain/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="SustainT" x="443" y="0" width="100" height="25" id="29" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Sustain">
1152,30 → 1132,30
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Release/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Release/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/Release/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0206, floor(x*255));
<SCRIPT name="action()" script="sendCVNRPN(0x0207, floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/Release/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="ReleaseT" x="553" y="0" width="100" height="25" id="31" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Release">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/ReleaseT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="CurveT" x="666" y="0" width="107" height="25" id="33" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Curve">
<WINDOW class="Text" text="CurveT" x="666" y="0" width="107" height="25" id="33" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Curve Pos/Neg">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/CurveT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CurveDec" x="773" y="41" width="48" height="48" id="35" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV1/CurveDec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/CurveDec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Curve.selection > 0 )
--Curve.selection;
<WINDOW class="CustomButton" text="CurvePosDec" x="773" y="14" width="48" height="48" id="35" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV1/CurvePosDec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/CurvePosDec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && CurvePos.selection > 0 )
--CurvePos.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/CurveDec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/CurvePosDec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CurveInc" x="773" y="71" width="48" height="48" id="36" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV1/CurveInc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/CurveInc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Curve, 'items');
if( x && Curve.selection < (sizeof(items)-1) )
++Curve.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/CurveInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<WINDOW class="CustomButton" text="CurvePosInc" x="773" y="44" width="48" height="48" id="36" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV1/CurvePosInc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/CurvePosInc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(CurvePos, 'items');
if( x && CurvePos.selection < (sizeof(items)-1) )
++CurvePos.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/CurvePosInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Fast" x="605" y="166" width="48" height="48" id="37" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="Fast" label_on="Fast" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV1/Fast/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
1233,16 → 1213,53
 
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/ResetDepths/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Curve" x="666" y="55" width="107" height="50" id="34" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="Linear,Exp,Custom1,Custom2,Custom3,Custom4">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV1/Curve/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<WINDOW class="LemurMenu" text="CurvePos" x="666" y="27" width="107" height="50" id="34" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="Linear,Exp1,Exp1Inv,Exp2,Exp2Inv">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV1/CurvePos/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0201, floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/Curve/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/CurvePos/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="CurveNeg" x="666" y="90" width="107" height="50" id="102" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="Linear,Exp1,Exp1Inv,Exp2,Exp2Inv">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV1/CurveNeg/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0202, floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/CurveNeg/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CurveNegDec" x="773" y="79" width="48" height="48" id="103" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV1/CurveNegDec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/CurveNegDec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && CurveNeg.selection > 0 )
--CurveNeg.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/CurveNegDec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CurveNegInc" x="773" y="109" width="48" height="48" id="104" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV1/CurveNegInc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1/CurveNegInc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(CurveNeg, 'items');
if( x && CurveNeg.selection < (sizeof(items)-1) )
++CurveNeg.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV1/CurveNegInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
</WINDOW>
<WINDOW class="Text" text="ENV1_T" x="0" y="0" width="73" height="32" id="29" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="ENV1">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV1_T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Container" text="ENV2" x="81" y="299" width="854" height="377" id="30" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="CustomButton" text="CurveNegDec" x="397" y="291" width="48" height="48" id="126" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/CurveNegDec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/CurveNegDec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && CurveNeg.selection > 0 )
--CurveNeg.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/CurveNegDec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CurveNegInc" x="397" y="322" width="48" height="48" id="127" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/CurveNegInc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/CurveNegInc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(CurveNeg, 'items');
if( x && CurveNeg.selection < (sizeof(items)-1) )
++CurveNeg.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/CurveNegInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Knob" text="Amplitude" x="0" y="26" width="100" height="100" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.752941" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/Amplitude/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/Amplitude/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
1256,13 → 1273,13
<WINDOW class="Text" text="AmplitudeT" x="0" y="0" width="100" height="25" id="1" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Amplitude">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/AmplitudeT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="ClkSync" x="14" y="305" width="48" height="48" id="4" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="Clk Sync" label_on="Clk Sync" outline="1">
<WINDOW class="CustomButton" text="ClkSync" x="0" y="305" width="48" height="48" id="4" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="Clk Sync" label_on="Clk Sync" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/ClkSync/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/ClkSync/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0290, floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/ClkSync/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="KeySync" x="71" y="305" width="48" height="48" id="8" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="Key Sync" label_on="Key Sync" outline="1">
<WINDOW class="CustomButton" text="KeySync" x="52" y="305" width="48" height="48" id="8" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="Key Sync" label_on="Key Sync" outline="1">
<PARAM name="x=" value="1.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/KeySync/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/KeySync/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0291, floor(x));
1361,30 → 1378,30
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/Rate/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/Rate/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/Rate/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0283, floor(x*255));" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/Rate/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0284, floor(x*255));" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/Rate/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="RateT" x="222" y="0" width="100" height="25" id="37" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Rate">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/RateT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0283, floor(x*255));" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/RateT/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CurveDec" x="364" y="291" width="48" height="48" id="41" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/CurveDec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/CurveDec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Curve.selection > 0 )
--Curve.selection;
<WINDOW class="CustomButton" text="CurvePosDec" x="283" y="291" width="48" height="48" id="41" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/CurvePosDec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/CurvePosDec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && CurvePos.selection > 0 )
--CurvePos.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/CurveDec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/CurvePosDec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CurveInc" x="364" y="322" width="48" height="48" id="42" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/CurveInc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/CurveInc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Curve, 'items');
if( x && Curve.selection < (sizeof(items)-1) )
++Curve.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/CurveInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<WINDOW class="CustomButton" text="CurvePosInc" x="283" y="322" width="48" height="48" id="42" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/CurvePosInc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/CurvePosInc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(CurvePos, 'items');
if( x && CurvePos.selection < (sizeof(items)-1) )
++CurvePos.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/CurvePosInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="CurveT2" x="257" y="281" width="107" height="25" id="43" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Curve">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/CurveT2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<WINDOW class="Text" text="CurvePosT" x="208" y="281" width="86" height="25" id="43" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Curve Pos">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/CurvePosT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Steps" x="440" y="21" width="70" height="70" id="44" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="0" type="0" unit="" value="0">
<PARAM name="x=" value="1.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/Steps/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
1430,21 → 1447,21
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/OffsetT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Offset" x="110" y="27" width="100" height="100" id="49" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.501961" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/Offset/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/Offset/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/Offset/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/Offset/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/Offset/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/Offset/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/Offset/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0282, floor(x*255));" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/Offset/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0283, floor(x*255));" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/Offset/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Fast" x="126" y="305" width="48" height="48" id="50" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="Fast" label_on="Fast" outline="1">
<WINDOW class="CustomButton" text="Fast" x="104" y="305" width="48" height="48" id="50" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="Fast" label_on="Fast" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/Fast/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/Fast/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0293, floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/Fast/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Oneshot" x="181" y="305" width="48" height="48" id="51" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="One Shot" label_on="One Shot" outline="1">
<WINDOW class="CustomButton" text="Oneshot" x="156" y="305" width="48" height="48" id="51" state="241" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="One Shot" label_on="One Shot" outline="1">
<PARAM name="x=" value="1.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/Oneshot/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/Oneshot/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0292, floor(x));
1557,18 → 1574,26
<WINDOW class="Monitor" text="LevelM16" x="810" y="0" width="20" height="23" id="125" state="245" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Level.x[15]*255-128" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/LevelM16/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Curve" x="257" y="305" width="107" height="50" id="40" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="Linear,Exp,Custom1,Custom2,Custom3,Custom4">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/Curve/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<WINDOW class="LemurMenu" text="CurvePos" x="208" y="305" width="86" height="50" id="40" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="Linear,Exp1,Exp1Inv,Exp2,Exp2Inv">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/CurvePos/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0281, floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/Curve/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/CurvePos/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="CurveNegT" x="322" y="281" width="86" height="25" id="128" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Curve Neg">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2/CurveNegT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="CurveNeg" x="322" y="305" width="86" height="50" id="129" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="Linear,Exp1,Exp1Inv,Exp2,Exp2Inv">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/ENV2/CurveNeg/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendCVNRPN(0x0282, floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/ENV2/CurveNeg/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
</WINDOW>
<WINDOW class="Text" text="ENV2_T" x="0" y="299" width="73" height="32" id="31" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="ENV2">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/ENV2_T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
</WINDOW>
<WINDOW class="Tab" text="MOD" x="0" y="0" width="958" height="676" id="3" state="0" group="0" font="tahoma,11,0" >
<WINDOW class="Container" text="MOD1" x="103" y="12" width="818" height="151" id="28" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Container" text="MOD1" x="73" y="12" width="885" height="151" id="28" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Knob" text="Depth" x="0" y="26" width="100" height="100" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.752941" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Depth/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Depth/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
1583,33 → 1608,33
<WINDOW class="Text" text="DepthT" x="0" y="0" width="100" height="25" id="1" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Depth">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/DepthT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="SourcesT" x="179" y="0" width="157" height="25" id="6" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Sources">
<WINDOW class="Text" text="SourcesT" x="280" y="0" width="157" height="25" id="6" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Sources">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/SourcesT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="OperationT" x="396" y="0" width="74" height="25" id="14" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Operation">
<WINDOW class="Text" text="OperationT" x="485" y="0" width="74" height="25" id="14" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Operation">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/OperationT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="DestinationsT" x="517" y="0" width="165" height="25" id="29" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Destinations">
<WINDOW class="Text" text="DestinationsT" x="606" y="0" width="165" height="25" id="29" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Destinations">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/DestinationsT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="InvertT" x="743" y="0" width="50" height="25" id="39" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Invert">
<WINDOW class="Text" text="InvertT" x="819" y="0" width="50" height="25" id="39" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Invert">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/InvertT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Inv1" x="743" y="25" width="48" height="48" id="40" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<WINDOW class="CustomButton" text="Inv1" x="819" y="25" width="48" height="48" id="40" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Inv1/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Inv1/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 0;
sendCVNRPN(floor(0x0307 + mod*0x10), floor(x));
sendCVNRPN(floor(0x0308 + mod*0x10), floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Inv1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Inv2" x="743" y="78" width="48" height="48" id="41" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="2" label_on="2" outline="1">
<WINDOW class="CustomButton" text="Inv2" x="819" y="78" width="48" height="48" id="41" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="2" label_on="2" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Inv2/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Inv2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 0;
sendCVNRPN(floor(0x0309 + mod*0x10), floor(x));
sendCVNRPN(floor(0x030a + mod*0x10), floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Inv2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src1Dec" x="336" y="9" width="48" height="48" id="43" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src1Dec" x="437" y="9" width="48" height="48" id="43" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Src1Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Src1Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Src1.selection > 0 )
1617,7 → 1642,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Src1Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src2Inc" x="336" y="101" width="48" height="48" id="47" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src2Inc" x="437" y="101" width="48" height="48" id="47" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Src2Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Src2Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Src2, 'items');
1625,7 → 1650,7
++Src2.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Src2Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src1Inc" x="336" y="41" width="48" height="48" id="44" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src1Inc" x="437" y="41" width="48" height="48" id="44" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Src1Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Src1Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Src1, 'items');
1633,7 → 1658,7
++Src1.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Src1Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src2Dec" x="336" y="71" width="48" height="48" id="46" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src2Dec" x="437" y="71" width="48" height="48" id="46" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Src2Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Src2Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Src2.selection > 0 )
1641,7 → 1666,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Src2Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="OPDec" x="470" y="41" width="48" height="48" id="50" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="OPDec" x="559" y="41" width="48" height="48" id="50" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/OPDec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/OPDec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && OP.selection > 0 )
1649,7 → 1674,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/OPDec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="OPInc" x="470" y="73" width="48" height="48" id="51" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="OPInc" x="559" y="73" width="48" height="48" id="51" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/OPInc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/OPInc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(OP, 'items');
1657,7 → 1682,7
++OP.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/OPInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst1Dec" x="682" y="9" width="48" height="48" id="53" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst1Dec" x="771" y="9" width="48" height="48" id="53" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Dst1Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Dst1Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Dst1.selection > 0 )
1665,7 → 1690,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Dst1Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst1Inc" x="682" y="41" width="48" height="48" id="55" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst1Inc" x="771" y="41" width="48" height="48" id="55" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Dst1Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Dst1Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Dst1, 'items');
1673,7 → 1698,7
++Dst1.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Dst1Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst2Dec" x="681" y="71" width="48" height="48" id="57" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst2Dec" x="770" y="71" width="48" height="48" id="57" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Dst2Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Dst2Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Dst2.selection > 0 )
1681,7 → 1706,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Dst2Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst2Inc" x="681" y="101" width="48" height="48" id="58" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst2Inc" x="770" y="101" width="48" height="48" id="58" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Dst2Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Dst2Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Dst2, 'items');
1689,12 → 1714,12
++Dst2.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Dst2Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV1" x="122" y="25" width="48" height="48" id="59" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<WINDOW class="CustomButton" text="CV1" x="223" y="25" width="48" height="48" id="59" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/CV1/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/CV1/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="cv=" value="0.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/CV1/cv" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="4143,12079,4143" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="cv=" value="0" send="1" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/CV1/cv" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="4143,12079,4143" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 0;
sendCVNRPN(floor(0x0302 + mod*0x10), floor(cv));
sendCVNRPN(floor(0x0303 + mod*0x10), floor(cv));
" trigger_script="cv" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/CV1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="pressed()" script="if( x ) {
if( ++cv >= 8 )
1715,15 → 1740,15
setattribute(CV1, 'label_off', label); //floor(cv+1));
" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/MOD1/CV1/update" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="CVT" x="122" y="0" width="50" height="25" id="61" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="CV">
<WINDOW class="Text" text="CVT" x="223" y="0" width="50" height="25" id="61" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="CV">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/CVT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV2" x="122" y="78" width="48" height="48" id="62" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="3" label_on="3" outline="1">
<WINDOW class="CustomButton" text="CV2" x="223" y="78" width="48" height="48" id="62" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/CV2/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/CV2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="cv=" value="2.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/CV2/cv" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="4143,12079,4143" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 0;
sendCVNRPN(floor(0x0304 + mod*0x10), floor(cv));
sendCVNRPN(floor(0x0305 + mod*0x10), floor(cv));
" trigger_script="cv" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/CV2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="pressed()" script="if( x ) {
if( ++cv >= 8 )
1747,44 → 1772,61
<WINDOW class="Monitor" text="DepthM" x="28" y="58" width="44" height="34" id="90" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Depth.x*255-128" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/DepthM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Src2" x="179" y="89" width="157" height="35" id="63" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<WINDOW class="LemurMenu" text="Src2" x="280" y="89" width="157" height="35" id="63" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Src2/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 0;
sendCVNRPN(floor(0x0303 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0304 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Src2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Src1" x="179" y="34" width="157" height="35" id="42" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<WINDOW class="LemurMenu" text="Src1" x="280" y="34" width="157" height="35" id="42" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Src1/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 0;
sendCVNRPN(floor(0x0301 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0302 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Src1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="OP" x="396" y="61" width="74" height="35" id="49" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,SRC1,SRC2,+,-,*,XOR,OR,AND,MIN,MAX,<,>,=,S&H">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/OP/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 0;
sendCVNRPN(floor(0x0305 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/OP/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Dst2" x="518" y="89" width="164" height="35" id="64" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,Pitch,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<WINDOW class="LemurMenu" text="Dst2" x="607" y="89" width="164" height="35" id="64" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,CV,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Dst2/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 0;
sendCVNRPN(floor(0x0308 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0309 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Dst2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Dst1" x="518" y="34" width="164" height="35" id="52" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,Pitch,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<WINDOW class="LemurMenu" text="Dst1" x="607" y="34" width="164" height="35" id="52" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,CV,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Dst1/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 0;
sendCVNRPN(floor(0x0306 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0307 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Dst1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Knob" text="Offset" x="109" y="26" width="100" height="100" id="91" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.501961" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/Offset/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Offset/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Offset/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Offset/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Offset/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/Offset/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 0;
sendCVNRPN(floor(0x0301 + mod*0x10), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/Offset/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="MOD1_T" x="22" y="12" width="73" height="32" id="29" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="MOD1">
<WINDOW class="Text" text="OffsetT" x="109" y="0" width="100" height="25" id="92" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Offset">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/OffsetT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Monitor" text="OffsetM" x="138" y="58" width="44" height="34" id="93" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Offset.x*255-128" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1/OffsetM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="OP" x="485" y="61" width="74" height="35" id="49" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,SRC1,SRC2,+,-,*,XOR,OR,AND,MIN,MAX,<,>,=,S&H,FTS">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD1/OP/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 0;
sendCVNRPN(floor(0x0306 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD1/OP/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
</WINDOW>
<WINDOW class="Text" text="MOD1_T" x="0" y="12" width="73" height="32" id="29" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="MOD1">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1_T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="MOD1_T2" x="22" y="175" width="73" height="32" id="30" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="MOD2">
<WINDOW class="Text" text="MOD1_T2" x="0" y="175" width="73" height="32" id="30" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="MOD2">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1_T2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Container" text="MOD2" x="103" y="175" width="818" height="151" id="31" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Container" text="MOD2" x="73" y="175" width="885" height="151" id="31" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Knob" text="Depth" x="0" y="26" width="100" height="100" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.752941" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Depth/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Depth/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
1799,33 → 1841,33
<WINDOW class="Text" text="DepthT" x="0" y="0" width="100" height="25" id="1" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Depth">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/DepthT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="SourcesT" x="179" y="0" width="157" height="25" id="6" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Sources">
<WINDOW class="Text" text="SourcesT" x="280" y="0" width="157" height="25" id="6" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Sources">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/SourcesT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="OperationT" x="396" y="0" width="74" height="25" id="14" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Operation">
<WINDOW class="Text" text="OperationT" x="485" y="0" width="74" height="25" id="14" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Operation">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/OperationT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="DestinationsT" x="517" y="0" width="165" height="25" id="29" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Destinations">
<WINDOW class="Text" text="DestinationsT" x="606" y="0" width="165" height="25" id="29" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Destinations">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/DestinationsT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="InvertT" x="743" y="0" width="50" height="25" id="39" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Invert">
<WINDOW class="Text" text="InvertT" x="819" y="0" width="50" height="25" id="39" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Invert">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/InvertT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Inv1" x="743" y="25" width="48" height="48" id="40" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<WINDOW class="CustomButton" text="Inv1" x="819" y="25" width="48" height="48" id="40" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Inv1/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Inv1/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 1;
sendCVNRPN(floor(0x0307 + mod*0x10), floor(x));
sendCVNRPN(floor(0x0308 + mod*0x10), floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Inv1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Inv2" x="743" y="78" width="48" height="48" id="41" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="2" label_on="2" outline="1">
<WINDOW class="CustomButton" text="Inv2" x="819" y="78" width="48" height="48" id="41" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="2" label_on="2" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Inv2/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Inv2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 1;
sendCVNRPN(floor(0x0309 + mod*0x10), floor(x));
sendCVNRPN(floor(0x030a + mod*0x10), floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Inv2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src1Dec" x="336" y="9" width="48" height="48" id="43" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src1Dec" x="437" y="9" width="48" height="48" id="43" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Src1Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Src1Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Src1.selection > 0 )
1833,7 → 1875,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Src1Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src2Inc" x="336" y="101" width="48" height="48" id="47" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src2Inc" x="437" y="101" width="48" height="48" id="47" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Src2Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Src2Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Src2, 'items');
1841,7 → 1883,7
++Src2.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Src2Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src1Inc" x="336" y="41" width="48" height="48" id="48" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src1Inc" x="437" y="41" width="48" height="48" id="48" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Src1Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Src1Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Src1, 'items');
1849,7 → 1891,7
++Src1.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Src1Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src2Dec" x="336" y="71" width="48" height="48" id="49" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src2Dec" x="437" y="71" width="48" height="48" id="49" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Src2Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Src2Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Src2.selection > 0 )
1857,7 → 1899,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Src2Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="OPDec" x="470" y="41" width="48" height="48" id="51" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="OPDec" x="559" y="41" width="48" height="48" id="51" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/OPDec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/OPDec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && OP.selection > 0 )
1865,7 → 1907,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/OPDec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="OPInc" x="470" y="73" width="48" height="48" id="52" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="OPInc" x="559" y="73" width="48" height="48" id="52" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/OPInc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/OPInc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(OP, 'items');
1873,7 → 1915,7
++OP.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/OPInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst1Dec" x="682" y="9" width="48" height="48" id="54" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst1Dec" x="771" y="9" width="48" height="48" id="54" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Dst1Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Dst1Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Dst1.selection > 0 )
1881,7 → 1923,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Dst1Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst1Inc" x="682" y="41" width="48" height="48" id="55" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst1Inc" x="771" y="41" width="48" height="48" id="55" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Dst1Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Dst1Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Dst1, 'items');
1889,7 → 1931,7
++Dst1.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Dst1Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst2Dec" x="681" y="71" width="48" height="48" id="57" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst2Dec" x="770" y="71" width="48" height="48" id="57" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Dst2Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Dst2Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Dst2.selection > 0 )
1897,7 → 1939,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Dst2Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst2Inc" x="681" y="101" width="48" height="48" id="58" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst2Inc" x="770" y="101" width="48" height="48" id="58" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Dst2Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Dst2Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Dst2, 'items');
1905,12 → 1947,12
++Dst2.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Dst2Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV1" x="122" y="25" width="48" height="48" id="59" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<WINDOW class="CustomButton" text="CV1" x="223" y="25" width="48" height="48" id="59" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/CV1/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/CV1/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="cv=" value="0.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/CV1/cv" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="4143,12079,4143" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 1;
sendCVNRPN(floor(0x0302 + mod*0x10), floor(cv));
sendCVNRPN(floor(0x0303 + mod*0x10), floor(cv));
" trigger_script="cv" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/CV1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="pressed()" script="if( x ) {
if( ++cv >= 8 )
1931,15 → 1973,15
setattribute(CV1, 'label_off', label); //floor(cv+1));
" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/MOD2/CV1/update" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="CVT" x="122" y="0" width="50" height="25" id="61" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="CV">
<WINDOW class="Text" text="CVT" x="223" y="0" width="50" height="25" id="61" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="CV">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/CVT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV2" x="122" y="78" width="48" height="48" id="62" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="3" label_on="3" outline="1">
<WINDOW class="CustomButton" text="CV2" x="223" y="78" width="48" height="48" id="62" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/CV2/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/CV2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="cv=" value="2.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/CV2/cv" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="4143,12079,4143" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 1;
sendCVNRPN(floor(0x0304 + mod*0x10), floor(cv));
sendCVNRPN(floor(0x0305 + mod*0x10), floor(cv));
" trigger_script="cv" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/CV2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="pressed()" script="if( x ) {
if( ++cv >= 8 )
1963,41 → 2005,58
<WINDOW class="Monitor" text="DepthM" x="28" y="58" width="44" height="34" id="90" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Depth.x*255-128" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/DepthM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Src2" x="179" y="89" width="157" height="35" id="63" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<WINDOW class="LemurMenu" text="Src2" x="280" y="89" width="157" height="35" id="63" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Src2/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 1;
sendCVNRPN(floor(0x0303 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0304 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Src2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Src1" x="179" y="34" width="157" height="35" id="42" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<WINDOW class="LemurMenu" text="Src1" x="280" y="34" width="157" height="35" id="42" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Src1/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 1;
sendCVNRPN(floor(0x0301 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0302 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Src1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="OP" x="396" y="61" width="74" height="35" id="50" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,SRC1,SRC2,+,-,*,XOR,OR,AND,MIN,MAX,<,>,=,S&H">
<WINDOW class="LemurMenu" text="OP" x="485" y="61" width="74" height="35" id="50" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,SRC1,SRC2,+,-,*,XOR,OR,AND,MIN,MAX,<,>,=,S&H,FTS">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/OP/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 1;
sendCVNRPN(floor(0x0305 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0306 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/OP/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Dst2" x="518" y="89" width="164" height="35" id="64" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,Pitch,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<WINDOW class="LemurMenu" text="Dst2" x="607" y="89" width="164" height="35" id="64" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,CV,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Dst2/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 1;
sendCVNRPN(floor(0x0308 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0309 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Dst2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Dst1" x="518" y="34" width="164" height="35" id="53" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,Pitch,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<WINDOW class="LemurMenu" text="Dst1" x="607" y="34" width="164" height="35" id="53" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,CV,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Dst1/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 1;
sendCVNRPN(floor(0x0306 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0307 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Dst1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Knob" text="Offset" x="109" y="26" width="100" height="100" id="91" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.501961" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD2/Offset/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Offset/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Offset/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Offset/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Offset/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/Offset/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 1;
sendCVNRPN(floor(0x0301 + mod*0x10), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD2/Offset/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="MOD1_T3" x="22" y="339" width="73" height="32" id="32" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="MOD3">
<WINDOW class="Monitor" text="OffsetM" x="138" y="58" width="44" height="34" id="92" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Offset.x*255-128" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/OffsetM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="OffsetT" x="109" y="0" width="100" height="25" id="93" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Offset">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD2/OffsetT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
</WINDOW>
<WINDOW class="Text" text="MOD1_T3" x="0" y="339" width="73" height="32" id="32" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="MOD3">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1_T3/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Container" text="MOD3" x="103" y="339" width="818" height="151" id="33" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Container" text="MOD3" x="73" y="339" width="885" height="151" id="33" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Knob" text="Depth" x="0" y="26" width="100" height="100" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.752941" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Depth/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Depth/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
2012,33 → 2071,33
<WINDOW class="Text" text="DepthT" x="0" y="0" width="100" height="25" id="1" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Depth">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/DepthT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="SourcesT" x="179" y="0" width="157" height="25" id="6" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Sources">
<WINDOW class="Text" text="SourcesT" x="280" y="0" width="157" height="25" id="6" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Sources">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/SourcesT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="OperationT" x="396" y="0" width="74" height="25" id="14" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Operation">
<WINDOW class="Text" text="OperationT" x="485" y="0" width="74" height="25" id="14" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Operation">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/OperationT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="DestinationsT" x="517" y="0" width="165" height="25" id="29" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Destinations">
<WINDOW class="Text" text="DestinationsT" x="606" y="0" width="165" height="25" id="29" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Destinations">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/DestinationsT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="InvertT" x="743" y="0" width="50" height="25" id="39" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Invert">
<WINDOW class="Text" text="InvertT" x="819" y="0" width="50" height="25" id="39" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Invert">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/InvertT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Inv1" x="743" y="25" width="48" height="48" id="40" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Inv1/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<WINDOW class="CustomButton" text="Inv1" x="819" y="25" width="48" height="48" id="40" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="1.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Inv1/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Inv1/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 2;
sendCVNRPN(floor(0x0307 + mod*0x10), floor(x));
sendCVNRPN(floor(0x0308 + mod*0x10), floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Inv1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Inv2" x="743" y="78" width="48" height="48" id="41" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="2" label_on="2" outline="1">
<WINDOW class="CustomButton" text="Inv2" x="819" y="78" width="48" height="48" id="41" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="2" label_on="2" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Inv2/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Inv2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 2;
sendCVNRPN(floor(0x0309 + mod*0x10), floor(x));
sendCVNRPN(floor(0x030a + mod*0x10), floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Inv2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src1Dec" x="336" y="9" width="48" height="48" id="43" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src1Dec" x="437" y="9" width="48" height="48" id="43" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Src1Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Src1Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Src1.selection > 0 )
2046,7 → 2105,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Src1Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src2Inc" x="336" y="101" width="48" height="48" id="47" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src2Inc" x="437" y="101" width="48" height="48" id="47" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Src2Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Src2Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Src2, 'items');
2054,7 → 2113,7
++Src2.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Src2Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src1Inc" x="336" y="41" width="48" height="48" id="48" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src1Inc" x="437" y="41" width="48" height="48" id="48" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Src1Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Src1Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Src1, 'items');
2062,7 → 2121,7
++Src1.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Src1Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src2Dec" x="336" y="71" width="48" height="48" id="49" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src2Dec" x="437" y="71" width="48" height="48" id="49" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Src2Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Src2Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Src2.selection > 0 )
2070,7 → 2129,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Src2Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="OPDec" x="470" y="41" width="48" height="48" id="51" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="OPDec" x="559" y="41" width="48" height="48" id="51" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/OPDec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/OPDec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && OP.selection > 0 )
2078,7 → 2137,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/OPDec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="OPInc" x="470" y="73" width="48" height="48" id="52" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="OPInc" x="559" y="73" width="48" height="48" id="52" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/OPInc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/OPInc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(OP, 'items');
2086,7 → 2145,7
++OP.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/OPInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst1Dec" x="682" y="9" width="48" height="48" id="54" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst1Dec" x="771" y="9" width="48" height="48" id="54" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Dst1Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Dst1Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Dst1.selection > 0 )
2094,7 → 2153,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Dst1Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst1Inc" x="682" y="41" width="48" height="48" id="55" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst1Inc" x="771" y="41" width="48" height="48" id="55" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Dst1Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Dst1Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Dst1, 'items');
2102,7 → 2161,7
++Dst1.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Dst1Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst2Dec" x="681" y="71" width="48" height="48" id="57" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst2Dec" x="770" y="71" width="48" height="48" id="57" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Dst2Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Dst2Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Dst2.selection > 0 )
2110,7 → 2169,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Dst2Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst2Inc" x="681" y="101" width="48" height="48" id="58" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst2Inc" x="770" y="101" width="48" height="48" id="58" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Dst2Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Dst2Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Dst2, 'items');
2118,12 → 2177,12
++Dst2.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Dst2Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV1" x="122" y="25" width="48" height="48" id="59" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<WINDOW class="CustomButton" text="CV1" x="223" y="25" width="48" height="48" id="59" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/CV1/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/CV1/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="cv=" value="0.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/CV1/cv" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="4143,12079,4143" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 2;
sendCVNRPN(floor(0x0302 + mod*0x10), floor(cv));
sendCVNRPN(floor(0x0303 + mod*0x10), floor(cv));
" trigger_script="cv" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/CV1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="pressed()" script="if( x ) {
if( ++cv >= 8 )
2144,15 → 2203,15
setattribute(CV1, 'label_off', label); //floor(cv+1));
" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/MOD3/CV1/update" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="CVT" x="122" y="0" width="50" height="25" id="61" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="CV">
<WINDOW class="Text" text="CVT" x="223" y="0" width="50" height="25" id="61" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="CV">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/CVT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV2" x="122" y="78" width="48" height="48" id="62" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="3" label_on="3" outline="1">
<WINDOW class="CustomButton" text="CV2" x="223" y="78" width="48" height="48" id="62" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/CV2/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/CV2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="cv=" value="2.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/CV2/cv" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="4143,12079,4143" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 2;
sendCVNRPN(floor(0x0304 + mod*0x10), floor(cv));
sendCVNRPN(floor(0x0305 + mod*0x10), floor(cv));
" trigger_script="cv" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/CV2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="pressed()" script="if( x ) {
if( ++cv >= 8 )
2176,41 → 2235,58
<WINDOW class="Monitor" text="DepthM" x="28" y="58" width="44" height="34" id="90" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Depth.x*255-128" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/DepthM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Src2" x="179" y="89" width="157" height="35" id="63" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<WINDOW class="LemurMenu" text="Src2" x="280" y="89" width="157" height="35" id="63" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Src2/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 2;
sendCVNRPN(floor(0x0303 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0304 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Src2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Src1" x="179" y="34" width="157" height="35" id="42" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<WINDOW class="LemurMenu" text="Src1" x="280" y="34" width="157" height="35" id="42" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Src1/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 2;
sendCVNRPN(floor(0x0301 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0302 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Src1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="OP" x="396" y="61" width="74" height="35" id="50" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,SRC1,SRC2,+,-,*,XOR,OR,AND,MIN,MAX,<,>,=,S&H">
<WINDOW class="LemurMenu" text="OP" x="485" y="61" width="74" height="35" id="50" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,SRC1,SRC2,+,-,*,XOR,OR,AND,MIN,MAX,<,>,=,S&H,FTS">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/OP/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 2;
sendCVNRPN(floor(0x0305 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0306 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/OP/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Dst2" x="518" y="89" width="164" height="35" id="64" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,Pitch,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<WINDOW class="LemurMenu" text="Dst2" x="607" y="89" width="164" height="35" id="64" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,CV,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Dst2/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 2;
sendCVNRPN(floor(0x0308 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0309 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Dst2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Dst1" x="518" y="34" width="164" height="35" id="53" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,Pitch,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<WINDOW class="LemurMenu" text="Dst1" x="607" y="34" width="164" height="35" id="53" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,CV,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Dst1/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 2;
sendCVNRPN(floor(0x0306 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0307 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Dst1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Knob" text="Offset" x="109" y="25" width="100" height="100" id="91" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.501961" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD3/Offset/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Offset/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Offset/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Offset/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Offset/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/Offset/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 2;
sendCVNRPN(floor(0x0301 + mod*0x10), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD3/Offset/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="MOD1_T4" x="22" y="501" width="73" height="32" id="34" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="MOD4">
<WINDOW class="Monitor" text="OffsetM" x="138" y="58" width="44" height="34" id="92" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Offset.x*255-128" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/OffsetM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="OffsetT" x="109" y="0" width="100" height="25" id="93" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Offset">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD3/OffsetT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
</WINDOW>
<WINDOW class="Text" text="MOD1_T4" x="0" y="501" width="73" height="32" id="34" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="MOD4">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD1_T4/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Container" text="MOD4" x="103" y="501" width="818" height="151" id="35" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Container" text="MOD4" x="73" y="501" width="885" height="151" id="35" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Knob" text="Depth" x="0" y="26" width="100" height="100" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.752941" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Depth/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Depth/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
2225,33 → 2301,33
<WINDOW class="Text" text="DepthT" x="0" y="0" width="100" height="25" id="1" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Depth">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/DepthT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="SourcesT" x="179" y="0" width="157" height="25" id="6" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Sources">
<WINDOW class="Text" text="SourcesT" x="280" y="0" width="157" height="25" id="6" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Sources">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/SourcesT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="OperationT" x="396" y="0" width="74" height="25" id="14" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Operation">
<WINDOW class="Text" text="OperationT" x="485" y="0" width="74" height="25" id="14" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Operation">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/OperationT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="DestinationsT" x="517" y="0" width="165" height="25" id="29" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Destinations">
<WINDOW class="Text" text="DestinationsT" x="606" y="0" width="165" height="25" id="29" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Destinations">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/DestinationsT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="InvertT" x="743" y="0" width="50" height="25" id="39" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Invert">
<WINDOW class="Text" text="InvertT" x="819" y="0" width="50" height="25" id="39" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Invert">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/InvertT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Inv1" x="743" y="25" width="48" height="48" id="40" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<WINDOW class="CustomButton" text="Inv1" x="819" y="25" width="48" height="48" id="40" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Inv1/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Inv1/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 3;
sendCVNRPN(floor(0x0307 + mod*0x10), floor(x));
sendCVNRPN(floor(0x0308 + mod*0x10), floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Inv1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Inv2" x="743" y="78" width="48" height="48" id="41" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="2" label_on="2" outline="1">
<WINDOW class="CustomButton" text="Inv2" x="819" y="78" width="48" height="48" id="41" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="30928,13304050" label_off="2" label_on="2" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Inv2/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Inv2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 3;
sendCVNRPN(floor(0x0309 + mod*0x10), floor(x));
sendCVNRPN(floor(0x030a + mod*0x10), floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Inv2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src1Dec" x="336" y="9" width="48" height="48" id="43" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src1Dec" x="437" y="9" width="48" height="48" id="43" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Src1Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Src1Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Src1.selection > 0 )
2259,7 → 2335,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Src1Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src2Inc" x="336" y="101" width="48" height="48" id="47" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src2Inc" x="437" y="101" width="48" height="48" id="47" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Src2Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Src2Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Src2, 'items');
2267,7 → 2343,7
++Src2.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Src2Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src1Inc" x="336" y="41" width="48" height="48" id="48" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src1Inc" x="437" y="41" width="48" height="48" id="48" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Src1Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Src1Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Src1, 'items');
2275,7 → 2351,7
++Src1.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Src1Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Src2Dec" x="336" y="71" width="48" height="48" id="49" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Src2Dec" x="437" y="71" width="48" height="48" id="49" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Src2Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Src2Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Src2.selection > 0 )
2283,7 → 2359,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Src2Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="OPDec" x="470" y="41" width="48" height="48" id="51" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="OPDec" x="559" y="41" width="48" height="48" id="51" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/OPDec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/OPDec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && OP.selection > 0 )
2291,7 → 2367,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/OPDec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="OPInc" x="470" y="73" width="48" height="48" id="52" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="OPInc" x="559" y="73" width="48" height="48" id="52" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/OPInc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/OPInc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(OP, 'items');
2299,7 → 2375,7
++OP.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/OPInc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst1Dec" x="682" y="9" width="48" height="48" id="54" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst1Dec" x="771" y="9" width="48" height="48" id="54" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Dst1Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Dst1Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Dst1.selection > 0 )
2307,7 → 2383,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Dst1Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst1Inc" x="682" y="41" width="48" height="48" id="55" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst1Inc" x="771" y="41" width="48" height="48" id="55" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Dst1Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Dst1Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Dst1, 'items');
2315,7 → 2391,7
++Dst1.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Dst1Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst2Dec" x="681" y="71" width="48" height="48" id="57" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst2Dec" x="770" y="71" width="48" height="48" id="57" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="7,7" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Dst2Dec/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Dst2Dec/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="if( x && Dst2.selection > 0 )
2323,7 → 2399,7
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Dst2Dec/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Dst2Inc" x="681" y="101" width="48" height="48" id="58" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<WINDOW class="CustomButton" text="Dst2Inc" x="770" y="101" width="48" height="48" id="58" state="241" group="0" font="tahoma,8,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="8,8" capture="1" color="1455616,32768" label_off="" label_on="" outline="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Dst2Inc/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Dst2Inc/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl items = getattribute(Dst2, 'items');
2331,12 → 2407,12
++Dst2.selection;
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Dst2Inc/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV1" x="122" y="25" width="48" height="48" id="59" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<WINDOW class="CustomButton" text="CV1" x="223" y="25" width="48" height="48" id="59" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/CV1/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/CV1/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="cv=" value="0.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/CV1/cv" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="4143,12079,4143" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 3;
sendCVNRPN(floor(0x0302 + mod*0x10), floor(cv));
sendCVNRPN(floor(0x0303 + mod*0x10), floor(cv));
" trigger_script="cv" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/CV1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="pressed()" script="if( x ) {
if( ++cv >= 8 )
2357,15 → 2433,15
setattribute(CV1, 'label_off', label); //floor(cv+1));
" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/MOD4/CV1/update" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="CVT" x="122" y="0" width="50" height="25" id="61" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="CV">
<WINDOW class="Text" text="CVT" x="223" y="0" width="50" height="25" id="61" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="CV">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/CVT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV2" x="122" y="78" width="48" height="48" id="62" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="3" label_on="3" outline="1">
<WINDOW class="CustomButton" text="CV2" x="223" y="78" width="48" height="48" id="62" state="241" group="0" font="tahoma,22,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="30928,13304050" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/CV2/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/CV2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="cv=" value="2.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/CV2/cv" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="4143,12079,4143" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 3;
sendCVNRPN(floor(0x0304 + mod*0x10), floor(cv));
sendCVNRPN(floor(0x0305 + mod*0x10), floor(cv));
" trigger_script="cv" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/CV2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="pressed()" script="if( x ) {
if( ++cv >= 8 )
2389,38 → 2465,55
<WINDOW class="Monitor" text="DepthM" x="28" y="58" width="44" height="34" id="90" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Depth.x*255-128" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/DepthM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Src2" x="179" y="89" width="157" height="35" id="63" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<WINDOW class="LemurMenu" text="Src2" x="280" y="89" width="157" height="35" id="63" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Src2/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 3;
sendCVNRPN(floor(0x0303 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0304 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Src2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Src1" x="179" y="34" width="157" height="35" id="42" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<WINDOW class="LemurMenu" text="Src1" x="280" y="34" width="157" height="35" id="42" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,ENV1,ENV2,LFO1,LFO2,MOD1,MOD2,MOD3,MOD4,Key,Velocity,Modwheel,Pitchbender,Aftertouch,Knob1,Knob2,Knob3,Knob4,Knob5,Knob6,Knob7,Knob8,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,SeqEnvMod,SeqAccent">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Src1/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 3;
sendCVNRPN(floor(0x0301 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0302 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Src1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="OP" x="396" y="61" width="74" height="35" id="50" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,SRC1,SRC2,+,-,*,XOR,OR,AND,MIN,MAX,<,>,=,S&H">
<WINDOW class="LemurMenu" text="OP" x="485" y="61" width="74" height="35" id="50" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,SRC1,SRC2,+,-,*,XOR,OR,AND,MIN,MAX,<,>,=,S&H,FTS">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/OP/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 3;
sendCVNRPN(floor(0x0305 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0306 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/OP/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Dst2" x="518" y="89" width="164" height="35" id="64" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,Pitch,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<WINDOW class="LemurMenu" text="Dst2" x="607" y="89" width="164" height="35" id="64" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,CV,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Dst2/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 3;
sendCVNRPN(floor(0x0308 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0309 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Dst2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="LemurMenu" text="Dst1" x="518" y="34" width="164" height="35" id="53" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,Pitch,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<WINDOW class="LemurMenu" text="Dst1" x="607" y="34" width="164" height="35" id="53" state="241" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="32768" scale="0" content="---,CV,LFO1 Amp.,LFO2 Amp.,LFO1 Rate,LFO2 Rate,ENV1 Amp.,ENV2 Amp.,ENV1 Rate,ENV2 Rate">
<PARAM name="selection=" value="0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Dst1/selection" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 3;
sendCVNRPN(floor(0x0306 + mod*0x10), floor(selection));
sendCVNRPN(floor(0x0307 + mod*0x10), floor(selection));
" trigger_script="selection" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Dst1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Knob" text="Offset" x="109" y="26" width="100" height="100" id="91" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="1" unit="" value="0">
<PARAM name="x=" value="0.501961" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/MOD4/Offset/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Offset/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Offset/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Offset/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Offset/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/Offset/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl mod = 3;
sendCVNRPN(floor(0x0301 + mod*0x10), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/MOD4/Offset/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="OffsetM" x="138" y="58" width="44" height="34" id="92" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Offset.x*255-128" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/OffsetM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="OffsetT" x="109" y="0" width="100" height="25" id="93" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Offset">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/MOD4/OffsetT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
</WINDOW>
</WINDOW>
<WINDOW class="Tab" text="SEQ" x="0" y="0" width="958" height="676" id="4" state="0" group="0" font="tahoma,11,0" >
<WINDOW class="Container" text="SEQKeyboard" x="0" y="213" width="777" height="449" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="1507434" label="1" tabbar="1" meta="0">
<WINDOW class="Switches" text="Octave" x="67" y="0" width="451" height="40" id="6" state="1" group="0" font="tahoma,10,0" send="0" osc_target="-2" midi_target="-2" kbmouse_target="-2" capture="1" color="8355711,128" column="7" label="0" multicolor="1" multilabel="1" paint="0" radio="1" row="1">
2938,7 → 3031,7
</WINDOW>
<WINDOW class="Container" text="SEQMaster" x="224" y="0" width="56" height="32" id="60" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<VARIABLE name="accent=" value="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/SEQMaster/accent" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="key=" value="36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/SEQMaster/key" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="key=" value="43,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/SEQMaster/key" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="gate=" value="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/SEQMaster/gate" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="glide=" value="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/SEQMaster/glide" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="copyAccent=" value="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" send="1" osc_target="0" osc_trigger="1" osc_message="/CVPanel/SEQMaster/copyAccent" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="-1,0,0" kbmouse_scale="0,1,0,1"/>
2993,130 → 3086,6
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/SeqOn/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
</WINDOW>
<WINDOW class="Tab" text="Patch" x="0" y="0" width="958" height="676" id="5" state="0" group="0" font="tahoma,11,0" >
<WINDOW class="Pads" text="SyncStep" x="742" y="616" width="133" height="40" id="61" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" capture="1" color="5865335,128" column="2" label="0" multicolor="0" multilabel="1" row="1">
<PARAM name="x=" value="0.000000,0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/SyncStep/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attack=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/SyncStep/attack" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="decay=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/SyncStep/decay" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="sustain=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/SyncStep/sustain" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="release=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/SyncStep/release" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="hold=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/SyncStep/hold" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/SyncStep/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="init()" script="setattribute(SyncStep, 'labels', {'-', '+'});
" trigger_script="" trigger_type="5" trigger="1" osc_message="/CVPanel/SyncStep/init" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="action()" script="if( x[0] == 1 ) {
if( SyncStepM.value > 1 )
SyncStepM.value -= 1;
}
 
if( x[1] == 1 ) {
if( SyncStepM.value < 256 )
SyncStepM.value += 1;
}
 
sendNRPN(0x3c25, floor(SyncStepM.value) - 1);
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/SyncStep/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Pads" text="PatchMatrix" x="32" y="37" width="900" height="500" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-1" midi_target="-1" kbmouse_target="-2" capture="1" color="8355711,8328968" column="16" label="0" multicolor="1" multilabel="0" row="8">
<PARAM name="x=" value="0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/PatchMatrix/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attack=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/PatchMatrix/attack" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="decay=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/PatchMatrix/decay" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="sustain=1" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/PatchMatrix/sustain" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="release=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/PatchMatrix/release" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="hold=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/PatchMatrix/hold" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/PatchMatrix/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="last_press=" value="0.000000,0.000000,0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/PatchMatrix/last_press" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="ledState=" value="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" send="1" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/PatchMatrix/ledState" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="529,68,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="setLed(ARGS)" script="decl col = ARGS[0];
decl row = ARGS[1];
decl color = ARGS[2];
 
decl ix = 16*row + col;
ledState[ix] = color;
 
decl colors = getattribute(PatchMatrix, 'colors');
if( color == 1 ) {
colors[ix] = 0x00ee00;
} else if( color == 2 ) {
colors[ix] = 0xee0000;
} else if( color == 3 ) {
colors[ix] = 0xeeee00;
} else {
colors[ix] = 0x111122;
}
 
setattribute(PatchMatrix, 'colors', colors);
" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/PatchMatrix/setLed" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="init()" script="decl col;
decl row;
 
for(col=0; col<16; ++col)
for(row=0; row<8; ++row) {
setLed({col, row, 0});
}
" trigger_script="" trigger_type="5" trigger="1" osc_message="/CVPanel/PatchMatrix/init" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="programChange(MIDI_ARGS)" script="patchChanged(MIDI_ARGS[1]);
" trigger_script="" trigger_type="3" trigger="1" osc_message="/CVPanel/PatchMatrix/programChange" midi_message="0xC0,0xCF,0,127" midi_target="-3" flag="1"/>
<SCRIPT name="action()" script="decl i, out;
decl changes = nonnull(x - last_press);
 
for(i=0; i<sizeof(changes); ++i) {
decl ix = changes[i];
decl state = x[ix];
 
if( state ) {
decl patch = ix;
 
decl col;
decl row;
 
for(col=0; col<16; ++col)
for(row=0; row<8; ++row) {
decl ledIx = 16*col + row;
if( ledState[ledIx] != 1 )
setLed({col, row, 0});
}
 
decl bank = 0; // tmp.
decl patchAndBank = (bank << 7) | patch;
if( Save.x ) {
sendNRPN(0x3c23, patchAndBank);
Save.x = 0;
} else {
//midiout(0, {0xc0, patch});
sendNRPN(0x3c22, patchAndBank);
}
 
col = patch % 16;
row = floor(patch/16);
 
setLed({col, row, 3});
}
}" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/PatchMatrix/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="patchChanged(patch)" script="init();
decl col = patch % 16;
decl row = floor(patch/16);
setLed({col, row, 1});" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/PatchMatrix/patchChanged" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="SyncStepM" x="875" y="619" width="57" height="37" id="62" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8421376" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=1" send="0" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/SyncStepM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="SyncStepT" x="875" y="599" width="57" height="25" id="63" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Step">
<VARIABLE name="light=0" send="0" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/SyncStepT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="SyncPattern" x="743" y="561" width="132" height="48" id="98" state="241" group="0" font="tahoma,16,0" send="1" osc_target="-1" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="5865335,3696767" label_off="Synch Off" label_on="Synch On" outline="1">
<PARAM name="x=" value="1.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/SyncPattern/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/SyncPattern/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendNRPN(0x3c24, floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/SyncPattern/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Save" x="32" y="561" width="132" height="48" id="99" state="241" group="0" font="tahoma,16,0" send="1" osc_target="-1" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="5865335,8388608" label_off="Load" label_on="Save" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CVPanel/Save/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CVPanel/Save/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendNRPN(0x3c24, floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CVPanel/Save/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
</WINDOW>
<VARIABLE name="copyBuffer=" value="0.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/CVPanel/copyBuffer" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="receiveNRPN(nrpnNumber, value)" script="
if( nrpnNumber >= 0x3c00 ) {
3234,6 → 3203,8
else if( par == 0x21 ) Setup.Poly.x = value;
else if( par == 0x22 ) Setup.SusKey.x = value;
else if( par == 0x23 ) Setup.PortamentoMode.selection = value;
else if( par == 0x24 ) Setup.ForceToScale.x = value;
else if( par == 0x25 ) Setup.ExtGate.x = value;
 
else if( par == 0x30 ) Setup.PitchRange.x = value / 24;
else if( par == 0x31 ) Setup.Keytrack.x = value / 255;
3241,19 → 3212,16
else if( par == 0x33 ) Setup.SemiTransp.x = value / 16;
else if( par == 0x34 ) Setup.Finetune.x = value / 255;
else if( par == 0x35 ) Setup.Portamento.x = value / 255;
 
else if( par == 0x40 ) Scope.ScopeSelect.selection = value;
else if( par == 0x41 ) Scope.Oversampling.x = value / 255;
else if( par == 0x42 ) Scope.TriggerLevel.x = value / 100;
" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/receiveMain" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="receiveENV(env, par, value)" script="if( env == 0 ) {
if( par == 0x00 ) ENV1.Amplitude.x = value / 255;
else if( par == 0x01 ) ENV1.Curve.selection = value;
else if( par == 0x02 ) ENV1.Delay.x = value / 255;
else if( par == 0x03 ) ENV1.Attack.x = value / 255;
else if( par == 0x04 ) ENV1.Decay.x = value / 255;
else if( par == 0x05 ) ENV1.Sustain.x = value / 255;
else if( par == 0x06 ) ENV1.Release.x = value / 255;
else if( par == 0x01 ) ENV1.CurvePos.selection = value;
else if( par == 0x02 ) ENV1.CurveNeg.selection = value;
else if( par == 0x03 ) ENV1.Delay.x = value / 255;
else if( par == 0x04 ) ENV1.Attack.x = value / 255;
else if( par == 0x05 ) ENV1.Decay.x = value / 255;
else if( par == 0x06 ) ENV1.Sustain.x = value / 255;
else if( par == 0x07 ) ENV1.Release.x = value / 255;
else if( par == 0x10 ) ENV1.ClkSync.x = value;
else if( par == 0x11 ) ENV1.KeySync.x = value;
else if( par == 0x12 ) ENV1.Oneshot.x = value;
3265,9 → 3233,10
 
} else if( env == 1 ) {
if( par == 0x00 ) ENV2.Amplitude.x = value / 255;
else if( par == 0x01 ) ENV2.Curve.selection = value;
else if( par == 0x02 ) ENV2.Offset.x = value / 255;
else if( par == 0x03 ) ENV2.Rate.x = value / 255;
else if( par == 0x01 ) ENV2.CurvePos.selection = value;
else if( par == 0x02 ) ENV2.CurveNeg.selection = value;
else if( par == 0x03 ) ENV2.Offset.x = value / 255;
else if( par == 0x04 ) ENV2.Rate.x = value / 255;
else if( par == 0x08 ) ENV2.LoopAttack.x = value / 16;
else if( par == 0x09 ) ENV2.SustainStep.x = value / 16;
else if( par == 0x0a ) ENV2.LoopRelease.x = value / 16;
3286,48 → 3255,52
" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/receiveENV" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="receiveMOD(mod, par, value)" script="if( mod == 0 ) {
if( par == 0x00 ) MOD1.Depth.x = value / 255;
else if( par == 0x01 ) MOD1.Src1.selection = value;
else if( par == 0x02 ) { MOD1.CV1.cv = value; MOD1.CV1.update(); }
else if( par == 0x03 ) MOD1.Src2.selection = value;
else if( par == 0x04 ) { MOD1.CV2.cv = value; MOD1.CV2.update(); }
else if( par == 0x05 ) MOD1.OP.selection = value;
else if( par == 0x06 ) MOD1.Dst1.selection = value;
else if( par == 0x07 ) MOD1.Inv1.x = value;
else if( par == 0x08 ) MOD1.Dst2.selection = value;
else if( par == 0x09 ) MOD1.Inv2.x = value;
else if( par == 0x01 ) MOD1.Offset.x = value / 255;
else if( par == 0x02 ) MOD1.Src1.selection = value;
else if( par == 0x03 ) { MOD1.CV1.cv = value; MOD1.CV1.update(); }
else if( par == 0x04 ) MOD1.Src2.selection = value;
else if( par == 0x05 ) { MOD1.CV2.cv = value; MOD1.CV2.update(); }
else if( par == 0x06 ) MOD1.OP.selection = value;
else if( par == 0x07 ) MOD1.Dst1.selection = value;
else if( par == 0x08 ) MOD1.Inv1.x = value;
else if( par == 0x09 ) MOD1.Dst2.selection = value;
else if( par == 0x0a ) MOD1.Inv2.x = value;
} else if( mod == 1 ) {
if( par == 0x00 ) MOD2.Depth.x = value / 255;
else if( par == 0x01 ) MOD2.Src1.selection = value;
else if( par == 0x02 ) { MOD2.CV1.cv = value; MOD2.CV1.update(); }
else if( par == 0x03 ) MOD2.Src2.selection = value;
else if( par == 0x04 ) { MOD2.CV2.cv = value; MOD2.CV2.update(); }
else if( par == 0x05 ) MOD2.OP.selection = value;
else if( par == 0x06 ) MOD2.Dst1.selection = value;
else if( par == 0x07 ) MOD2.Inv1.x = value;
else if( par == 0x08 ) MOD2.Dst2.selection = value;
else if( par == 0x09 ) MOD2.Inv2.x = value;
else if( par == 0x01 ) MOD2.Offset.x = value / 255;
else if( par == 0x02 ) MOD2.Src1.selection = value;
else if( par == 0x03 ) { MOD2.CV1.cv = value; MOD2.CV1.update(); }
else if( par == 0x04 ) MOD2.Src2.selection = value;
else if( par == 0x05 ) { MOD2.CV2.cv = value; MOD2.CV2.update(); }
else if( par == 0x06 ) MOD2.OP.selection = value;
else if( par == 0x07 ) MOD2.Dst1.selection = value;
else if( par == 0x08 ) MOD2.Inv1.x = value;
else if( par == 0x09 ) MOD2.Dst2.selection = value;
else if( par == 0x0a ) MOD2.Inv2.x = value;
} else if( mod == 2 ) {
if( par == 0x00 ) MOD3.Depth.x = value / 255;
else if( par == 0x01 ) MOD3.Src1.selection = value;
else if( par == 0x02 ) { MOD3.CV1.cv = value; MOD3.CV1.update(); }
else if( par == 0x03 ) MOD3.Src2.selection = value;
else if( par == 0x04 ) { MOD3.CV2.cv = value; MOD3.CV2.update(); }
else if( par == 0x05 ) MOD3.OP.selection = value;
else if( par == 0x06 ) MOD3.Dst1.selection = value;
else if( par == 0x07 ) MOD3.Inv1.x = value;
else if( par == 0x08 ) MOD3.Dst2.selection = value;
else if( par == 0x09 ) MOD3.Inv2.x = value;
else if( par == 0x01 ) MOD3.Offset.x = value / 255;
else if( par == 0x02 ) MOD3.Src1.selection = value;
else if( par == 0x03 ) { MOD3.CV1.cv = value; MOD3.CV1.update(); }
else if( par == 0x04 ) MOD3.Src2.selection = value;
else if( par == 0x05 ) { MOD3.CV2.cv = value; MOD3.CV2.update(); }
else if( par == 0x06 ) MOD3.OP.selection = value;
else if( par == 0x07 ) MOD3.Dst1.selection = value;
else if( par == 0x08 ) MOD3.Inv1.x = value;
else if( par == 0x09 ) MOD3.Dst2.selection = value;
else if( par == 0x0a ) MOD3.Inv2.x = value;
} else if( mod == 3 ) {
if( par == 0x00 ) MOD4.Depth.x = value / 255;
else if( par == 0x01 ) MOD4.Src1.selection = value;
else if( par == 0x02 ) { MOD4.CV1.cv = value; MOD4.CV1.update(); }
else if( par == 0x03 ) MOD4.Src2.selection = value;
else if( par == 0x04 ) { MOD4.CV2.cv = value; MOD4.CV2.update(); }
else if( par == 0x05 ) MOD4.OP.selection = value;
else if( par == 0x06 ) MOD4.Dst1.selection = value;
else if( par == 0x07 ) MOD4.Inv1.x = value;
else if( par == 0x08 ) MOD4.Dst2.selection = value;
else if( par == 0x09 ) MOD4.Inv2.x = value;
else if( par == 0x01 ) MOD4.Offset.x = value / 255;
else if( par == 0x02 ) MOD4.Src1.selection = value;
else if( par == 0x03 ) { MOD4.CV1.cv = value; MOD4.CV1.update(); }
else if( par == 0x04 ) MOD4.Src2.selection = value;
else if( par == 0x05 ) { MOD4.CV2.cv = value; MOD4.CV2.update(); }
else if( par == 0x06 ) MOD4.OP.selection = value;
else if( par == 0x07 ) MOD4.Dst1.selection = value;
else if( par == 0x08 ) MOD4.Inv1.x = value;
else if( par == 0x09 ) MOD4.Dst2.selection = value;
else if( par == 0x0a ) MOD4.Inv2.x = value;
}
" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/receiveMOD" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="doCopy()" script="decl channel = 0;
3505,58 → 3478,55
" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/SEQSendAllSteps" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="SEQSendKey(step)" script="sendCVNRPN(0x00c0 + floor(step), floor(SEQMaster.key[step]));
" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/SEQSendKey" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="receiveGlobal(par, value)" script=" if( par == 0x18 ) Tempo.x = (value - 30.0) / 270.0;
else if( par == 0x19 ) { ClockMode.mode = value; ClockMode.updateMode(); }
else if( par == 0x20 ) PatchMatrix.patchChanged(value);
else if( par == 0x24 ) SyncPattern.x = value;
else if( par == 0x25 ) SyncStepM.value = value + 1;
<SCRIPT name="receiveGlobal(par, value)" script=" if( par == 0x018 ) Tempo.x = (value - 30.0) / 270.0;
else if( par == 0x019 ) { ClockMode.mode = value; ClockMode.updateMode(); }
" trigger_script="" trigger_type="4" trigger="1" osc_message="/CVPanel/receiveGlobal" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="CV_T" x="974" y="-8" width="50" height="48" id="1" state="245" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="CV">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CV_T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV1" x="974" y="40" width="50" height="52" id="2" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="1" label_on="1" outline="1">
<WINDOW class="CustomButton" text="CV1" x="974" y="31" width="50" height="52" id="2" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="1" label_on="1" outline="1">
<PARAM name="x=" value="1.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CV1/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CV1/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="selectCv(0, x);
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CV1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV2" x="974" y="92" width="50" height="52" id="3" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="2" label_on="2" outline="1">
<WINDOW class="CustomButton" text="CV2" x="974" y="83" width="50" height="52" id="3" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="2" label_on="2" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CV2/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CV2/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="selectCv(1, x);" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CV2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV3" x="974" y="144" width="50" height="52" id="4" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="3" label_on="3" outline="1">
<WINDOW class="CustomButton" text="CV3" x="974" y="135" width="50" height="52" id="4" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="3" label_on="3" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CV3/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CV3/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="selectCv(2, x);" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CV3/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV6" x="974" y="300" width="50" height="52" id="7" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="6" label_on="6" outline="1">
<WINDOW class="CustomButton" text="CV6" x="974" y="291" width="50" height="52" id="7" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="6" label_on="6" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CV6/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CV6/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="selectCv(5, x);" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CV6/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV8" x="974" y="404" width="50" height="52" id="9" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="8" label_on="8" outline="1">
<WINDOW class="CustomButton" text="CV8" x="974" y="395" width="50" height="52" id="9" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="8" label_on="8" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CV8/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CV8/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="selectCv(7, x);" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CV8/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV4" x="974" y="196" width="50" height="52" id="5" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="4" label_on="4" outline="1">
<WINDOW class="CustomButton" text="CV4" x="974" y="187" width="50" height="52" id="5" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="4" label_on="4" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CV4/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CV4/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="selectCv(3, x);" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CV4/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV5" x="974" y="248" width="50" height="52" id="6" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="5" label_on="5" outline="1">
<WINDOW class="CustomButton" text="CV5" x="974" y="239" width="50" height="52" id="6" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="5" label_on="5" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CV5/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CV5/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="selectCv(4, x);" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CV5/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="CV7" x="974" y="352" width="50" height="52" id="8" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="7" label_on="7" outline="1">
<WINDOW class="CustomButton" text="CV7" x="974" y="343" width="50" height="52" id="8" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="7" label_on="7" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/CV7/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/CV7/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="selectCv(6, x);" trigger_script="x" trigger_type="0" trigger="1" osc_message="/CV7/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Play" x="975" y="487" width="50" height="52" id="10" state="241" group="0" font="tahoma,15,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="3696767,7438125" label_off="Play" label_on="Play" outline="1">
<WINDOW class="CustomButton" text="Play" x="974" y="507" width="50" height="52" id="10" state="241" group="0" font="tahoma,15,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="3696767,7438125" label_off="Play" label_on="Play" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/Play/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/Play/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendNRPN(x ? 0x3c11 : 0x3c10, selectedCvChannels);
3586,7 → 3556,440
 
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/Clear/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="G" x="974" y="447" width="50" height="52" id="14" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" behavior="1" bitmap="0,0" capture="1" color="3696767,7438125" label_off="G" label_on="G" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/G/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/G/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="selectCv(8, x); // Global" trigger_script="x" trigger_type="0" trigger="1" osc_message="/G/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Container" text="GlobalPanel" x="0" y="0" width="974" height="724" id="15" state="0" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="1">
<WINDOW class="Tab" text="Knobs and Scale" x="0" y="0" width="958" height="676" id="8" state="1" group="0" font="tahoma,11,0" >
<WINDOW class="Container" text="Knobs" x="108" y="37" width="816" height="151" id="28" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="9440511" label="1" tabbar="1" meta="0">
<WINDOW class="Text" text="Knob1T" x="0" y="0" width="100" height="25" id="1" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Knob1">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob1T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Knob1" x="0" y="26" width="100" height="100" id="99" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob1/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob1/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob1/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob1/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob1/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob1/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl knob = 0;
sendNRPN(floor(0x3d00 + knob), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/Knobs/Knob1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="Knob1M" x="28" y="58" width="44" height="34" id="100" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Knob1.x*255" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob1M/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="Knob2T" x="100" y="0" width="100" height="25" id="101" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Knob2">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob2T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Knob2" x="100" y="26" width="100" height="100" id="102" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob2/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob2/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob2/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob2/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob2/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob2/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl knob = 1;
sendNRPN(floor(0x3d00 + knob), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/Knobs/Knob2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="Knob2M" x="128" y="58" width="44" height="34" id="103" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Knob2.x*255" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob2M/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="Knob3T" x="200" y="0" width="100" height="25" id="104" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Knob3">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob3T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Knob3" x="200" y="26" width="100" height="100" id="105" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob3/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob3/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob3/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob3/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob3/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob3/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl knob = 2;
sendNRPN(floor(0x3d00 + knob), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/Knobs/Knob3/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="Knob3M" x="228" y="58" width="44" height="34" id="106" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Knob3.x*255" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob3M/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="Knob4T" x="300" y="0" width="100" height="25" id="107" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Knob4">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob4T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Knob4" x="300" y="26" width="100" height="100" id="108" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob4/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob4/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob4/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob4/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob4/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob4/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl knob = 3;
sendNRPN(floor(0x3d00 + knob), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/Knobs/Knob4/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="Knob4M" x="328" y="58" width="44" height="34" id="109" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Knob4.x*255" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob4M/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="Knob5T" x="400" y="0" width="100" height="25" id="110" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Knob5">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob5T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Knob5" x="400" y="26" width="100" height="100" id="111" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob5/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob5/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob5/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob5/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob5/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob5/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl knob = 4;
sendNRPN(floor(0x3d00 + knob), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/Knobs/Knob5/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="0"/>
</WINDOW>
<WINDOW class="Monitor" text="Knob5M" x="428" y="58" width="44" height="34" id="112" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Knob5.x*255" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob5M/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="Knob6T" x="500" y="0" width="100" height="25" id="113" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Knob6">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob6T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Knob6" x="500" y="26" width="100" height="100" id="114" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob6/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob6/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob6/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob6/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob6/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob6/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl knob = 5;
sendNRPN(floor(0x3d00 + knob), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/Knobs/Knob6/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="Knob6M" x="528" y="58" width="44" height="34" id="115" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Knob6.x*255" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob6M/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="Knob7T" x="600" y="0" width="100" height="25" id="116" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Knob7">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob7T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Knob7" x="600" y="26" width="100" height="100" id="117" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob7/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob7/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob7/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob7/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob7/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob7/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl knob = 6;
sendNRPN(floor(0x3d00 + knob), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/Knobs/Knob7/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="Knob7M" x="628" y="58" width="44" height="34" id="118" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Knob7.x*255" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob7M/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="Knob8T" x="700" y="0" width="100" height="25" id="119" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Knob8">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob8T/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Knob" text="Knob8" x="700" y="26" width="100" height="100" id="120" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="34738,8388608" cursor="0" grid="0" grid_steps="1" label="0" mode="1" physic="1" precision="3" type="0" unit="" value="0">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob8/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<PARAM name="z=" value="0.000000" send="17" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob8/z" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="value=x" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob8/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attraction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob8/attraction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=0.9" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob8/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="speed=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob8/speed" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl knob = 7;
sendNRPN(floor(0x3d00 + knob), floor(x*255));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/Knobs/Knob8/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="Knob8M" x="728" y="58" width="44" height="34" id="121" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="6974464" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=Knob8.x*255" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Knobs/Knob8M/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
</WINDOW>
<WINDOW class="Text" text="KnobsT" x="0" y="37" width="94" height="32" id="31" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="KNOBS">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/KnobsT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Container" text="ScaleKeyboard" x="84" y="188" width="777" height="449" id="32" state="5" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="1507434" label="1" tabbar="1" meta="0">
<WINDOW class="Pads" text="White" x="67" y="42" width="691" height="391" id="24" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" capture="0" color="8355711,216" column="7" label="0" multicolor="1" multilabel="0" row="1">
<PARAM name="x=" value="0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000" send="24" osc_target="0" osc_trigger="1" osc_message="/Name3.white.x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attack=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.white.attack" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="decay=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.white.decay" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="sustain=1" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.white.sustain" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="release=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.white.release" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="hold=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.white.hold" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.white.light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="last_x=" value="0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/ScaleKeyboard/White/last_x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl changes = nonnull(x - last_x);
decl i;
 
decl whiteKeys = {0, 2, 4, 5, 7, 9, 11};
 
for(i=0; i<sizeof(changes); ++i) {
decl ix = changes[i];
 
if( x[ix] ) {
decl key = whiteKeys[ix];
if( scaleValue[key] ) setScaleKey(key, 0); else setScaleKey(key, 1);
sendScaleKey(key);
}
}
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/ScaleKeyboard/White/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Pads" text="Black1" x="127" y="42" width="75" height="245" id="25" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" capture="0" color="5865335,238" column="1" label="0" multicolor="1" multilabel="0" row="1">
<PARAM name="x=" value="0.000000" send="25" osc_target="-1" osc_trigger="1" osc_message="/Name3.Black.x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attack=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.attack" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="decay=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.decay" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="sustain=1" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.sustain" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="release=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.release" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="hold=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.hold" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl key = 1;
if( x ) {
if( scaleValue[key] ) setScaleKey(key, 0); else setScaleKey(key, 1);
sendScaleKey(key);
}
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/ScaleKeyboard/Black1/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Pads" text="Black2" x="226" y="42" width="75" height="245" id="27" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" capture="0" color="5865335,238" column="1" label="0" multicolor="1" multilabel="0" row="1">
<PARAM name="x=" value="0.000000" send="25" osc_target="-1" osc_trigger="1" osc_message="/Name3.Black.x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attack=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.attack" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="decay=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.decay" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="sustain=1" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.sustain" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="release=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.release" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="hold=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.hold" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl key = 3;
if( x ) {
if( scaleValue[key] ) setScaleKey(key, 0); else setScaleKey(key, 1);
sendScaleKey(key);
}
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/ScaleKeyboard/Black2/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Pads" text="Black3" x="424" y="42" width="75" height="245" id="28" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" capture="0" color="5865335,238" column="1" label="0" multicolor="1" multilabel="0" row="1">
<PARAM name="x=" value="0.000000" send="25" osc_target="-1" osc_trigger="1" osc_message="/Name3.Black.x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attack=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.attack" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="decay=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.decay" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="sustain=1" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.sustain" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="release=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.release" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="hold=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.hold" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl key = 6;
if( x ) {
if( scaleValue[key] ) setScaleKey(key, 0); else setScaleKey(key, 1);
sendScaleKey(key);
}
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/ScaleKeyboard/Black3/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Pads" text="Black4" x="523" y="42" width="75" height="245" id="29" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" capture="0" color="5865335,238" column="1" label="0" multicolor="1" multilabel="0" row="1">
<PARAM name="x=" value="0.000000" send="25" osc_target="-1" osc_trigger="1" osc_message="/Name3.Black.x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attack=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.attack" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="decay=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.decay" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="sustain=1" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.sustain" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="release=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.release" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="hold=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.hold" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl key = 8;
if( x ) {
if( scaleValue[key] ) setScaleKey(key, 0); else setScaleKey(key, 1);
sendScaleKey(key);
}
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/ScaleKeyboard/Black4/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Pads" text="Black5" x="622" y="42" width="75" height="245" id="30" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" capture="0" color="5865335,238" column="1" label="0" multicolor="1" multilabel="0" row="1">
<PARAM name="x=" value="0.000000" send="25" osc_target="-1" osc_trigger="1" osc_message="/Name3.Black.x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attack=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.attack" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="decay=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.decay" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="sustain=1" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.sustain" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="release=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.release" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="hold=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.hold" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="8" osc_target="0" osc_trigger="1" osc_message="/Name3.Black.light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x0,0,0" midi_scale="0,16383" kbmouse_target="-2" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="decl key = 10;
if( x ) {
if( scaleValue[key] ) setScaleKey(key, 0); else setScaleKey(key, 1);
sendScaleKey(key);
}
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/ScaleKeyboard/Black5/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<SCRIPT name="updateScaleKeys()" script="decl cSelected = 0x0000ff;
decl cUnselected = 0x888888;
 
decl colors = getattribute(White, 'colors');
colors[0] = scaleValue[0] ? cSelected : cUnselected;
colors[1] = scaleValue[2] ? cSelected : cUnselected;
colors[2] = scaleValue[4] ? cSelected : cUnselected;
colors[3] = scaleValue[5] ? cSelected : cUnselected;
colors[4] = scaleValue[7] ? cSelected : cUnselected;
colors[5] = scaleValue[9] ? cSelected : cUnselected;
colors[6] = scaleValue[11] ? cSelected : cUnselected;
setattribute(White, 'colors', colors);
 
cUnselected = 0x333333;
 
setattribute(Black1, 'colors', {scaleValue[1] ? cSelected : cUnselected});
setattribute(Black2, 'colors', {scaleValue[3] ? cSelected : cUnselected});
setattribute(Black3, 'colors', {scaleValue[6] ? cSelected : cUnselected});
setattribute(Black4, 'colors', {scaleValue[8] ? cSelected : cUnselected});
setattribute(Black5, 'colors', {scaleValue[10] ? cSelected : cUnselected});
" trigger_script="" trigger_type="4" trigger="1" osc_message="/GlobalPanel/ScaleKeyboard/updateScaleKeys" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Text" text="ScaleT" x="0" y="242" width="94" height="32" id="33" state="229" group="0" font="tahoma,23,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="SCALE">
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/ScaleT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
</WINDOW>
<WINDOW class="Tab" text="Patch" x="0" y="0" width="958" height="676" id="5" state="0" group="0" font="tahoma,11,0" >
<WINDOW class="Pads" text="SyncStep" x="742" y="616" width="133" height="40" id="61" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" capture="1" color="5865335,128" column="2" label="0" multicolor="0" multilabel="1" row="1">
<PARAM name="x=" value="0.000000,0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/SyncStep/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attack=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/SyncStep/attack" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="decay=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/SyncStep/decay" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="sustain=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/SyncStep/sustain" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="release=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/SyncStep/release" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="hold=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/SyncStep/hold" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/SyncStep/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="init()" script="setattribute(SyncStep, 'labels', {'-', '+'});
" trigger_script="" trigger_type="5" trigger="1" osc_message="/GlobalPanel/SyncStep/init" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="action()" script="if( x[0] == 1 ) {
if( SyncStepM.value > 1 )
SyncStepM.value -= 1;
}
 
if( x[1] == 1 ) {
if( SyncStepM.value < 256 )
SyncStepM.value += 1;
}
 
sendNRPN(0x3c25, floor(SyncStepM.value) - 1);
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/SyncStep/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Pads" text="PatchMatrix" x="32" y="37" width="900" height="500" id="62" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-1" midi_target="-1" kbmouse_target="-2" capture="1" color="8355711,8328968" column="16" label="0" multicolor="1" multilabel="0" row="8">
<PARAM name="x=" value="0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/PatchMatrix/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="attack=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/PatchMatrix/attack" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="decay=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/PatchMatrix/decay" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="sustain=1" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/PatchMatrix/sustain" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="release=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/PatchMatrix/release" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="hold=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/PatchMatrix/hold" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/PatchMatrix/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="last_press=" value="0.000000,0.000000,0.000000" send="1" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/PatchMatrix/last_press" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="ledState=" value="3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" send="1" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/PatchMatrix/ledState" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="529,68,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="setLed(ARGS)" script="decl col = ARGS[0];
decl row = ARGS[1];
decl color = ARGS[2];
 
decl ix = 16*row + col;
ledState[ix] = color;
 
decl colors = getattribute(PatchMatrix, 'colors');
if( color == 1 ) {
colors[ix] = 0x00ee00;
} else if( color == 2 ) {
colors[ix] = 0xee0000;
} else if( color == 3 ) {
colors[ix] = 0xeeee00;
} else {
colors[ix] = 0x111122;
}
 
setattribute(PatchMatrix, 'colors', colors);
" trigger_script="" trigger_type="4" trigger="1" osc_message="/GlobalPanel/PatchMatrix/setLed" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="init()" script="decl col;
decl row;
 
for(col=0; col<16; ++col)
for(row=0; row<8; ++row) {
setLed({col, row, 0});
}
" trigger_script="" trigger_type="5" trigger="1" osc_message="/GlobalPanel/PatchMatrix/init" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="programChange(MIDI_ARGS)" script="patchChanged(MIDI_ARGS[1]);
" trigger_script="" trigger_type="3" trigger="1" osc_message="/GlobalPanel/PatchMatrix/programChange" midi_message="0xC0,0xCF,0,127" midi_target="-3" flag="1"/>
<SCRIPT name="action()" script="decl i, out;
decl changes = nonnull(x - last_press);
 
for(i=0; i<sizeof(changes); ++i) {
decl ix = changes[i];
decl state = x[ix];
 
if( state ) {
decl patch = ix;
 
decl col;
decl row;
 
for(col=0; col<16; ++col)
for(row=0; row<8; ++row) {
decl ledIx = 16*col + row;
if( ledState[ledIx] != 1 )
setLed({col, row, 0});
}
 
decl bank = 0; // tmp.
decl patchAndBank = (bank << 7) | patch;
if( Save.x ) {
sendNRPN(0x3c23, patchAndBank);
Save.x = 0;
} else {
//midiout(0, {0xc0, patch});
sendNRPN(0x3c22, patchAndBank);
}
 
col = patch % 16;
row = floor(patch/16);
 
setLed({col, row, 3});
}
}" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/PatchMatrix/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="patchChanged(patch)" script="init();
decl col = patch % 16;
decl row = floor(patch/16);
setLed({col, row, 1});" trigger_script="" trigger_type="4" trigger="1" osc_message="/GlobalPanel/PatchMatrix/patchChanged" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="Monitor" text="SyncStepM" x="875" y="619" width="57" height="37" id="63" state="245" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8421376" label="0" precision="0" unit="" value="1">
<VARIABLE name="value=1" send="0" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/SyncStepM/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Text" text="SyncStepT" x="875" y="599" width="57" height="25" id="64" state="245" group="0" font="tahoma,14,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="8355711" content="Step">
<VARIABLE name="light=0" send="0" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/SyncStepT/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="CustomButton" text="SyncPattern" x="743" y="561" width="132" height="48" id="98" state="241" group="0" font="tahoma,16,0" send="1" osc_target="-1" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="5865335,3696767" label_off="Synch Off" label_on="Synch On" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/SyncPattern/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/SyncPattern/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendNRPN(0x3c24, floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/SyncPattern/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
<WINDOW class="CustomButton" text="Save" x="32" y="561" width="132" height="48" id="99" state="241" group="0" font="tahoma,16,0" send="1" osc_target="-1" midi_target="-2" kbmouse_target="-2" behavior="0" bitmap="0,0" capture="1" color="5865335,8388608" label_off="Load" label_on="Save" outline="1">
<PARAM name="x=" value="0.000000" send="17" osc_target="-1" osc_trigger="1" osc_message="/GlobalPanel/Save/x" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/Save/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="action()" script="sendNRPN(0x3c24, floor(x));
" trigger_script="x" trigger_type="0" trigger="1" osc_message="/GlobalPanel/Save/action" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
</WINDOW>
<VARIABLE name="scaleValue=" value="0.000000,0,0.000000,1,0.000000,0.000000,0,0.000000,0,0.000000,0" send="1" osc_target="0" osc_trigger="1" osc_message="/GlobalPanel/scaleValue" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="receiveGlobal(par, value)" script=" if( par == 0x020 ) PatchMatrix.patchChanged(value);
else if( par == 0x024 ) SyncPattern.x = value;
else if( par == 0x025 ) SyncStepM.value = value + 1;
else if( par == 0x100 ) Knobs.Knob1.x = value / 255;
else if( par == 0x101 ) Knobs.Knob2.x = value / 255;
else if( par == 0x102 ) Knobs.Knob3.x = value / 255;
else if( par == 0x103 ) Knobs.Knob4.x = value / 255;
else if( par == 0x104 ) Knobs.Knob5.x = value / 255;
else if( par == 0x105 ) Knobs.Knob6.x = value / 255;
else if( par == 0x106 ) Knobs.Knob7.x = value / 255;
else if( par == 0x107 ) Knobs.Knob8.x = value / 255;
else if( par == 0x200 ) setScaleKey(0, value);
else if( par == 0x201 ) setScaleKey(1, value);
else if( par == 0x202 ) setScaleKey(2, value);
else if( par == 0x203 ) setScaleKey(3, value);
else if( par == 0x204 ) setScaleKey(4, value);
else if( par == 0x205 ) setScaleKey(5, value);
else if( par == 0x206 ) setScaleKey(6, value);
else if( par == 0x207 ) setScaleKey(7, value);
else if( par == 0x208 ) setScaleKey(8, value);
else if( par == 0x209 ) setScaleKey(9, value);
else if( par == 0x20a ) setScaleKey(10, value);
else if( par == 0x20b ) setScaleKey(11, value);
" trigger_script="" trigger_type="4" trigger="1" osc_message="/GlobalPanel/receiveGlobal" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="receiveNRPN(nrpnNumber, value)" script="if( nrpnNumber >= 0x3c00 ) {
receiveGlobal(nrpnNumber & 0x3ff, value);
}
" trigger_script="" trigger_type="4" trigger="1" osc_message="/GlobalPanel/receiveNRPN" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="sendScaleKey(key)" script="sendNRPN(floor(0x3e00 + key), floor(scaleValue[key]));" trigger_script="" trigger_type="4" trigger="1" osc_message="/GlobalPanel/sendScaleKey" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="setScaleKey(key, value)" script="scaleValue[key] = value;
ScaleKeyboard.updateScaleKeys();
" trigger_script="" trigger_type="4" trigger="1" osc_message="/GlobalPanel/setScaleKey" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
</WINDOW>
<VARIABLE name="lastNrpnAddressMsb=" value="255" send="1" osc_target="0" osc_trigger="1" osc_message="/lastNrpnAddressMsb" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="lastNrpnAddressLsb=" value="255" send="1" osc_target="0" osc_trigger="1" osc_message="/lastNrpnAddressLsb" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="selectedCvChannels=" value="1" send="1" osc_target="0" osc_trigger="1" osc_message="/selectedCvChannels" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
3594,7 → 3997,7
<VARIABLE name="lastReceivedNrpnAddressMsb=" value="0.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/lastReceivedNrpnAddressMsb" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="lastReceivedNrpnValueLsb=" value="0.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/lastReceivedNrpnValueLsb" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="lastReceivedNrpnValueMsb=" value="0.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/lastReceivedNrpnValueMsb" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="timerCounter=" value="28.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/timerCounter" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="timerCounter=" value="5.000000" send="1" osc_target="0" osc_trigger="1" osc_message="/timerCounter" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="sendNRPN(nrpnNumber, nrpnValue)" script="decl chn = 0;
 
decl nrpnNumberMsb = (nrpnNumber >> 7) & 0x7f;
3629,6 → 4032,14
sendNRPN(0x3c00, selectedCvChannels);
" trigger_script="" trigger_type="4" trigger="1" osc_message="/requestDump" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="selectCv(cv, on)" script="if( on ) {
if( cv < 8 ) {
show(CVPanel, 1);
show(GlobalPanel, 0);
} else {
show(CVPanel, 0);
show(GlobalPanel, 1);
}
 
selectedCvChannels = (1 << cv);
requestDump();
 
3641,6 → 4052,7
CV6.x = (selectedCvChannels & (1 << 5)) ? 1 : 0;
CV7.x = (selectedCvChannels & (1 << 6)) ? 1 : 0;
CV8.x = (selectedCvChannels & (1 << 7)) ? 1 : 0;
G.x = (selectedCvChannels & (1 << 8)) ? 1 : 0;
}
" trigger_script="" trigger_type="4" trigger="1" osc_message="/selectCv" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="onCC(MIDI_ARGS)" script="decl chn = MIDI_ARGS[2]; // ignored...
3664,6 → 4076,7
}
" trigger_script="" trigger_type="3" trigger="1" osc_message="/onCC" midi_message="0xB0,0xBF,0,127" midi_target="0" flag="1"/>
<SCRIPT name="receiveNRPN(nrpnNumber, value)" script="CVPanel.receiveNRPN(nrpnNumber, value);
GlobalPanel.receiveNRPN(nrpnNumber, value);
" trigger_script="" trigger_type="4" trigger="1" osc_message="/receiveNRPN" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
<SCRIPT name="timer()" script="// reset NRPN optimization each second
if( ++timerCounter >= 60 ) {
/trunk/apps/processing/midibox_cv_v2/src/components/MbCvEnvBase.h
47,12 → 47,12
 
typedef enum {
MBCV_ENV_CURVE_LINEAR = 0,
MBCV_ENV_CURVE_EXP,
MBCV_ENV_CURVE_CUSTOM1,
MBCV_ENV_CURVE_CUSTOM2,
MBCV_ENV_CURVE_CUSTOM3,
MBCV_ENV_CURVE_CUSTOM4,
MBCV_ENV_CURVE_EXP1,
MBCV_ENV_CURVE_EXP1_INV,
MBCV_ENV_CURVE_EXP2,
MBCV_ENV_CURVE_EXP2_INV
} EnvCurveT;
#define MBCV_ENV_NUM_CURVES 5
 
// input parameters
bool envModeClkSync;
61,7 → 61,8
bool envModeFast;
 
s8 envAmplitude;
u8 envCurve;
u8 envCurvePos;
u8 envCurveNeg;
 
s8 envDepthPitch;
s8 envDepthLfo1Amplitude;
/trunk/apps/processing/midibox_cv_v2/src/components/MbCvEnvironment.cpp
52,6 → 52,13
s->init(cv, &mbCvClock);
}
 
for(int knob=0; knob<CV_KNOB_NUM; ++knob) {
knobValue[knob] = 0;
}
 
scaleKeyMask = 0xfff; // all 12 keys enabled
updateScaleKeyMap();
 
// sets the default speed factor
updateSpeedFactorSet(2);
 
160,7 → 167,7
case MBCV_MIDI_EVENT_MODE_AFTERTOUCH: *out = v->transpose(mv->midivoiceAftertouch << 9); break;
case MBCV_MIDI_EVENT_MODE_CC: *out = v->transpose(mv->midivoiceCCValue << 9); break;
case MBCV_MIDI_EVENT_MODE_NRPN: *out = v->transpose(mv->midivoiceNRPNValue << 2); break;
case MBCV_MIDI_EVENT_MODE_PITCHBENDER: *out = v->transpose((mv->midivoicePitchbender + 8192) << 2); break;
case MBCV_MIDI_EVENT_MODE_PITCHBENDER: *out = v->transpose((mv->midivoicePitchBender + 8192) << 2); break;
case MBCV_MIDI_EVENT_MODE_CONST_MIN: *out = v->transpose(0x0000); break;
case MBCV_MIDI_EVENT_MODE_CONST_MID: *out = v->transpose(0x8000); break;
case MBCV_MIDI_EVENT_MODE_CONST_MAX: *out = v->transpose(0xffff); break;
167,6 → 174,10
}
}
 
if( v->voiceForceToScale ) {
*out = scaleValue(*out / 512) * 512;
}
 
if( *out > *outMeter ) {
*outMeter = *out;
}
419,7 → 430,7
 
case 0x01a: { // Seq Start/Stop/Continue: 0x3c1a <1|0|2>
mios32_midi_port_t dummyPort = (mios32_midi_port_t)0xff;
 
if( value == 0 )
mbCvClock.midiReceiveRealTimeEvent(dummyPort, 0xfc); // stop
else if( value == 1 )
482,8 → 493,7
int cv = 0;
for(MbCv *s = mbCv.first(); s != NULL ; s=mbCv.next(s), ++cv) {
if( cvChannels & (1 << cv) ) {
u16 par;
for(par=parBegin; par<=parEnd; ++par) {
for(u16 par=parBegin; par<=parEnd; ++par) {
u16 value;
if( s->getNRPN(par, &value) ) {
u16 nrpnNumber = (cv << 10) | par;
508,6 → 518,14
//midiSendNRPN(port, 0x3c22, ((u16)mbCvPatch.bankNum << 7) | mbCvPatch.patchNum);
midiSendNRPN(port, 0x3c24, mbCvPatch.synchedChange);
midiSendNRPN(port, 0x3c25, mbCvPatch.synchedChangeStep);
 
for(u16 par=0; par<=0x3ff; ++par) {
u16 value;
if( getGlobalNRPN(par, &value) ) {
u16 nrpnNumber = 0x3c00 | par;
midiSendNRPN(port, nrpnNumber, value);
}
}
}
 
/////////////////////////////////////////////////////////////////////////////
708,8 → 726,9
// decode address
u16 select = nrpnNumber >> 10;
 
// channel access
if( select >= 0 && select < CV_SE_NUM ) { // direct channel selection
if( select == 0xf ) { // global channel
return setGlobalNRPN(nrpnNumber, value);
} else if( select < CV_SE_NUM ) { // direct channel selection
return mbCv[select].setNRPN(nrpnNumber, value);
}
 
726,7 → 745,9
u16 select = nrpnNumber >> 10;
 
// channel access
if( select >= 0 && select < CV_SE_NUM ) { // direct channel selection
if( select == 0xf ) {
return getGlobalNRPN(nrpnNumber, value);
} else if( select < CV_SE_NUM ) { // direct channel selection
return mbCv[select].getNRPN(nrpnNumber, value);
}
 
743,9 → 764,339
u16 select = nrpnNumber >> 10;
 
// channel access
if( select >= 0 && select < CV_SE_NUM ) { // direct channel selection
if( select == 0xf ) {
return getGlobalNRPNInfo(nrpnNumber, info);
} else if( select < CV_SE_NUM ) { // direct channel selection
return mbCv[select].getNRPNInfo(nrpnNumber, info);
}
 
return false; // parameter not mapped
}
 
 
/////////////////////////////////////////////////////////////////////////////
// NRPNs
/////////////////////////////////////////////////////////////////////////////
 
#define CREATE_GROUP(name, str) \
static const char name##String[] = str;
 
#define CREATE_ACCESS_FUNCTIONS(group, name, str, readCode, writeCode) \
static const char group##name##String[] = str; \
static void get##group##name(MbCvEnvironment* env, u32 arg, u16 *value) { readCode; } \
static void set##group##name(MbCvEnvironment* env, u32 arg, u16 value) { writeCode; }
 
typedef struct {
const char *groupString;
const char *nameString;
void (*getFunct)(MbCvEnvironment *env, u32 arg, u16 *value);
void (*setFunct)(MbCvEnvironment *env, u32 arg, u16 value);
u32 arg;
u16 min;
u16 max;
u8 is_bidir;
} MbCvTableEntry_t;
 
#define NRPN_TABLE_ITEM(group, name, arg, min, max, is_bidir) \
{ group##String, group##name##String, get##group##name, set##group##name, arg, min, max, is_bidir }
 
#define NRPN_TABLE_ITEM_EMPTY() \
{ NULL, NULL, NULL, NULL, 0, 0, 0, 0 }
 
#define NRPN_TABLE_ITEM_EMPTY8() \
NRPN_TABLE_ITEM_EMPTY(), NRPN_TABLE_ITEM_EMPTY(), NRPN_TABLE_ITEM_EMPTY(), NRPN_TABLE_ITEM_EMPTY(), \
NRPN_TABLE_ITEM_EMPTY(), NRPN_TABLE_ITEM_EMPTY(), NRPN_TABLE_ITEM_EMPTY(), NRPN_TABLE_ITEM_EMPTY()
 
#define NRPN_TABLE_ITEM_EMPTY16() \
NRPN_TABLE_ITEM_EMPTY8(), \
NRPN_TABLE_ITEM_EMPTY8()
 
CREATE_GROUP(Knobs, "Knobs");
CREATE_ACCESS_FUNCTIONS(Knobs, Knob, "Knob %d", *value = env->knobValue[arg], env->knobValue[arg] = value);
 
CREATE_GROUP(Scale, "Scale");
CREATE_ACCESS_FUNCTIONS(Scale, Key, "Key %d", *value = env->getScaleKey(arg), env->setScaleKey(arg, value));
 
 
#define MBCV_NRPN_TABLE_SIZE 0x400
static const MbCvTableEntry_t mbCvNrpnTable[MBCV_NRPN_TABLE_SIZE] = {
// 0x000 - not handled tabled based yet!
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
 
// 0x100
NRPN_TABLE_ITEM( Knobs, Knob, 0, 0, 255, 0),
NRPN_TABLE_ITEM( Knobs, Knob, 1, 0, 255, 0),
NRPN_TABLE_ITEM( Knobs, Knob, 2, 0, 255, 0),
NRPN_TABLE_ITEM( Knobs, Knob, 3, 0, 255, 0),
NRPN_TABLE_ITEM( Knobs, Knob, 4, 0, 255, 0),
NRPN_TABLE_ITEM( Knobs, Knob, 5, 0, 255, 0),
NRPN_TABLE_ITEM( Knobs, Knob, 6, 0, 255, 0),
NRPN_TABLE_ITEM( Knobs, Knob, 7, 0, 255, 0),
NRPN_TABLE_ITEM_EMPTY8(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
 
// 0x200
NRPN_TABLE_ITEM( Scale, Key, 0, 0, 1, 0),
NRPN_TABLE_ITEM( Scale, Key, 1, 0, 1, 0),
NRPN_TABLE_ITEM( Scale, Key, 2, 0, 1, 0),
NRPN_TABLE_ITEM( Scale, Key, 3, 0, 1, 0),
NRPN_TABLE_ITEM( Scale, Key, 4, 0, 1, 0),
NRPN_TABLE_ITEM( Scale, Key, 5, 0, 1, 0),
NRPN_TABLE_ITEM( Scale, Key, 6, 0, 1, 0),
NRPN_TABLE_ITEM( Scale, Key, 7, 0, 1, 0),
NRPN_TABLE_ITEM( Scale, Key, 8, 0, 1, 0),
NRPN_TABLE_ITEM( Scale, Key, 9, 0, 1, 0),
NRPN_TABLE_ITEM( Scale, Key, 10, 0, 1, 0),
NRPN_TABLE_ITEM( Scale, Key, 11, 0, 1, 0),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
 
// 0x300
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
NRPN_TABLE_ITEM_EMPTY16(),
};
 
 
/////////////////////////////////////////////////////////////////////////////
// will set NRPN depending on first 10 bits
// MSBs already decoded in MbCvEnvironment
// returns false if parameter not mapped
/////////////////////////////////////////////////////////////////////////////
bool MbCvEnvironment::setGlobalNRPN(u16 nrpnNumber, u16 value)
{
u32 par = nrpnNumber & 0x3ff;
if( par < MBCV_NRPN_TABLE_SIZE ) {
MbCvTableEntry_t *t = (MbCvTableEntry_t *)&mbCvNrpnTable[par];
if( t->setFunct != NULL ) {
t->setFunct(this, t->arg, value);
return true;
}
}
 
return false; // parameter not mapped
}
 
 
/////////////////////////////////////////////////////////////////////////////
// returns NRPN value depending on first 10 bits
// MSBs already decoded in MbCvEnvironment
// returns false if parameter not mapped
/////////////////////////////////////////////////////////////////////////////
bool MbCvEnvironment::getGlobalNRPN(u16 nrpnNumber, u16 *value)
{
u32 par = nrpnNumber & 0x3ff;
if( par < MBCV_NRPN_TABLE_SIZE ) {
MbCvTableEntry_t *t = (MbCvTableEntry_t *)&mbCvNrpnTable[par];
if( t->getFunct != NULL ) {
t->getFunct(this, t->arg, value);
return true;
}
}
 
return false; // parameter not mapped
}
 
/////////////////////////////////////////////////////////////////////////////
// returns NRPN informations depending on first 10 bits
// MSBs already decoded in MbCvEnvironment
// returns false if parameter not mapped
/////////////////////////////////////////////////////////////////////////////
bool MbCvEnvironment::getGlobalNRPNInfo(u16 nrpnNumber, MbCvNrpnInfoT *info)
{
u32 par = nrpnNumber & 0x3ff;
if( par < MBCV_NRPN_TABLE_SIZE ) {
MbCvTableEntry_t *t = (MbCvTableEntry_t *)&mbCvNrpnTable[par];
if( t->getFunct != NULL ) {
t->getFunct(this, t->arg, &info->value);
info->cv = 0;
info->is_bidir = t->is_bidir;
info->min = t->min;
info->max = t->max;
 
{
char nameString[40];
char nameString1[21];
 
sprintf(nameString1, t->groupString, t->arg+1);
sprintf(nameString, "Glb %s", nameString1);
 
// 20 chars max; pad with spaces
int len = strlen(nameString);
for(int pos=len; pos<20; ++pos)
nameString[pos] = ' ';
nameString[20] = 0;
memcpy(info->nameString, nameString, 21);
}
 
{
char valueString[40];
char nameString1[21];
 
sprintf(nameString1, t->nameString, t->arg+1);
 
if( info->is_bidir ) {
int range = info->max - info->min + 1;
sprintf(valueString, "%s:%4d", nameString1, (int)info->value - (range/2));
} else {
if( info->min == 0 && info->max == 1 ) {
sprintf(valueString, "%s: %s", nameString1, info->value ? "on " : "off");
} else {
sprintf(valueString, "%s:%4d", nameString1, info->value);
}
}
 
// 20 chars max; pad with spaces
int len = strlen(valueString);
for(int pos=len; pos<20; ++pos)
valueString[pos] = ' ';
 
valueString[20] = 0;
memcpy(info->valueString, valueString, 21);
}
 
return true;
}
}
 
return false; // parameter not mapped
}
 
 
/////////////////////////////////////////////////////////////////////////////
// set/get knob values
/////////////////////////////////////////////////////////////////////////////
u8 MbCvEnvironment::getKnobValue(u8 knob)
{
return (knob < CV_KNOB_NUM) ? knobValue[knob] : 0;
}
 
void MbCvEnvironment::setKnobValue(u8 knob, u8 value)
{
if( knob < CV_KNOB_NUM )
knobValue[knob] = value;
}
 
 
/////////////////////////////////////////////////////////////////////////////
// set/get scale keys
/////////////////////////////////////////////////////////////////////////////
u8 MbCvEnvironment::getScaleKey(u8 key)
{
return (scaleKeyMask & (1 << key)) ? 1 : 0;
}
 
void MbCvEnvironment::setScaleKey(u8 key, u8 enable)
{
if( key < 12 ) {
if( enable ) {
scaleKeyMask |= (1 << key);
} else {
scaleKeyMask &= ~(1 << key);
}
}
 
updateScaleKeyMap();
}
 
void MbCvEnvironment::updateScaleKeyMap(void)
{
// re-calculate scale key map
s8 firstValidKey = -1;
s8 currentKey = -1;
for(int i=0; i<12; ++i) {
if( scaleKeyMask & (1 << i) ) {
if( firstValidKey < 0 )
firstValidKey = i;
currentKey = i;
scaleKeyMap[i] = i;
} else {
scaleKeyMap[i] = currentKey;
}
}
 
if( currentKey == -1 ) { // no valid key -> map to 0..11
for(int i=0; i<12; ++i)
scaleKeyMap[i] = i;
} else { // map back first entries to first valid key
for(int i=0; i<firstValidKey; ++i)
scaleKeyMap[i] = currentKey | 0x80;
}
}
 
// scales a 7bit value based on the scale key map
u8 MbCvEnvironment::scaleValue(u8 value)
{
u8 octave = value / 12;
u8 key = value % 12;
 
u8 scaleKey = scaleKeyMap[key];
 
if( scaleKey & 0x80 ) {
if( octave >= 1 )
return 12*(octave-1) + (scaleKey & 0x7f);
else
return 12*octave;
} else {
return 12*octave + scaleKey;
}
}
/trunk/apps/processing/midibox_cv_v2/src/components/MbCvVoice.cpp
13,6 → 13,7
*/
 
#include <string.h>
#include "app.h"
#include "MbCvVoice.h"
#include "MbCvMidiVoice.h"
#include "MbCvTables.h"
70,6 → 71,8
voiceFinetune = 0;
voicePitchrange = 2;
voicePortamentoRate = 0;
voiceForceToScale = false;
voiceExternalGateThreshold = 0;
 
voicePitchModulation = 0;
 
218,7 → 221,7
// increase/decrease target frequency by pitchrange
// depending on pitchbender and finetune value
if( voicePitchrange ) {
int delta = midiVoicePtr->midivoicePitchbender; // 14bit
int delta = midiVoicePtr->midivoicePitchBender; // 14bit
delta += (int)voiceFinetune*64; // 8bit -> 14bit
 
if( delta ) {
523,4 → 526,3
 
return out;
}
 
/trunk/apps/processing/midibox_cv_v2/src/components/MbCvMidiVoice.cpp
43,7 → 43,8
midivoiceSplitLower = 0x00;
midivoiceSplitUpper = 0x7f;
midivoiceTranspose = 0x40;
midivoicePitchbender = 0;
midivoiceModWheel = 0;
midivoicePitchBender = 0;
midivoiceLastVoice = 0;
midivoiceCCNumber = 16;
midivoiceAftertouch = 0;
/trunk/apps/processing/midibox_cv_v2/src/components/CapChargeCurve.c
5,7 → 5,7
#include <mios32.h>
#include "CapChargeCurve.h"
 
const u16 capChargeCurve[CAP_CHARGE_CURVE_STEPS] = {
const u16 capChargeCurve1[CAP_CHARGE_CURVE_STEPS] = {
91, // 0
139, // 1
201, // 2
1031,3 → 1031,1031
65528, // 1022
65535, // 1023
};
 
 
const u16 capChargeCurve2[CAP_CHARGE_CURVE_STEPS] = {
0, // 0
0, // 1
0, // 2
0, // 3
0, // 4
0, // 5
0, // 6
0, // 7
0, // 8
0, // 9
0, // 10
0, // 11
0, // 12
0, // 13
0, // 14
0, // 15
0, // 16
0, // 17
0, // 18
0, // 19
0, // 20
0, // 21
0, // 22
0, // 23
0, // 24
0, // 25
0, // 26
0, // 27
0, // 28
1, // 29
1, // 30
2, // 31
2, // 32
3, // 33
3, // 34
4, // 35
5, // 36
7, // 37
8, // 38
10, // 39
11, // 40
14, // 41
16, // 42
19, // 43
22, // 44
25, // 45
29, // 46
33, // 47
37, // 48
42, // 49
48, // 50
54, // 51
60, // 52
67, // 53
75, // 54
83, // 55
92, // 56
102, // 57
112, // 58
123, // 59
135, // 60
147, // 61
160, // 62
174, // 63
189, // 64
204, // 65
221, // 66
238, // 67
256, // 68
275, // 69
295, // 70
316, // 71
338, // 72
361, // 73
385, // 74
410, // 75
435, // 76
462, // 77
490, // 78
519, // 79
549, // 80
580, // 81
612, // 82
645, // 83
679, // 84
714, // 85
751, // 86
788, // 87
826, // 88
866, // 89
906, // 90
948, // 91
991, // 92
1035, // 93
1080, // 94
1126, // 95
1173, // 96
1221, // 97
1270, // 98
1320, // 99
1372, // 100
1424, // 101
1478, // 102
1532, // 103
1588, // 104
1644, // 105
1702, // 106
1761, // 107
1820, // 108
1881, // 109
1943, // 110
2005, // 111
2069, // 112
2134, // 113
2199, // 114
2266, // 115
2333, // 116
2402, // 117
2471, // 118
2541, // 119
2613, // 120
2685, // 121
2758, // 122
2832, // 123
2907, // 124
2982, // 125
3059, // 126
3136, // 127
3214, // 128
3293, // 129
3373, // 130
3454, // 131
3535, // 132
3617, // 133
3700, // 134
3784, // 135
3869, // 136
3954, // 137
4040, // 138
4126, // 139
4214, // 140
4302, // 141
4391, // 142
4480, // 143
4570, // 144
4661, // 145
4752, // 146
4844, // 147
4937, // 148
5030, // 149
5124, // 150
5218, // 151
5313, // 152
5409, // 153
5505, // 154
5601, // 155
5699, // 156
5796, // 157
5895, // 158
5993, // 159
6093, // 160
6192, // 161
6292, // 162
6393, // 163
6494, // 164
6596, // 165
6698, // 166
6800, // 167
6903, // 168
7006, // 169
7110, // 170
7214, // 171
7319, // 172
7423, // 173
7529, // 174
7634, // 175
7740, // 176
7846, // 177
7953, // 178
8060, // 179
8167, // 180
8275, // 181
8383, // 182
8491, // 183
8599, // 184
8708, // 185
8817, // 186
8926, // 187
9036, // 188
9145, // 189
9255, // 190
9366, // 191
9476, // 192
9587, // 193
9698, // 194
9809, // 195
9920, // 196
10032, // 197
10143, // 198
10255, // 199
10367, // 200
10480, // 201
10592, // 202
10704, // 203
10817, // 204
10930, // 205
11043, // 206
11156, // 207
11269, // 208
11383, // 209
11496, // 210
11610, // 211
11724, // 212
11837, // 213
11951, // 214
12065, // 215
12179, // 216
12294, // 217
12408, // 218
12522, // 219
12636, // 220
12751, // 221
12865, // 222
12980, // 223
13095, // 224
13209, // 225
13324, // 226
13439, // 227
13553, // 228
13668, // 229
13783, // 230
13898, // 231
14013, // 232
14127, // 233
14242, // 234
14357, // 235
14472, // 236
14587, // 237
14702, // 238
14817, // 239
14931, // 240
15046, // 241
15161, // 242
15276, // 243
15391, // 244
15505, // 245
15620, // 246
15735, // 247
15849, // 248
15964, // 249
16078, // 250
16193, // 251
16307, // 252
16421, // 253
16536, // 254
16650, // 255
16764, // 256
16878, // 257
16992, // 258
17106, // 259
17220, // 260
17334, // 261
17448, // 262
17561, // 263
17675, // 264
17788, // 265
17902, // 266
18015, // 267
18128, // 268
18241, // 269
18354, // 270
18467, // 271
18580, // 272
18693, // 273
18806, // 274
18918, // 275
19031, // 276
19143, // 277
19255, // 278
19367, // 279
19479, // 280
19591, // 281
19703, // 282
19814, // 283
19926, // 284
20037, // 285
20149, // 286
20260, // 287
20371, // 288
20482, // 289
20592, // 290
20703, // 291
20813, // 292
20924, // 293
21034, // 294
21144, // 295
21254, // 296
21364, // 297
21473, // 298
21583, // 299
21692, // 300
21802, // 301
21911, // 302
22020, // 303
22128, // 304
22237, // 305
22346, // 306
22454, // 307
22562, // 308
22670, // 309
22778, // 310
22886, // 311
22994, // 312
23101, // 313
23208, // 314
23315, // 315
23422, // 316
23529, // 317
23636, // 318
23742, // 319
23849, // 320
23955, // 321
24061, // 322
24167, // 323
24272, // 324
24378, // 325
24483, // 326
24588, // 327
24694, // 328
24798, // 329
24903, // 330
25008, // 331
25112, // 332
25216, // 333
25320, // 334
25424, // 335
25528, // 336
25631, // 337
25735, // 338
25838, // 339
25941, // 340
26044, // 341
26146, // 342
26249, // 343
26351, // 344
26453, // 345
26555, // 346
26657, // 347
26759, // 348
26860, // 349
26961, // 350
27062, // 351
27163, // 352
27264, // 353
27365, // 354
27465, // 355
27565, // 356
27665, // 357
27765, // 358
27865, // 359
27964, // 360
28064, // 361
28163, // 362
28262, // 363
28361, // 364
28459, // 365
28558, // 366
28656, // 367
28754, // 368
28852, // 369
28950, // 370
29048, // 371
29145, // 372
29242, // 373
29339, // 374
29436, // 375
29533, // 376
29629, // 377
29725, // 378
29822, // 379
29918, // 380
30013, // 381
30109, // 382
30204, // 383
30300, // 384
30395, // 385
30490, // 386
30584, // 387
30679, // 388
30773, // 389
30867, // 390
30961, // 391
31055, // 392
31149, // 393
31242, // 394
31336, // 395
31429, // 396
31522, // 397
31615, // 398
31707, // 399
31800, // 400
31892, // 401
31984, // 402
32076, // 403
32167, // 404
32259, // 405
32350, // 406
32441, // 407
32532, // 408
32623, // 409
32714, // 410
32804, // 411
32895, // 412
32985, // 413
33075, // 414
33165, // 415
33254, // 416
33344, // 417
33433, // 418
33522, // 419
33611, // 420
33699, // 421
33788, // 422
33876, // 423
33965, // 424
34053, // 425
34141, // 426
34228, // 427
34316, // 428
34403, // 429
34490, // 430
34577, // 431
34664, // 432
34751, // 433
34837, // 434
34924, // 435
35010, // 436
35096, // 437
35181, // 438
35267, // 439
35353, // 440
35438, // 441
35523, // 442
35608, // 443
35693, // 444
35777, // 445
35862, // 446
35946, // 447
36030, // 448
36114, // 449
36198, // 450
36282, // 451
36365, // 452
36448, // 453
36531, // 454
36614, // 455
36697, // 456
36780, // 457
36862, // 458
36945, // 459
37027, // 460
37109, // 461
37191, // 462
37272, // 463
37354, // 464
37435, // 465
37516, // 466
37597, // 467
37678, // 468
37759, // 469
37839, // 470
37920, // 471
38000, // 472
38080, // 473
38160, // 474
38239, // 475
38319, // 476
38398, // 477
38478, // 478
38557, // 479
38636, // 480
38714, // 481
38793, // 482
38871, // 483
38950, // 484
39028, // 485
39106, // 486
39184, // 487
39261, // 488
39339, // 489
39416, // 490
39493, // 491
39570, // 492
39647, // 493
39724, // 494
39801, // 495
39877, // 496
39953, // 497
40029, // 498
40105, // 499
40181, // 500
40257, // 501
40332, // 502
40408, // 503
40483, // 504
40558, // 505
40633, // 506
40708, // 507
40782, // 508
40857, // 509
40931, // 510
41005, // 511
41079, // 512
41153, // 513
41227, // 514
41301, // 515
41374, // 516
41447, // 517
41521, // 518
41594, // 519
41666, // 520
41739, // 521
41812, // 522
41884, // 523
41956, // 524
42029, // 525
42101, // 526
42172, // 527
42244, // 528
42316, // 529
42387, // 530
42458, // 531
42530, // 532
42601, // 533
42671, // 534
42742, // 535
42813, // 536
42883, // 537
42953, // 538
43024, // 539
43094, // 540
43163, // 541
43233, // 542
43303, // 543
43372, // 544
43442, // 545
43511, // 546
43580, // 547
43649, // 548
43718, // 549
43786, // 550
43855, // 551
43923, // 552
43991, // 553
44059, // 554
44127, // 555
44195, // 556
44263, // 557
44331, // 558
44398, // 559
44465, // 560
44533, // 561
44600, // 562
44666, // 563
44733, // 564
44800, // 565
44866, // 566
44933, // 567
44999, // 568
45065, // 569
45131, // 570
45197, // 571
45263, // 572
45328, // 573
45394, // 574
45459, // 575
45525, // 576
45590, // 577
45655, // 578
45719, // 579
45784, // 580
45849, // 581
45913, // 582
45978, // 583
46042, // 584
46106, // 585
46170, // 586
46234, // 587
46298, // 588
46361, // 589
46425, // 590
46488, // 591
46551, // 592
46614, // 593
46677, // 594
46740, // 595
46803, // 596
46866, // 597
46928, // 598
46990, // 599
47053, // 600
47115, // 601
47177, // 602
47239, // 603
47301, // 604
47362, // 605
47424, // 606
47485, // 607
47546, // 608
47608, // 609
47669, // 610
47730, // 611
47791, // 612
47851, // 613
47912, // 614
47972, // 615
48033, // 616
48093, // 617
48153, // 618
48213, // 619
48273, // 620
48333, // 621
48393, // 622
48452, // 623
48512, // 624
48571, // 625
48630, // 626
48689, // 627
48748, // 628
48807, // 629
48866, // 630
48925, // 631
48983, // 632
49042, // 633
49100, // 634
49158, // 635
49216, // 636
49274, // 637
49332, // 638
49390, // 639
49448, // 640
49505, // 641
49563, // 642
49620, // 643
49677, // 644
49735, // 645
49792, // 646
49849, // 647
49905, // 648
49962, // 649
50019, // 650
50075, // 651
50132, // 652
50188, // 653
50244, // 654
50300, // 655
50356, // 656
50412, // 657
50468, // 658
50523, // 659
50579, // 660
50634, // 661
50690, // 662
50745, // 663
50800, // 664
50855, // 665
50910, // 666
50965, // 667
51020, // 668
51074, // 669
51129, // 670
51183, // 671
51238, // 672
51292, // 673
51346, // 674
51400, // 675
51454, // 676
51508, // 677
51562, // 678
51615, // 679
51669, // 680
51722, // 681
51775, // 682
51829, // 683
51882, // 684
51935, // 685
51988, // 686
52041, // 687
52093, // 688
52146, // 689
52199, // 690
52251, // 691
52304, // 692
52356, // 693
52408, // 694
52460, // 695
52512, // 696
52564, // 697
52616, // 698
52667, // 699
52719, // 700
52771, // 701
52822, // 702
52873, // 703
52925, // 704
52976, // 705
53027, // 706
53078, // 707
53129, // 708
53179, // 709
53230, // 710
53281, // 711
53331, // 712
53381, // 713
53432, // 714
53482, // 715
53532, // 716
53582, // 717
53632, // 718
53682, // 719
53732, // 720
53781, // 721
53831, // 722
53881, // 723
53930, // 724
53979, // 725
54029, // 726
54078, // 727
54127, // 728
54176, // 729
54225, // 730
54273, // 731
54322, // 732
54371, // 733
54419, // 734
54468, // 735
54516, // 736
54565, // 737
54613, // 738
54661, // 739
54709, // 740
54757, // 741
54805, // 742
54852, // 743
54900, // 744
54948, // 745
54995, // 746
55043, // 747
55090, // 748
55137, // 749
55185, // 750
55232, // 751
55279, // 752
55326, // 753
55372, // 754
55419, // 755
55466, // 756
55513, // 757
55559, // 758
55606, // 759
55652, // 760
55698, // 761
55744, // 762
55791, // 763
55837, // 764
55883, // 765
55928, // 766
55974, // 767
56020, // 768
56066, // 769
56111, // 770
56157, // 771
56202, // 772
56247, // 773
56293, // 774
56338, // 775
56383, // 776
56428, // 777
56473, // 778
56518, // 779
56563, // 780
56607, // 781
56652, // 782
56696, // 783
56741, // 784
56785, // 785
56830, // 786
56874, // 787
56918, // 788
56962, // 789
57006, // 790
57050, // 791
57094, // 792
57138, // 793
57182, // 794
57225, // 795
57269, // 796
57312, // 797
57356, // 798
57399, // 799
57442, // 800
57486, // 801
57529, // 802
57572, // 803
57615, // 804
57658, // 805
57700, // 806
57743, // 807
57786, // 808
57829, // 809
57871, // 810
57914, // 811
57956, // 812
57998, // 813
58041, // 814
58083, // 815
58125, // 816
58167, // 817
58209, // 818
58251, // 819
58293, // 820
58334, // 821
58376, // 822
58418, // 823
58459, // 824
58501, // 825
58542, // 826
58584, // 827
58625, // 828
58666, // 829
58707, // 830
58748, // 831
58789, // 832
58830, // 833
58871, // 834
58912, // 835
58953, // 836
58993, // 837
59034, // 838
59074, // 839
59115, // 840
59155, // 841
59196, // 842
59236, // 843
59276, // 844
59316, // 845
59356, // 846
59396, // 847
59436, // 848
59476, // 849
59516, // 850
59556, // 851
59595, // 852
59635, // 853
59674, // 854
59714, // 855
59753, // 856
59793, // 857
59832, // 858
59871, // 859
59910, // 860
59949, // 861
59988, // 862
60027, // 863
60066, // 864
60105, // 865
60144, // 866
60183, // 867
60221, // 868
60260, // 869
60298, // 870
60337, // 871
60375, // 872
60414, // 873
60452, // 874
60490, // 875
60528, // 876
60566, // 877
60604, // 878
60642, // 879
60680, // 880
60718, // 881
60756, // 882
60794, // 883
60831, // 884
60869, // 885
60906, // 886
60944, // 887
60981, // 888
61019, // 889
61056, // 890
61093, // 891
61130, // 892
61168, // 893
61205, // 894
61242, // 895
61279, // 896
61316, // 897
61352, // 898
61389, // 899
61426, // 900
61462, // 901
61499, // 902
61536, // 903
61572, // 904
61609, // 905
61645, // 906
61681, // 907
61717, // 908
61754, // 909
61790, // 910
61826, // 911
61862, // 912
61898, // 913
61934, // 914
61970, // 915
62005, // 916
62041, // 917
62077, // 918
62112, // 919
62148, // 920
62184, // 921
62219, // 922
62254, // 923
62290, // 924
62325, // 925
62360, // 926
62395, // 927
62431, // 928
62466, // 929
62501, // 930
62536, // 931
62571, // 932
62605, // 933
62640, // 934
62675, // 935
62710, // 936
62744, // 937
62779, // 938
62813, // 939
62848, // 940
62882, // 941
62917, // 942
62951, // 943
62985, // 944
63020, // 945
63054, // 946
63088, // 947
63122, // 948
63156, // 949
63190, // 950
63224, // 951
63258, // 952
63291, // 953
63325, // 954
63359, // 955
63393, // 956
63426, // 957
63460, // 958
63493, // 959
63527, // 960
63560, // 961
63593, // 962
63627, // 963
63660, // 964
63693, // 965
63726, // 966
63759, // 967
63792, // 968
63825, // 969
63858, // 970
63891, // 971
63924, // 972
63957, // 973
63989, // 974
64022, // 975
64055, // 976
64087, // 977
64120, // 978
64152, // 979
64185, // 980
64217, // 981
64250, // 982
64282, // 983
64314, // 984
64346, // 985
64378, // 986
64411, // 987
64443, // 988
64475, // 989
64507, // 990
64538, // 991
64570, // 992
64602, // 993
64634, // 994
64666, // 995
64697, // 996
64729, // 997
64760, // 998
64792, // 999
64823, // 1000
64855, // 1001
64886, // 1002
64918, // 1003
64949, // 1004
64980, // 1005
65011, // 1006
65043, // 1007
65074, // 1008
65105, // 1009
65136, // 1010
65167, // 1011
65198, // 1012
65229, // 1013
65259, // 1014
65290, // 1015
65321, // 1016
65352, // 1017
65382, // 1018
65413, // 1019
65443, // 1020
65474, // 1021
65505, // 1022
65535, // 1023
};
/trunk/apps/processing/midibox_cv_v2/src/components/MbCvStructs.h
33,7 → 33,9
 
#define CV_EXTCLK_NUM 7 // 7 external clock outputs
 
#define CV_KNOB_NUM 8 // 8 knobs
 
 
/////////////////////////////////////////////////////////////////////////////
// Global Types
/////////////////////////////////////////////////////////////////////////////
/trunk/apps/processing/midibox_cv_v2/src/components/MbCv.cpp
46,6 → 46,7
mbCvVoice.init(_cvNum, &mbCvMidiVoice);
mbCvMidiVoice.init();
mbCvMod.init(_cvNum);
lastExternalGateValue = 0;
 
updatePatch(true);
}
56,6 → 57,22
/////////////////////////////////////////////////////////////////////////////
bool MbCv::tick(const u8 &updateSpeedFactor)
{
// external trigger
{
u16 ainValue = MIOS32_AIN_PinGet(cvNum); // 12bit
u16 threshold = mbCvVoice.voiceExternalGateThreshold << 4; // 8bit -> 12bit
if( threshold ) {
if( lastExternalGateValue < threshold && ainValue >= threshold ) {
mbCvVoice.gateOn();
triggerNoteOn(&mbCvVoice);
} else if( lastExternalGateValue >= threshold && ainValue < threshold ) {
mbCvVoice.gateOff(mbCvVoice.voicePlayedNote);
triggerNoteOff(&mbCvVoice);
}
}
lastExternalGateValue = ainValue;
}
 
// clock
if( mbCvClockPtr->eventStart ) {
mbCvSeqBassline.seqRestartReq = true;
84,8 → 101,6
if( l->tick(updateSpeedFactor) ) {
// trigger[MBCV_TRG_L1P+lfo];
}
 
mbCvMod.modSrc[MBCV_MOD_SRC_LFO1 + lfo] = l->lfoOut;
}
}
 
102,8 → 117,6
if( e->tick(updateSpeedFactor) ) {
// trigger[MBCV_TRG_E1S];
}
 
mbCvMod.modSrc[MBCV_MOD_SRC_ENV1] = e->envOut;
}
}
 
119,74 → 132,75
if( e->tick(updateSpeedFactor) ) {
// trigger[MBCV_TRG_E2S];
}
 
mbCvMod.modSrc[MBCV_MOD_SRC_ENV2] = e->envOut;
}
}
 
// Modulation Matrix
{
// since this isn't done anywhere else:
// convert linear frequency of voice1 to 15bit signed value (only positive direction)
mbCvMod.modSrc[MBCV_MOD_SRC_KEY] = mbCvVoice.voiceLinearFrq >> 1;
 
// do ModMatrix calculations
mbCvMod.tick();
 
// additional direct modulation paths
{ // Pitch
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_PITCH];
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_LFO1] * (s32)mbCvLfo[0].lfoDepthPitch) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_LFO2] * (s32)mbCvLfo[1].lfoDepthPitch) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_ENV1] * (s32)mbCvEnv1[0].envDepthPitch) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_ENV2] * (s32)mbCvEnv2[0].envDepthPitch) / 128;
mbCvMod.modDst[MBCV_MOD_DST_PITCH] = mod;
}
{
s32 lfo1Value = (s32)mbCvLfo[0].lfoOut;
s32 lfo2Value = (s32)mbCvLfo[1].lfoOut;
s32 env1Value = (s32)mbCvEnv1[0].envOut;
s32 env2Value = (s32)mbCvEnv2[0].envOut;
 
{ // LFO1 Amp
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_LFO1_A];
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_LFO2] * (s32)mbCvLfo[1].lfoDepthLfoAmplitude) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_ENV1] * (s32)mbCvEnv1[0].envDepthLfo1Amplitude) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_ENV2] * (s32)mbCvEnv2[0].envDepthLfo1Amplitude) / 128;
mbCvMod.modDst[MBCV_MOD_DST_LFO1_A] = mod;
}
{ // Pitch
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_CV];
mod += (lfo1Value * (s32)mbCvLfo[0].lfoDepthPitch) / 128;
mod += (lfo2Value * (s32)mbCvLfo[1].lfoDepthPitch) / 128;
mod += (env1Value * (s32)mbCvEnv1[0].envDepthPitch) / 128;
mod += (env1Value * (s32)mbCvEnv2[0].envDepthPitch) / 128;
mbCvMod.modDst[MBCV_MOD_DST_CV] = mod;
}
 
{ // LFO2 Amp
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_LFO2_A];
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_LFO1] * (s32)mbCvLfo[0].lfoDepthLfoAmplitude) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_ENV1] * (s32)mbCvEnv1[0].envDepthLfo2Amplitude) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_ENV2] * (s32)mbCvEnv2[0].envDepthLfo2Amplitude) / 128;
mbCvMod.modDst[MBCV_MOD_DST_LFO2_A] = mod;
}
{ // LFO1 Amp
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_LFO1_A];
mod += (lfo2Value * (s32)mbCvLfo[1].lfoDepthLfoAmplitude) / 128;
mod += (env1Value * (s32)mbCvEnv1[0].envDepthLfo1Amplitude) / 128;
mod += (env2Value * (s32)mbCvEnv2[0].envDepthLfo1Amplitude) / 128;
mbCvMod.modDst[MBCV_MOD_DST_LFO1_A] = mod;
}
 
{ // LFO1 Rate
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_LFO1_R];
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_LFO2] * (s32)mbCvLfo[1].lfoDepthLfoRate) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_ENV1] * (s32)mbCvEnv1[0].envDepthLfo1Rate) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_ENV2] * (s32)mbCvEnv2[0].envDepthLfo1Rate) / 128;
mbCvMod.modDst[MBCV_MOD_DST_LFO1_R] = mod;
}
{ // LFO2 Amp
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_LFO2_A];
mod += (lfo1Value * (s32)mbCvLfo[0].lfoDepthLfoAmplitude) / 128;
mod += (env1Value * (s32)mbCvEnv1[0].envDepthLfo2Amplitude) / 128;
mod += (env2Value * (s32)mbCvEnv2[0].envDepthLfo2Amplitude) / 128;
mbCvMod.modDst[MBCV_MOD_DST_LFO2_A] = mod;
}
 
{ // LFO2 Rate
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_LFO2_R];
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_LFO1] * (s32)mbCvLfo[0].lfoDepthLfoRate) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_ENV1] * (s32)mbCvEnv1[0].envDepthLfo2Rate) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_ENV2] * (s32)mbCvEnv2[0].envDepthLfo2Rate) / 128;
mbCvMod.modDst[MBCV_MOD_DST_LFO2_R] = mod;
}
{ // LFO1 Rate
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_LFO1_R];
mod += (lfo2Value * (s32)mbCvLfo[1].lfoDepthLfoRate) / 128;
mod += (env1Value * (s32)mbCvEnv1[0].envDepthLfo1Rate) / 128;
mod += (env2Value * (s32)mbCvEnv2[0].envDepthLfo1Rate) / 128;
mbCvMod.modDst[MBCV_MOD_DST_LFO1_R] = mod;
}
 
{ // ENV1 Rate
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_ENV1_R];
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_LFO1] * (s32)mbCvLfo[0].lfoDepthEnv1Rate) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_LFO2] * (s32)mbCvLfo[1].lfoDepthEnv1Rate) / 128;
mbCvMod.modDst[MBCV_MOD_DST_ENV1_R] = mod;
}
{ // LFO2 Rate
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_LFO2_R];
mod += (lfo1Value * (s32)mbCvLfo[0].lfoDepthLfoRate) / 128;
mod += (env1Value * (s32)mbCvEnv1[0].envDepthLfo2Rate) / 128;
mod += (env2Value * (s32)mbCvEnv2[0].envDepthLfo2Rate) / 128;
mbCvMod.modDst[MBCV_MOD_DST_LFO2_R] = mod;
}
 
{ // ENV2 Rate
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_ENV2_R];
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_LFO1] * (s32)mbCvLfo[0].lfoDepthEnv2Rate) / 128;
mod += ((s32)mbCvMod.modSrc[MBCV_MOD_SRC_LFO2] * (s32)mbCvLfo[1].lfoDepthEnv2Rate) / 128;
mbCvMod.modDst[MBCV_MOD_DST_ENV2_R] = mod;
{ // ENV1 Rate
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_ENV1_R];
mod += (lfo1Value * (s32)mbCvLfo[0].lfoDepthEnv1Rate) / 128;
mod += (lfo2Value * (s32)mbCvLfo[1].lfoDepthEnv1Rate) / 128;
mbCvMod.modDst[MBCV_MOD_DST_ENV1_R] = mod;
}
 
{ // ENV2 Rate
s32 mod = mbCvMod.modDst[MBCV_MOD_DST_ENV2_R];
mod += (lfo1Value * (s32)mbCvLfo[0].lfoDepthEnv2Rate) / 128;
mod += (lfo2Value * (s32)mbCvLfo[1].lfoDepthEnv2Rate) / 128;
mbCvMod.modDst[MBCV_MOD_DST_ENV2_R] = mod;
}
}
}
 
194,16 → 208,12
// Voice handling
MbCvVoice *v = &mbCvVoice; // allows to use multiple voices later
 
v->voicePitchModulation = mbCvMod.takeDstValue(MBCV_MOD_DST_PITCH);
v->voicePitchModulation = mbCvMod.takeDstValue(MBCV_MOD_DST_CV);
 
if( mbCvArp.arpEnabled ) {
mbCvArp.tick(v, this);
mbCvMod.modSrc[MBCV_MOD_SRC_SEQ_ENVMOD] = mbCvSeqBassline.seqEnvMod << 7; // just pass current value
mbCvMod.modSrc[MBCV_MOD_SRC_SEQ_ACCENT] = mbCvSeqBassline.seqAccent << 7; // just pass current value (not effective value)
} else {
mbCvSeqBassline.tick(v, this);
mbCvMod.modSrc[MBCV_MOD_SRC_SEQ_ENVMOD] = mbCvSeqBassline.seqEnvMod << 7;
mbCvMod.modSrc[MBCV_MOD_SRC_SEQ_ACCENT] = mbCvSeqBassline.seqAccentEffective << 7; // effective value is only != 0 when accent flag is set
}
 
if( v->gate(updateSpeedFactor) )
265,7 → 275,6
 
// set note on/off
if( velocity ) {
mbCvMod.modSrc[MBCV_MOD_SRC_VEL] = velocity << 8;
noteOn(note, velocity, false);
} else
noteOff(note, false);
282,7 → 291,7
// take over CC (valid CCs will be checked by MIDI voice)
if( mbCvMidiVoice.isAssigned(chn) ) {
if( ccNumber == 1 )
mbCvMod.modSrc[MBCV_MOD_SRC_MDW] = value << 8;
mbCvMidiVoice.midivoiceModWheel = value;
 
mbCvMidiVoice.setCC(ccNumber, value);
}
296,9 → 305,7
{
if( mbCvMidiVoice.isAssigned(chn) ) {
s16 pitchbendValueSigned = (s16)pitchbendValue14bit - 8192;
mbCvMidiVoice.midivoicePitchbender = pitchbendValueSigned;
 
mbCvMod.modSrc[MBCV_MOD_SRC_PBN] = 2*pitchbendValueSigned;
mbCvMidiVoice.midivoicePitchBender = pitchbendValueSigned;
}
}
 
309,8 → 316,7
void MbCv::midiReceiveAftertouch(u8 chn, u8 value)
{
if( mbCvMidiVoice.isAssigned(chn) ) {
mbCvMidiVoice.midivoiceAftertouch = value << 8;
mbCvMod.modSrc[MBCV_MOD_SRC_ATH] = value;
mbCvMidiVoice.midivoiceAftertouch = value;
}
}
 
518,6 → 524,8
CREATE_ACCESS_FUNCTIONS(MidiVoice, Poly, "Poly", *value = cv->mbCvVoice.voicePoly, cv->mbCvVoice.voicePoly = value);
CREATE_ACCESS_FUNCTIONS(MidiVoice, SusKey, "SusKey", *value = cv->mbCvVoice.voiceSusKey, cv->mbCvVoice.voiceSusKey = value);
CREATE_ACCESS_FUNCTIONS(MidiVoice, PortamentoMode, "PortamentoMode", *value = cv->mbCvVoice.getPortamentoMode(), cv->mbCvVoice.setPortamentoMode(value));
CREATE_ACCESS_FUNCTIONS(MidiVoice, ForceToScale, "ForceToScale", *value = cv->mbCvVoice.voiceForceToScale, cv->mbCvVoice.voiceForceToScale = value);
CREATE_ACCESS_FUNCTIONS(MidiVoice, ExtGateThrs, "ExtGateThrs", *value = cv->mbCvVoice.voiceExternalGateThreshold, cv->mbCvVoice.voiceExternalGateThreshold = value);
CREATE_ACCESS_FUNCTIONS(MidiVoice, PitchRange, "Pitch Range", *value = cv->mbCvVoice.voicePitchrange, cv->mbCvVoice.voicePitchrange = value);
CREATE_ACCESS_FUNCTIONS(MidiVoice, Ketrack, "Keytrack", *value = (int)cv->mbCvVoice.voiceKeytrack + 0x80, cv->mbCvVoice.voiceKeytrack = (int)value - 0x80);
CREATE_ACCESS_FUNCTIONS(MidiVoice, TransposeOctave, "Transp. Octave", *value = (int)cv->mbCvVoice.voiceTransposeOctave + 8, cv->mbCvVoice.voiceTransposeOctave = (int)value - 8);
566,7 → 574,8
 
CREATE_GROUP(Env1, "ENV1");
CREATE_ACCESS_FUNCTIONS(Env1, Amplitude, "Amplitude", *value = (int)cv->mbCvEnv1[arg].envAmplitude + 0x80, cv->mbCvEnv1[arg].envAmplitude = (int)value - 0x80);
CREATE_ACCESS_FUNCTIONS(Env1, Curve, "Curve", *value = (int)cv->mbCvEnv1[arg].envCurve, cv->mbCvEnv1[arg].envCurve = (int)value);
CREATE_ACCESS_FUNCTIONS(Env1, CurvePos, "CurvePos", *value = (int)cv->mbCvEnv1[arg].envCurvePos, cv->mbCvEnv1[arg].envCurvePos = (int)value);
CREATE_ACCESS_FUNCTIONS(Env1, CurveNeg, "CurveNeg", *value = (int)cv->mbCvEnv1[arg].envCurveNeg, cv->mbCvEnv1[arg].envCurveNeg = (int)value);
CREATE_ACCESS_FUNCTIONS(Env1, Delay, "Delay", *value = (int)cv->mbCvEnv1[arg].envDelay, cv->mbCvEnv1[arg].envDelay = (int)value);
CREATE_ACCESS_FUNCTIONS(Env1, Attack, "Attack", *value = (int)cv->mbCvEnv1[arg].envAttack, cv->mbCvEnv1[arg].envAttack = (int)value);
CREATE_ACCESS_FUNCTIONS(Env1, Decay, "Decay", *value = (int)cv->mbCvEnv1[arg].envDecay, cv->mbCvEnv1[arg].envDecay = (int)value);
584,7 → 593,8
 
CREATE_GROUP(Env2, "ENV2");
CREATE_ACCESS_FUNCTIONS(Env2, Amplitude, "Amplitude", *value = (int)cv->mbCvEnv2[arg].envAmplitude + 0x80, cv->mbCvEnv2[arg].envAmplitude = (int)value - 0x80);
CREATE_ACCESS_FUNCTIONS(Env2, Curve, "Curve", *value = (int)cv->mbCvEnv2[arg].envCurve, cv->mbCvEnv2[arg].envCurve = (int)value);
CREATE_ACCESS_FUNCTIONS(Env2, CurvePos, "CurvePos", *value = (int)cv->mbCvEnv2[arg].envCurvePos, cv->mbCvEnv2[arg].envCurvePos = (int)value);
CREATE_ACCESS_FUNCTIONS(Env2, CurveNeg, "CurveNeg", *value = (int)cv->mbCvEnv2[arg].envCurveNeg, cv->mbCvEnv2[arg].envCurveNeg = (int)value);
CREATE_ACCESS_FUNCTIONS(Env2, Offset, "Offset", *value = (int)cv->mbCvEnv2[arg].envOffset, cv->mbCvEnv2[arg].envOffset = (int)value);
CREATE_ACCESS_FUNCTIONS(Env2, Rate, "Rate", *value = (int)cv->mbCvEnv2[arg].envRate, cv->mbCvEnv2[arg].envRate = (int)value);
CREATE_ACCESS_FUNCTIONS(Env2, LoopAttack, "Loop Attack", *value = (int)cv->mbCvEnv2[arg].envLoopAttack, cv->mbCvEnv2[arg].envLoopAttack = (int)value);
604,6 → 614,7
 
CREATE_GROUP(Mod, "Mod%d");
CREATE_ACCESS_FUNCTIONS(Mod, Depth, "Depth", *value = cv->mbCvMod.modPatch[arg].depth + 0x80, cv->mbCvMod.modPatch[arg].depth = (int)value - 0x80);
CREATE_ACCESS_FUNCTIONS(Mod, Offset, "Offset", *value = cv->mbCvMod.modPatch[arg].offset + 0x80, cv->mbCvMod.modPatch[arg].offset = (int)value - 0x80);
CREATE_ACCESS_FUNCTIONS(Mod, Src1, "Source1", *value = cv->mbCvMod.modPatch[arg].src1, cv->mbCvMod.modPatch[arg].src1 = value);
CREATE_ACCESS_FUNCTIONS(Mod, Src1Chn, "Source1 CV", *value = cv->mbCvMod.modPatch[arg].src1_chn, cv->mbCvMod.modPatch[arg].src1_chn = value);
CREATE_ACCESS_FUNCTIONS(Mod, Src2, "Source2", *value = cv->mbCvMod.modPatch[arg].src2, cv->mbCvMod.modPatch[arg].src2 = value);
660,10 → 671,10
NRPN_TABLE_ITEM( MidiVoice, Poly, 0, 0, 1, 0),
NRPN_TABLE_ITEM( MidiVoice, SusKey, 0, 0, 1, 0),
NRPN_TABLE_ITEM( MidiVoice, PortamentoMode, 0, 0, 2, 0),
NRPN_TABLE_ITEM( MidiVoice, ForceToScale, 0, 0, 1, 0),
NRPN_TABLE_ITEM( MidiVoice, ExtGateThrs, 0, 0, 255, 0),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY8(),
 
// 0x030
896,13 → 907,13
 
// 0x200
NRPN_TABLE_ITEM( Env1, Amplitude, 0, 0, 255, 1),
NRPN_TABLE_ITEM( Env1, Curve, 0, 0, 3, 0), // TODO: create enum for curve
NRPN_TABLE_ITEM( Env1, CurvePos, 0, 0, MBCV_ENV_NUM_CURVES-1, 0),
NRPN_TABLE_ITEM( Env1, CurveNeg, 0, 0, MBCV_ENV_NUM_CURVES-1, 0),
NRPN_TABLE_ITEM( Env1, Delay, 0, 0, 255, 0),
NRPN_TABLE_ITEM( Env1, Attack, 0, 0, 255, 0),
NRPN_TABLE_ITEM( Env1, Decay, 0, 0, 255, 0),
NRPN_TABLE_ITEM( Env1, Sustain, 0, 0, 255, 0),
NRPN_TABLE_ITEM( Env1, Release, 0, 0, 255, 0),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY8(),
 
// 0x210
940,13 → 951,13
 
// 0x280
NRPN_TABLE_ITEM( Env2, Amplitude, 0, 0, 255, 1),
NRPN_TABLE_ITEM( Env2, Curve, 0, 0, 3, 0), // TODO: create enum for curve
NRPN_TABLE_ITEM( Env2, CurvePos, 0, 0, MBCV_ENV_NUM_CURVES-1, 0),
NRPN_TABLE_ITEM( Env2, CurveNeg, 0, 0, MBCV_ENV_NUM_CURVES-1, 0),
NRPN_TABLE_ITEM( Env2, Offset, 0, 0, 255, 0),
NRPN_TABLE_ITEM( Env2, Rate, 0, 0, 255, 0),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
 
// 0x288
NRPN_TABLE_ITEM( Env2, LoopAttack, 0, 0, 16, 0),
1024,6 → 1035,7
 
// 0x300
NRPN_TABLE_ITEM( Mod, Depth, 0, 0, 255, 1),
NRPN_TABLE_ITEM( Mod, Offset, 0, 0, 255, 1),
NRPN_TABLE_ITEM( Mod, Src1, 0, 0, MBCV_NUM_MOD_SRC-1, 0),
NRPN_TABLE_ITEM( Mod, Src1Chn, 0, 0, CV_SE_NUM-1, 0),
NRPN_TABLE_ITEM( Mod, Src2, 0, 0, MBCV_NUM_MOD_SRC-1, 0),
1038,10 → 1050,10
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
 
// 0x310
NRPN_TABLE_ITEM( Mod, Depth, 1, 0, 255, 1),
NRPN_TABLE_ITEM( Mod, Offset, 1, 0, 255, 1),
NRPN_TABLE_ITEM( Mod, Src1, 1, 0, MBCV_NUM_MOD_SRC-1, 0),
NRPN_TABLE_ITEM( Mod, Src1Chn, 1, 0, CV_SE_NUM-1, 0),
NRPN_TABLE_ITEM( Mod, Src2, 1, 0, MBCV_NUM_MOD_SRC-1, 0),
1056,10 → 1068,10
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
 
// 0x320
NRPN_TABLE_ITEM( Mod, Depth, 2, 0, 255, 1),
NRPN_TABLE_ITEM( Mod, Offset, 2, 0, 255, 1),
NRPN_TABLE_ITEM( Mod, Src1, 2, 0, MBCV_NUM_MOD_SRC-1, 0),
NRPN_TABLE_ITEM( Mod, Src1Chn, 2, 0, CV_SE_NUM-1, 0),
NRPN_TABLE_ITEM( Mod, Src2, 2, 0, MBCV_NUM_MOD_SRC-1, 0),
1074,10 → 1086,10
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
 
// 0x330
NRPN_TABLE_ITEM( Mod, Depth, 3, 0, 255, 1),
NRPN_TABLE_ITEM( Mod, Offset, 3, 0, 255, 1),
NRPN_TABLE_ITEM( Mod, Src1, 3, 0, MBCV_NUM_MOD_SRC-1, 0),
NRPN_TABLE_ITEM( Mod, Src1Chn, 3, 0, CV_SE_NUM-1, 0),
NRPN_TABLE_ITEM( Mod, Src2, 3, 0, MBCV_NUM_MOD_SRC-1, 0),
1092,7 → 1104,6
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
NRPN_TABLE_ITEM_EMPTY(),
 
// 0x340
NRPN_TABLE_ITEM_EMPTY16(),
/trunk/apps/processing/midibox_cv_v2/src/components/CapChargeCurve.h
17,6 → 17,7
 
#define CAP_CHARGE_CURVE_STEPS 1024
 
extern const u16 capChargeCurve[CAP_CHARGE_CURVE_STEPS];
extern const u16 capChargeCurve1[CAP_CHARGE_CURVE_STEPS];
extern const u16 capChargeCurve2[CAP_CHARGE_CURVE_STEPS];
 
#endif /* _CAP_CHARGE_CURVE_H */
/trunk/apps/processing/midibox_cv_v2/src/components/MbCvMod.cpp
56,13 → 56,155
mp->src2_chn = _modNum;
mp->op = 0;
mp->depth = 64;
mp->offset = 0;
mp->dst1 = 0;
mp->dst2 = 0;
 
modOut[i] = 0;
}
}
 
 
/////////////////////////////////////////////////////////////////////////////
// Modulation Sources
/////////////////////////////////////////////////////////////////////////////
 
#define CREATE_SRC_FUNCTION(name, str, getCode) \
static const char name##SrcString[] = str; \
static s16 getSrc##name(MbCvEnvironment* env, u8 cv) { getCode; }
 
typedef struct {
const char *nameString;
s16 (*getFunct)(MbCvEnvironment *env, u8 cv);
} MbCvModSrcTableEntry_t;
 
#define SRC_TABLE_ITEM(name) \
{ name##SrcString, getSrc##name }
 
CREATE_SRC_FUNCTION(None, "--- ", return 0);
CREATE_SRC_FUNCTION(Env1, "ENV1", return env->mbCv[cv].mbCvEnv1[0].envOut);
CREATE_SRC_FUNCTION(Env2, "ENV2", return env->mbCv[cv].mbCvEnv2[0].envOut);
CREATE_SRC_FUNCTION(Lfo1, "LFO1", return env->mbCv[cv].mbCvLfo[0].lfoOut);
CREATE_SRC_FUNCTION(Lfo2, "LFO2", return env->mbCv[cv].mbCvLfo[1].lfoOut);
CREATE_SRC_FUNCTION(Mod1, "MOD1", return env->mbCv[cv].mbCvMod.modOut[0]);
CREATE_SRC_FUNCTION(Mod2, "MOD2", return env->mbCv[cv].mbCvMod.modOut[1]);
CREATE_SRC_FUNCTION(Mod3, "MOD3", return env->mbCv[cv].mbCvMod.modOut[2]);
CREATE_SRC_FUNCTION(Mod4, "MOD4", return env->mbCv[cv].mbCvMod.modOut[3]);
CREATE_SRC_FUNCTION(Key, "Key ", return env->mbCv[cv].mbCvVoice.voiceLinearFrq >> 1);
CREATE_SRC_FUNCTION(Vel, "Vel ", return env->mbCv[cv].mbCvVoice.voiceVelocity << 8);
CREATE_SRC_FUNCTION(MdW, "MdW ", return env->mbCv[cv].mbCvMidiVoice.midivoiceModWheel << 8);
CREATE_SRC_FUNCTION(PBn, "PBn ", return env->mbCv[cv].mbCvMidiVoice.midivoicePitchBender * 2);
CREATE_SRC_FUNCTION(Aft, "Aft ", return env->mbCv[cv].mbCvMidiVoice.midivoiceAftertouch << 8);
CREATE_SRC_FUNCTION(Knb1, "Knb1", return env->knobValue[0] << 7);
CREATE_SRC_FUNCTION(Knb2, "Knb2", return env->knobValue[1] << 7);
CREATE_SRC_FUNCTION(Knb3, "Knb3", return env->knobValue[2] << 7);
CREATE_SRC_FUNCTION(Knb4, "Knb4", return env->knobValue[3] << 7);
CREATE_SRC_FUNCTION(Knb5, "Knb5", return env->knobValue[4] << 7);
CREATE_SRC_FUNCTION(Knb6, "Knb6", return env->knobValue[5] << 7);
CREATE_SRC_FUNCTION(Knb7, "Knb7", return env->knobValue[6] << 7);
CREATE_SRC_FUNCTION(Knb8, "Knb8", return env->knobValue[7] << 7);
CREATE_SRC_FUNCTION(Ain1, "AIN1", return MIOS32_AIN_PinGet(0) << 3); // 12bit -> 15bit
CREATE_SRC_FUNCTION(Ain2, "AIN2", return MIOS32_AIN_PinGet(1) << 3); // 12bit -> 15bit
CREATE_SRC_FUNCTION(Ain3, "AIN3", return MIOS32_AIN_PinGet(2) << 3); // 12bit -> 15bit
CREATE_SRC_FUNCTION(Ain4, "AIN4", return MIOS32_AIN_PinGet(3) << 3); // 12bit -> 15bit
CREATE_SRC_FUNCTION(Ain5, "AIN5", return MIOS32_AIN_PinGet(4) << 3); // 12bit -> 15bit
CREATE_SRC_FUNCTION(Ain6, "AIN6", return MIOS32_AIN_PinGet(5) << 3); // 12bit -> 15bit
CREATE_SRC_FUNCTION(Ain7, "AIN7", return MIOS32_AIN_PinGet(6) << 3); // 12bit -> 15bit
CREATE_SRC_FUNCTION(Ain8, "AIN8", return MIOS32_AIN_PinGet(7) << 3); // 12bit -> 15bit
CREATE_SRC_FUNCTION(SeqEnvM, "EnvM", return env->mbCv[cv].mbCvSeqBassline.seqEnvMod << 7);
CREATE_SRC_FUNCTION(SeqAcc, "Acc.", return (env->mbCv[cv].mbCvArp.arpEnabled ? env->mbCv[cv].mbCvSeqBassline.seqAccent : env->mbCv[cv].mbCvSeqBassline.seqAccentEffective) << 7);
 
static const MbCvModSrcTableEntry_t mbCvModSrcTable[MBCV_NUM_MOD_SRC] = {
SRC_TABLE_ITEM(None),
SRC_TABLE_ITEM(Env1),
SRC_TABLE_ITEM(Env2),
SRC_TABLE_ITEM(Lfo1),
SRC_TABLE_ITEM(Lfo2),
SRC_TABLE_ITEM(Mod1),
SRC_TABLE_ITEM(Mod2),
SRC_TABLE_ITEM(Mod3),
SRC_TABLE_ITEM(Mod4),
SRC_TABLE_ITEM(Key),
SRC_TABLE_ITEM(Vel),
SRC_TABLE_ITEM(MdW),
SRC_TABLE_ITEM(PBn),
SRC_TABLE_ITEM(Aft),
SRC_TABLE_ITEM(Knb1),
SRC_TABLE_ITEM(Knb2),
SRC_TABLE_ITEM(Knb3),
SRC_TABLE_ITEM(Knb4),
SRC_TABLE_ITEM(Knb5),
SRC_TABLE_ITEM(Knb6),
SRC_TABLE_ITEM(Knb7),
SRC_TABLE_ITEM(Knb8),
SRC_TABLE_ITEM(Ain1),
SRC_TABLE_ITEM(Ain2),
SRC_TABLE_ITEM(Ain3),
SRC_TABLE_ITEM(Ain4),
SRC_TABLE_ITEM(Ain5),
SRC_TABLE_ITEM(Ain6),
SRC_TABLE_ITEM(Ain7),
SRC_TABLE_ITEM(Ain8),
SRC_TABLE_ITEM(SeqEnvM),
SRC_TABLE_ITEM(SeqAcc),
};
 
 
/////////////////////////////////////////////////////////////////////////////
// Modulation Operations
/////////////////////////////////////////////////////////////////////////////
 
#define CREATE_OP_FUNCTION(name, str, modifyCode) \
static const char name##OpString[] = str; \
static s16 modifyOp##name(MbCvEnvironment *env, MbCvMod* mod, u8 num, s16 src1, s16 src2) { modifyCode; }
 
typedef struct {
const char *nameString;
s16 (*modifyFunct)(MbCvEnvironment *env, MbCvMod *mod, u8 num, s16 src1, s16 src2);
} MbCvModOpTableEntry_t;
 
#define OP_TABLE_ITEM(name) \
{ name##OpString, modifyOp##name }
 
CREATE_OP_FUNCTION(None, "--- ", return 0);
CREATE_OP_FUNCTION(Src1Only, "Src1", return src1);
CREATE_OP_FUNCTION(Src2Only, "Src2", return src2);
CREATE_OP_FUNCTION(Plus, "1+2 ", return src1 + src2);
CREATE_OP_FUNCTION(Minus, "1-2 ", return src1 - src2);
CREATE_OP_FUNCTION(Multiply, "1*2 ", return (src1 * src2) / 8192); // / 8192 to avoid overrun
CREATE_OP_FUNCTION(Xor, "XOR ", return src1 ^ src2);
CREATE_OP_FUNCTION(Or, "OR ", return src1 | src2);
CREATE_OP_FUNCTION(And, "AND ", return src1 & src2);
CREATE_OP_FUNCTION(Min, "MIN ", return (src1 < src2) ? src1 : src2);
CREATE_OP_FUNCTION(Max, "MAX ", return (src1 > src2) ? src1 : src2);
CREATE_OP_FUNCTION(Lt, "1<2 ", return (src1 < src2) ? 0x7fff : 0x0000);
CREATE_OP_FUNCTION(Gt, "1>2 ", return (src1 > src2) ? 0x7fff : 0x0000);
CREATE_OP_FUNCTION(Eq, "1=2 ", s32 diff = src1 - src2; return (diff > -64 && diff < 64) ? 0x7fff : 0x0000);
CREATE_OP_FUNCTION(SandH, "S&H ", u8 old_mod_transition = mod->modTransition; if( src2 < 0 ) { mod->modTransition &= ~(1 << num); } else { mod->modTransition |= (1 << num); } return (mod->modTransition != old_mod_transition && src2 >= 0) ? src1 : mod->modOut[num]);
CREATE_OP_FUNCTION(Fts, "FTS ", s32 sum = src1 + src2; if( sum >= 0 ) { return env->scaleValue(sum / 256) * 256; } else { return -(env->scaleValue(-sum / 256) * 256); });
 
 
static const MbCvModOpTableEntry_t mbCvModOpTable[MBCV_NUM_MOD_OP] = {
OP_TABLE_ITEM(None),
OP_TABLE_ITEM(Src1Only),
OP_TABLE_ITEM(Src2Only),
OP_TABLE_ITEM(Plus),
OP_TABLE_ITEM(Minus),
OP_TABLE_ITEM(Multiply),
OP_TABLE_ITEM(Xor),
OP_TABLE_ITEM(Or),
OP_TABLE_ITEM(And),
OP_TABLE_ITEM(Min),
OP_TABLE_ITEM(Max),
OP_TABLE_ITEM(Lt),
OP_TABLE_ITEM(Gt),
OP_TABLE_ITEM(Eq),
OP_TABLE_ITEM(SandH),
OP_TABLE_ITEM(Fts),
};
 
 
/////////////////////////////////////////////////////////////////////////////
// Modulation Matrix Handler
/////////////////////////////////////////////////////////////////////////////
void MbCvMod::tick(void)
78,135 → 220,62
if( mp->depth != 0 ) {
 
// first source
s32 mod_src1_value;
if( !mp->src1 || mp->src2_chn >= CV_SE_NUM ) {
mod_src1_value = 0;
} else {
s32 mod_src1_value = 0;
if( mp->src1 && mp->src1_chn < CV_SE_NUM ) {
if( mp->src1 & (1 << 7) ) {
// constant range 0x00..0x7f -> +0x0000..0x38f0
mod_src1_value = (mp->src1 & 0x7f) << 7;
} else {
} else if( mp->src1 < MBCV_NUM_MOD_SRC ) {
// modulation range +/- 0x3fff
mod_src1_value = env->mbCv[mp->src1_chn].mbCvMod.modSrc[mp->src1-1] / 2;
const MbCvModSrcTableEntry_t *srcItem = &mbCvModSrcTable[mp->src1];
mod_src1_value = srcItem->getFunct(env, mp->src1_chn) / 2;
}
}
 
// second source
s32 mod_src2_value;
if( !mp->src2 || mp->src2_chn >= CV_SE_NUM ) {
mod_src2_value = 0;
} else {
s32 mod_src2_value = 0;
if( mp->src2 && mp->src2_chn < CV_SE_NUM ) {
if( mp->src2 & (1 << 7) ) {
// constant range 0x00..0x7f -> +0x0000..0x38f0
mod_src2_value = (mp->src2 & 0x7f) << 7;
} else {
// modulation range +/- 0x3fff
mod_src2_value = env->mbCv[mp->src2_chn].mbCvMod.modSrc[mp->src2-1] / 2;
const MbCvModSrcTableEntry_t *srcItem = &mbCvModSrcTable[mp->src2];
mod_src2_value = srcItem->getFunct(env, mp->src2_chn) / 2;
}
}
 
// apply operator
s16 mod_result;
switch( mp->op & 0x0f ) {
case 0: // disabled
mod_result = 0;
break;
 
case 1: // SRC1 only
mod_result = mod_src1_value;
break;
 
case 2: // SRC2 only
mod_result = mod_src2_value;
break;
 
case 3: // SRC1+SRC2
mod_result = mod_src1_value + mod_src2_value;
break;
 
case 4: // SRC1-SRC2
mod_result = mod_src1_value - mod_src2_value;
break;
 
case 5: // SRC1*SRC2 / 8192 (to avoid overrun)
mod_result = (mod_src1_value * mod_src2_value) / 8192;
break;
 
case 6: // XOR
mod_result = mod_src1_value ^ mod_src2_value;
break;
 
case 7: // OR
mod_result = mod_src1_value | mod_src2_value;
break;
 
case 8: // AND
mod_result = mod_src1_value & mod_src2_value;
break;
 
case 9: // Min
mod_result = (mod_src1_value < mod_src2_value) ? mod_src1_value : mod_src2_value;
break;
 
case 10: // Max
mod_result = (mod_src1_value > mod_src2_value) ? mod_src1_value : mod_src2_value;
break;
 
case 11: // SRC1 < SRC2
mod_result = (mod_src1_value < mod_src2_value) ? 0x7fff : 0x0000;
break;
 
case 12: // SRC1 > SRC2
mod_result = (mod_src1_value > mod_src2_value) ? 0x7fff : 0x0000;
break;
 
case 13: { // SRC1 == SRC2 (with tolarance of +/- 64
s32 diff = mod_src1_value - mod_src2_value;
mod_result = (diff > -64 && diff < 64) ? 0x7fff : 0x0000;
} break;
 
case 14: { // S&H - SRC1 will be sampled whenever SRC2 changes from a negative to a positive value
// check for SRC2 transition
u8 old_mod_transition = modTransition;
if( mod_src2_value < 0 )
modTransition &= ~(1 << i);
else
modTransition |= (1 << i);
 
if( modTransition != old_mod_transition && mod_src2_value >= 0 ) // only on positive transition
mod_result = mod_src1_value; // sample: take new mod value
else
mod_result = modSrc[MBCV_MOD_SRC_MOD1 + i]; // hold: take old mod value
} break;
 
default:
mod_result = 0;
u8 opNum = mp->op & 0xf;
s16 mod_result = 0;
if( opNum < MBCV_NUM_MOD_OP ) {
const MbCvModOpTableEntry_t *opItem = &mbCvModOpTable[opNum];
mod_result = opItem->modifyFunct(env, this, i, mod_src1_value, mod_src2_value);
}
 
// store in modulator source array for feedbacks
// use value w/o depth, this has two advantages:
// use value w/o depth and offset, this has two advantages:
// - maximum resolution when forwarding the data value
// - original MOD value can be taken for sample&hold feature
// bit it also has disadvantage:
// - the user could think it is a bug when depth doesn't affect the feedback MOD value...
modSrc[MBCV_MOD_SRC_MOD1 + i] = mod_result;
modOut[i] = mod_result;
 
// forward to destinations
if( mod_result ) {
if( mod_result || mp->offset ) {
s32 scaled_mod_result = (s32)mp->depth * mod_result / 64; // (+/- 0x7fff * +/- 0x7f) / 128
// invert result if requested
s32 mod_dst1 = (mp->op & (1 << 6)) ? -scaled_mod_result : scaled_mod_result;
s32 mod_dst2 = (mp->op & (1 << 7)) ? -scaled_mod_result : scaled_mod_result;
 
// add result to modulation target array
// add result + offset to modulation target array
u8 dst1 = mp->dst1;
if( dst1 && dst1 <= MBCV_NUM_MOD_DST )
modDst[dst1 - 1] += mod_dst1;
modDst[dst1] += mod_dst1 + 512 * mp->offset;
u8 dst2 = mp->dst2;
if( dst2 && dst2 <= MBCV_NUM_MOD_DST )
modDst[dst2 - 1] += mod_dst2;
modDst[dst2] += mod_dst2 + 512 * mp->offset;
}
}
}
/trunk/apps/processing/midibox_cv_v2/src/components/MbCvEnvBase.cpp
52,7 → 52,8
envModeFast = 0;
 
envAmplitude = 64;
envCurve = 0;
envCurvePos = 0;
envCurveNeg = 0;
 
envDepthPitch = 0;
envDepthLfo1Amplitude = 0;
105,10 → 106,21
 
// Waveshape depending on envCurve
u16 curveValue = envCtr; // MBCV_ENV_CURVE_LINEAR and other unimplemented
if( envCurve == MBCV_ENV_CURVE_EXP ) {
curveValue = capChargeCurve[curveValue / (65536 / CAP_CHARGE_CURVE_STEPS)];
u8 curve = curveInverted ? envCurveNeg : envCurvePos;
switch( curve ) {
case MBCV_ENV_CURVE_EXP1:
curveValue = capChargeCurve1[curveValue / (65536 / CAP_CHARGE_CURVE_STEPS)];
break;
case MBCV_ENV_CURVE_EXP1_INV:
curveValue = 65535 - capChargeCurve1[(65535 - curveValue) / (65536 / CAP_CHARGE_CURVE_STEPS)];
break;
case MBCV_ENV_CURVE_EXP2:
curveValue = capChargeCurve2[curveValue / (65536 / CAP_CHARGE_CURVE_STEPS)];
break;
case MBCV_ENV_CURVE_EXP2_INV:
curveValue = 65535 - capChargeCurve2[(65535 - curveValue) / (65536 / CAP_CHARGE_CURVE_STEPS)];
break;
}
// TODO: MBCV_ENV_CURVE_CUSTOM*
 
// scale over range
if( curveInverted ) {
/trunk/apps/processing/midibox_cv_v2/src/components/MbCvEnvironment.h
46,6 → 46,13
// up to 32 gates should be sufficient for future extensions? (currently we only use 8!)
u32 cvGates;
 
// Knobs
array<u8, CV_KNOB_NUM> knobValue;
 
// Scale
u16 scaleKeyMask;
u8 scaleKeyMap[12];
 
// sound patch
MbCvPatch mbCvPatch;
 
110,6 → 117,21
bool getNRPN(u16 nrpnNumber, u16 *value);
bool getNRPNInfo(u16 nrpnNumber, MbCvNrpnInfoT *info);
// global NRPNs
bool setGlobalNRPN(u16 nrpnNumber, u16 value);
bool getGlobalNRPN(u16 nrpnNumber, u16 *value);
bool getGlobalNRPNInfo(u16 nrpnNumber, MbCvNrpnInfoT *info);
 
// set/get knob values
u8 getKnobValue(u8 knob);
void setKnobValue(u8 knob, u8 value);
 
// set/get scale keys
u8 getScaleKey(u8 key);
void setScaleKey(u8 key, u8 enable);
void updateScaleKeyMap(void); // done automatically by setScaleKey
u8 scaleValue(u8 value); // scales a 7bit value based on the scale key map
 
// SysEx parsers
//MbCvSysEx mbCvSysEx;
 
/trunk/apps/processing/midibox_cv_v2/src/components/MbCvVoice.h
97,6 → 97,8
u16 voiceLinearFrq;
u8 voiceRetriggerDelay;
u8 voiceSetDelayCtr;
bool voiceForceToScale;
u8 voiceExternalGateThreshold;
 
u8 voiceAssignedInstrument;
 
115,6 → 117,7
u16 transpose(u16 value);
 
protected:
 
};
 
#endif /* _MB_CV_VOICE_H */
/trunk/apps/processing/midibox_cv_v2/src/components/MbCvMidiVoice.h
55,7 → 55,8
u8 midivoiceSplitUpper;
s8 midivoiceTranspose;
u8 midivoiceLastVoice;
s16 midivoicePitchbender;
u8 midivoiceModWheel;
s16 midivoicePitchBender;
u8 midivoiceAftertouch;
u8 midivoiceCCNumber;
u8 midivoiceCCValue;
/trunk/apps/processing/midibox_cv_v2/src/components/MbCvMod.h
23,54 → 23,77
#define MBCV_NUM_MOD 4
 
// Modulation source assignments
#define MBCV_MOD_SRC_ENV1 0
#define MBCV_MOD_SRC_ENV2 1
#define MBCV_MOD_SRC_LFO1 2
#define MBCV_MOD_SRC_LFO2 3
#define MBCV_MOD_SRC_MOD1 4
#define MBCV_MOD_SRC_MOD2 5
#define MBCV_MOD_SRC_MOD3 6
#define MBCV_MOD_SRC_MOD4 7
#define MBCV_MOD_SRC_KEY 8
#define MBCV_MOD_SRC_VEL 9
#define MBCV_MOD_SRC_MDW 10
#define MBCV_MOD_SRC_PBN 11
#define MBCV_MOD_SRC_ATH 12
#define MBCV_MOD_SRC_KNOB1 13
#define MBCV_MOD_SRC_KNOB2 14
#define MBCV_MOD_SRC_KNOB3 15
#define MBCV_MOD_SRC_KNOB4 16
#define MBCV_MOD_SRC_KNOB5 17
#define MBCV_MOD_SRC_KNOB6 18
#define MBCV_MOD_SRC_KNOB7 19
#define MBCV_MOD_SRC_KNOB8 20
#define MBCV_MOD_SRC_AIN1 21
#define MBCV_MOD_SRC_AIN2 22
#define MBCV_MOD_SRC_AIN3 23
#define MBCV_MOD_SRC_AIN4 24
#define MBCV_MOD_SRC_AIN5 25
#define MBCV_MOD_SRC_AIN6 26
#define MBCV_MOD_SRC_AIN7 27
#define MBCV_MOD_SRC_AIN8 28
#define MBCV_MOD_SRC_SEQ_ENVMOD 29
#define MBCV_MOD_SRC_SEQ_ACCENT 30
#define MBCV_MOD_SRC_NONE 0
#define MBCV_MOD_SRC_ENV1 1
#define MBCV_MOD_SRC_ENV2 2
#define MBCV_MOD_SRC_LFO1 3
#define MBCV_MOD_SRC_LFO2 4
#define MBCV_MOD_SRC_MOD1 5
#define MBCV_MOD_SRC_MOD2 6
#define MBCV_MOD_SRC_MOD3 7
#define MBCV_MOD_SRC_MOD4 8
#define MBCV_MOD_SRC_KEY 9
#define MBCV_MOD_SRC_VEL 10
#define MBCV_MOD_SRC_MDW 11
#define MBCV_MOD_SRC_PBN 12
#define MBCV_MOD_SRC_ATH 13
#define MBCV_MOD_SRC_KNOB1 14
#define MBCV_MOD_SRC_KNOB2 15
#define MBCV_MOD_SRC_KNOB3 16
#define MBCV_MOD_SRC_KNOB4 17
#define MBCV_MOD_SRC_KNOB5 18
#define MBCV_MOD_SRC_KNOB6 19
#define MBCV_MOD_SRC_KNOB7 20
#define MBCV_MOD_SRC_KNOB8 21
#define MBCV_MOD_SRC_AIN1 22
#define MBCV_MOD_SRC_AIN2 23
#define MBCV_MOD_SRC_AIN3 24
#define MBCV_MOD_SRC_AIN4 25
#define MBCV_MOD_SRC_AIN5 26
#define MBCV_MOD_SRC_AIN6 27
#define MBCV_MOD_SRC_AIN7 28
#define MBCV_MOD_SRC_AIN8 29
#define MBCV_MOD_SRC_SEQ_ENVMOD 30
#define MBCV_MOD_SRC_SEQ_ACCENT 31
 
#define MBCV_NUM_MOD_SRC 31
#define MBCV_NUM_MOD_SRC 32
 
 
// Modulation Operators
#define MBCV_MOD_OP_NONE 0
#define MBCV_MOD_OP_SRC1_ONLY 1
#define MBCV_MOD_OP_SRC2_ONLY 2
#define MBCV_MOD_OP_PLUS 3
#define MBCV_MOD_OP_MINUS 4
#define MBCV_MOD_OP_MULTIPLY 5
#define MBCV_MOD_OP_XOR 6
#define MBCV_MOD_OP_OR 7
#define MBCV_MOD_OP_AND 8
#define MBCV_MOD_OP_MIN 9
#define MBCV_MOD_OP_MAX 10
#define MBCV_MOD_OP_LT 11
#define MBCV_MOD_OP_GT 12
#define MBCV_MOD_OP_EQ 13
#define MBCV_MOD_OP_S_AND_H 14
#define MBCV_MOD_OP_FTS 15
 
#define MBCV_NUM_MOD_OP 16
 
 
// Modulation destination assignments
#define MBCV_MOD_DST_PITCH 0
#define MBCV_MOD_DST_LFO1_A 1
#define MBCV_MOD_DST_LFO2_A 2
#define MBCV_MOD_DST_LFO1_R 3
#define MBCV_MOD_DST_LFO2_R 4
#define MBCV_MOD_DST_ENV1_A 5
#define MBCV_MOD_DST_ENV2_A 6
#define MBCV_MOD_DST_ENV1_R 7
#define MBCV_MOD_DST_ENV2_R 8
#define MBCV_MOD_DST_NONE 0
#define MBCV_MOD_DST_CV 1
#define MBCV_MOD_DST_LFO1_A 2
#define MBCV_MOD_DST_LFO2_A 3
#define MBCV_MOD_DST_LFO1_R 4
#define MBCV_MOD_DST_LFO2_R 5
#define MBCV_MOD_DST_ENV1_A 6
#define MBCV_MOD_DST_ENV2_A 7
#define MBCV_MOD_DST_ENV1_R 8
#define MBCV_MOD_DST_ENV2_R 9
// maybe we should also control the ENV2 step? Too complicated?
 
#define MBCV_NUM_MOD_DST 9
#define MBCV_NUM_MOD_DST 10
 
 
class MbCvMod
92,6 → 115,7
// modulation parmeters
typedef struct modPatchT {
s8 depth;
s8 offset;
u8 src1;
u8 src1_chn;
u8 src2;
103,8 → 127,8
 
ModPatchT modPatch[MBCV_NUM_MOD];
 
// Values of modulation sources
s32 modSrc[MBCV_NUM_MOD_SRC];
// Output values of modulation paths
s16 modOut[MBCV_NUM_MOD];
 
// Values of modulation destinations
s32 modDst[MBCV_NUM_MOD_DST];
111,7 → 135,6
 
s32 takeDstValue(const u8& ix);
 
protected:
// flags modulation transitions
u8 modTransition;
};
/trunk/apps/processing/midibox_cv_v2/src/components/MbCv.h
75,6 → 75,9
// modulation matrix
MbCvMod mbCvMod;
 
// last external gate sample
u16 lastExternalGateValue;
 
// note handling
void noteOn(u8 note, u8 velocity, bool bypassNotestack);
void noteOff(u8 note, bool bypassNotestack);
/trunk/apps/processing/midibox_cv_v2/src/mios32_config.h
50,4 → 50,41
#endif
 
 
// AIN configuration:
 
// bit mask to enable channels
//
// Pin mapping on MBHP_CORE_STM32 module:
// 15 14 13 12 11 10 9 8
// J16.SO J16.SI J16.SC J16.RC J5C.A11 J5C.A10 J5C.A9 J5C.A8
// 7 6 5 4 3 2 1 0
// J5B.A7 J5B.A6 J5B.A5 J5B.A4 J5A.A3 J5A.A2 J5A.A1 J5A.A0
//
// Examples:
// mask 0x000f will enable all J5A channels
// mask 0x00f0 will enable all J5B channels
// mask 0x0f00 will enable all J5C channels
// mask 0x0fff will enable all J5A/B/C channels
// (all channels are disabled by default)
#if defined(MIOS32_FAMILY_STM32F10x) || defined(MIOS32_FAMILY_LPC17xx)
// reduced to 6 pins due to conflict with MIDI OUT3/IN3
#define MIOS32_AIN_CHANNEL_MASK 0x003f
#else
#define MIOS32_AIN_CHANNEL_MASK 0x00ff
#endif
 
// define the deadband (min. difference to report a change to the application hook)
// typically set to (2^(12-desired_resolution)-1)
// e.g. for a resolution of 7 bit, it's set to (2^(12-7)-1) = (2^5 - 1) = 31
#define MIOS32_AIN_DEADBAND 3
 
// Normally the ADC channels are converted each mS from the programming
// model (main.c) - optionally this can be skipped with
// #define MIOS32_DONT_SERVICE_AIN 1 in mios32_config.h
//
// In this case, the MIOS32_AIN_StartConversions() function has to be called
// periodically from the application (e.g. from a timer), and conversion values
// can be retrieved with MIOS32_AIN_PinGet()
#define MIOS32_DONT_SERVICE_AIN 1
 
#endif /* _MIOS32_CONFIG_H */
/trunk/apps/processing/midibox_cv_v2/src/scs_config.cpp
469,6 → 469,9
static u16 cvInvGateGet(u32 ix) { return env->mbCv[selectedCv].mbCvVoice.voiceGateInverted; }
static void cvInvGateSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvVoice.voiceGateInverted = value; }
 
static u16 cvExtGateThrsGet(u32 ix) { return env->mbCv[selectedCv].mbCvVoice.voiceExternalGateThreshold; }
static void cvExtGateThrsSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvVoice.voiceExternalGateThreshold = value; }
 
static u16 cvSplitLowerGet(u32 ix) { return env->mbCv[selectedCv].mbCvMidiVoice.midivoiceSplitLower; }
static void cvSplitLowerSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvMidiVoice.midivoiceSplitLower = value; }
 
496,6 → 499,9
static u16 cvSusKeyGet(u32 ix) { return env->mbCv[selectedCv].mbCvVoice.voiceSusKey; }
static void cvSusKeySet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvVoice.voiceSusKey = value; }
 
static u16 cvForceToScaleGet(u32 ix) { return env->mbCv[selectedCv].mbCvVoice.voiceForceToScale; }
static void cvForceToScaleSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvVoice.voiceForceToScale = value; }
 
static u16 cvCCGet(u32 ix) { return env->mbCv[selectedCv].mbCvMidiVoice.midivoiceCCNumber; }
static void cvCCSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvMidiVoice.midivoiceCCNumber = value; }
 
625,9 → 631,12
static u16 env1ReleaseGet(u32 ix) { return env->mbCv[selectedCv].mbCvEnv1[selectedEnv1].envRelease; }
static void env1ReleaseSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvEnv1[selectedEnv1].envRelease = value; }
 
static u16 env1CurveGet(u32 ix) { return env->mbCv[selectedCv].mbCvEnv1[selectedEnv1].envCurve; }
static void env1CurveSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvEnv1[selectedEnv1].envCurve = value; }
static u16 env1CurvePosGet(u32 ix) { return env->mbCv[selectedCv].mbCvEnv1[selectedEnv1].envCurvePos; }
static void env1CurvePosSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvEnv1[selectedEnv1].envCurvePos = value; }
 
static u16 env1CurveNegGet(u32 ix) { return env->mbCv[selectedCv].mbCvEnv1[selectedEnv1].envCurveNeg; }
static void env1CurveNegSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvEnv1[selectedEnv1].envCurveNeg = value; }
 
static u16 env1ClkSyncGet(u32 ix) { return env->mbCv[selectedCv].mbCvEnv1[selectedEnv1].envModeClkSync; }
static void env1ClkSyncSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvEnv1[selectedEnv1].envModeClkSync = value; }
 
669,9 → 678,12
static u16 env2RateGet(u32 ix) { return env->mbCv[selectedCv].mbCvEnv2[selectedEnv2].envRate; }
static void env2RateSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvEnv2[selectedEnv2].envRate = value; }
 
static u16 env2CurveGet(u32 ix) { return env->mbCv[selectedCv].mbCvEnv2[selectedEnv2].envCurve; }
static void env2CurveSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvEnv2[selectedEnv2].envCurve = value; }
static u16 env2CurvePosGet(u32 ix) { return env->mbCv[selectedCv].mbCvEnv2[selectedEnv2].envCurvePos; }
static void env2CurvePosSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvEnv2[selectedEnv2].envCurvePos = value; }
 
static u16 env2CurveNegGet(u32 ix) { return env->mbCv[selectedCv].mbCvEnv2[selectedEnv2].envCurveNeg; }
static void env2CurveNegSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvEnv2[selectedEnv2].envCurveNeg = value; }
 
static u16 env2LastStepGet(u32 ix) { return env->mbCv[selectedCv].mbCvEnv2[selectedEnv2].envLastStep; }
static void env2LastStepSet(u32 ix, u16 value) { env->mbCv[selectedCv].mbCvEnv2[selectedEnv2].envLastStep = value; }
 
806,6 → 818,7
SCS_ITEM("Mode ", 0, MBCV_MIDI_EVENT_MODE_NUM-1, cvEventGet, cvEventSet, selectNOP, stringCvMode, NULL),
SCS_ITEM("Play ", 0, 2, cvPlayModeGet, cvPlayModeSet, selectNOP, stringCvPlayMode, NULL),
SCS_ITEM("InvG ", 0, 1, cvInvGateGet, cvInvGateSet, selectNOP, stringOnOff, NULL),
SCS_ITEM("ExtG ", 0, 255, cvExtGateThrsGet,cvExtGateThrsSet, selectNOP, stringDec, NULL),
SCS_ITEM("SplL ", 0, 127, cvSplitLowerGet,cvSplitLowerSet,selectNOP, stringNote, NULL),
SCS_ITEM("SplU ", 0, 127, cvSplitUpperGet,cvSplitUpperSet,selectNOP, stringNote, NULL),
SCS_ITEM("PRng ", 0, 24, cvPitchRangeGet,cvPitchRangeSet,selectNOP, stringDec, NULL),
815,6 → 828,7
SCS_ITEM("Port ", 0, 255, cvPortamentoGet,cvPortamentoSet,selectNOP, stringDec, NULL),
SCS_ITEM("PMod ", 0, 2, cvPortamentoModeGet,cvPortamentoModeSet,selectNOP, stringCvPortamentoMode, NULL),
SCS_ITEM("SusK ", 0, 1, cvSusKeyGet, cvSusKeySet, selectNOP, stringOnOff, NULL),
SCS_ITEM("FtS ", 0, 1, cvForceToScaleGet, cvForceToScaleSet, selectNOP, stringOnOff, NULL),
SCS_ITEM(" CC ", 0, 127, cvCCGet, cvCCSet, selectNOP,stringDec, NULL),
SCS_ITEM("USB1 ", 0, 1, cvPortGet, cvPortSet, selectNOP, stringOnOff, NULL),
#if MIOS32_USB_MIDI_NUM_PORTS >= 2
882,7 → 896,8
SCS_ITEM("Dec. ", 0, 255, env1DecayGet, env1DecaySet, selectNOP, stringDec, NULL),
SCS_ITEM("Sus. ", 0, 255, env1SustainGet, env1SustainSet, selectNOP, stringDec, NULL),
SCS_ITEM("Rel. ", 0, 255, env1ReleaseGet, env1ReleaseSet, selectNOP, stringDec, NULL),
SCS_ITEM("Curv ", 0, 1, env1CurveGet, env1CurveSet, selectNOP, stringCurve, NULL),
SCS_ITEM("Cur+ ", 0, MBCV_ENV_NUM_CURVES-1, env1CurvePosGet, env1CurvePosSet, selectNOP, stringCurve, NULL),
SCS_ITEM("Cur- ", 0, MBCV_ENV_NUM_CURVES-1, env1CurveNegGet, env1CurveNegSet, selectNOP, stringCurve, NULL),
SCS_ITEM("ClkS ", 0, 1, env1ClkSyncGet, env1ClkSyncSet, selectNOP, stringOnOff, NULL),
SCS_ITEM("KeyS ", 0, 1, env1KeySyncGet, env1KeySyncSet, selectNOP, stringOnOff, NULL),
SCS_ITEM("Fast ", 0, 1, env1ModeFastGet, env1ModeFastSet, selectNOP, stringOnOff, NULL),
899,7 → 914,8
SCS_ITEM("Ampl ", 0, 255, env2AmplitudeGet, env2AmplitudeSet,selectNOP, stringDecPM128, NULL),
SCS_ITEM("Offs ", 0, 255, env2OffsetGet, env2OffsetSet, selectNOP, stringDecPM128, NULL),
SCS_ITEM("Rate ", 0, 255, env2RateGet, env2RateSet, selectNOP, stringDec, NULL),
SCS_ITEM("Curv ", 0, 1, env2CurveGet, env2CurveSet, selectNOP, stringCurve, NULL),
SCS_ITEM("Cur+ ", 0, MBCV_ENV_NUM_CURVES-1, env2CurvePosGet, env2CurvePosSet, selectNOP, stringCurve, NULL),
SCS_ITEM("Cur- ", 0, MBCV_ENV_NUM_CURVES-1, env2CurveNegGet, env2CurveNegSet, selectNOP, stringCurve, NULL),
SCS_ITEM("Stps ", 0, 15, env2LastStepGet, env2LastStepSet, selectNOP, stringDecP1, NULL),
SCS_ITEM("LpAt ", 0, 16, env2LoopAttackGet, env2LoopAttackSet, selectNOP, stringDec, NULL),
SCS_ITEM("SusS ", 0, 16, env2SustainStepGet, env2SustainStepSet, selectNOP, stringDec, NULL),
/trunk/apps/processing/midibox_cv_v2/src/app.cpp
63,15 → 63,7
//#define STOPWATCH_PERFORMANCE_MEASURING 2
#define STOPWATCH_PERFORMANCE_MEASURING 0
 
// output execution times at J5B:A4..A7
// 0: off
// 1: on -> J5.A4: CV processing (low-active)
// J5.A5: CV processing + mapping (low-active)
// J5.A6: Scope output (low-active)
 
#define J5_DEBUG_PINS 1
 
 
/////////////////////////////////////////////////////////////////////////////
// local variables
/////////////////////////////////////////////////////////////////////////////
125,23 → 117,12
// init Stopwatch
APP_StopwatchInit();
 
#if J5_DEBUG_PINS
// initialize debug pins J5B:A4..A7
{
int i;
for(int i=4; i<7; ++i) {
MIOS32_BOARD_J5_PinInit(i, MIOS32_BOARD_PIN_MODE_OUTPUT_PP);
MIOS32_BOARD_J5_PinSet(i, 1);
}
}
#endif
 
// initialize all J10 pins as inputs with internal Pull-Up
int pin;
for(pin=0; pin<8; ++pin)
MIOS32_BOARD_J10_PinInit(pin, MIOS32_BOARD_PIN_MODE_INPUT_PU);
 
// initialize OLED pins at J5
// initialize OLED pins at Alternative LCD port (LPC17: J5/J28, STM32F4: J10B)
{
APP_SelectScopeLCDs();
 
395,20 → 376,11
if( cv_se_overloaded )
return;
 
#if J5_DEBUG_PINS
MIOS32_BOARD_J5_PinSet(4, 0);
MIOS32_BOARD_J5_PinSet(5, 0);
#endif
 
#if STOPWATCH_PERFORMANCE_MEASURING == 1 || STOPWATCH_PERFORMANCE_MEASURING == 2
APP_StopwatchReset();
#endif
 
if( !mbCvEnvironment.tick() ) {
#if J5_DEBUG_PINS
MIOS32_BOARD_J5_PinSet(4, 1);
MIOS32_BOARD_J5_PinSet(5, 1);
#endif
return; // no update required
}
 
415,19 → 387,16
#if STOPWATCH_PERFORMANCE_MEASURING == 1
APP_StopwatchCapture();
#endif
#if J5_DEBUG_PINS
MIOS32_BOARD_J5_PinSet(4, 1);
#endif
 
// update AOUTs
MBCV_MAP_Update();
 
// start ADC conversions
MIOS32_AIN_StartConversions();
 
#if STOPWATCH_PERFORMANCE_MEASURING == 2
APP_StopwatchCapture();
#endif
#if J5_DEBUG_PINS
MIOS32_BOARD_J5_PinSet(5, 1);
#endif
}
 
 
490,14 → 459,8
void APP_TASK_Period_1mS_LP2(void)
{
{
#if J5_DEBUG_PINS
MIOS32_BOARD_J5_PinSet(6, 0);
#endif
// CV Scopes (note: mutex is taken inside function)
mbCvEnvironment.tickScopes();
#if J5_DEBUG_PINS
MIOS32_BOARD_J5_PinSet(6, 1);
#endif
}
 
#if 0