on init {Splitter by Suonopuro script 1.0, creato da Gino Chimenti 26/06/2017} make_perfview set_ui_height(5) set_script_title("Splitter by Suonopuro") declare ui_value_edit $Lower0 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Lower0) move_control ($Lower0,1,2) set_text($Lower0,"CH1 Low") declare ui_value_edit $Upper0 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Upper0) move_control ($Upper0,2,2) set_text($Upper0,"CH1 Up") declare ui_value_edit $Lower1 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Lower1) move_control ($Lower1,3,2) set_text($Lower1,"CH2 Low") declare ui_value_edit $Upper1 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Upper1) move_control ($Upper1,4,2) set_text($Upper1,"CH2 Up") declare ui_value_edit $Lower2 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Lower2) move_control ($Lower2,5,2) set_text($Lower2,"CH3 Low") declare ui_value_edit $Upper2 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Upper2) move_control ($Upper2,6,2) set_text($Upper2,"CH3 Up") declare ui_value_edit $Lower3 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Lower3) move_control ($Lower3,1,6) set_text($Lower3,"CH4 Low") declare ui_value_edit $Upper3 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Upper3) move_control ($Upper3,2,6) set_text($Upper3,"CH4 Up") declare ui_value_edit $Lower4 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Lower4) move_control ($Lower4,3,6) set_text($Lower4,"CH5 Low") declare ui_value_edit $Upper4 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Upper4) move_control ($Upper4,4,6) set_text($Upper4,"CH5 Up") declare ui_value_edit $Lower5 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Lower5) move_control ($Lower5,5,6) set_text($Lower5,"CH6 Low") declare ui_value_edit $Upper5 (0,127,$VALUE_EDIT_MODE_NOTE_NAMES) make_persistent($Upper5) move_control ($Upper5,6,6) set_text($Upper5,"CH6 Up") declare ui_knob$Ottava0 (-4,4,1) make_persistent($Ottava0) move_control ($Ottava0,1,3) set_text($Ottava0, "CH1 Oct") declare ui_knob$Ottava1 (-4,4,1) make_persistent($Ottava1) move_control ($Ottava1,3,3) set_text($Ottava1, "CH2 Oct") declare ui_knob$Ottava2 (-4,4,1) make_persistent($Ottava2) move_control ($Ottava2,5,3) set_text($Ottava2, "CH3 Oct") declare ui_knob$Ottava3 (-4,4,1) make_persistent($Ottava3) move_control ($Ottava3,1,7) set_text($Ottava3, "CH4 Oct") declare ui_knob$Ottava4 (-4,4,1) make_persistent($Ottava4) move_control ($Ottava4,3,7) set_text($Ottava4, "CH5 Oct") declare ui_knob$Ottava5 (-4,4,1) make_persistent($Ottava5) move_control ($Ottava5,5,7) set_text($Ottava5, "CH6 Oct") declare ui_knob$Semi0 (-12,12,1) make_persistent($Semi0) move_control ($Semi0,2,3) set_text($Semi0, "CH1 ST") declare ui_knob$Semi1 (-12,12,1) make_persistent($Semi1) move_control ($Semi1,4,3) set_text($Semi1, "CH2 ST") declare ui_knob$Semi2 (-12,12,1) make_persistent($Semi2) move_control ($Semi2,6,3) set_text($Semi2, "CH3 ST") declare ui_knob$Semi3 (-12,12,1) make_persistent($Semi3) move_control ($Semi3,2,7) set_text($Semi3, "CH4 ST") declare ui_knob$Semi4 (-12,12,1) make_persistent($Semi4) move_control ($Semi4,4,7) set_text($Semi4, "CH5 ST") declare ui_knob$Semi5 (-12,12,1) make_persistent($Semi5) move_control ($Semi5,6,7) set_text($Semi5, "CH6 ST") declare ui_switch $learn_button0 set_text($learn_button0,"Learn CH1 range") move_control ($learn_button0,2,1) declare ui_switch $learn_button1 set_text($learn_button1,"Learn CH2 range") move_control ($learn_button1,4,1) declare ui_switch $learn_button2 set_text($learn_button2,"Learn CH3 range") move_control ($learn_button2,6,1) declare ui_switch $learn_button3 set_text($learn_button3,"Learn CH4 range") move_control ($learn_button3,2,5) declare ui_switch $learn_button4 set_text($learn_button4,"Learn CH5 range") move_control ($learn_button4,4,5) declare ui_switch $learn_button5 set_text($learn_button5,"Learn CH6 range") move_control ($learn_button5,6,5) declare ui_label $Titolo0 (1,1) move_control ($Titolo0,1,1) set_text ($Titolo0,"CHANNEL 1") declare ui_label $Titolo1 (1,1) move_control ($Titolo1,3,1) set_text ($Titolo1,"CHANNEL 2") declare ui_label $Titolo2 (1,1) move_control ($Titolo2,5,1) set_text ($Titolo2,"CHANNEL 3") declare ui_label $Titolo3 (1,1) move_control ($Titolo3,1,5) set_text ($Titolo3,"CHANNEL 4") declare ui_label $Titolo4 (1,1) move_control ($Titolo4,3,5) set_text ($Titolo4,"CHANNEL 5") declare ui_label $Titolo5 (1,1) move_control ($Titolo5,5,5) set_text ($Titolo5,"CHANNEL 6") declare $learn_counter0 declare $a0 declare $learn_counter1 declare $a1 declare $learn_counter2 declare $a2 declare $learn_counter3 declare $a3 declare $learn_counter4 declare $a4 declare $learn_counter5 declare $a5 declare ui_label $label_3 (5,2) move_control ($label_3,1,10) set_text ($label_3, "SPLITTER by SUONOPURO -INSTRUCTIONS-") add_text_line ($label_3, "1) Set your musical instrument to MIDI channel 1.") add_text_line ($label_3,"2) Load your Kontakt instruments and set them to different Midi channels, from 1 to 6.") add_text_line ($label_3,"3) Choose the lowest and the highest notes of the range you want to use to play the instruments assigned to each channel. To do this, you can also click on the Learn CH range button and play on your instrument first the lowest note and then the highest one of the desired range.") add_text_line ($label_3,"The maximum range goes from C-2 to G8") add_text_line ($label_3, "4) Change the tonality of the instruments assigned to each channel using the appropriate knobs: CH Oct = octaves, from -4 to +4; CH ST = semitones, from -12 to +12.") declare ui_label $label_2 (1,1) move_control ($label_2,6,9) set_text ($label_2," Splitter Script") declare ui_label $label_1 (1,1) move_control ($label_1,6,10) set_text ($label_1,"www.suonopuro.net") $Upper0 :=127 $Upper1 :=127 $Upper2 :=127 $Upper3 :=127 $Upper4 :=127 $Upper5 :=127 $Semi0 :=0 $Semi1 :=0 $Semi2 :=0 $Semi3 :=0 $Semi4 :=0 $Semi5 :=0 $Ottava0 :=0 $Ottava1 :=0 $Ottava2 :=0 $Ottava3 :=0 $Ottava4 :=0 $Ottava5 :=0 end on on ui_control ($learn_button0) set_text($learn_button0,"Play lower note") end on on ui_control ($Lower0) if ($Lower0 > $Upper0) $Upper0 := $Lower0 end if end on on ui_control ($Upper0) if ($Upper0 < $Lower0) $Lower0 := $Upper0 end if end on on ui_control ($learn_button1) set_text($learn_button1,"Play lower note") end on on ui_control ($Lower1) if ($Lower1 > $Upper1) $Upper1 := $Lower1 end if end on on ui_control ($Upper1) if ($Upper1 < $Lower1) $Lower1 := $Upper1 end if end on on ui_control ($learn_button2) set_text($learn_button2,"Play lower note") end on on ui_control ($Lower2) if ($Lower2 > $Upper2) $Upper2 := $Lower2 end if end on on ui_control ($Upper2) if ($Upper2 < $Lower2) $Lower2 := $Upper2 end if end on on ui_control ($learn_button3) set_text($learn_button3,"Play lower note") end on on ui_control ($Lower3) if ($Lower3 > $Upper3) $Upper3 := $Lower3 end if end on on ui_control ($Upper3) if ($Upper3 < $Lower3) $Lower3 := $Upper3 end if end on on ui_control ($learn_button4) set_text($learn_button4,"Play lower note") end on on ui_control ($Lower4) if ($Lower4 > $Upper4) $Upper4 := $Lower4 end if end on on ui_control ($Upper4) if ($Upper4 < $Lower4) $Lower4 := $Upper4 end if end on on ui_control ($learn_button5) set_text($learn_button5,"Play lower note") end on on ui_control ($Lower5) if ($Lower5 > $Upper5) $Upper5 := $Lower5 end if end on on ui_control ($Upper5) if ($Upper5 < $Lower5) $Lower5 := $Upper5 end if end on on midi_in if ($MIDI_CHANNEL # 0) if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and $MIDI_BYTE_2 > 0) ignore_midi set_text ($label_3,"Please, set your instrument to CH.1") wait (5000000) set_text ($label_3, "SPLITTER by SUONOPURO. INSTRUCTIONS") add_text_line ($label_3, "1) Set your musical instrument to MIDI channel 1.") add_text_line ($label_3,"2) Load your Kontakt instruments and set them to different Midi channels, from 1 to 6.") add_text_line ($label_3,"3) Choose the lowest and the highest notes of the range you want to use to play the instruments assigned to each channel. To do this, you can also click on the Learn CH range button and play on your instrument first the lowest note and then the highest one of the desired range.") add_text_line ($label_3, "4) Change the tonality of the instruments assigned to each channel using the appropriate knobs: CH Oct = octaves, from -4 to +4; CH ST = semitones, from -12 to +12.") end if else if (not in_range($MIDI_BYTE_1,$Lower0,$Upper0)) if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON or $MIDI_COMMAND = $MIDI_COMMAND_NOTE_OFF) ignore_midi end if end if if ($learn_button0 = 1 or $learn_button1 = 1 or $learn_button2 = 1 or $learn_button3 = 1 or $learn_button4 = 1 or $learn_button5 = 1) if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and $MIDI_BYTE_2 > 0) if ($learn_button0 = 1) if ($learn_counter0 = 0) $Lower0 := $MIDI_BYTE_1 inc($learn_counter0) set_text($learn_button0,"Play upper note") else $Upper0 := $MIDI_BYTE_1 $learn_counter0 := 0 $learn_button0 := 0 set_text($learn_button0,"Learn CH1 range") if ($Lower0 > $Upper0) $a0 := $Upper0 $Upper0 := $Lower0 $Lower0 := $a0 end if end if end if if ($learn_button1 = 1) if ($learn_counter1 = 0) $Lower1 := $MIDI_BYTE_1 inc($learn_counter1) set_text($learn_button1,"Play upper note") else $Upper1 := $MIDI_BYTE_1 $learn_counter1 := 0 $learn_button1 := 0 set_text($learn_button1,"Learn CH2 range") if ($Lower1 > $Upper1) $a1 := $Upper1 $Upper1 := $Lower1 $Lower1 := $a1 end if end if end if if ($learn_button2 = 1) if ($learn_counter2 = 0) $Lower2 := $MIDI_BYTE_1 inc($learn_counter2) set_text($learn_button2,"Play upper note") else $Upper2 := $MIDI_BYTE_1 $learn_counter2 := 0 $learn_button2 := 0 set_text($learn_button2,"Learn CH3 range") if ($Lower2 > $Upper2) $a2 := $Upper2 $Upper2 := $Lower2 $Lower2 := $a2 end if end if end if if ($learn_button3 = 1) if ($learn_counter3 = 0) $Lower3 := $MIDI_BYTE_1 inc($learn_counter3) set_text($learn_button3,"Play upper note") else $Upper3 := $MIDI_BYTE_1 $learn_counter3 := 0 $learn_button3 := 0 set_text($learn_button3,"Learn CH4 range") if ($Lower3 > $Upper3) $a3 := $Upper3 $Upper3 := $Lower3 $Lower3 := $a3 end if end if end if if ($learn_button4 = 1) if ($learn_counter4 = 0) $Lower4 := $MIDI_BYTE_1 inc($learn_counter4) set_text($learn_button4,"Play upper note") else $Upper4 := $MIDI_BYTE_1 $learn_counter4 := 0 $learn_button4 := 0 set_text($learn_button4,"Learn CH5 range") if ($Lower4 > $Upper4) $a4 := $Upper4 $Upper4 := $Lower4 $Lower4 := $a4 end if end if end if if ($learn_button5 = 1) if ($learn_counter5 = 0) $Lower5 := $MIDI_BYTE_1 inc($learn_counter5) set_text($learn_button5,"Play upper note") else $Upper5 := $MIDI_BYTE_1 $learn_counter5 := 0 $learn_button5 := 0 set_text($learn_button5,"Learn CH6 range") if ($Lower5 > $Upper5) $a5 := $Upper5 $Upper5 := $Lower5 $Lower5 := $a5 end if end if end if end if ignore_midi exit end if if ($MIDI_COMMAND # $MIDI_COMMAND_NOTE_ON) set_midi(1,$MIDI_COMMAND,$MIDI_BYTE_1,$MIDI_BYTE_2) set_midi(2,$MIDI_COMMAND,$MIDI_BYTE_1,$MIDI_BYTE_2) set_midi(3,$MIDI_COMMAND,$MIDI_BYTE_1,$MIDI_BYTE_2) set_midi(4,$MIDI_COMMAND,$MIDI_BYTE_1,$MIDI_BYTE_2) set_midi(5,$MIDI_COMMAND,$MIDI_BYTE_1,$MIDI_BYTE_2) end if if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and (in_range($MIDI_BYTE_1,$Lower1,$Upper1))) set_midi(1,$MIDI_COMMAND,$MIDI_BYTE_1+(12*$Ottava1)+$Semi1,$MIDI_BYTE_2) end if if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_OFF and (in_range($MIDI_BYTE_1,$Lower1,$Upper1))) set_midi(1,$MIDI_COMMAND,$MIDI_BYTE_1+(12*$Ottava1)+$Semi1,$MIDI_BYTE_2) end if if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and (in_range($MIDI_BYTE_1,$Lower2,$Upper2))) set_midi(2,$MIDI_COMMAND,$MIDI_BYTE_1+(12*$Ottava2)+$Semi2,$MIDI_BYTE_2) end if if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_OFF and (in_range($MIDI_BYTE_1,$Lower2,$Upper2))) set_midi(2,$MIDI_COMMAND,$MIDI_BYTE_1+(12*$Ottava2)+$Semi2,$MIDI_BYTE_2) end if if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and (in_range($MIDI_BYTE_1,$Lower3,$Upper3))) set_midi(3,$MIDI_COMMAND,$MIDI_BYTE_1+(12*$Ottava3)+$Semi3,$MIDI_BYTE_2) end if if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_OFF and (in_range($MIDI_BYTE_1,$Lower3,$Upper3))) set_midi(3,$MIDI_COMMAND,$MIDI_BYTE_1+(12*$Ottava3)+$Semi3,$MIDI_BYTE_2) end if if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and (in_range($MIDI_BYTE_1,$Lower4,$Upper4))) set_midi(4,$MIDI_COMMAND,$MIDI_BYTE_1+(12*$Ottava4)+$Semi4,$MIDI_BYTE_2) end if if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_OFF and (in_range($MIDI_BYTE_1,$Lower4,$Upper4))) set_midi(4,$MIDI_COMMAND,$MIDI_BYTE_1+(12*$Ottava4)+$Semi4,$MIDI_BYTE_2) end if if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and (in_range($MIDI_BYTE_1,$Lower5,$Upper5))) set_midi(5,$MIDI_COMMAND,$MIDI_BYTE_1+(12*$Ottava5)+$Semi5,$MIDI_BYTE_2) end if if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_OFF and (in_range($MIDI_BYTE_1,$Lower5,$Upper5))) set_midi(5,$MIDI_COMMAND,$MIDI_BYTE_1+(12*$Ottava5)+$Semi5,$MIDI_BYTE_2) end if if ($MIDI_CHANNEL = 0) if ($Ottava0#0 or $Semi0#0) if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON) set_event_par($EVENT_ID,$EVENT_PAR_MIDI_BYTE_1,$MIDI_BYTE_1+(12*$Ottava0)+$Semi0) end if if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_OFF) set_event_par($EVENT_ID,$EVENT_PAR_MIDI_BYTE_1,$MIDI_BYTE_1+(12*$Ottava0)+$Semi0) end if end if end if end if end on