{*********************************************** Kontakt 4 Factory Library - Instrument Orchestral Percussion Collection (untuned) Author: Native Instruments Written by: Adam Hanley, Nicki Marinic, Josef Natterer & Dinos Vallianatos Modified: August 20, 2009 *************************************************} on init make_perfview set_script_title("Instrument") set_ui_height_px(318) _set_skin_offset(411) message("") declare $i declare const $ROLL_FADE_OUT_TIME := 500000 declare $reverb_slot := 3 declare $eq_slot := 0 declare const $master_eq_slot := 2 declare $last_time_1 declare $last_time_2 declare $wait_time := 800 {Enter control label wait time} declare const $ROOT_X := 66 declare const $ROOT_Y := 2 declare const $GRID_X := 92 declare const $GRID_Y := 21 declare const $FONT_ID := 11 {the font id for all visible labels} declare const $FONT_ID_2 := 0 {the font id for all menus} declare const $CREATE_AUTOMATION_ID := 0 declare $a declare $help_id declare polyphonic $pressed_id declare $active_note declare $actual_vel_percentage declare polyphonic $grace1_tune_amount {the tune amount of the first grace note} declare polyphonic $grace2_tune_amount declare polyphonic $grace3_tune_amount declare polyphonic $grace4_tune_amount declare polyphonic $primary_tune_amount declare polyphonic $grace1_vol_amount {the volume amount of the first grace note} declare polyphonic $grace2_vol_amount declare polyphonic $grace3_vol_amount declare polyphonic $grace4_vol_amount declare polyphonic $primary_vol_amount declare polyphonic $grace1_velocity {the velocity of the first grace note} declare polyphonic $grace2_velocity declare polyphonic $grace3_velocity declare polyphonic $grace4_velocity declare polyphonic $grace1_delay_time declare polyphonic $grace2_delay_time declare polyphonic $grace3_delay_time declare polyphonic $grace4_delay_time declare polyphonic $trigger_time declare $trigger_length declare $random_delay declare $Amount_helper declare $random_amount declare $Tdec {for Buzz} declare $Vdec {for Buzz} declare polyphonic $count declare polyphonic $grace1_id declare polyphonic $grace2_id declare polyphonic $grace3_id declare polyphonic $grace4_id declare polyphonic $primary_id declare %active_menu_store[128] {Diese variable speichert die Nummer des selektierten Buttons, ein button ist immer aktiv. 1: Alt_Stroke 2: Rel_Stroke 3: Flam usw. } {Declare, set and skin ui elements} declare ui_slider $artic_menu (0,10) declare ui_slider $Var_1 (0,100) declare ui_slider $Var_2 (0,100) declare ui_slider $Split (0,127) declare ui_slider $sound_knob (0,100) declare ui_switch $SetMidi declare ui_label $lb_artic_menu (1,1) declare ui_label $lb_Var_1 (1,1) declare ui_label $lb_Var_2 (1,1) declare ui_label $lb_Split (1,1) declare ui_label $lb_sound (1,1) declare ui_label $lb_SetMidi (1,1) declare %articulation_id[12] %articulation_id[0] := get_ui_id($artic_menu) %articulation_id[1] := get_ui_id($Var_1) %articulation_id[2] := get_ui_id($Var_2) %articulation_id[3] := get_ui_id($Split) %articulation_id[4] := get_ui_id($sound_knob) %articulation_id[5] := get_ui_id($SetMidi) %articulation_id[6] := get_ui_id($lb_artic_menu) %articulation_id[7] := get_ui_id($lb_Var_1) %articulation_id[8] := get_ui_id($lb_Var_2) %articulation_id[9] := get_ui_id($lb_Split) %articulation_id[10] := get_ui_id($lb_sound) %articulation_id[11] := get_ui_id($lb_SetMidi) set_text($lb_artic_menu,"Articulation") set_text($lb_Var_1,"n/a") set_text($lb_Var_2,"n/a") set_text($lb_Split,"Note") set_text($lb_SetMidi,"Set by MIDI") set_text($lb_sound,"Sound") $Split := 60 make_persistent ($Split) make_persistent ($sound_knob) set_text($SetMidi,"") $SetMidi := 1 make_persistent($SetMidi) {Move ui elements} move_control_px ($SetMidi, ($GRID_X * 1) - 22, ($GRID_Y * 2) + 19) move_control_px ($Split, ($GRID_X * 2) - 30, ($GRID_Y * 2) + 11) move_control_px ($artic_menu, ($GRID_X * 2) + 61, ($GRID_Y * 2) + 11) move_control_px ($Var_1, ($GRID_X * 3) + 60, ($GRID_Y * 2) + 11) move_control_px ($Var_2, ($GRID_X * 4) + 59, ($GRID_Y * 2) + 11) move_control_px ($sound_knob, ($GRID_X * 5) + 58, ($GRID_Y * 2) + 11) set_control_help($SetMidi, "Set by MIDI: When active, allows you to select an instrument for editing from incoming MIDI data.") set_control_help($Split, "Note: Allows you to select an instrument for editing.") set_control_help($Var_1, "Variable 1: Controls the first parameter of the selected articulation type, where applicable.") set_control_help($Var_2, "Variable 2: Controls the second parameter of the selected articulation type, where applicable.") set_control_help($artic_menu, "Articulation Type: select an articulation to be applied to the selected instrument/MIDI Note.") set_control_help($sound_knob, "Sound: morphs through several EQ presets.") {Skin and position} $i := 0 while ($i < 6) set_control_par(%articulation_id[$i+6],$CONTROL_PAR_HIDE,$HIDE_PART_BG) set_control_par(%articulation_id[$i+6], $CONTROL_PAR_TEXT_ALIGNMENT, 1) set_control_par(%articulation_id[$i+6], $CONTROL_PAR_FONT_TYPE, $FONT_ID) if ($i = 5) set_control_par_str(%articulation_id[$i], $CONTROL_PAR_PICTURE, "pv_orchestral_btn") set_control_par(%articulation_id[$i], $CONTROL_PAR_HEIGHT, 40) set_control_par(%articulation_id[$i], $CONTROL_PAR_WIDTH, 40) set_control_par (%articulation_id[$i+6],$CONTROL_PAR_POS_X,... get_control_par(%articulation_id[$i],$CONTROL_PAR_POS_X)-24) set_control_par (%articulation_id[$i+6],$CONTROL_PAR_POS_Y,... get_control_par(%articulation_id[$i],$CONTROL_PAR_POS_Y) + 49) else set_control_par_str(%articulation_id[$i], $CONTROL_PAR_PICTURE, "pv_orchestral_knob") set_control_par(%articulation_id[$i], $CONTROL_PAR_MOUSE_BEHAVIOUR, -500) set_control_par (%articulation_id[$i+6],$CONTROL_PAR_POS_X,... get_control_par(%articulation_id[$i],$CONTROL_PAR_POS_X)-16) set_control_par (%articulation_id[$i+6],$CONTROL_PAR_POS_Y,... get_control_par(%articulation_id[$i],$CONTROL_PAR_POS_Y) + 57) end if inc($i) end while {sound knob functionality} declare %savearr_instr[10*10] := (... {0} 183159,487305,500000, 476877,448242,500000, 942772,817383,500000,... {10} 183159,460938,500000, 476877,430664,500000, 942772,793945,333008,... {20} 183159,467773,333008, 476877,433594,500000, 942772,815430,181641,... {30} 183159,467773,333008, 476877,571289,591797, 942772,808594,194336,... {40} 183159,484375,500000, 476877,432617,417939, 942772,827148,500000,... {50} 183159,462891,600586, 476877,433594,332031, 942772,805664,569336,... {60} 183159,458008,586914, 708968,450195,332031, 942772,801758,583008,... {70} 214908,488281,171875, 693759,471680,500000, 942772,804688,500000,... {80} 45267,660156,500000, 408316, 6836,632813, 676028, 0,629688,... {90} 117792,219727,500000, 461200, 0,664063, 592848, 0,619922,... {100}211261,357422,177344, 425598, 31250,686523, 552339, 0,619922) declare %engine_par_instr[9] := (... $ENGINE_PAR_FREQ1,$ENGINE_PAR_BW1,$ENGINE_PAR_GAIN1,... $ENGINE_PAR_FREQ2,$ENGINE_PAR_BW2,$ENGINE_PAR_GAIN2,... $ENGINE_PAR_FREQ3,$ENGINE_PAR_BW3,$ENGINE_PAR_GAIN3) declare $helper_eq_instr declare $a_eq_instr declare $knob_eq_instr _read_persistent_var($sound_knob) $knob_eq_instr := ($sound_knob+10)*10 declare $index_1_instr declare $index_2_instr {articulation functionality} declare !artic_type[11] !artic_type[0] := "Off" !artic_type[1] := "Alt. Stroke" !artic_type[2] := "Rel. Stroke" !artic_type[3] := "Flam" !artic_type[4] := "Drag" !artic_type[5] := "Ruff" !artic_type[6] := "Roll" !artic_type[7] := "Buzz" !artic_type[8] := "Muted" !artic_type[9] := "Speed Roll" !artic_type[10] := "Geiger" declare !Knob1_names [12] !Knob1_names[0] := "n/a" !Knob1_names[1] := "Depth" !Knob1_names[2] := "Variation" !Knob1_names[3] := "Speed" !Knob1_names[4] := "Speed" !Knob1_names[5] := "Speed" !Knob1_names[6] := "Speed" !Knob1_names[7] := "Grip" !Knob1_names[8] := "Attack" !Knob1_names[9] := "Speed" !Knob1_names[10] := "Radiation" !Knob1_names[11] := "Velocity" declare !Knob2_names [12] !Knob2_names[0] := "n/a" !Knob2_names[1] := "Random" !Knob2_names[2] := "Velocity" !Knob2_names[3] := "Dynamic" !Knob2_names[4] := "Dynamic" !Knob2_names[5] := "Dynamic" !Knob2_names[6] := "Dynamic" !Knob2_names[7] := "Pressure" !Knob2_names[8] := "Decay" !Knob2_names[9] := "Duration" !Knob2_names[10] := "Decay" !Knob2_names[11] := "Tune" declare !Knob3_names [12] !Knob3_names[0] := "n/a" !Knob3_names[1] := "n/a" !Knob3_names[2] := "n/a" !Knob3_names[3] := "n/a" !Knob3_names[4] := "n/a" !Knob3_names[5] := "n/a" !Knob3_names[6] := "n/a" !Knob3_names[7] := "n/a" !Knob3_names[8] := "n/a" !Knob3_names[9] := "n/a" !Knob3_names[10] := "n/a" !Knob3_names[11] := "Time" declare !Knob4_names [12] !Knob4_names[0] := "n/a" !Knob4_names[1] := "n/a" !Knob4_names[2] := "n/a" !Knob4_names[3] := "n/a" !Knob4_names[4] := "n/a" !Knob4_names[5] := "n/a" !Knob4_names[6] := "n/a" !Knob4_names[7] := "n/a" !Knob4_names[8] := "n/a" !Knob4_names[9] := "n/a" !Knob4_names[10] := "n/a" !Knob4_names[11] := "Volume" declare %Var_0_a_store[128] declare %Var_1_a_store[128] declare %Var_2_a_store[128] declare %Var_3_a_store[128] declare %Var_4_a_store[128] declare %Var_5_a_store[128] declare %Var_6_a_store[128] declare %Var_7_a_store[128] declare %Var_8_a_store[128] declare %Var_9_a_store[128] declare %Var_10_a_store[128] declare %Var_0_b_store[128] declare %Var_1_b_store[128] declare %Var_2_b_store[128] declare %Var_3_b_store[128] declare %Var_4_b_store[128] declare %Var_5_b_store[128] declare %Var_6_b_store[128] declare %Var_7_b_store[128] declare %Var_8_b_store[128] declare %Var_9_b_store[128] declare %Var_10_b_store[128] declare $Time_amount declare $new_time declare $new_tune declare $Tune_amount declare $new_vol declare $new_vel declare $max_vel_amount declare $new_event declare ui_knob $Var_3 (0,100,1) set_knob_defval ($Var_3,50) set_knob_unit ($Var_3,$KNOB_UNIT_NONE) declare %Var_10_c_store[128] declare ui_knob $Var_4 (0,100,1) set_knob_defval ($Var_4,50) set_knob_unit ($Var_4,$KNOB_UNIT_NONE) declare %Var_10_d_store[128] set_control_par (get_ui_id($Var_3), $CONTROL_PAR_HIDE, $HIDE_WHOLE_CONTROL) set_control_par (get_ui_id($Var_4), $CONTROL_PAR_HIDE, $HIDE_WHOLE_CONTROL) declare !note_class[12] !note_class[0] := "C" !note_class[1] := "Db" !note_class[2] := "D" !note_class[3] := "Eb" !note_class[4] := "E" !note_class[5] := "F" !note_class[6] := "Gb" !note_class[7] := "G" !note_class[8] := "Ab" !note_class[9] := "A" !note_class[10] := "Bb" !note_class[11] := "B" declare !note_names [128] declare $c $c := 0 while ($c < 128) !note_names[$c] := !note_class[$c mod 12] & (($c/12)-2) inc ($c) end while $a := 0 while($a < 128) %active_menu_store[$a] := 0 %Var_0_a_store[$a] := 50 %Var_0_b_store[$a] := 50 %Var_1_a_store[$a] := 50 %Var_1_b_store[$a] := 50 %Var_2_a_store[$a] := 50 %Var_2_b_store[$a] := 50 %Var_3_a_store[$a] := 50 %Var_3_b_store[$a] := 50 %Var_4_a_store[$a] := 50 %Var_4_b_store[$a] := 50 %Var_5_a_store[$a] := 50 %Var_5_b_store[$a] := 50 %Var_6_a_store[$a] := 50 %Var_6_b_store[$a] := 50 %Var_7_a_store[$a] := 50 %Var_7_b_store[$a] := 50 %Var_8_a_store[$a] := 50 %Var_8_b_store[$a] := 50 %Var_9_a_store[$a] := 50 %Var_9_b_store[$a] := 50 %Var_10_a_store[$a] := 50 %Var_10_b_store[$a] := 50 %Var_10_c_store[$a] := 50 %Var_10_d_store[$a] := 50 inc($a) end while {Recall } make_persistent (%active_menu_store) make_persistent (%Var_0_a_store) make_persistent (%Var_1_a_store) make_persistent (%Var_2_a_store) make_persistent (%Var_3_a_store) make_persistent (%Var_4_a_store) make_persistent (%Var_5_a_store) make_persistent (%Var_6_a_store) make_persistent (%Var_7_a_store) make_persistent (%Var_8_a_store) make_persistent (%Var_9_a_store) make_persistent (%Var_0_b_store) make_persistent (%Var_1_b_store) make_persistent (%Var_2_b_store) make_persistent (%Var_3_b_store) make_persistent (%Var_4_b_store) make_persistent (%Var_5_b_store) make_persistent (%Var_6_b_store) make_persistent (%Var_7_b_store) make_persistent (%Var_8_b_store) make_persistent (%Var_9_b_store) make_persistent (%Var_10_a_store) make_persistent (%Var_10_b_store) make_persistent (%Var_10_c_store) make_persistent (%Var_10_d_store) make_persistent ($Var_1) make_persistent ($Var_2) make_persistent ($Var_3) make_persistent ($Var_4) make_persistent ($artic_menu) _read_persistent_var($artic_menu) set_text ($lb_Var_1,!Knob1_names[$artic_menu]) set_text ($lb_Var_2,!Knob2_names[$artic_menu]) set_text ($Var_3,!Knob3_names[$artic_menu]) set_text ($Var_4,!Knob4_names[$artic_menu]) set_control_par_str(get_ui_id($SetMidi),$CONTROL_PAR_AUTOMATION_NAME,"Midi") set_control_par_str(get_ui_id($Split),$CONTROL_PAR_AUTOMATION_NAME,"Note") set_control_par_str(get_ui_id($artic_menu),$CONTROL_PAR_AUTOMATION_NAME,"Articulation") set_control_par_str(get_ui_id($Var_1),$CONTROL_PAR_AUTOMATION_NAME,"Art 1") set_control_par_str(get_ui_id($Var_2),$CONTROL_PAR_AUTOMATION_NAME,"Art 2") set_control_par_str(get_ui_id($sound_knob),$CONTROL_PAR_AUTOMATION_NAME,"Sound") read_persistent_var($sound_knob) read_persistent_var($Split) read_persistent_var($Var_1) read_persistent_var($Var_2) set_control_par_str(get_ui_id($sound_knob),$CONTROL_PAR_LABEL,$sound_knob & " %") set_control_par_str(get_ui_id($artic_menu),$CONTROL_PAR_LABEL,!artic_type[$artic_menu]) set_control_par_str(get_ui_id($split),$CONTROL_PAR_LABEL,!note_names[$Split]) set_control_par_str(get_ui_id($Var_1),$CONTROL_PAR_LABEL,$Var_1 & " %") set_control_par_str(get_ui_id($Var_2),$CONTROL_PAR_LABEL,$Var_2 & " %") {----------MASTER REVERB FX START----------} {POSITIONING OF CONTROL GROUP} declare $x_grid_reverb := 3 {X Position of Control Group in grid} declare $y_grid_reverb := 6 {Y Position of Control Group in grid} declare $x_px_reverb := 46 {X Position Offset Control Group in pixel} declare $y_px_reverb := 0 {Y Position Offset Control Group in pixel} {DECLARATION AND UI_IDs} declare const $NUM_REVERB := 15 {number of elements in this control group} declare ui_label $lb_wetdry_reverb (1,1) declare ui_label $image_reverb (1,1) declare ui_menu $category_reverb declare ui_slider $wetdry_reverb (0, 500000) declare ui_switch $on_off_reverb declare ui_label $lb_on_off_reverb (1,1) {reverb functionality} declare ui_menu $hall_reverb declare ui_menu $cathedral_reverb declare ui_menu $club_reverb declare ui_menu $room_reverb declare ui_menu $l300_reverb declare ui_menu $quadstick_reverb declare ui_menu $brt7_reverb declare ui_menu $plate_reverb declare ui_menu $cabinet_reverb declare %subcat_menu_id[9] %subcat_menu_id[0] := get_ui_id($hall_reverb) %subcat_menu_id[1] := get_ui_id($cathedral_reverb) %subcat_menu_id[2] := get_ui_id($club_reverb) %subcat_menu_id[3] := get_ui_id($room_reverb) %subcat_menu_id[4] := get_ui_id($l300_reverb) %subcat_menu_id[6] := get_ui_id($quadstick_reverb) %subcat_menu_id[7] := get_ui_id($brt7_reverb) %subcat_menu_id[5] := get_ui_id($plate_reverb) %subcat_menu_id[8] := get_ui_id($cabinet_reverb) declare %offset_reverb[9] := (0,3,6,14,21,52,34,42,62) set_control_par_str(get_ui_id($image_reverb),$CONTROL_PAR_PICTURE,"pv_global_reverb_animation_big") {Fill the menus} add_menu_item($category_reverb, "Concert Hall", 0) add_menu_item($category_reverb, "Cathedral", 1) add_menu_item($category_reverb, "Club", 2) add_menu_item($category_reverb, "Room", 3) add_menu_item($category_reverb, "L300", 4) add_menu_item($category_reverb, "Quadstick", 6) add_menu_item($category_reverb, "BRT 7", 7) add_menu_item($category_reverb, "Plate", 5) add_menu_item($category_reverb, "Cabinet", 8) {set control help} set_control_help($wetdry_reverb,"Reverb Amount: Sets the send level of the reverb effect.") set_control_help($on_off_reverb,"Reverb On/Off: Turns the reverb effect on or off.") set_control_help($category_reverb, "Reverb IR Category: Select a category from which you can choose a specific Impulse response from the second dropdown menu.") set_control_help($hall_reverb, "Concert Hall: Impulse responses in this category are capured from real spaces and represent a variety of large performance spaces.") set_control_help($cathedral_reverb, "Cathedral: A mix of real and modelled spaces that offer large and dense reverb tails.") set_control_help($club_reverb, "Club: Impulse responses in this category are capured from real spaces and represent a variety of small performance spaces.") set_control_help($room_reverb, "Room: Impulse responses in this category are capured from real spaces and cover a variety of smaller rooms.") set_control_help($l300_reverb, "L300: Impulse responses taken from the classic studio digital reverb.") set_control_help($plate_reverb, "Plate: Impulse responses from classic plate reverb effect units.") set_control_help($quadstick_reverb, "Quadstick: Impulse responses taken from the classic studio digital reverb.") set_control_help($brt7_reverb, "BRT 7: Impulse responses taken from the classic studio digital reverb.") set_control_help($cabinet_reverb, "Cabinet: Impulse responses of several cabinet types.") declare !ir_path[68] !ir_path[0] := "presets/effects/convolution/<<>>/K4 IR Samples/Concert Hall A.wav" !ir_path[1] := "presets/effects/convolution/<<>>/K4 IR Samples/Concert Hall B.wav" !ir_path[2] := "presets/effects/convolution/<<>>/K4 IR Samples/Exhibition Hall.wav" !ir_path[3] := "presets/effects/convolution/<<>>/K4 IR Samples/Cathedral A.wav" !ir_path[4] := "presets/effects/convolution/<<>>/K4 IR Samples/Cathedral B.wav" !ir_path[5] := "presets/effects/convolution/10 Big Rooms/IR Samples/ndb_cathedral_ir_32bit.wav" !ir_path[6] := "presets/effects/convolution/<<>>/K4 IR Samples/Club A.wav" !ir_path[7] := "presets/effects/convolution/<<>>/K4 IR Samples/Club B.wav" !ir_path[8] := "presets/effects/convolution/<<>>/K4 IR Samples/Tavern Close.wav" !ir_path[9] := "presets/effects/convolution/<<>>/K4 IR Samples/Tavern Near.wav" !ir_path[10] := "presets/effects/convolution/<<>>/K4 IR Samples/Tavern Medium.wav" !ir_path[11] := "presets/effects/convolution/<<>>/K4 IR Samples/Tavern Far.wav" !ir_path[12] := "presets/effects/convolution/<<>>/K4 IR Samples/Auditorium A.wav" !ir_path[13] := "presets/effects/convolution/<<>>/K4 IR Samples/Auditorium B.wav" !ir_path[14] := "presets/effects/convolution/<<>>/K4 IR Samples/Chamber A.wav" !ir_path[15] := "presets/effects/convolution/<<>>/K4 IR Samples/Chamber B.wav" !ir_path[16] := "presets/effects/convolution/<<>>/K4 IR Samples/Rehearsal Room.wav" !ir_path[17] := "presets/effects/convolution/<<>>/K4 IR Samples/Hard Wood Room B.wav" !ir_path[18] := "presets/effects/convolution/<<>>/K4 IR Samples/Music Studio C.wav" !ir_path[19] := "presets/effects/convolution/<<>>/K4 IR Samples/Small Room A.wav" !ir_path[20] := "presets/effects/convolution/<<>>/K4 IR Samples/Small Room B.wav" !ir_path[21] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Large Hall.wav" !ir_path[22] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Gated Hall.wav" !ir_path[23] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Large Room.wav" !ir_path[24] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Large Chamber.wav" !ir_path[25] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Studio C.wav" !ir_path[26] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Contem-Plate.wav" !ir_path[27] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Space & Echoes.wav" !ir_path[28] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Medium Stop.wav" !ir_path[29] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Drum Cave.wav" !ir_path[30] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Large Ambience.wav" !ir_path[31] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Smooth Ambience.wav" !ir_path[32] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Ambience Wave.wav" !ir_path[33] := "presets/effects/convolution/<<>>/K4 IR Samples/L300 Le Gate.wav" !ir_path[34] := "presets/effects/convolution/<<>>/K4 IR Samples/Quadstick Small - Basic.wav" !ir_path[35] := "presets/effects/convolution/<<>>/K4 IR Samples/Quadstick Small - Disco.wav" !ir_path[36] := "presets/effects/convolution/<<>>/K4 IR Samples/Quadstick Small - Funk.wav" !ir_path[37] := "presets/effects/convolution/<<>>/K4 IR Samples/Quadstick Small - Funky Club.wav" !ir_path[38] := "presets/effects/convolution/<<>>/K4 IR Samples/Quadstick Small - Hip Hop.wav" !ir_path[39] := "presets/effects/convolution/<<>>/K4 IR Samples/Quadstick Small - Reggae Modern.wav" !ir_path[40] := "presets/effects/convolution/<<>>/K4 IR Samples/Quadstick Small - RnB Neptunes.wav" !ir_path[41] := "presets/effects/convolution/<<>>/K4 IR Samples/Quadstick Small - RnB Today 1.wav" !ir_path[42] := "presets/effects/convolution/<<>>/K4 IR Samples/BRT 7 Ambience Large A.wav" !ir_path[43] := "presets/effects/convolution/<<>>/K4 IR Samples/BRT 7 Ambience Small.wav" !ir_path[44] := "presets/effects/convolution/<<>>/K4 IR Samples/BRT 7 Chamber Small.wav" !ir_path[45] := "presets/effects/convolution/<<>>/K4 IR Samples/BRT 7 Chamber Vocal.wav" !ir_path[46] := "presets/effects/convolution/<<>>/K4 IR Samples/BRT 7 Hall Dense.wav" !ir_path[47] := "presets/effects/convolution/<<>>/K4 IR Samples/BRT 7 Location Chapel A.wav" !ir_path[48] := "presets/effects/convolution/<<>>/K4 IR Samples/BRT 7 Plate Snare.wav" !ir_path[49] := "presets/effects/convolution/<<>>/K4 IR Samples/BRT 7 Room Drum.wav" !ir_path[50] := "presets/effects/convolution/<<>>/K4 IR Samples/BRT 7 Room Wood.wav" !ir_path[51] := "presets/effects/convolution/<<>>/K4 IR Samples/BRT 7 Location Cineastic Room.wav" !ir_path[52] := "presets/effects/convolution/<<>>/K4 IR Samples/E245 0.5s A.wav" !ir_path[53] := "presets/effects/convolution/<<>>/K4 IR Samples/E245 1.0s A.wav" !ir_path[54] := "presets/effects/convolution/<<>>/K4 IR Samples/E245 1.4s A.wav" !ir_path[55] := "presets/effects/convolution/<<>>/K4 IR Samples/E245 2.1s A.wav" !ir_path[56] := "presets/effects/convolution/<<>>/K4 IR Samples/E245 4.5s A.wav" !ir_path[57] := "presets/effects/convolution/<<>>/K4 IR Samples/E252 0.6s.wav" !ir_path[58] := "presets/effects/convolution/<<>>/K4 IR Samples/E252 1.0s.wav" !ir_path[59] := "presets/effects/convolution/<<>>/K4 IR Samples/E252 1.8s.wav" !ir_path[60] := "presets/effects/convolution/<<>>/K4 IR Samples/E252 3.0s.wav" !ir_path[61] := "presets/effects/convolution/<<>>/K4 IR Samples/E252 4.5s.wav" !ir_path[62] := "presets/effects/convolution/17 Cabinets/Brit 212/IR Samples/Brit_212_Tube_Center.wav" !ir_path[63] := "presets/effects/convolution/17 Cabinets/Tweed 112/IR Samples/Tweed_112_Tube_Center.wav" !ir_path[64] := "presets/effects/convolution/17 Cabinets/Tweed 212/IR Samples/Tweed_212_Tube_Center.wav" !ir_path[65] := "presets/effects/convolution/17 Cabinets/Tweed 410/IR Samples/Tweed_410_Tube_Center.wav" !ir_path[66] := "presets/effects/convolution/17 Cabinets/Rock 412/IR Samples/Rock_412_Tube_Center.wav" !ir_path[67] := "presets/effects/convolution/17 Cabinets/Modern 412/IR Samples/Modern_412_Tube_Center.wav" declare !ir_type[68] !ir_type[0] := "Concert Hall A" !ir_type[1] := "Concert Hall B" !ir_type[2] := "Exhibition Hall" !ir_type[3] := "Cathedral A" !ir_type[4] := "Cathedral B" !ir_type[5] := "NDB Cathedral" !ir_type[6] := "Club A" !ir_type[7] := "Club B" !ir_type[8] := "Tavern Close" !ir_type[9] := "Tavern Near" !ir_type[10] := "Tavern Mid" !ir_type[11] := "Tavern Far" !ir_type[12] := "Auditorium A" !ir_type[13] := "Auditorium B" !ir_type[14] := "Chamber A" !ir_type[15] := "Chamber B" !ir_type[16] := "Rehearsal" !ir_type[17] := "Hard Wood" !ir_type[18] := "Music Studio" !ir_type[19] := "Small Room A" !ir_type[20] := "Small Room B" !ir_type[21] := "Large Hall" !ir_type[22] := "Gated Hall" !ir_type[23] := "Large Room" !ir_type[24] := "Large Chamber" !ir_type[25] := "Studio C" !ir_type[26] := "Contem-Plate" !ir_type[27] := "Echoes" !ir_type[28] := "Medium Stop" !ir_type[29] := "Drum Cave" !ir_type[30] := "Large Ambi" !ir_type[31] := "Smooth Ambi" !ir_type[32] := "Ambi Wave" !ir_type[33] := "Le Gate" !ir_type[34] := "Basic" !ir_type[35] := "Disco" !ir_type[36] := "Funk" !ir_type[37] := "Funky Club" !ir_type[38] := "Hip Hop" !ir_type[39] := "Reggae Modern" !ir_type[40] := "RnB Neptunes" !ir_type[41] := "RnB Today" !ir_type[42] := "Lrg Ambience" !ir_type[43] := "Sml Ambience" !ir_type[44] := "Sml Chamber" !ir_type[45] := "Voc Chamber" !ir_type[46] := "Dense Hall" !ir_type[47] := "Chapel" !ir_type[48] := "Snare Plate" !ir_type[49] := "Drum Room" !ir_type[50] := "Wood Room" !ir_type[51] := "Cineastic" !ir_type[52] := "E245 0.5s" !ir_type[53] := "E245 1.0s" !ir_type[54] := "E245 1.4s" !ir_type[55] := "E245 2.1s" !ir_type[56] := "E245 4.5s" !ir_type[57] := "E252 0.6s" !ir_type[58] := "E252 1.0s" !ir_type[59] := "E252 1.8s" !ir_type[60] := "E252 3.0s" !ir_type[61] := "E252 4.5s" !ir_type[62] := "Brit 2x12" !ir_type[63] := "Tweed 1x12" !ir_type[64] := "Tweed 2x12" !ir_type[65] := "Tweed 4x10" !ir_type[66] := "Rock 4x12" !ir_type[67] := "Modern 4x12" $i := 0 while ($i < 68) if ($i < 3) add_menu_item($hall_reverb,!ir_type[$i],$i) else if ($i < 6) add_menu_item($cathedral_reverb,!ir_type[$i],$i) else if ($i < 14) add_menu_item($club_reverb,!ir_type[$i],$i) else if ($i < 21) add_menu_item($room_reverb,!ir_type[$i],$i) else if ($i < 34) add_menu_item($l300_reverb,!ir_type[$i],$i) else if($i < 42) add_menu_item($quadstick_reverb,!ir_type[$i],$i) else if ($i < 52) add_menu_item($brt7_reverb,!ir_type[$i],$i) else if ($i < 62) add_menu_item($plate_reverb,!ir_type[$i],$i) else add_menu_item($cabinet_reverb,!ir_type[$i],$i) end if end if end if end if end if end if end if end if inc ($i) end while make_persistent($category_reverb) make_persistent($hall_reverb) make_persistent($cathedral_reverb) make_persistent($club_reverb) make_persistent($room_reverb) make_persistent($l300_reverb) make_persistent($quadstick_reverb) make_persistent($brt7_reverb) make_persistent($plate_reverb) make_persistent($cabinet_reverb) _read_persistent_var($category_reverb) _read_persistent_var($hall_reverb) _read_persistent_var($cathedral_reverb) _read_persistent_var($club_reverb) _read_persistent_var($room_reverb) _read_persistent_var($l300_reverb) _read_persistent_var($quadstick_reverb) _read_persistent_var($brt7_reverb) _read_persistent_var($plate_reverb) _read_persistent_var($cabinet_reverb) $i := 0 while ($i < 9) if ($i = $category_reverb) set_control_par(%subcat_menu_id[$i],$CONTROL_PAR_HIDE,$HIDE_PART_NOTHING) else set_control_par(%subcat_menu_id[$i],$CONTROL_PAR_HIDE,$HIDE_WHOLE_CONTROL) end if inc ($i) end while set_control_par(get_ui_id($image_reverb),$CONTROL_PAR_PICTURE_STATE,$category_reverb) {/reverb functionality} declare %reverb_id[$NUM_REVERB] %reverb_id[0] := get_ui_id($lb_wetdry_reverb) %reverb_id[1] := get_ui_id($image_reverb) %reverb_id[2] := get_ui_id($wetdry_reverb) %reverb_id[3] := get_ui_id($category_reverb) %reverb_id[4] := get_ui_id($hall_reverb) %reverb_id[5] := get_ui_id($cathedral_reverb) %reverb_id[6] := get_ui_id($club_reverb) %reverb_id[7] := get_ui_id($room_reverb) %reverb_id[8] := get_ui_id($l300_reverb) %reverb_id[9] := get_ui_id($quadstick_reverb) %reverb_id[10] := get_ui_id($brt7_reverb) %reverb_id[11] := get_ui_id($plate_reverb) %reverb_id[12] := get_ui_id($cabinet_reverb) %reverb_id[13] := get_ui_id($on_off_reverb) %reverb_id[14] := get_ui_id($lb_on_off_reverb) {VARIOUS ATTRIBUTES} set_text($lb_wetdry_reverb,"Amount") set_control_par (get_ui_id($wetdry_reverb),$CONTROL_PAR_DEFAULT_VALUE,250000) set_text($lb_on_off_reverb, "On/Off") set_text($image_reverb,"") set_control_par(%reverb_id[0], $CONTROL_PAR_HIDE, $HIDE_PART_BG) set_control_par(%reverb_id[14], $CONTROL_PAR_HIDE, $HIDE_PART_BG) set_control_par(%reverb_id[0], $CONTROL_PAR_FONT_TYPE, $FONT_ID) set_control_par(%reverb_id[14], $CONTROL_PAR_FONT_TYPE, $FONT_ID) set_control_par_str(%reverb_id[2], $CONTROL_PAR_PICTURE, "pv_orchestral_knob") set_control_par(%reverb_id[2], $CONTROL_PAR_MOUSE_BEHAVIOUR, -500) set_control_par_str(%reverb_id[13], $CONTROL_PAR_PICTURE, "pv_orchestral_btn") set_text($on_off_reverb, "") set_control_par(%reverb_id[13], $CONTROL_PAR_HEIGHT, 40) set_control_par(%reverb_id[13], $CONTROL_PAR_WIDTH, 40) $i := 3 while ($i < 13) set_control_par_str(%reverb_id[$i], $CONTROL_PAR_TEXT, "") set_control_par_str(%reverb_id[$i], $CONTROL_PAR_PICTURE, "pv_orchestral_dropdown_trans") set_control_par(%reverb_id[$i], $CONTROL_PAR_FONT_TYPE, $FONT_ID_2) inc($i) end while {POSITIONING OF INDIVIDUAL CONTROLS} move_control_px($lb_wetdry_reverb,($GRID_X * 2) + 37, ($GRID_Y * 2) + 9) move_control_px($image_reverb,($GRID_X * 1) + 14, ($GRID_Y * 4) + 3) move_control_px($wetdry_reverb,($GRID_X * 2) + 34, ($GRID_Y * 3) + 4) move_control_px($category_reverb,($GRID_X * 1) + 10, ($GRID_Y * 3) + 7) move_control_px($on_off_reverb,($GRID_X * 2) + 42, ($GRID_Y * 6) + 12) move_control_px($lb_on_off_reverb,($GRID_X * 2) + 41, ($GRID_Y * 5) + 18) $i := 4 while ($i < 13) set_control_par(%reverb_id[$i], $CONTROL_PAR_POS_X, ($GRID_X * 1) + 10) set_control_par(%reverb_id[$i], $CONTROL_PAR_POS_Y, ($GRID_Y * 7) + 2) set_control_par(%reverb_id[$i], $CONTROL_PAR_WIDTH, 93) inc($i) end while set_control_par(%reverb_id[3], $CONTROL_PAR_WIDTH, 93) $i := 4 while ($i<13) if($i = $category_reverb + 4) set_control_par(%reverb_id[$i],$CONTROL_PAR_HIDE,$HIDE_PART_NOTHING) else set_control_par(%reverb_id[$i], $CONTROL_PAR_HIDE, $HIDE_WHOLE_CONTROL) end if inc($i) end while $wetdry_reverb := _get_engine_par($ENGINE_PAR_SEND_EFFECT_OUTPUT_GAIN, -1,$reverb_slot,1) $on_off_reverb := (_get_engine_par($ENGINE_PAR_EFFECT_BYPASS, -1, $reverb_slot, 1) + 1) mod 2 $i := 0 while ($i < $NUM_reverb) set_control_par (%reverb_id[$i],$CONTROL_PAR_POS_X,get_control_par(%reverb_id[$i],... $CONTROL_PAR_POS_X)+$ROOT_X + ($x_grid_reverb - 1)*$GRID_X + $x_px_reverb) set_control_par (%reverb_id[$i],$CONTROL_PAR_POS_Y,get_control_par(%reverb_id[$i],... $CONTROL_PAR_POS_Y)+$ROOT_Y + ($y_grid_reverb - 1)*$GRID_Y + $y_px_reverb) inc($i) end while set_control_par_str(get_ui_id($wetdry_reverb),$CONTROL_PAR_AUTOMATION_NAME,"Rv Amt") set_control_par_str(get_ui_id($on_off_reverb),$CONTROL_PAR_AUTOMATION_NAME,"Reverb") set_control_par_str(get_ui_id($wetdry_reverb),$CONTROL_PAR_LABEL,get_engine_par_disp($ENGINE_PAR_SEND_EFFECT_OUTPUT_GAIN, -1,$reverb_slot,1) & " dB") {----------MASTER REVERB FX END----------} {----------MASTER EQ START----------} declare ui_slider $bass_gain_eq (0,1000000) declare ui_slider $mid_gain_eq (0,1000000) declare ui_slider $mid_freq_eq (0,1000000) declare ui_slider $treble_gain_eq (0,1000000) declare ui_switch $bass_onoff_eq declare ui_switch $mid_onoff_eq declare ui_switch $treble_onoff_eq declare ui_label $lb_bass_gain_eq (1,1) declare ui_label $lb_mid_gain_eq (1,1) declare ui_label $lb_mid_freq_eq (1,1) declare ui_label $lb_treble_gain_eq (1,1) declare ui_label $lb_bass_onoff_eq (1,1) declare ui_label $lb_mid_onoff_eq (1,1) declare ui_label $lb_treble_onoff_eq (1,1) move_control_px($bass_gain_eq, 69, 167) move_control_px($mid_gain_eq, 140, 167) move_control_px($mid_freq_eq, 209, 167) move_control_px($treble_gain_eq, 280, 167) move_control_px($bass_onoff_eq, 70, 230) move_control_px($mid_onoff_eq, 175, 230) move_control_px($treble_onoff_eq, 280, 230) set_text($lb_bass_gain_eq,"Bass Gain") set_text($lb_mid_gain_eq,"Mid Gain") set_text($lb_mid_freq_eq,"Mid Freq") set_text($lb_treble_gain_eq,"Treble Gain") set_text($lb_bass_onoff_eq,"Bass") set_text($lb_mid_onoff_eq,"Mid") set_text($lb_treble_onoff_eq,"Treble") set_control_help($bass_gain_eq, "Bass Gain: Controls the gain adjustment of the bass frequencies.") set_control_help($mid_gain_eq, "Mid Gain: Controls the gain adjustment of the variable frequency peak mid EQ.") set_control_help($mid_freq_eq, "Mid Frequency: Controls the central frequency of the peak mid EQ.") set_control_help($treble_gain_eq, "Treble Gain: Controls the gain adjustment of the high frequencies.") set_control_help($treble_onoff_eq, "Treble On/Off: Activates or deactivates the treble EQ settings.") set_control_help($mid_onoff_eq, "Mid On/Off: Activates or deactivates the mid EQ settings.") set_control_help($bass_onoff_eq, "Bass On/Off: Activates or deactivates the bass EQ settings.") declare %eq_id[14] %eq_id[0] := get_ui_id($bass_gain_eq) %eq_id[1] := get_ui_id($mid_gain_eq) %eq_id[2] := get_ui_id($mid_freq_eq) %eq_id[3] := get_ui_id($treble_gain_eq) %eq_id[4] := get_ui_id($bass_onoff_eq) %eq_id[5] := get_ui_id($mid_onoff_eq) %eq_id[6] := get_ui_id($treble_onoff_eq) %eq_id[7] := get_ui_id($lb_bass_gain_eq) %eq_id[8] := get_ui_id($lb_mid_gain_eq) %eq_id[9] := get_ui_id($lb_mid_freq_eq) %eq_id[10] := get_ui_id($lb_treble_gain_eq) %eq_id[11] := get_ui_id($lb_bass_onoff_eq) %eq_id[12] := get_ui_id($lb_mid_onoff_eq) %eq_id[13] := get_ui_id($lb_treble_onoff_eq) $i := 0 while ($i < 7) if($i<4) set_control_par_str(%eq_id[$i],$CONTROL_PAR_PICTURE,"pv_orchestral_knob_small") set_control_par(%eq_id[$i],$CONTROL_PAR_MOUSE_BEHAVIOUR,-500) set_control_par(%eq_id[$i],$CONTROL_PAR_DEFAULT_VALUE,500000) set_control_par (%eq_id[$i+7],$CONTROL_PAR_POS_X,... get_control_par(%eq_id[$i],$CONTROL_PAR_POS_X)-23) set_control_par (%eq_id[$i+7],$CONTROL_PAR_POS_Y,... get_control_par(%eq_id[$i],$CONTROL_PAR_POS_Y) + 43) else set_control_par_str(%eq_id[$i],$CONTROL_PAR_PICTURE,"pv_orchestral_btn") set_control_par_str(%eq_id[$i],$CONTROL_PAR_TEXT,"") set_control_par(%eq_id[$i],$CONTROL_PAR_HEIGHT,40) set_control_par(%eq_id[$i],$CONTROL_PAR_WIDTH,40) set_control_par (%eq_id[$i+7],$CONTROL_PAR_POS_X,... get_control_par(%eq_id[$i],$CONTROL_PAR_POS_X)-24) set_control_par (%eq_id[$i+7],$CONTROL_PAR_POS_Y,... get_control_par(%eq_id[$i],$CONTROL_PAR_POS_Y) + 41) end if set_control_par (%eq_id[$i+7],$CONTROL_PAR_HIDE,$HIDE_PART_BG) set_control_par (%eq_id[$i+7],$CONTROL_PAR_TEXT_ALIGNMENT,1) set_control_par (%eq_id[$i+7],$CONTROL_PAR_FONT_TYPE,$FONT_ID) inc($i) end while make_persistent($bass_onoff_eq) make_persistent($mid_onoff_eq) make_persistent($treble_onoff_eq) $bass_gain_eq := _get_engine_par($ENGINE_PAR_GAIN1,-1,$master_eq_slot,1) $mid_gain_eq := _get_engine_par($ENGINE_PAR_GAIN2,-1,$master_eq_slot,1) $mid_freq_eq := _get_engine_par($ENGINE_PAR_FREQ2,-1,$master_eq_slot,1) $treble_gain_eq := _get_engine_par($ENGINE_PAR_GAIN3,-1,$master_eq_slot,1) set_control_par_str(get_ui_id($bass_onoff_eq),$CONTROL_PAR_AUTOMATION_NAME,"Lo EQ") set_control_par_str(get_ui_id($mid_onoff_eq),$CONTROL_PAR_AUTOMATION_NAME,"Mid EQ") set_control_par_str(get_ui_id($treble_onoff_eq),$CONTROL_PAR_AUTOMATION_NAME,"Hi EQ") set_control_par_str(get_ui_id($bass_gain_eq),$CONTROL_PAR_AUTOMATION_NAME,"Low") set_control_par_str(get_ui_id($mid_gain_eq),$CONTROL_PAR_AUTOMATION_NAME,"Mid") set_control_par_str(get_ui_id($mid_freq_eq),$CONTROL_PAR_AUTOMATION_NAME,"Mid Frq") set_control_par_str(get_ui_id($treble_gain_eq),$CONTROL_PAR_AUTOMATION_NAME,"High") read_persistent_var($bass_gain_eq) read_persistent_var($mid_gain_eq) read_persistent_var($mid_freq_eq) read_persistent_var($treble_gain_eq) set_control_par_str(get_ui_id($bass_gain_eq),$CONTROL_PAR_LABEL,get_engine_par_disp($ENGINE_PAR_GAIN1,-1,$master_eq_slot,1) & " dB") set_control_par_str(get_ui_id($mid_gain_eq),$CONTROL_PAR_LABEL,get_engine_par_disp($ENGINE_PAR_GAIN2,-1,$master_eq_slot,1) & " dB") set_control_par_str(get_ui_id($mid_freq_eq),$CONTROL_PAR_LABEL,get_engine_par_disp($ENGINE_PAR_FREQ2,-1,$master_eq_slot,1) & " Hz") set_control_par_str(get_ui_id($treble_gain_eq),$CONTROL_PAR_LABEL,get_engine_par_disp($ENGINE_PAR_GAIN3,-1,$master_eq_slot,1) & " dB") {----------MASTER EQ END----------} if ($CREATE_AUTOMATION_ID = 1) set_control_par(get_ui_id($SetMidi),$CONTROL_PAR_AUTOMATION_ID,9) set_control_par(get_ui_id($Split),$CONTROL_PAR_AUTOMATION_ID,16) set_control_par(get_ui_id($artic_menu),$CONTROL_PAR_AUTOMATION_ID,1) set_control_par(get_ui_id($Var_1),$CONTROL_PAR_AUTOMATION_ID,2) set_control_par(get_ui_id($Var_2),$CONTROL_PAR_AUTOMATION_ID,3) set_control_par(get_ui_id($sound_knob),$CONTROL_PAR_AUTOMATION_ID,0) set_control_par(get_ui_id($bass_onoff_eq),$CONTROL_PAR_AUTOMATION_ID,13) set_control_par(get_ui_id($mid_onoff_eq),$CONTROL_PAR_AUTOMATION_ID,14) set_control_par(get_ui_id($treble_onoff_eq),$CONTROL_PAR_AUTOMATION_ID,15) set_control_par(get_ui_id($bass_gain_eq),$CONTROL_PAR_AUTOMATION_ID,5) set_control_par(get_ui_id($mid_gain_eq),$CONTROL_PAR_AUTOMATION_ID,6) set_control_par(get_ui_id($mid_freq_eq),$CONTROL_PAR_AUTOMATION_ID,17) set_control_par(get_ui_id($treble_gain_eq),$CONTROL_PAR_AUTOMATION_ID,7) set_control_par(get_ui_id($wetdry_reverb),$CONTROL_PAR_AUTOMATION_ID,4) set_control_par(get_ui_id($on_off_reverb),$CONTROL_PAR_AUTOMATION_ID,12) end if end on on ui_control ($sound_knob) $index_1_instr := $sound_knob/10 $index_2_instr := $sound_knob/10 +1 $knob_eq_instr := $sound_knob*10 if ($index_2_instr > 10) $index_2_instr := 10 end if set_control_par_str(get_ui_id($sound_knob),$CONTROL_PAR_LABEL,$sound_knob & " %") $a_eq_instr := 0 while($a_eq_instr < 9) $helper_eq_instr := ((%savearr_instr[($index_2_instr*9) + $a_eq_instr] - %savearr_instr[($index_1_instr*9)... + $a_eq_instr]) * ($knob_eq_instr mod 100))/100 + %savearr_instr[($index_1_instr*9) + $a_eq_instr] _set_engine_par(%engine_par_instr[$a_eq_instr],$helper_eq_instr,-1,$eq_slot,1) inc($a_eq_instr) end while end on on ui_control ($artic_menu) %active_menu_store[$active_note] := $artic_menu set_text($lb_artic_menu,!artic_type[$artic_menu]) set_control_par_str(get_ui_id($artic_menu),$CONTROL_PAR_LABEL,!artic_type[$artic_menu]) $Var_3 := 0 $Var_4 := 0 select ($artic_menu) case 0 $Var_1 := 0 $Var_2 := 0 case 1 $Var_1 := %var_0_a_store[$active_note] $Var_2 := %var_0_b_store[$active_note] case 2 $Var_1 := %var_1_a_store[$active_note] $Var_2 := %var_1_b_store[$active_note] case 3 $Var_1 := %var_2_a_store[$active_note] $Var_2 := %var_2_b_store[$active_note] case 4 $Var_1 := %var_3_a_store[$active_note] $Var_2 := %var_3_b_store[$active_note] case 5 $Var_1 := %var_4_a_store[$active_note] $Var_2 := %var_4_b_store[$active_note] case 6 $Var_1 := %var_5_a_store[$active_note] $Var_2 := %var_5_b_store[$active_note] case 7 $Var_1 := %var_6_a_store[$active_note] $Var_2 := %var_6_b_store[$active_note] case 8 $Var_1 := %var_7_a_store[$active_note] $Var_2 := %var_7_b_store[$active_note] case 9 $Var_1 := %var_8_a_store[$active_note] $Var_2 := %var_8_b_store[$active_note] case 10 $Var_1 := %var_9_a_store[$active_note] $Var_2 := %var_9_b_store[$active_note] case 11 $Var_1 := %var_10_a_store[$active_note] $Var_2 := %var_10_b_store[$active_note] $Var_3 := %var_10_c_store[$active_note] $Var_4 := %var_10_d_store[$active_note] end select set_text ($lb_Var_1,!Knob1_names[$artic_menu]) set_text ($lb_Var_2,!Knob2_names[$artic_menu]) set_text ($Var_3,!Knob3_names[$artic_menu]) set_text ($Var_4,!Knob4_names[$artic_menu]) $last_time_1 := $ENGINE_UPTIME wait($wait_time * 1000) if($ENGINE_UPTIME - $last_time_1 > $wait_time -5) set_text ($lb_artic_menu,"Articulation") end if end on on ui_control ($Var_1) select($artic_menu) case 1 %var_0_a_store[$active_note] := $Var_1 case 2 %var_1_a_store[$active_note] := $Var_1 case 3 %var_2_a_store[$active_note] := $Var_1 case 4 %var_3_a_store[$active_note] := $Var_1 case 5 %var_4_a_store[$active_note] := $Var_1 case 6 %var_5_a_store[$active_note] := $Var_1 case 7 %var_6_a_store[$active_note] := $Var_1 case 8 %var_7_a_store[$active_note] := $Var_1 case 9 %var_8_a_store[$active_note] := $Var_1 case 10 %var_9_a_store[$active_note] := $Var_1 case 11 %var_10_a_store[$active_note] := $Var_1 end select set_control_par_str(get_ui_id($Var_1),$CONTROL_PAR_LABEL,$Var_1 & " %") end on on ui_control ($Var_2) select($artic_menu) case 1 %var_0_b_store[$active_note] := $Var_2 case 2 %var_1_b_store[$active_note] := $Var_2 case 3 %var_2_b_store[$active_note] := $Var_2 case 4 %var_3_b_store[$active_note] := $Var_2 case 5 %var_4_b_store[$active_note] := $Var_2 case 6 %var_5_b_store[$active_note] := $Var_2 case 7 %var_6_b_store[$active_note] := $Var_2 case 8 %var_7_b_store[$active_note] := $Var_2 case 9 %var_8_b_store[$active_note] := $Var_2 case 10 %var_9_b_store[$active_note] := $Var_2 case 11 %var_10_b_store[$active_note] := $Var_2 end select set_control_par_str(get_ui_id($Var_2),$CONTROL_PAR_LABEL,$Var_2 & " %") end on on ui_control ($Var_3) select($artic_menu) case 11 %var_10_c_store[$active_note] := $Var_3 end select end on on ui_control ($Var_4) select($artic_menu) case 11 %var_10_d_store[$active_note] := $Var_4 end select end on on note if ($SetMidi = 1) $Split := $EVENT_NOTE $active_note := $EVENT_NOTE $artic_menu := %active_menu_store[$active_note] $Var_3 := 0 $Var_4 := 0 select ($artic_menu) case 0 $Var_1 := 0 $Var_2 := 0 case 1 $Var_1 := %var_0_a_store[$active_note] $Var_2 := %var_0_b_store[$active_note] case 2 $Var_1 := %var_1_a_store[$active_note] $Var_2 := %var_1_b_store[$active_note] case 3 $Var_1 := %var_2_a_store[$active_note] $Var_2 := %var_2_b_store[$active_note] case 4 $Var_1 := %var_3_a_store[$active_note] $Var_2 := %var_3_b_store[$active_note] case 5 $Var_1 := %var_4_a_store[$active_note] $Var_2 := %var_4_b_store[$active_note] case 6 $Var_1 := %var_5_a_store[$active_note] $Var_2 := %var_5_b_store[$active_note] case 7 $Var_1 := %var_6_a_store[$active_note] $Var_2 := %var_6_b_store[$active_note] case 8 $Var_1 := %var_7_a_store[$active_note] $Var_2 := %var_7_b_store[$active_note] case 9 $Var_1 := %var_8_a_store[$active_note] $Var_2 := %var_8_b_store[$active_note] case 10 $Var_1 := %var_9_a_store[$active_note] $Var_2 := %var_9_b_store[$active_note] case 11 $Var_1 := %var_10_a_store[$active_note] $Var_2 := %var_10_b_store[$active_note] $Var_3 := %var_10_c_store[$active_note] $Var_4 := %var_10_d_store[$active_note] end select set_text ($lb_Var_1,!Knob1_names[$artic_menu]) set_text ($lb_Var_2,!Knob2_names[$artic_menu]) set_text ($Var_3,!Knob3_names[$artic_menu]) set_text ($Var_4,!Knob4_names[$artic_menu]) end if $pressed_id := $EVENT_ID select (%active_menu_store[$EVENT_NOTE]) case 0 $a := $a {-----Alternate Stroke-----} case 1 {Alternate Stroke} ignore_event($EVENT_ID) {tuning } if (%Var_0_a_store[$EVENT_NOTE] <= 50) $Amount_helper := ((%Var_0_a_store[$EVENT_NOTE]) * (100) / (50)) $primary_tune_amount := 60000 * ($Amount_helper*100/100)/100 else $Amount_helper := ((%Var_0_a_store[$EVENT_NOTE] - 51) * (100) / (49)) $random_amount := 900*%Var_0_b_store[$EVENT_NOTE] * ($Amount_helper*100/100)/100 $primary_tune_amount := random (60000 - $random_amount,60000 + $random_amount) end if {volume } $primary_vol_amount := random (10*%Var_0_b_store[$EVENT_NOTE],100*%Var_0_b_store[$EVENT_NOTE]) {play note} $primary_id := play_note ($EVENT_NOTE,$EVENT_VELOCITY,0,-1) change_vol($primary_id,-$primary_vol_amount,0) change_tune($primary_id,$primary_tune_amount,0) {-----Release Stroke-----} case 2 {Release Stroke } {do nothing} $trigger_time := $ENGINE_UPTIME {---------Flam---------} case 3 {Flam } ignore_event($EVENT_ID) {get velocity of flam note} $actual_vel_percentage := ((%Var_2_a_store[$EVENT_NOTE]) * (5 - 20) / (100)) + 20 $grace1_velocity := $EVENT_VELOCITY - ($EVENT_VELOCITY * ($actual_vel_percentage*100/100)/100) $grace1_velocity := random ($grace1_velocity - 2,$grace1_velocity + 2) if (%Var_2_b_store[$EVENT_NOTE] > 50) $grace1_velocity := $EVENT_VELOCITY + ((127 - $EVENT_VELOCITY) * (((%Var_2_b_store[$EVENT_NOTE]-50))*100/100)/100) end if if (%Var_2_b_store[$EVENT_NOTE] < 50) $grace1_velocity := $EVENT_VELOCITY - (($EVENT_VELOCITY) * (((abs(%Var_2_b_store[$EVENT_NOTE]-50)))*100/100)/100) end if if ($grace1_velocity < 1) $grace1_velocity := 1 end if if ($grace1_velocity > 127) $grace1_velocity := 127 end if {get volume of grace note} $grace1_vol_amount := random (1000,5000) {get tuning of flam note} if (%Var_2_a_store[$EVENT_NOTE] <= 50) {skaliere den $Var_1-Bereich 0-50 auf 0-100} $Amount_helper := ((%Var_2_a_store[$EVENT_NOTE]) * (100) / (50)) $grace1_tune_amount := 220000 * ($Amount_helper*100/100)/100 else {skaliere den $Var_1-Bereich 51-100 auf 0-100} $Amount_helper := ((%Var_2_a_store[$EVENT_NOTE] - 51) * (100) / (49)) $random_amount := 30000 * ($Amount_helper*100/100)/100 $grace1_tune_amount := random (220000 - $random_amount,220000 + $random_amount) end if {get flam delay time} $grace1_delay_time := ((%Var_2_a_store[$EVENT_NOTE] - 100) * (35000 - 20000) / (- 100)) + 20000 {und jetzt 10% davon} $random_delay := $grace1_delay_time * (20*100/100)/100 $grace1_delay_time := random($grace1_delay_time - $random_delay, $grace1_delay_time + $random_delay) {generate flam note} $grace1_id := play_note($EVENT_NOTE,$grace1_velocity,0,-1) change_vol($grace1_id,-$grace1_vol_amount,0) change_tune($grace1_id,-$grace1_tune_amount,0) wait ($grace1_delay_time) $help_id := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,-1) {---------Drag---------} case 4 {Drag } ignore_event($EVENT_ID) {get velocity of first drag note} $grace1_velocity := $EVENT_VELOCITY - ($EVENT_VELOCITY * (30*100/100)/100) $grace1_velocity := random ($grace1_velocity - 2, $grace1_velocity + 2) if (%Var_3_b_store[$EVENT_NOTE] > 50) $grace1_velocity := $EVENT_VELOCITY + ((127 - $EVENT_VELOCITY) * (((%Var_3_b_store[$EVENT_NOTE]-50))*100/100)/100) end if if (%Var_3_b_store[$EVENT_NOTE] < 50) $grace1_velocity := $EVENT_VELOCITY - (($EVENT_VELOCITY) * (((abs(%Var_3_b_store[$EVENT_NOTE]-50)))*100/100)/100) end if if ($grace1_velocity < 1) $grace1_velocity := 1 end if if ($grace1_velocity > 127) $grace1_velocity := 127 end if {get velocity of second drag note} {the second grace note should be slightly softer} $grace2_velocity := random ($grace1_velocity - 4, $grace1_velocity - 2) if ($grace2_velocity < 1) $grace2_velocity := 1 end if {get volume of both grace notes} $grace1_vol_amount := random (1000,5000) $grace2_vol_amount := random (1000,5000) {get tuning of first grace note} if (%Var_3_a_store[$EVENT_NOTE] <= 50) {skaliere den $Var_1-Bereich 0-50 auf 0-100} $Amount_helper := ((%Var_3_a_store[$EVENT_NOTE]) * (100) / (50)) $grace1_tune_amount := 100000 * ($Amount_helper*100/100)/100 else {skaliere den $Var_1-Bereich 51-100 auf 0-100} $Amount_helper := ((%Var_3_a_store[$EVENT_NOTE] - 51) * (100) / (49)) $random_amount := 30000 * ($Amount_helper*100/100)/100 $grace1_tune_amount := random (100000 - $random_amount,100000 + $random_amount) end if {get tuning of second grace note, should be a tad lower than the first} $grace2_tune_amount := random ($grace1_tune_amount - 10000, $grace1_tune_amount - 2000) {get grace1 delay time, skaliere den min/max bereich von 100-0, also bei 100 k?rzere zeit} $grace1_delay_time := ((%Var_3_a_store[$EVENT_NOTE] - 100) * (50000 - 30000) / (- 100)) + 30000 {und jetzt 10% davon} $random_delay := $grace1_delay_time * (20 *100/100)/100 $grace1_delay_time := random($grace1_delay_time - $random_delay, $grace1_delay_time + $random_delay) {get grace2 delay time,} $grace2_delay_time := random($grace1_delay_time, $grace1_delay_time + (3*$random_delay)) {play first grace note} $grace1_id := play_note($EVENT_NOTE,$grace1_velocity,0,-1) change_vol($grace1_id,-$grace1_vol_amount,0) change_tune($grace1_id,-$grace1_tune_amount,0) wait ($grace1_delay_time) {play second grace note} $grace2_id := play_note($EVENT_NOTE,$grace2_velocity,0,-1) change_vol($grace2_id,-$grace2_vol_amount,0) change_tune($grace2_id,-$grace2_tune_amount,0) wait ($grace2_delay_time) {play primary note} $primary_id := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,-1) change_vol($primary_id,$grace1_vol_amount,0) {---------Ruff---------} case 5 {Ruff } ignore_event($EVENT_ID) {get velocity of first grace note} $grace1_velocity := $EVENT_VELOCITY - ($EVENT_VELOCITY * (30*100/100)/100) $grace1_velocity := random ($grace1_velocity - 2, $grace1_velocity + 2) if (%Var_4_b_store[$EVENT_NOTE] > 50) $grace1_velocity := $EVENT_VELOCITY + ((127 - $EVENT_VELOCITY) * (((%Var_4_b_store[$EVENT_NOTE]-50))*100/100)/100) end if if (%Var_4_b_store[$EVENT_NOTE] < 50) $grace1_velocity := $EVENT_VELOCITY - (($EVENT_VELOCITY) * (((abs(%Var_4_b_store[$EVENT_NOTE]-50)))*100/100)/100) end if if ($grace1_velocity < 1) $grace1_velocity := 1 end if if ($grace1_velocity > 127) $grace1_velocity := 127 end if {get velocity of grace drag note} {the second grace note should be slightly softer} $grace2_velocity := random ($grace1_velocity - 8, $grace1_velocity - 4) if ($grace2_velocity < 1) $grace2_velocity := 1 end if {get velocity of grace drag note} {the third grace note should be harder than the second} $grace3_velocity := random ($grace1_velocity - 4, $grace1_velocity - 2) if ($grace3_velocity < 1) $grace3_velocity := 1 end if {get volume of both grace notes} $grace1_vol_amount := random (1000,5000) $grace2_vol_amount := random (1000,5000) $grace3_vol_amount := random (1000,5000) {get tuning of first grace note} if (%Var_4_a_store[$EVENT_NOTE] <= 50) {skaliere den $Var_1-Bereich 0-50 auf 0-100} $Amount_helper := ((%Var_4_a_store[$EVENT_NOTE]) * (100) / (50)) $grace1_tune_amount := 200000 * ($Amount_helper*100/100)/100 else {skaliere den $Var_1-Bereich 51-100 auf 0-100} $Amount_helper := ((%Var_4_a_store[$EVENT_NOTE] - 51) * (100) / (49)) $random_amount := 30000 * ($Amount_helper*100/100)/100 $grace1_tune_amount := random (200000 - $random_amount,200000 + $random_amount) end if {get tuning of second grace note, should be quite low} $grace2_tune_amount := $random_amount {get tuning of second grace note, should be a tad lower than the first} $grace3_tune_amount := random ($grace1_tune_amount - 10000, $grace1_tune_amount - 2000) {get grace1 delay time, skaliere den min/max bereich von 100-0, also bei 100 k?rzere zeit} $grace1_delay_time := ((%Var_4_a_store[$EVENT_NOTE] - 100) * (60000 - 40000) / (- 100)) + 40000 {und jetzt 10% davon} $random_delay := $grace1_delay_time * (20*100/100)/100 $grace1_delay_time := random($grace1_delay_time - $random_delay, $grace1_delay_time + $random_delay) {get grace2 delay time} $grace2_delay_time := random($grace1_delay_time, $grace1_delay_time + $random_delay) {get grace3 delay time} $grace3_delay_time := random($grace1_delay_time, $grace1_delay_time + (3*$random_delay)) {play first grace note} $grace1_id := play_note($EVENT_NOTE,$grace1_velocity,0,-1) change_vol($grace1_id,-$grace1_vol_amount,0) change_tune($grace1_id,-$grace1_tune_amount,0) wait ($grace1_delay_time) {play second grace note} $grace2_id := play_note($EVENT_NOTE,$grace2_velocity,0,-1) change_vol($grace2_id,-$grace2_vol_amount,0) change_tune($grace2_id,-$grace2_tune_amount,0) wait ($grace2_delay_time) {play third grace note} $grace3_id := play_note($EVENT_NOTE,$grace3_velocity,0,-1) change_vol($grace3_id,-$grace2_vol_amount,0) change_tune($grace3_id,-$grace2_tune_amount,0) wait ($grace3_delay_time) {play primary note} $primary_id := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,-1) change_vol($primary_id,$grace1_vol_amount,0) {---------Roll---------} case 6 {Roll } ignore_event($EVENT_ID) if ($EVENT_VELOCITY - 10 < 1) change_velo ($EVENT_ID,1) else change_velo ($EVENT_ID, $EVENT_VELOCITY-10) end if while ($pressed_id = $EVENT_ID and %active_menu_store[$EVENT_NOTE] = 6) {Volume 1} $grace1_vol_amount := random (1000,4000) {Volume 2} $grace2_vol_amount := random (1000,4000) {Volume 3} $grace3_vol_amount := random (1000,4000) {Volume 4} $grace4_vol_amount := random (1000,4000) {Tuning 1} $random_amount := 20000 * (%Var_5_a_store[$EVENT_NOTE]*100/100)/100 $grace1_tune_amount := random (20000 - $random_amount,20000 + $random_amount) {Tuning 2} $random_amount := 20000 * (%Var_5_a_store[$EVENT_NOTE]*100/100)/100 $grace2_tune_amount := random (20000 - $random_amount,20000 + $random_amount) {Tuning 3} $random_amount := 20000 * (%Var_5_a_store[$EVENT_NOTE]*100/100)/100 $grace3_tune_amount := random (20000 - $random_amount,20000 + $random_amount) {Tuning 4} $random_amount := 20000 * (%Var_5_a_store[$EVENT_NOTE]*100/100)/100 $grace4_tune_amount := random (20000 - $random_amount,20000 + $random_amount) {Delay 1} $grace1_delay_time := ((%Var_5_a_store[$EVENT_NOTE] - 100) * (80000 - 50000) / (- 100)) + 50000 $random_delay := $grace1_delay_time * (4*100/100)/100 $grace1_delay_time := random($grace1_delay_time - $random_delay, $grace1_delay_time + $random_delay) {Delay 2} $grace2_delay_time := random($grace1_delay_time, $grace1_delay_time + $random_delay) {Delay 3} $grace3_delay_time := random($grace2_delay_time, $grace2_delay_time + $random_delay) {Delay 4} $grace4_delay_time := random($grace3_delay_time, $grace3_delay_time + $random_delay) {** Play 1 **} {Velocity 1} $grace1_velocity := random ($EVENT_VELOCITY, $EVENT_VELOCITY + ($EVENT_VELOCITY * (4*100/100)/100)) $grace1_velocity := $grace1_velocity * (%Var_5_b_store[$EVENT_NOTE]*100/100)/100 if ($grace1_velocity < 1) $grace1_velocity := 1 end if if ($grace1_velocity > 127) $grace1_velocity := 127 end if $grace1_id := play_note($EVENT_NOTE,$grace1_velocity,0,-1) change_vol($grace1_id,$grace1_vol_amount,0) change_tune($grace1_id,-$grace1_tune_amount,0) wait ($grace1_delay_time) fade_out($grace1_id,$ROLL_FADE_OUT_TIME,1) {** Play 2 **} {Velocity 2} $grace2_velocity := random ($EVENT_VELOCITY - ($EVENT_VELOCITY * (4*100/100)/100),$EVENT_VELOCITY) $grace2_velocity := $grace2_velocity * (%Var_5_b_store[$EVENT_NOTE]*100/100)/100 if ($grace2_velocity < 1) $grace2_velocity := 1 end if if ($grace2_velocity > 127) $grace2_velocity := 127 end if $grace2_id := play_note($EVENT_NOTE,$grace2_velocity,0,-1) change_vol($grace2_id,-$grace2_vol_amount,0) change_tune($grace2_id,$grace2_tune_amount,0) wait ($grace2_delay_time) fade_out($grace2_id,$ROLL_FADE_OUT_TIME,1) {** Play 3 **} {Velocity 3} $grace3_velocity := random ($EVENT_VELOCITY - 5, $EVENT_VELOCITY) $grace3_velocity := $grace3_velocity * (%Var_5_b_store[$EVENT_NOTE]*100/100)/100 if ($grace3_velocity < 1) $grace3_velocity := 1 end if if ($grace3_velocity > 127) $grace3_velocity := 127 end if $grace3_id := play_note($EVENT_NOTE,$grace3_velocity,0,-1) change_vol($grace3_id,$grace3_vol_amount,0) change_tune($grace3_id,-$grace3_tune_amount,0) wait ($grace3_delay_time) fade_out($grace3_id,$ROLL_FADE_OUT_TIME,1) {** Play 4 **} {Velocity 4} $grace4_velocity := random ($EVENT_VELOCITY - 10, $EVENT_VELOCITY) $grace4_velocity := $grace4_velocity * (%Var_5_b_store[$EVENT_NOTE]*100/100)/100 if ($grace4_velocity < 1) $grace4_velocity := 1 end if if ($grace4_velocity > 127) $grace4_velocity := 127 end if $grace4_id := play_note($EVENT_NOTE,$grace4_velocity,0,-1) change_vol($grace4_id,-$grace4_vol_amount,0) change_tune($grace4_id,$grace2_tune_amount,0) wait ($grace4_delay_time) fade_out($grace4_id,$ROLL_FADE_OUT_TIME,1) end while {******** BUZZ ********} case 7 {Buzz } $count := 1 $grace1_delay_time := 62500 {get $Tdec} $Tdec := ((%Var_6_a_store[$EVENT_NOTE] - 100) * (10000 - 6000) / ( -100)) + 6000 {get $Vdec} $Vdec := ((%Var_6_b_store[$EVENT_NOTE]) * (9220 - 7220) / ( 100)) + 7220 {get velocity of first repeated note} $grace1_velocity := (($EVENT_VELOCITY * 100/ 100) * $Vdec) / 10000 if ($grace1_velocity < 1) $grace1_velocity := 1 end if wait ($grace1_delay_time) while ($count <= 8) $grace1_id := play_note ($EVENT_NOTE, $grace1_velocity, 0, 62500) {get $Vdec} $Vdec := ((%Var_6_b_store[$EVENT_NOTE]) * (9220 - 7220) / ( 100)) + 7220 $grace1_velocity := (($grace1_velocity * 100 / 100) * $Vdec) / 10000 if ($grace1_velocity < 1) $grace1_velocity := 1 end if {get $Tdec} $Tdec := ((%Var_6_a_store[$EVENT_NOTE] - 100) * (10000 - 6000) / ( -100)) + 6000 $grace1_delay_time := (($grace1_delay_time / 100) * $Tdec) / 100 if ($grace1_delay_time < 1000) $grace1_delay_time := 1000 end if inc ($count) wait ($grace1_delay_time) fade_out($grace1_id,$ROLL_FADE_OUT_TIME,1) end while {******** MUTED ********} case 8 {Muted } ignore_event ($EVENT_ID) $primary_id := play_note ($EVENT_NOTE,$EVENT_VELOCITY,0,-1) change_vol($primary_id,- random(1000,5000),0) change_tune($primary_id,random(0,10000),0) $Amount_helper := ((%Var_7_a_store[$EVENT_NOTE]) * (100000 - 5000) / (100)) + 5000 fade_in ($primary_id,$Amount_helper) if ($Amount_helper > 0) wait ($Amount_helper) end if note_off($primary_id) fade_out ($primary_id,((%Var_7_b_store[$EVENT_NOTE]) * (100000 - 5000) / (100)) + 5000,1) {******** SPEED ROLL ********} case 9 {Speed Roll} ignore_event($EVENT_ID) while ($pressed_id = $EVENT_ID and %active_menu_store[$EVENT_NOTE] = 9) $grace1_delay_time := ((%Var_8_a_store[$EVENT_NOTE] - 100) * (40000 - 20000) / (- 100)) + 20000 $grace1_velocity := $EVENT_VELOCITY $grace1_id := play_note($EVENT_NOTE,$grace1_velocity,0,-1) $Amount_helper := ((%Var_8_b_store[$EVENT_NOTE]) * (100 - 5) / (100)) + 5 fade_out ($grace1_id, (5*$grace1_delay_time) * ($Amount_helper*100/100)/100,1) if ($grace1_delay_time > 1) wait ($grace1_delay_time) end if end while {******** GEIGER COUNTER *********} case 10 {Geiger Counter} ignore_event($EVENT_ID) while ($pressed_id = $EVENT_ID and %active_menu_store[$EVENT_NOTE] = 10) $Amount_helper := ((%Var_9_a_store[$EVENT_NOTE]) * (98 - 40) / (100)) + 40 {fade out time} select (%Var_9_b_store[$EVENT_NOTE]) case 0 to 50 $grace3_delay_time := ((%Var_9_b_store[$EVENT_NOTE]) * (25000 - 10000) / (50)) + 10000 case 51 to 100 $grace3_delay_time := ((%Var_9_b_store[$EVENT_NOTE] - 50) * (200000 - 25000) / (100 - 50)) + 25000 end select {** Play 1 **} {Velocity } $grace1_velocity := random ($EVENT_VELOCITY, $EVENT_VELOCITY + 5) if ($grace1_velocity < 1) $grace1_velocity := 1 end if if ($grace1_velocity > 127) $grace1_velocity := 127 end if $grace1_id := play_note($EVENT_NOTE,$grace1_velocity,0,-1) fade_out ($grace1_id,$grace3_delay_time,1) {Delay 1} $grace1_delay_time := (($Amount_helper - 100) * (900000 - 2000) / (- 100)) + 2000 $random_delay := $grace1_delay_time * (100 * 100/100)/100 $grace1_delay_time := random($grace1_delay_time - $random_delay, $grace1_delay_time + $random_delay) if ($grace1_delay_time > 0) wait ($grace1_delay_time) end if {** Play 2 **} {Velocity } $grace2_velocity := random ($EVENT_VELOCITY - 5,$EVENT_VELOCITY) if ($grace2_velocity < 1) $grace2_velocity := 1 end if if ($grace2_velocity > 127) $grace2_velocity := 127 end if $grace2_id := play_note($EVENT_NOTE,$grace2_velocity,0,-1) fade_out ($grace2_id,$grace3_delay_time,1) {Delay 2} $grace2_delay_time := (($Amount_helper - 100) * (900000 - 2000) / (- 100)) + 2000 $random_delay := $grace2_delay_time * (100 * 100/100)/100 $grace2_delay_time := random($grace2_delay_time - $random_delay, $grace2_delay_time + $random_delay) if ($grace2_delay_time > 0) wait ($grace2_delay_time) end if end while {******** HUMANIZE ********} case 11 ignore_event ($EVENT_ID) {----Time----} if (%var_10_c_store[$EVENT_NOTE] < 51) $Time_amount := ((%var_10_c_store[$EVENT_NOTE]) * (12) / (50)) else $Time_amount := ((%var_10_c_store[$EVENT_NOTE] - 51) * (47 - 12) / (100 - 51)) + 12 end if $new_time := random (0,$Time_amount * 1000) if ($new_time > 1) wait($new_time) end if {----Tune----} if (%Var_10_b_store[$EVENT_NOTE] < 51) $new_tune := random (-250,250) * %Var_10_b_store[$EVENT_NOTE] else $Tune_amount := ((%Var_10_b_store[$EVENT_NOTE] - 51) * (1000 - 250) / (100 - 51)) + 250 $new_tune := random (-$Tune_amount,$Tune_amount) * %Var_10_b_store[$EVENT_NOTE] end if {----Volume----} $new_vol := random (-60,60) * %var_10_d_store[$EVENT_NOTE] {----Velocity----} select (%Var_10_a_store[$EVENT_NOTE]) case 0 to 9 if (random(1,3) = 2) $new_vel := $EVENT_VELOCITY + (random (-%Var_10_a_store[$EVENT_NOTE],%Var_10_a_store[$EVENT_NOTE] / 2)) else $new_vel := $EVENT_VELOCITY end if case 10 to 50 $max_vel_amount := ((%Var_10_a_store[$EVENT_NOTE] - 10) * (20 - 10) / (50 - 10)) + 10 $new_vel := $EVENT_VELOCITY + (random (-$max_vel_amount,$max_vel_amount) * (%Var_10_a_store[$EVENT_NOTE] *100/ 100)/100) case 51 to 100 $max_vel_amount := ((%Var_10_a_store[$EVENT_NOTE] - 51) * (72 - 21) / (100 - 51)) + 21 $new_vel := $EVENT_VELOCITY + (random (-$max_vel_amount,$max_vel_amount) * (%Var_10_a_store[$EVENT_NOTE] *100/ 100)/100) end select {check the velocity range} if ($new_vel > 127) $new_vel := 127 end if if ($new_vel < 1) $new_vel := 1 end if {play the humenized note} $new_event := play_note ($EVENT_NOTE, $new_vel, 0, -1) change_vol ($new_event, %EVENT_PAR[1] + $new_vol, 1) change_tune ($new_event, %EVENT_PAR[2] + $new_tune, 1) end select end on on release if ($active_note = 1000) exit end if select (%active_menu_store[$EVENT_NOTE]) {******** RELEASE STROKE ********} case 2 {Release Stroke} {tuning } if (%Var_1_a_store[$EVENT_NOTE] <= 50) $Amount_helper := ((%Var_1_a_store[$EVENT_NOTE]) * (100) / (50)) $primary_tune_amount := 60000 * ($Amount_helper*100/100)/100 else $Amount_helper := ((%Var_1_a_store[$EVENT_NOTE] - 51) * (100) / (49)) $random_amount := 30000 * ($Amount_helper*100/100)/100 $primary_tune_amount := random (60000 - $random_amount,60000 + $random_amount) end if {velocity } if (%Var_1_b_store[$EVENT_NOTE] > 50) $grace1_velocity := $EVENT_VELOCITY + ((127 - $EVENT_VELOCITY) * (((%Var_1_b_store[$EVENT_NOTE]-50)*2)*100/100)/100) end if if (%Var_1_b_store[$EVENT_NOTE] < 50) $grace1_velocity := $EVENT_VELOCITY - (($EVENT_VELOCITY) * (((abs(%Var_1_b_store[$EVENT_NOTE]-50))*2)*100/100)/100) end if if (%Var_1_b_store[$EVENT_NOTE] = 50) $grace1_velocity := $EVENT_VELOCITY end if if ($grace1_velocity < 1) $grace1_velocity := 1 end if if ($grace1_velocity > 127) $grace1_velocity := 127 end if {volume } $primary_vol_amount := random (1000,5000) $trigger_length := ($ENGINE_UPTIME - $trigger_time)*1000 + 1000 {play note} $primary_id := play_note ($EVENT_NOTE,$grace1_velocity,0,$trigger_length) change_vol($primary_id,-$primary_vol_amount,0) change_tune($primary_id,$primary_tune_amount,0) {******** BUZZ ********} case 7 fade_out($primary_id,((%Var_7_b_store[$EVENT_NOTE]) * (100000 - 5000) / (100)) + 5000,1) end select $pressed_id := 0 end on on ui_control ($split) set_text ($lb_Split,!note_names[$Split]) set_control_par_str(get_ui_id($split),$CONTROL_PAR_LABEL,!note_names[$Split]) $active_note := $Split $artic_menu := %active_menu_store[$active_note] $Var_3 := 0 $Var_4 := 0 select ($artic_menu) case 0 $Var_1 := 0 $Var_2 := 0 case 1 $Var_1 := %var_0_a_store[$active_note] $Var_2 := %var_0_b_store[$active_note] case 2 $Var_1 := %var_1_a_store[$active_note] $Var_2 := %var_1_b_store[$active_note] case 3 $Var_1 := %var_2_a_store[$active_note] $Var_2 := %var_2_b_store[$active_note] case 4 $Var_1 := %var_3_a_store[$active_note] $Var_2 := %var_3_b_store[$active_note] case 5 $Var_1 := %var_4_a_store[$active_note] $Var_2 := %var_4_b_store[$active_note] case 6 $Var_1 := %var_5_a_store[$active_note] $Var_2 := %var_5_b_store[$active_note] case 7 $Var_1 := %var_6_a_store[$active_note] $Var_2 := %var_6_b_store[$active_note] case 8 $Var_1 := %var_7_a_store[$active_note] $Var_2 := %var_7_b_store[$active_note] case 9 $Var_1 := %var_8_a_store[$active_note] $Var_2 := %var_8_b_store[$active_note] case 10 $Var_1 := %var_9_a_store[$active_note] $Var_2 := %var_9_b_store[$active_note] case 11 $Var_1 := %var_10_a_store[$active_note] $Var_2 := %var_10_b_store[$active_note] $Var_3 := %var_10_c_store[$active_note] $Var_4 := %var_10_d_store[$active_note] end select set_text ($lb_Var_1,!Knob1_names[$artic_menu]) set_text ($lb_Var_2,!Knob2_names[$artic_menu]) set_text ($Var_3,!Knob3_names[$artic_menu]) set_text ($Var_4,!Knob4_names[$artic_menu]) $last_time_2 := $ENGINE_UPTIME wait($wait_time * 1000) if($ENGINE_UPTIME - $last_time_2 > $wait_time -5) set_text ($lb_Split,"Note") end if end on {--REVERB UI CALLBACKS--} on ui_control ($category_reverb) $i := 0 while ($i < 9) if ($i = $category_reverb) set_control_par(%subcat_menu_id[$i],$CONTROL_PAR_HIDE,$HIDE_PART_NOTHING) else set_control_par(%subcat_menu_id[$i],$CONTROL_PAR_HIDE,$HIDE_WHOLE_CONTROL) end if inc ($i) end while set_control_par(get_ui_id($image_reverb),$CONTROL_PAR_PICTURE_STATE,$category_reverb) _load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)&... !ir_path[%offset_reverb[$category_reverb]+get_control_par... (%subcat_menu_id[$category_reverb],$CONTROL_PAR_VALUE)],$reverb_slot,1) end on on ui_control ($hall_reverb) _load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)... & !ir_path[$hall_reverb],$reverb_slot,1) end on on ui_control ($cathedral_reverb) _load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)... & !ir_path[$cathedral_reverb],$reverb_slot,1) end on on ui_control ($club_reverb) _load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)... & !ir_path[$club_reverb],$reverb_slot,1) end on on ui_control ($room_reverb) _load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)... & !ir_path[$room_reverb],$reverb_slot,1) end on on ui_control ($l300_reverb) _load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)... & !ir_path[$l300_reverb],$reverb_slot,1) end on on ui_control ($quadstick_reverb) _load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)... & !ir_path[$quadstick_reverb],$reverb_slot,1) end on on ui_control ($brt7_reverb) _load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)... & !ir_path[$brt7_reverb],$reverb_slot,1) end on on ui_control ($plate_reverb) _load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)... & !ir_path[$plate_reverb],$reverb_slot,1) end on on ui_control ($cabinet_reverb) _load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)... & !ir_path[$cabinet_reverb],$reverb_slot,1) end on on ui_control ($wetdry_reverb) _set_engine_par ($ENGINE_PAR_SEND_EFFECT_OUTPUT_GAIN, $wetdry_reverb, -1, $reverb_slot, 1) set_control_par_str(get_ui_id($wetdry_reverb),$CONTROL_PAR_LABEL,get_engine_par_disp($ENGINE_PAR_SEND_EFFECT_OUTPUT_GAIN, -1,$reverb_slot,1) & " dB") end on on ui_control ($on_off_reverb) _set_engine_par($ENGINE_PAR_EFFECT_BYPASS, (($on_off_reverb + 1) mod 2), -1, $reverb_slot, 1) end on {---EQ CONTROL CALLBACKS---} on ui_control ($bass_gain_eq) if($bass_onoff_eq = 1) set_engine_par($ENGINE_PAR_GAIN1,$bass_gain_eq,-1,$master_eq_slot,1) end if set_control_par_str(get_ui_id($bass_gain_eq),$CONTROL_PAR_LABEL,get_engine_par_disp($ENGINE_PAR_GAIN1,-1,$master_eq_slot,1) & " dB") end on on ui_control ($mid_gain_eq) if($mid_onoff_eq = 1) set_engine_par($ENGINE_PAR_GAIN2,$mid_gain_eq,-1,$master_eq_slot,1) end if set_control_par_str(get_ui_id($mid_gain_eq),$CONTROL_PAR_LABEL,get_engine_par_disp($ENGINE_PAR_GAIN2,-1,$master_eq_slot,1) & " dB") end on on ui_control ($mid_freq_eq) if($mid_onoff_eq = 1) _set_engine_par($ENGINE_PAR_FREQ2,$mid_freq_eq,-1,$master_eq_slot,1) end if set_control_par_str(get_ui_id($mid_freq_eq),$CONTROL_PAR_LABEL,get_engine_par_disp($ENGINE_PAR_FREQ2,-1,$master_eq_slot,1) & " Hz") end on on ui_control ($treble_gain_eq) if($treble_onoff_eq = 1) set_engine_par($ENGINE_PAR_GAIN3,$treble_gain_eq,-1,$master_eq_slot,1) end if set_control_par_str(get_ui_id($treble_gain_eq),$CONTROL_PAR_LABEL,get_engine_par_disp($ENGINE_PAR_GAIN3,-1,$master_eq_slot,1) & " dB") end on on ui_control ($bass_onoff_eq) if($bass_onoff_eq = 0) set_engine_par($ENGINE_PAR_GAIN1,500000,-1,$master_eq_slot,1) else set_engine_par($ENGINE_PAR_GAIN1,$bass_gain_eq,-1,$master_eq_slot,1) end if end on on ui_control ($mid_onoff_eq) if($mid_onoff_eq = 0) set_engine_par($ENGINE_PAR_GAIN2,500000,-1,$master_eq_slot,1) else set_engine_par($ENGINE_PAR_GAIN2,$mid_gain_eq,-1,$master_eq_slot,1) end if end on on ui_control ($treble_onoff_eq) if($treble_onoff_eq = 0) set_engine_par($ENGINE_PAR_GAIN3,500000,-1,$master_eq_slot,1) else set_engine_par($ENGINE_PAR_GAIN3,$treble_gain_eq,-1,$master_eq_slot,1) end if end on {END OF SCRIPT}