You are on page 1of 33

{***********************************************

Kontakt 4 Factory Libary - Instrument


Solo Saxophones
Author: Native Instruments
Written by: Nicki Marinic, Dinos Vallianatos
Modified: September 8th, 2009
*************************************************}
on init
make_perfview
set_script_title("Instrument")
set_ui_height_px(256)
message("")
declare $count
declare $last_time_1
declare $last_time_2
declare $last_time_3
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 := 5 {the font id for all visible labels}
declare const $FONT_ID_2 := 4 {the font id for menus}
declare const $CREATE_AUTOMATION_ID := 0
declare const $sends_slot := 7
declare const $keys_grp_idx := 2
declare const $rel_grp_idx := 3
declare const $meq_slot := 6
declare const $eq_slot := 5
declare const $reverb_slot := 0
declare const $cab_slot := 4
{*** CONTROL GROUP "INSTR"}
{POSITIONING OF CONTROL GROUP}
declare $x_grid_instr := 1 {X Position of Control Group in grid}
declare $y_grid_instr := 1 {Y Position of Control Group in grid}
declare $x_px_instr := 0 {X Position Offset Control Group in pix
el}
declare $y_px_instr := 0 {Y Position Offset Control Group in pix
el}
{DECLARATION AND UI_IDs}
declare const $NUM_INSTR := 8 {number of elements in this contro
l group}
declare ui_label $lb_solo_instr (1,1)
declare ui_label $lb_noise_instr (1,1)
declare ui_label $lb_release_instr (1,1)
declare ui_label $lb_sound_instr (1,1)
declare ui_slider $noise_instr (0, 1000000)
declare ui_slider $release_instr (0, 1000000)
declare ui_slider $sound_instr (0, 100)
declare ui_switch $solo_instr
declare %instr_id[$NUM_INSTR]
%instr_id[0] := get_ui_id($lb_solo_instr)
%instr_id[1] := get_ui_id($lb_noise_instr)
%instr_id[2] := get_ui_id($lb_release_instr)
%instr_id[3] := get_ui_id($lb_sound_instr)
%instr_id[4] := get_ui_id($noise_instr)
%instr_id[5] := get_ui_id($release_instr)
%instr_id[6] := get_ui_id($sound_instr)
%instr_id[7] := get_ui_id($solo_instr)
declare !var_names[4]
!var_names[0] := "Sustain"
!var_names[1] := "Short"
!var_names[2] := "Crescendo"
!var_names[3] := "Fall"
declare !note_names[12]
!note_names[0] := "C"
!note_names[1] := "Db"
!note_names[2] := "D"
!note_names[3] := "Eb"
!note_names[4] := "E"
!note_names[5] := "F"
!note_names[6] := "Gb"
!note_names[7] := "G"
!note_names[8] := "Ab"
!note_names[9] := "A"
!note_names[10] := "Bb"
!note_names[11] := "B"
declare !note_names2 [128]
$count := 0
while ($count < 128)
!note_names2[$count] := !note_names[$count mod 12] & (($
count/12)-2)
inc ($count)
end while
declare %keyswitches[4] := (24,25,26,27)
{POSITIONING OF INDIVIDUAL CONTROLS}
{possible to offset control in pixels}
move_control_px($lb_solo_instr, ($GRID_X * 1) + 18, ($GRID_Y * 2
) + 21)
move_control_px($lb_noise_instr, ($GRID_X * 2) + 44, ($GRID_Y *
2) + 21)
move_control_px($lb_release_instr, ($GRID_X * 3) + 81, ($GRID_Y
* 2) + 21)
move_control_px($lb_sound_instr, ($GRID_X * 5) + 24, ($GRID_Y *
2) + 21)
move_control_px($noise_instr, ($GRID_X * 2) + 65, ($GRID_Y * 3)
+ 11)
move_control_px($release_instr, ($GRID_X * 4) + 9, ($GRID_Y * 3)
+ 11)
move_control_px($sound_instr, ($GRID_X * 5) + 45, ($GRID_Y * 3)
+ 11)
move_control_px($solo_instr, ($GRID_X * 1) + 46, ($GRID_Y * 3) +
18)
{VARIOUS ATTRIBUTES}
$noise_instr := _get_engine_par($ENGINE_PAR_VOLUME, $keys_grp_id
x, -1, -1)
$release_instr := _get_engine_par($ENGINE_PAR_VOLUME, $rel_grp_i
dx, -1, -1)
make_persistent($solo_instr)
make_persistent($sound_instr)
_read_persistent_var($solo_instr)
_pgs_set_key_val(SOLO_MODE,0,$solo_instr)
set_control_par_str(%instr_id[0], $CONTROL_PAR_TEXT, "SOLO")
set_control_par_str(%instr_id[1], $CONTROL_PAR_TEXT, "KEY NOISE"
)
set_control_par_str(%instr_id[2], $CONTROL_PAR_TEXT, "RELEASE")
set_control_par_str(%instr_id[3], $CONTROL_PAR_TEXT, "SOUND")
$count := 0
while ($count < 4)
set_control_par(%instr_id[$count], $CONTROL_PAR_WIDTH, (
$GRID_X * 1))
set_control_par(%instr_id[$count], $CONTROL_PAR_HEIGHT,
($GRID_Y * 1))
set_control_par(%instr_id[$count], $CONTROL_PAR_HIDE, $H
IDE_PART_BG)
set_control_par(%instr_id[$count], $CONTROL_PAR_TEXT_ALI
GNMENT, 1)
set_control_par(%instr_id[$count], $CONTROL_PAR_FONT_TYP
E, $FONT_ID)
inc($count)
end while
$count := 4
while ($count < 7)
set_control_par_str(%instr_id[$count], $CONTROL_PAR_PICT
URE, "pv_band_knob_big")
set_control_par(%instr_id[$count], $CONTROL_PAR_MOUSE_BE
HAVIOUR, -500)
inc($count)
end while
set_control_par_str(%instr_id[7], $CONTROL_PAR_PICTURE, "pv_band
_switch_ring_on_off")
set_control_par(%instr_id[7], $CONTROL_PAR_WIDTH, 33)
set_control_par(%instr_id[7], $CONTROL_PAR_HEIGHT, 50)
set_control_par_str(%instr_id[7], $CONTROL_PAR_TEXT, "")
{Other}
$count := 0
while ($count < $NUM_INSTR)
set_control_par (%instr_id[$count],$CONTROL_PAR_POS_X,ge
t_control_par(%instr_id[$count],$CONTROL_PAR_POS_X)...
+$ROOT_X + ($x_grid_instr - 2)*$GRID_X + $x_px_instr)
set_control_par (%instr_id[$count],$CONTROL_PAR_POS_Y,ge
t_control_par(%instr_id[$count],$CONTROL_PAR_POS_Y)...
+$ROOT_Y + ($y_grid_instr - 2)*$GRID_Y + $y_px_instr)
inc($count)
end while
{*** SOUND KNOB FUNCTIONALITY START}
{values of freq-bandwith-gain of the various eq bands}
declare %savearr_instr[10*10] := (...
{0 } 500000,500000,500000, 500000,500000,500000, 500000,
500000,500000,...
{10} 365637, 62500,700000, 620113, 62500,500000, 1000000,1
000000, 0,...
{20} 83984,326172,200195, 405273,128906,589844, 1000000,1
000000,181641,...
{30} 245117,416016,266602, 632813,207031,625977, 862305,
173828,661133,...
{40} 515625, 0,704102, 447266, 0,169922, 706055,
0,714844,...
{50} 870117,586914,715820, 333008,360352,272461, 856445,
0,192383,...
{60} 648438,586914,757813, 266602,360352,165039, 670898,
0,132813,...
{70} 376953, 0, 39062, 555664, 0,578125, 796875, 144
531,623047,...
{80} 172852,660156, 0, 699219, 6836,692383, 407227,
0,778320,...
{90} 233398,219727,583984, 533203,250000,355469, 633789,
639648,601563,...
{100} 137695,357422,362305, 491211,250000,571289, 832031,
417969,463867)
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_instr)
$knob_eq_instr := ($sound_instr+10)*10
declare $index_1_instr
declare $index_2_instr
{*** END SOUND KNOB FUNCIONALITY}
set_control_par_str(get_ui_id($solo_instr),$CONTROL_PAR_AUTOMATI
ON_NAME,"Solo")
set_control_par_str(get_ui_id($noise_instr),$CONTROL_PAR_AUTOMAT
ION_NAME,"Key Noise")
set_control_par_str(get_ui_id($release_instr),$CONTROL_PAR_AUTOM
ATION_NAME,"Rel Vol")
set_control_par_str(get_ui_id($sound_instr),$CONTROL_PAR_AUTOMAT
ION_NAME,"Sound")
set_control_par_str(get_ui_id($noise_instr),$CONTROL_PAR_LABEL,g
et_engine_par_disp($ENGINE_PAR_VOLUME, $keys_grp_idx, -1, -1) & " dB")
set_control_par_str(get_ui_id($release_instr),$CONTROL_PAR_LABEL
,get_engine_par_disp($ENGINE_PAR_VOLUME, $rel_grp_idx, -1, -1) & " dB")
set_control_par_str(get_ui_id($sound_instr),$CONTROL_PAR_LABEL,$
sound_instr & " %")
{*** END CONTROL GROUP "INSTR"}
{*** CONTROL GROUP "PERF"}
declare const $REAL_TONAL := 0
{If note is not in scale (Tonal Mode):
$MAPPING_STYLE = 0 -> Play only original Note
$MAPPING_STYLE = 1 -> Play nothing
$MAPPING_STYLE = 2 -> Play next higher chord
$MAPPING_STYLE = 3 -> Play next lower chord}
declare const $MAPPING_STYLE := 2
declare $id
declare !scale_names[24]
!scale_names[0] := "Off"
!scale_names[1] := "Major"
!scale_names[2] := "Minor"
!scale_names[3] := "Harmonic Minor"
!scale_names[4] := "Melodic Minor"
!scale_names[5] := "Dorian"
!scale_names[6] := "Phrygian"
!scale_names[7] := "Lydian"
!scale_names[8] := "Mixolydian"
!scale_names[9] := "Locrian"
!scale_names[10] := "Whole-Tone"
!scale_names[11] := "Diminished"
!scale_names[12] := "Octatonic"
!scale_names[13] := "Pentatonic Major"
!scale_names[14] := "Pentatonic Minor"
!scale_names[15] := "Blues"
!scale_names[16] := "Messiaen III"
!scale_names[17] := "Messiaen IV"
!scale_names[18] := "Messiaen V"
!scale_names[19] := "Messiaen VI"
!scale_names[20] := "Messiaen VII"
!scale_names[21] := "Lydian b7"
!scale_names[22] := "Locrian #9"
!scale_names[23] := "Major-Minor"
{0 = in scale, 1 = not in scale (based on C)}
declare %scale_types[24*12] := (...
0,0,0,0,0,0,0,0,0,0,0,0, {Chromatic }...
0,1,0,1,0,0,1,0,1,0,1,0, {Major }...
0,1,0,0,1,0,1,0,0,1,0,1, {Natural Minor}...
0,1,0,0,1,0,1,0,0,1,1,0, {Harmonic Minor}...
0,1,0,0,1,0,1,0,1,0,1,0, {Melodic Minor}...
0,1,0,0,1,0,1,0,1,0,0,1, {Dorian }...
0,0,1,0,1,0,1,0,0,1,0,1, {Phrygian }...
0,1,0,1,0,1,0,0,1,0,1,0, {Lydian }...
0,1,0,1,0,0,1,0,1,0,0,1, {Mixolydian }...
0,0,1,0,1,0,0,1,0,1,0,1, {Locrian }...
0,1,0,1,0,1,0,1,0,1,0,1, {Whole-Tone }...
0,0,1,0,0,1,0,0,1,0,0,1, {Diminished }...
0,1,0,0,1,0,0,1,0,0,1,0, {Octatonic }...
0,1,0,1,0,1,1,0,1,0,1,1, {Pentatonic Maj}...
0,1,1,0,1,0,1,0,1,1,0,1, {Pentatonic Min}...
0,1,1,0,1,0,0,0,1,1,0,1, {Pentatonic Blues}...
0,1,0,0,0,1,0,0,0,1,0,0, {Messiaen III}...
0,0,0,1,1,0,0,0,0,1,1,0, {Messiaen IV}...
0,0,1,1,1,0,0,0,1,1,1,0, {Messiaen V}...
0,1,0,1,0,0,0,1,0,1,0,0, {Messiaen VI}...
0,0,0,0,1,0,0,0,0,0,1,0, {Messiaen VII}...
0,1,0,1,0,1,0,0,1,0,0,1, {Lydian b7}...
0,1,0,0,1,0,0,1,0,1,0,1, {Locrian #9}...
0,1,0,1,0,0,1,0,0,1,0,1) {Major-Minor}
declare !harmo_names[10]
!harmo_names[0] := "Octave"
!harmo_names[1] := "Third"
!harmo_names[2] := "Fifth"
!harmo_names[3] := "1-3-5"
!harmo_names[4] := "1-3-6"
!harmo_names[5] := "1-4-6"
!harmo_names[6] := "1-4-5"
!harmo_names[7] := "1-4-7"
!harmo_names[8] := "1-5-8"
declare %tonal_chord_types[10*4] := (0,0,0,0, 8,0,0,0, 3,0,0,0,
5,0,0,0, 3,5,0,0, 3,6,0,0, 4,6,0,0, 4,5,0,0, 4,7,0,0, 5,8,0,0)
declare $absolute := 0
make_persistent($absolute)
declare $a
declare $b
declare $c
declare %tone_note_arr[4]
make_persistent(%tone_note_arr)
declare %cur_scale[12]
make_persistent(%cur_scale)
declare $note_helper
declare $velo_helper
{POSITIONING OF CONTROL GROUP}
declare $x_grid_perf := 1 {X Position of Control Group in grid}
declare $y_grid_perf := 7 {Y Position of Control Group in grid}
declare $x_px_perf := 0 {X Position Offset Control Group in pixe
l}
declare $y_px_perf := 0 {Y Position Offset Control Group in pixe
l}
{DECLARATION AND UI_IDs}
declare const $NUM_perf := 10 {number of elements in this contro
l group}
declare ui_label $backgr_perf (1,1)
declare ui_label $title_perf (1,1)
declare ui_label $lb_chordonoff_perf (1,1)
declare ui_label $lb_chord_perf (1,1)
declare ui_label $lb_key_perf (1,1)
declare ui_label $lb_scale_perf (1,1)
declare ui_slider $chord_perf (0, 8)
declare ui_slider $key_perf (0, 11)
declare ui_slider $scale_perf (0, 23)
declare ui_switch $chordonoff_perf
declare %perf_id[$NUM_perf]
%perf_id[0] := get_ui_id($backgr_perf)
%perf_id[1] := get_ui_id($title_perf)
%perf_id[2] := get_ui_id($lb_chordonoff_perf)
%perf_id[3] := get_ui_id($lb_chord_perf)
%perf_id[4] := get_ui_id($lb_key_perf)
%perf_id[5] := get_ui_id($lb_scale_perf)
%perf_id[6] := get_ui_id($chord_perf)
%perf_id[7] := get_ui_id($key_perf)
%perf_id[8] := get_ui_id($scale_perf)
%perf_id[9] := get_ui_id($chordonoff_perf)
{POSITIONING OF INDIVIDUAL CONTROLS}
move_control_px($backgr_perf,($GRID_X * 1) + 51, ($GRID_Y * 1) +
12) {possible to offset control in pixels}
move_control_px($title_perf, ($GRID_X * 1) + 0, ($GRID_Y * 1) +
0)
move_control_px($lb_chordonoff_perf, ($GRID_X * 1) - 49, ($GRID_
Y * 2) + 9)
move_control_px($lb_chord_perf, ($GRID_X * 1) + 16, ($GRID_Y * 2
) + 9)
move_control_px($lb_key_perf, ($GRID_X * 1) + 87, ($GRID_Y * 2)
+ 9)
move_control_px($lb_scale_perf, ($GRID_X * 2) + 66, ($GRID_Y * 2
) + 9)
move_control_px($chord_perf, ($GRID_X * 1) + 44, ($GRID_Y * 3) +
5)
move_control_px($key_perf, ($GRID_X * 2) + 23, ($GRID_Y * 3) + 5
)
move_control_px($scale_perf, ($GRID_X * 3) + 2, ($GRID_Y * 3) +
5)
move_control_px($chordonoff_perf, ($GRID_X * 1) - 16, ($GRID_Y *
3) + 3)
{VARIOUS ATTRIBUTES}
make_persistent($chord_perf)
make_persistent($scale_perf)
make_persistent($key_perf)
make_persistent($chordonoff_perf)
set_control_par_str(%perf_id[0], $CONTROL_PAR_TEXT, "")
set_control_par_str(%perf_id[1], $CONTROL_PAR_TEXT, "")
set_control_par_str(%perf_id[2], $CONTROL_PAR_TEXT, "HARMONIZE")
set_control_par_str(%perf_id[3], $CONTROL_PAR_TEXT, "CHORD")
set_control_par_str(%perf_id[4], $CONTROL_PAR_TEXT, "KEY")
set_control_par_str(%perf_id[5], $CONTROL_PAR_TEXT, "SCALE")
$count := 1
while ($count < 6)
set_control_par(%perf_id[$count], $CONTROL_PAR_WIDTH, ($
GRID_X * 1))
set_control_par(%perf_id[$count], $CONTROL_PAR_HEIGHT, (
$GRID_Y * 1))
set_control_par(%perf_id[$count], $CONTROL_PAR_HIDE, $HI
DE_PART_BG)
set_control_par(%perf_id[$count], $CONTROL_PAR_TEXT_ALIG
NMENT, 1)
set_control_par(%perf_id[$count], $CONTROL_PAR_FONT_TYPE
, $FONT_ID)
inc($count)
end while
set_control_par_str(%perf_id[0], $CONTROL_PAR_PICTURE, "pv_band_
inst_perf_headline_animation")
set_control_par(%perf_id[0], $CONTROL_PAR_PICTURE_STATE, 0)
$count := 6
while ($count < 9)
set_control_par_str(%perf_id[$count], $CONTROL_PAR_PICTU
RE, "pv_band_knob_small")
set_control_par(%perf_id[$count], $CONTROL_PAR_MOUSE_BEH
AVIOUR, -500)
inc($count)
end while
set_control_par_str(%perf_id[9], $CONTROL_PAR_PICTURE, "pv_band_
switch_on_off")
set_control_par(%perf_id[9], $CONTROL_PAR_WIDTH, 23)
set_control_par(%perf_id[9], $CONTROL_PAR_HEIGHT, 45)
set_control_par_str(%perf_id[9], $CONTROL_PAR_TEXT, "")
{Other}
$count := 0
while ($count < $NUM_perf)
set_control_par (%perf_id[$count],$CONTROL_PAR_POS_X,get
_control_par(%perf_id[$count],$CONTROL_PAR_POS_X)...
+$ROOT_X + ($x_grid_perf - 2)*$GRID_X + $x_px_perf)
set_control_par (%perf_id[$count],$CONTROL_PAR_POS_Y,get
_control_par(%perf_id[$count],$CONTROL_PAR_POS_Y)...
+$ROOT_Y + ($y_grid_perf - 2)*$GRID_Y + $y_px_perf)
inc($count)
end while
{Automation}
read_persistent_var($chord_perf)
read_persistent_var($key_perf)
read_persistent_var($scale_perf)
set_control_par_str(get_ui_id($chordonoff_perf),$CONTROL_PAR_AUT
OMATION_NAME,"Harmonize")
set_control_par_str(get_ui_id($chord_perf),$CONTROL_PAR_AUTOMATI
ON_NAME,"Chord")
set_control_par_str(get_ui_id($key_perf),$CONTROL_PAR_AUTOMATION
_NAME,"Key")
set_control_par_str(get_ui_id($scale_perf),$CONTROL_PAR_AUTOMATI
ON_NAME,"Scale")
set_control_par_str(get_ui_id($chord_perf),$CONTROL_PAR_LABEL,!h
armo_names[$chord_perf])
set_control_par_str(get_ui_id($key_perf),$CONTROL_PAR_LABEL,!not
e_names[$key_perf])
set_control_par_str(get_ui_id($scale_perf),$CONTROL_PAR_LABEL,!s
cale_names[$scale_perf])
{*** END CONTROL GROUP "PERF"}
{*** CONTROL GROUP "BANDFX"}
{POSITIONING OF CONTROL GROUP}
declare $x_grid_bandfx := 3 {X Position of Control Group in grid
}
declare $y_grid_bandfx := 7 {Y Position of Control Group in grid
}
declare $x_px_bandfx := 0 {X Position Offset Control Group in pi
xel}
declare $y_px_bandfx := 0 {Y Position Offset Control Group in pi
xel}
{DECLARATION AND UI_IDs}
declare const $num_ir_samples := 10 {the number of ir samples us
ed in this instrument group}
declare const $NUM_BANDFX := 42 {number of elements in this cont
rol group}
declare ui_label $backgr_bandfx (1,1)
declare ui_label $title_bandfx (1,1)
declare ui_label $lb_rev_bandfx (1,1)
declare ui_label $lb_cab_bandfx(1,1)
declare ui_label $lb_eq_bandfx(1,1)
declare ui_label $lb_rev_onoff_bandfx (1,1)
declare ui_label $lb_rev_room_bandfx (1,1)
declare ui_label $lb_rev_mix_bandfx (1,1)
declare ui_label $image_reverb (1,1)
declare ui_label $lb_cab_onoff_bandfx (1,1)
declare ui_label $lb_cab_type_bandfx (1,1)
declare ui_label $lb_cab_air_bandfx (1,1)
declare ui_label $lb_eq_onoff_bandfx (1,1)
declare ui_label $lb_eq_lo_bandfx (1,1)
declare ui_label $lb_eq_mid_bandfx (1,1)
declare ui_label $lb_eq_hi_bandfx (1,1)
declare ui_label $cab_image_bandfx (1,1)
declare ui_slider $rev_amount_bandfx (0, 1000000)
declare ui_slider $cab_air_bandfx (0, 1000000)
declare ui_slider $eq_lo_bandfx (166666, 833333)
declare ui_slider $eq_mid_bandfx (166666, 833333)
declare ui_slider $eq_hi_bandfx (166666, 833333)
declare ui_button $rev_bandfx
declare ui_button $cab_bandfx
declare ui_button $eq_bandfx
declare ui_switch $rev_onoff_bandfx
declare ui_switch $cab_onoff_bandfx
declare ui_switch $eq_onoff_bandfx
declare ui_menu $cab_type_bandfx
declare ui_menu $category_reverb
declare ui_label $eq_background_bandfx (1,1)
declare ui_label $masterfx_bg_bandfx (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)
{Skin the subcategory menus}
$count := 0
while($count < 9)
set_control_par_str(%subcat_menu_id[$count],$CONTROL_PAR
_PICTURE,"pv_band_master_fx_rev_dropdown_1")
set_control_par(%subcat_menu_id[$count], $CONTROL_PAR_PO
S_X, ($GRID_X * 2) + 84)
set_control_par(%subcat_menu_id[$count], $CONTROL_PAR_PO
S_Y, ($GRID_Y * 5) + 2)
set_control_par(%subcat_menu_id[$count], $CONTROL_PAR_FO
NT_TYPE, $FONT_ID_2)
inc($count)
end while
set_control_par_str(get_ui_id($image_reverb),$CONTROL_PAR_PICTUR
E,"pv_band_reverb_animation")
{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)
declare !ir_path[68]
!ir_path[0] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 IR
Samples/Concert Hall A.wav"
!ir_path[1] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 IR
Samples/Concert Hall B.wav"
!ir_path[2] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 IR
Samples/Exhibition Hall.wav"
!ir_path[3] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 IR
Samples/Cathedral A.wav"
!ir_path[4] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 IR
Samples/Cathedral B.wav"
!ir_path[5] := "presets/effects/convolution/10 Big Rooms/IR Samp
les/ndb_cathedral_ir_32bit.wav"
!ir_path[6] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 IR
Samples/Club A.wav"
!ir_path[7] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 IR
Samples/Club B.wav"
!ir_path[8] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 IR
Samples/Tavern Close.wav"
!ir_path[9] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 IR
Samples/Tavern Near.wav"
!ir_path[10] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Tavern Medium.wav"
!ir_path[11] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Tavern Far.wav"
!ir_path[12] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Auditorium A.wav"
!ir_path[13] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Auditorium B.wav"
!ir_path[14] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Chamber A.wav"
!ir_path[15] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Chamber B.wav"
!ir_path[16] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Rehearsal Room.wav"
!ir_path[17] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Hard Wood Room B.wav"
!ir_path[18] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Music Studio C.wav"
!ir_path[19] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Small Room A.wav"
!ir_path[20] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Small Room B.wav"
!ir_path[21] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Large Hall.wav"
!ir_path[22] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Gated Hall.wav"
!ir_path[23] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Large Room.wav"
!ir_path[24] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Large Chamber.wav"
!ir_path[25] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Studio C.wav"
!ir_path[26] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Contem-Plate.wav"
!ir_path[27] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Space & Echoes.wav"
!ir_path[28] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Medium Stop.wav"
!ir_path[29] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Drum Cave.wav"
!ir_path[30] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Large Ambience.wav"
!ir_path[31] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Smooth Ambience.wav"
!ir_path[32] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Ambience Wave.wav"
!ir_path[33] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/L300 Le Gate.wav"
!ir_path[34] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Quadstick Small - Basic.wav"
!ir_path[35] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Quadstick Small - Disco.wav"
!ir_path[36] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Quadstick Small - Funk.wav"
!ir_path[37] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Quadstick Small - Funky Club.wav"
!ir_path[38] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Quadstick Small - Hip Hop.wav"
!ir_path[39] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Quadstick Small - Reggae Modern.wav"
!ir_path[40] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Quadstick Small - RnB Neptunes.wav"
!ir_path[41] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/Quadstick Small - RnB Today 1.wav"
!ir_path[42] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/BRT 7 Ambience Large A.wav"
!ir_path[43] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/BRT 7 Ambience Small.wav"
!ir_path[44] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/BRT 7 Chamber Small.wav"
!ir_path[45] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/BRT 7 Chamber Vocal.wav"
!ir_path[46] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/BRT 7 Hall Dense.wav"
!ir_path[47] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/BRT 7 Location Chapel A.wav"
!ir_path[48] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/BRT 7 Plate Snare.wav"
!ir_path[49] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/BRT 7 Room Drum.wav"
!ir_path[50] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/BRT 7 Room Wood.wav"
!ir_path[51] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/BRT 7 Location Cineastic Room.wav"
!ir_path[52] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/E245 0.5s A.wav"
!ir_path[53] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/E245 1.0s A.wav"
!ir_path[54] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/E245 1.4s A.wav"
!ir_path[55] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/E245 2.1s A.wav"
!ir_path[56] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/E245 4.5s A.wav"
!ir_path[57] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/E252 0.6s.wav"
!ir_path[58] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/E252 1.0s.wav"
!ir_path[59] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/E252 1.8s.wav"
!ir_path[60] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/E252 3.0s.wav"
!ir_path[61] := "presets/effects/convolution/<<<K4IR.nkx>>>/K4 I
R Samples/E252 4.5s.wav"
!ir_path[62] := "presets/effects/convolution/17 Cabinets/Brit 21
2/IR Samples/Brit_212_Tube_Center.wav"
!ir_path[63] := "presets/effects/convolution/17 Cabinets/Tweed 1
12/IR Samples/Tweed_112_Tube_Center.wav"
!ir_path[64] := "presets/effects/convolution/17 Cabinets/Tweed 2
12/IR Samples/Tweed_212_Tube_Center.wav"
!ir_path[65] := "presets/effects/convolution/17 Cabinets/Tweed 4
10/IR Samples/Tweed_410_Tube_Center.wav"
!ir_path[66] := "presets/effects/convolution/17 Cabinets/Rock 41
2/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] := "HALL A"
!ir_type[1] := "HALL B"
!ir_type[2] := "EXHIBITION HALL"
!ir_type[3] := "CATHEDRAL A"
!ir_type[4] := "CATHEDRAL B"
!ir_type[5] := "NDB"
!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] := "LRG CHAMBER"
!ir_type[25] := "STUDIO C"
!ir_type[26] := "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 MOD"
!ir_type[40] := "RNB NEPTUNES"
!ir_type[41] := "RNB TODAY"
!ir_type[42] := "LARGE AMBI"
!ir_type[43] := "SMALL AMBI"
!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"
$count := 0
while ($count < 68)
if ($count < 3)
add_menu_item($hall_reverb,!ir_type[$count],$cou
nt)
else
if ($count < 6)
add_menu_item($cathedral_reverb,!ir_type
[$count],$count)
else
if ($count < 14)
add_menu_item($club_reverb,!ir_t
ype[$count],$count)
else
if ($count < 21)
add_menu_item($room_reve
rb,!ir_type[$count],$count)
else
if ($count < 34)
add_menu_item($l300_reve
rb,!ir_type[$count],$count)
else
if($count < 42)
add_menu
_item($quadstick_reverb,!ir_type[$count],$count)
else
if ($cou
nt < 52)
add_menu_item($brt7_reverb,!ir_type[$count],$count)
else
if ($count < 62)
add_menu_item($plate_reverb,!ir_type[$count],$count)
else
add_menu_item($cabinet_reverb,!ir_type[$count],$count)
end if
end if
end if
end if
end if
end if
end if
end if
inc ($count)
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)
$count := 0
while ($count < 9)
if ($count = $category_reverb)
set_control_par(%subcat_menu_id[$count],$CONTROL
_PAR_HIDE,$HIDE_PART_NOTHING)
else
set_control_par(%subcat_menu_id[$count],$CONTROL
_PAR_HIDE,$HIDE_WHOLE_CONTROL)
end if
inc ($count)
end while
set_control_par(get_ui_id($image_reverb),$CONTROL_PAR_PICTURE_ST
ATE,$category_reverb)
{/reverb functionality}
declare %bandfx_id[$NUM_BANDFX]
%bandfx_id[0] := get_ui_id($backgr_bandfx)
%bandfx_id[1] := get_ui_id($title_bandfx)
%bandfx_id[2] := get_ui_id($lb_rev_bandfx)
%bandfx_id[3] := get_ui_id($lb_cab_bandfx)
%bandfx_id[4] := get_ui_id($lb_eq_bandfx)
%bandfx_id[5] := get_ui_id($lb_rev_onoff_bandfx)
%bandfx_id[6] := get_ui_id($lb_rev_room_bandfx)
%bandfx_id[7] := get_ui_id($lb_rev_mix_bandfx)
%bandfx_id[8] := get_ui_id($image_reverb)
%bandfx_id[9] := get_ui_id($lb_cab_onoff_bandfx)
%bandfx_id[10] := get_ui_id($lb_cab_type_bandfx)
%bandfx_id[11] := get_ui_id($lb_cab_air_bandfx)
%bandfx_id[12] := get_ui_id($cab_image_bandfx)
%bandfx_id[13] := get_ui_id($lb_eq_onoff_bandfx)
%bandfx_id[14] := get_ui_id($lb_eq_lo_bandfx)
%bandfx_id[15] := get_ui_id($lb_eq_mid_bandfx)
%bandfx_id[16] := get_ui_id($lb_eq_hi_bandfx)
%bandfx_id[17] := get_ui_id($rev_amount_bandfx)
%bandfx_id[18] := get_ui_id($cab_air_bandfx)
%bandfx_id[19] := get_ui_id($eq_lo_bandfx)
%bandfx_id[20] := get_ui_id($eq_mid_bandfx)
%bandfx_id[21] := get_ui_id($eq_hi_bandfx)
%bandfx_id[22] := get_ui_id($rev_bandfx)
%bandfx_id[23] := get_ui_id($cab_bandfx)
%bandfx_id[24] := get_ui_id($eq_bandfx)
%bandfx_id[25] := get_ui_id($rev_onoff_bandfx)
%bandfx_id[26] := get_ui_id($cab_onoff_bandfx)
%bandfx_id[27] := get_ui_id($eq_onoff_bandfx)
%bandfx_id[29] := get_ui_id($cab_type_bandfx)
%bandfx_id[30] := get_ui_id($category_reverb)
%bandfx_id[31] := get_ui_id($eq_background_bandfx)
%bandfx_id[32] := get_ui_id($masterfx_bg_bandfx)
%bandfx_id[33] := get_ui_id($hall_reverb)
%bandfx_id[34] := get_ui_id($cathedral_reverb)
%bandfx_id[35] := get_ui_id($club_reverb)
%bandfx_id[36] := get_ui_id($room_reverb)
%bandfx_id[37] := get_ui_id($l300_reverb)
%bandfx_id[38] := get_ui_id($quadstick_reverb)
%bandfx_id[39] := get_ui_id($brt7_reverb)
%bandfx_id[40] := get_ui_id($plate_reverb)
%bandfx_id[41] := get_ui_id($cabinet_reverb)
{POSITIONING OF INDIVIDUAL CONTROLS}
move_control_px($backgr_bandfx,($GRID_X * 1) + 77, ($GRID_Y * 1)
+ 16) {possible to offset control in pixels}
move_control_px($title_bandfx, ($GRID_X * 1) + 0, ($GRID_Y * 1)
+ 0)
move_control_px($lb_rev_bandfx, ($GRID_X * 1) + 0, ($GRID_Y * 2)
+ 0)
move_control_px($lb_cab_bandfx, ($GRID_X * 1) + 46, ($GRID_Y * 2
) + 0)
move_control_px($lb_eq_bandfx, ($GRID_X * 2) + 0, ($GRID_Y * 2)
+ 0)
move_control_px($lb_rev_onoff_bandfx, ($GRID_X * 2) + 46, ($GRID
_Y * 2) + 0)
move_control_px($lb_rev_room_bandfx, ($GRID_X * 3) + 46, ($GRID_
Y * 2) + 0)
move_control_px($lb_rev_mix_bandfx, ($GRID_X * 3) + 85, ($GRID_Y
* 2) + 9)
move_control_px($image_reverb, ($GRID_X * 2) + 86, ($GRID_Y * 2)
+ 20)
move_control_px($lb_cab_onoff_bandfx, ($GRID_X * 2) + 46, ($GRID
_Y * 2) + 0)
move_control_px($lb_cab_type_bandfx, ($GRID_X * 2) + 46, ($GRID_
Y * 4) + 0)
move_control_px($lb_cab_air_bandfx, ($GRID_X * 3) + 85, ($GRID_Y
* 2) + 9)
move_control_px($cab_image_bandfx, ($GRID_X * 2) + 89, ($GRID_Y
* 2) + 12)
move_control_px($lb_eq_onoff_bandfx, ($GRID_X * 2) + 46, ($GRID_
Y * 2) + 0)
move_control_px($lb_eq_lo_bandfx, ($GRID_X * 2) + 87, ($GRID_Y *
5) + 0)
move_control_px($lb_eq_mid_bandfx, ($GRID_X * 3) + 41, ($GRID_Y
* 5) + 0)
move_control_px($lb_eq_hi_bandfx, ($GRID_X * 3) + 86, ($GRID_Y *
5) + 0)
move_control_px($rev_amount_bandfx, ($GRID_X * 4) + 21, ($GRID_Y
* 3) + 5)
move_control_px($cab_air_bandfx, ($GRID_X * 4) + 21, ($GRID_Y *
3) + 5)
move_control_px($eq_lo_bandfx, ($GRID_X * 3) + 35, ($GRID_Y * 2)
+ 12)
move_control_px($eq_mid_bandfx, ($GRID_X * 3) + 80, ($GRID_Y * 2
) + 12)
move_control_px($eq_hi_bandfx, ($GRID_X * 4) + 33, ($GRID_Y * 2)
+ 12)
move_control_px($rev_bandfx, ($GRID_X * 2) + 7, ($GRID_Y * 1) +
16)
move_control_px($cab_bandfx, ($GRID_X * 2) + 7, ($GRID_Y * 3) +
5)
move_control_px($eq_bandfx, ($GRID_X * 2) + 7, ($GRID_Y * 4) + 1
6)
move_control_px($rev_onoff_bandfx, ($GRID_X * 1) + 79, ($GRID_Y
* 1) + 18)
move_control_px($cab_onoff_bandfx, ($GRID_X * 1) + 79, ($GRID_Y
* 3) + 8)
move_control_px($eq_onoff_bandfx, ($GRID_X * 1) + 79, ($GRID_Y *
4) + 20)
move_control_px($cab_type_bandfx, ($GRID_X * 2) + 84, ($GRID_Y *
5) + 2)
move_control_px($category_reverb, ($GRID_X * 2) + 84, ($GRID_Y *
2) + 6)
move_control_px($eq_background_bandfx, ($GRID_X * 2) + 79, ($GRI
D_Y * 2) + 2)
move_control_px($masterfx_bg_bandfx, ($GRID_X * 2) + 85, ($GRID_
Y * 2) + 6)
{VARIOUS ATTRIBUTES}
set_control_par(%bandfx_id[19], $CONTROL_PAR_DEFAULT_VALUE, 5000
00)
set_control_par(%bandfx_id[20], $CONTROL_PAR_DEFAULT_VALUE, 5000
00)
set_control_par(%bandfx_id[21], $CONTROL_PAR_DEFAULT_VALUE, 5000
00)
$rev_amount_bandfx := _get_engine_par ($ENGINE_PAR_SENDLEVEL_0,
-1, 7, 1)
$cab_air_bandfx := _get_engine_par ($ENGINE_PAR_CB_AIR, -1, $cab
_slot, 1)
$eq_lo_bandfx := _get_engine_par($ENGINE_PAR_GAIN1, -1, $meq_slo
t, 1)
$eq_mid_bandfx := _get_engine_par($ENGINE_PAR_GAIN2, -1, $meq_sl
ot, 1)
$eq_hi_bandfx := _get_engine_par($ENGINE_PAR_GAIN3, -1, $meq_slo
t, 1)
$rev_onoff_bandfx := (_get_engine_par($ENGINE_PAR_SEND_EFFECT_BY
PASS, -1, $reverb_slot, 0) + 1) mod 2
$cab_onoff_bandfx := (_get_engine_par($ENGINE_PAR_SEND_EFFECT_BY
PASS, -1, $cab_slot, 1) + 1) mod 2
$eq_onoff_bandfx := (_get_engine_par($ENGINE_PAR_SEND_EFFECT_BYP
ASS, -1, $meq_slot, 1) + 1) mod 2
make_persistent($cab_type_bandfx)
set_control_par_str(%bandfx_id[0], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[1], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[2], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[3], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[4], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[5], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[6], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[7], $CONTROL_PAR_TEXT, "AMOUNT")
set_control_par_str(%bandfx_id[8], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[9], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[10], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[11], $CONTROL_PAR_TEXT, "AIR")
set_control_par_str(%bandfx_id[12], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[13], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[14], $CONTROL_PAR_TEXT, "BASS")
set_control_par_str(%bandfx_id[15], $CONTROL_PAR_TEXT, "MID")
set_control_par_str(%bandfx_id[16], $CONTROL_PAR_TEXT, "TREBLE")
set_control_par_str(%bandfx_id[31], $CONTROL_PAR_TEXT, "")
set_control_par_str(%bandfx_id[32], $CONTROL_PAR_TEXT, "")
add_menu_item ($cab_type_bandfx,"TWEED GREEN",0)
add_menu_item ($cab_type_bandfx,"BRIT 60s",1)
add_menu_item ($cab_type_bandfx,"CHIEF V-30",2)
add_menu_item ($cab_type_bandfx,"CHIEF Back",3)
add_menu_item ($cab_type_bandfx,"TWEED ALNICO",4)
add_menu_item ($cab_type_bandfx,"TWEED FAR",5)
add_menu_item ($cab_type_bandfx,"UK 70s",6)
add_menu_item ($cab_type_bandfx,"UK 70s FAR",7)
add_menu_item ($cab_type_bandfx,"BASS-WR",8)
add_menu_item ($cab_type_bandfx,"BASS-WR HORN",9)
add_menu_item ($cab_type_bandfx,"LESLIE",10)
$count := 1
while ($count < 17)
set_control_par(%bandfx_id[$count], $CONTROL_PAR_WIDTH,
($GRID_X * 1))
set_control_par(%bandfx_id[$count], $CONTROL_PAR_HEIGHT,
($GRID_Y * 1))
set_control_par(%bandfx_id[$count], $CONTROL_PAR_HIDE, $
HIDE_PART_BG)
set_control_par(%bandfx_id[$count], $CONTROL_PAR_TEXT_AL
IGNMENT, 1)
set_control_par(%bandfx_id[$count], $CONTROL_PAR_FONT_TY
PE, $FONT_ID)
inc($count)
end while
set_control_par(%bandfx_id[8], $CONTROL_PAR_HIDE, $HIDE_PART_NOT
HING)
set_control_par_str(%bandfx_id[0], $CONTROL_PAR_PICTURE, "pv_ban
d_master_tab_animation")
set_control_par_str(%bandfx_id[31], $CONTROL_PAR_PICTURE, "pv_ba
nd_master_fx_eq_bg")
set_control_par_str(%bandfx_id[32], $CONTROL_PAR_PICTURE, "pv_ba
nd_master_fx_bg")
$count := 17
while ($count < 19)
set_control_par_str(%bandfx_id[$count], $CONTROL_PAR_PIC
TURE, "pv_band_knob_small")
set_control_par(%bandfx_id[$count], $CONTROL_PAR_MOUSE_B
EHAVIOUR, -500)
inc($count)
end while
$count := 19
while ($count < 22)
set_control_par_str(%bandfx_id[$count], $CONTROL_PAR_PIC
TURE, "pv_band_master_fx_eq_fader")
set_control_par(%bandfx_id[$count], $CONTROL_PAR_MOUSE_B
EHAVIOUR, -1000)
inc($count)
end while
set_control_par(%bandfx_id[22], $CONTROL_PAR_VALUE, 1)
$count := 22
while ($count < 25)
set_control_par_str(%bandfx_id[$count], $CONTROL_PAR_PIC
TURE, "pv_vintage_drums_btn_trans")
set_control_par(%bandfx_id[$count], $CONTROL_PAR_WIDTH,
51)
set_control_par(%bandfx_id[$count], $CONTROL_PAR_HEIGHT,
31)
set_control_par_str(%bandfx_id[$count], $CONTROL_PAR_TEX
T, "")
inc($count)
end while
$count := 25
while ($count < 28)
set_control_par_str(%bandfx_id[$count], $CONTROL_PAR_PIC
TURE, "pv_synth_button_small")
set_control_par(%bandfx_id[$count], $CONTROL_PAR_WIDTH,
23)
set_control_par(%bandfx_id[$count], $CONTROL_PAR_HEIGHT,
23)
set_control_par_str(%bandfx_id[$count], $CONTROL_PAR_TEX
T, "")
inc($count)
end while
set_control_par_str(%bandfx_id[29], $CONTROL_PAR_PICTURE, "pv_ba
nd_master_fx_rev_dropdown_1")
set_control_par_str(%bandfx_id[30], $CONTROL_PAR_PICTURE, "pv_ba
nd_master_fx_rev_dropdown_2")
set_control_par(%bandfx_id[29], $CONTROL_PAR_FONT_TYPE, $FONT_ID
_2)
set_control_par(%bandfx_id[30], $CONTROL_PAR_FONT_TYPE, $FONT_ID
_2)
_read_persistent_var($cab_type_bandfx)
set_control_par_str(%bandfx_id[12], $CONTROL_PAR_PICTURE, "pv_gl
obal_cabinets")
set_control_par(%bandfx_id[12], $CONTROL_PAR_PICTURE_STATE, $cab
_type_bandfx)
{Hide the Cabinet Elements}
$count := 9
while ($count < 13)
set_control_par(%bandfx_id[$count], $CONTROL_PAR_HIDE, $
HIDE_WHOLE_CONTROL)
inc($count)
end while
set_control_par(%bandfx_id[18], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[29], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
{Hide the EQ Elements}
$count := 13
while ($count < 17)
set_control_par(%bandfx_id[$count], $CONTROL_PAR_HIDE, $
HIDE_WHOLE_CONTROL)
inc($count)
end while
set_control_par(%bandfx_id[19], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[20], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[21], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[31], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
{Other}
$count := 0
while ($count < $NUM_bandfx)
if ($count # 28)
set_control_par (%bandfx_id[$count],$CONTROL_PAR_POS_X,g
et_control_par(%bandfx_id[$count],$CONTROL_PAR_POS_X)...
+$ROOT_X + ($x_grid_bandfx - 2)*$GRID_X + $x_px_bandfx)
set_control_par (%bandfx_id[$count],$CONTROL_PAR_POS_Y,g
et_control_par(%bandfx_id[$count],$CONTROL_PAR_POS_Y)...
+$ROOT_Y + ($y_grid_bandfx - 2)*$GRID_Y + $y_px_bandfx)
end if
inc($count)
end while
{Automation}
set_control_par_str(get_ui_id($rev_onoff_bandfx),$CONTROL_PAR_AU
TOMATION_NAME,"Reverb")
set_control_par_str(get_ui_id($cab_onoff_bandfx),$CONTROL_PAR_AU
TOMATION_NAME,"Cabinet")
set_control_par_str(get_ui_id($eq_onoff_bandfx),$CONTROL_PAR_AUT
OMATION_NAME,"EQ")
set_control_par_str(get_ui_id($rev_amount_bandfx),$CONTROL_PAR_A
UTOMATION_NAME,"Rv Amt")
set_control_par_str(get_ui_id($cab_air_bandfx),$CONTROL_PAR_AUTO
MATION_NAME,"Cb Air")
set_control_par_str(get_ui_id($eq_lo_bandfx),$CONTROL_PAR_AUTOMA
TION_NAME,"Lo EQ")
set_control_par_str(get_ui_id($eq_mid_bandfx),$CONTROL_PAR_AUTOM
ATION_NAME,"Mid EQ")
set_control_par_str(get_ui_id($eq_hi_bandfx),$CONTROL_PAR_AUTOMA
TION_NAME,"Hi EQ")
set_control_par_str(get_ui_id($rev_amount_bandfx),$CONTROL_PAR_L
ABEL,get_engine_par_disp($ENGINE_PAR_SENDLEVEL_0, -1, $sends_slot, 1) & " dB")
set_control_par_str(get_ui_id($cab_air_bandfx),$CONTROL_PAR_LABE
L,get_engine_par_disp($ENGINE_PAR_CB_AIR, -1, $cab_slot, 1) & " %")
set_control_par_str(get_ui_id($eq_lo_bandfx),$CONTROL_PAR_LABEL,
get_engine_par_disp($ENGINE_PAR_GAIN1, -1, $meq_slot, 1) & " dB")
set_control_par_str(get_ui_id($eq_mid_bandfx),$CONTROL_PAR_LABEL
,get_engine_par_disp($ENGINE_PAR_GAIN2, -1, $meq_slot, 1) & " dB")
set_control_par_str(get_ui_id($eq_hi_bandfx),$CONTROL_PAR_LABEL,
get_engine_par_disp($ENGINE_PAR_GAIN3, -1, $meq_slot, 1) & " dB")
{Control Help}
set_control_help($sound_instr,"Sound: Morphs through a variety o
f EQ settings.")
set_control_help($solo_instr,"Solo: Enables legato playback.")
set_control_help($release_instr,"Release: Sets the volume of the
release samples.")
set_control_help($noise_instr,"Key Noise: Sets the volume of the
keys.")
set_control_help($chordonoff_perf,"Harmonize: Turns chord mode o
n or off. The chord type can be selected using the <Chord> knob.")
set_control_help($key_perf,"Key: Chooses the root note of the sc
ale.")
set_control_help($scale_perf,"Scale: Chooses the type of scale o
r mode.")
set_control_help($chord_perf,"Chord: Chooses a chord preset. Wh
en <Scale> is set to <Off>, notes will be harmonized with fixed intervals. If <S
cale> is set to a specific scale, notes will be harmonized with scale degrees.")
set_control_help($rev_bandfx, "Reverb: Displays the controls for
the reverb effect.")
set_control_help($cab_bandfx, "Cabinet: Displays the controls fo
r the cabinet effect.")
set_control_help($eq_bandfx, "EQ: Displays the controls for the
master equalizer.")
set_control_help($rev_onoff_bandfx, "Reverb On/Off: Turns the re
verb effect on or off.")
set_control_help($cab_onoff_bandfx, "Cabinet On/Off: Turns the c
abinet effect on or off.")
set_control_help($eq_onoff_bandfx, "EQ On/Off: Turns the master
equalizer on or off.")
set_control_help($rev_amount_bandfx, "Reverb Amount: Sets the se
nd level of the reverb effect.")
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 p
erformance spaces.")
set_control_help($cathedral_reverb, "Cathedral: A mix of real an
d 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 performan
ce 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 fr
om the classic studio digital reverb.")
set_control_help($plate_reverb, "Plate: Impulse responses from c
lassic plate reverb effect units.")
set_control_help($quadstick_reverb, "Quadstick: Impulse response
s taken from the classic studio digital reverb.")
set_control_help($brt7_reverb, "BRT 7: Impulse responses taken f
rom the classic studio digital reverb.")
set_control_help($cabinet_reverb, "Cabinet: Impulse responses of
several cabinet types.")
set_control_help($cab_air_bandfx,"Air: Controls the volume of th
e early reflections in the room response, adding space to the sound.")
set_control_help($cab_type_bandfx,"Type: Selects the type of cab
inet that is simulated.")
set_control_help($eq_lo_bandfx, "Low EQ Gain: Controls the gain
of the master output's lower frequencies.")
set_control_help($eq_mid_bandfx, "Mid EQ Gain: Controls the gain
of the master output's mid frequencies.")
set_control_help($eq_hi_bandfx, "High EQ Gain: Controls the gain
of the master output's higher frequencies.")
{*** END CONTROL GROUP "BANDFX"}

if ($CREATE_AUTOMATION_ID = 1)

set_control_par(get_ui_id($solo_instr),$CONTROL_PAR_AUTOMATION_I
D,8)
set_control_par(get_ui_id($release_instr),$CONTROL_PAR_AUTOMATIO
N_ID,17)
set_control_par(get_ui_id($noise_instr),$CONTROL_PAR_AUTOMATION_
ID,18)
set_control_par(get_ui_id($sound_instr),$CONTROL_PAR_AUTOMATION_
ID,0)
set_control_par(get_ui_id($chordonoff_perf),$CONTROL_PAR_AUTOMAT
ION_ID,9)
set_control_par(get_ui_id($chord_perf),$CONTROL_PAR_AUTOMATION_I
D,1)
set_control_par(get_ui_id($key_perf),$CONTROL_PAR_AUTOMATION_ID,
2)
set_control_par(get_ui_id($scale_perf),$CONTROL_PAR_AUTOMATION_I
D,3)

set_control_par(get_ui_id($rev_onoff_bandfx),$CONTROL_PAR_AUTOMA
TION_ID,12)
set_control_par(get_ui_id($cab_onoff_bandfx),$CONTROL_PAR_AUTOMA
TION_ID,13)
set_control_par(get_ui_id($eq_onoff_bandfx),$CONTROL_PAR_AUTOMAT
ION_ID,14)
set_control_par(get_ui_id($rev_amount_bandfx),$CONTROL_PAR_AUTOM
ATION_ID,4)
set_control_par(get_ui_id($cab_air_bandfx),$CONTROL_PAR_AUTOMATI
ON_ID,5)
set_control_par(get_ui_id($eq_lo_bandfx),$CONTROL_PAR_AUTOMATION
_ID,6)
set_control_par(get_ui_id($eq_mid_bandfx),$CONTROL_PAR_AUTOMATIO
N_ID,16)
set_control_par(get_ui_id($eq_hi_bandfx),$CONTROL_PAR_AUTOMATION
_ID,7)
end if
end on
{*** CONTROL GROUP "INSTR" UI_CONTROL CALLBACKS}
on ui_control ($solo_instr)
_pgs_set_key_val(SOLO_MODE,0,$solo_instr)
end on
on ui_control ($noise_instr)
set_engine_par($ENGINE_PAR_VOLUME, $noise_instr, $keys_grp_idx, -1, -1)
set_control_par_str(get_ui_id($noise_instr),$CONTROL_PAR_LABEL,get_engin
e_par_disp($ENGINE_PAR_VOLUME, $keys_grp_idx, -1, -1) & " dB")
end on
on ui_control ($release_instr)
set_engine_par($ENGINE_PAR_VOLUME, $release_instr, $rel_grp_idx, -1, -1)
set_control_par_str(get_ui_id($release_instr),$CONTROL_PAR_LABEL,get_eng
ine_par_disp($ENGINE_PAR_VOLUME, $rel_grp_idx, -1, -1) & " dB")
end on
on ui_control ($sound_instr)
$index_1_instr := $sound_instr/10
$index_2_instr := $sound_instr/10 +1
$knob_eq_instr := $sound_instr*10
if ($index_2_instr > 10)
$index_2_instr := 10
end if
set_control_par_str(get_ui_id($sound_instr),$CONTROL_PAR_LABEL,$sound_in
str & " %")
$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_inst
r[($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
{*** END CONTROL GROUP "INSTR" UI_CONTROL CALLBACKS}
{*** CONTROL GROUP "PERF" UI_CONTROL CALLBACKS}
on ui_control ($chordonoff_perf)
_pgs_set_key_val(DET_TIME,0,$chordonoff_perf)
$a := 0
while($a < 4)
%tone_note_arr[$a] := %tonal_chord_types[((($chord_perf*$chordon
off_perf)+$chordonoff_perf)*4)+$a]
inc($a)
end while
if ($chord_perf < 3 or $scale_perf = 0 or $REAL_TONAL = 1)
$absolute := 1
else
$absolute := 0
end if
end on
on ui_control ($chord_perf)
$a := 0
while($a < 4)
%tone_note_arr[$a] := %tonal_chord_types[((($chord_perf*$chordon
off_perf)+$chordonoff_perf)*4)+$a]
inc($a)
end while
if ($chord_perf < 3 or $scale_perf = 0 or $REAL_TONAL = 1)
$absolute := 1
else
$absolute := 0
end if
set_text($lb_chord_perf, !harmo_names[$chord_perf])
set_control_par_str(get_ui_id($chord_perf),$CONTROL_PAR_LABEL,!harmo_nam
es[$chord_perf])
$last_time_1 := $ENGINE_UPTIME
wait($wait_time * 1000)
if($ENGINE_UPTIME - $last_time_1 > $wait_time -5)
set_text ($lb_chord_perf,"CHORD")
end if
end on
on ui_control ($key_perf)
$a := 0
while($a < 12)
%cur_scale[$a] := %scale_types[$scale_perf*12 + (($a + 12 - $key
_perf) mod 12)]
inc($a)
end while
set_text($lb_key_perf, !note_names[$key_perf])
set_control_par_str(get_ui_id($key_perf),$CONTROL_PAR_LABEL,!note_names[
$key_perf])
$last_time_2 := $ENGINE_UPTIME
wait($wait_time * 1000)
if($ENGINE_UPTIME - $last_time_2 > $wait_time -5)
set_text ($lb_key_perf,"KEY")
end if
end on
on ui_control ($scale_perf)
$a := 0
while($a < 12)
%cur_scale[$a] := %scale_types[$scale_perf*12 + (($a + 12 - $key
_perf) mod 12)]
inc($a)
end while
if ($chord_perf < 4 or $scale_perf = 0 or $REAL_TONAL = 1)
$absolute := 1
else
$absolute := 0
end if
set_text($lb_scale_perf, !scale_names[$scale_perf])
set_control_par_str(get_ui_id($scale_perf),$CONTROL_PAR_LABEL,!scale_nam
es[$scale_perf])
$last_time_3 := $ENGINE_UPTIME
wait($wait_time * 1000)
if($ENGINE_UPTIME - $last_time_3 > $wait_time -5)
set_text ($lb_scale_perf,"SCALE")
end if
end on
{*** END CONTROL GROUP "PERF" UI_CONTROL CALLBACKS}
{*** CONTROL GROUP "BANDFX" UI_CONTROL CALLBACKS}
on ui_control ($rev_bandfx)
if ($rev_bandfx = 0)
$rev_bandfx := 1
else
$cab_bandfx := 0
$eq_bandfx := 0
$count := 5
while ($count < 9)
set_control_par(%bandfx_id[$count], $CONTROL_PAR_HIDE, $
HIDE_PART_BG)
set_control_par(%bandfx_id[$count+4], $CONTROL_PAR_HIDE,
$HIDE_WHOLE_CONTROL)
set_control_par(%bandfx_id[$count+8], $CONTROL_PAR_HIDE,
$HIDE_WHOLE_CONTROL)
inc($count)
end while
set_control_par(%bandfx_id[8], $CONTROL_PAR_HIDE, $HIDE_PART_NOT
HING)
set_control_par(%bandfx_id[17], $CONTROL_PAR_HIDE, $HIDE_PART_NO
THING)
set_control_par(%bandfx_id[30], $CONTROL_PAR_HIDE, $HIDE_PART_NO
THING)
set_control_par(%bandfx_id[32], $CONTROL_PAR_HIDE, $HIDE_PART_NO
THING)
set_control_par(%bandfx_id[18], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[29], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[19], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[20], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[21], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[31], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[0], $CONTROL_PAR_PICTURE_STATE, 0)
$count := 0
while ($count < 9)
if ($count = $category_reverb)
set_control_par(%subcat_menu_id[$count],$CONTROL
_PAR_HIDE,$HIDE_PART_NOTHING)
else
set_control_par(%subcat_menu_id[$count],$CONTROL
_PAR_HIDE,$HIDE_WHOLE_CONTROL)
end if
inc ($count)
end while
end if
end on
on ui_control ($cab_bandfx)
if ($cab_bandfx = 0)
$cab_bandfx := 1
else
$rev_bandfx := 0
$eq_bandfx := 0
$count := 5
while ($count < 9)
set_control_par(%bandfx_id[$count], $CONTROL_PAR_HIDE, $
HIDE_WHOLE_CONTROL)
set_control_par(%bandfx_id[$count+4], $CONTROL_PAR_HIDE,
$HIDE_PART_BG)
set_control_par(%bandfx_id[$count+8], $CONTROL_PAR_HIDE,
$HIDE_WHOLE_CONTROL)
inc($count)
end while
set_control_par(%bandfx_id[12], $CONTROL_PAR_HIDE, $HIDE_PART_NO
THING)
set_control_par(%bandfx_id[17], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[30], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[32], $CONTROL_PAR_HIDE, $HIDE_PART_NO
THING)
set_control_par(%bandfx_id[18], $CONTROL_PAR_HIDE, $HIDE_PART_NO
THING)
set_control_par(%bandfx_id[29], $CONTROL_PAR_HIDE, $HIDE_PART_NO
THING)
set_control_par(%bandfx_id[19], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[20], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[21], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[31], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[0], $CONTROL_PAR_PICTURE_STATE, 1)
$count := 0
while ($count < 9)
set_control_par(%subcat_menu_id[$count],$CONTROL_PAR_HID
E,$HIDE_WHOLE_CONTROL)
inc ($count)
end while
end if
end on
on ui_control ($eq_bandfx)
if ($eq_bandfx = 0)
$eq_bandfx := 1
else
$rev_bandfx := 0
$cab_bandfx := 0
$count := 5
while ($count < 9)
set_control_par(%bandfx_id[$count], $CONTROL_PAR_HIDE, $
HIDE_WHOLE_CONTROL)
set_control_par(%bandfx_id[$count+4], $CONTROL_PAR_HIDE,
$HIDE_WHOLE_CONTROL)
set_control_par(%bandfx_id[$count+8], $CONTROL_PAR_HIDE,
$HIDE_PART_BG)
inc($count)
end while
set_control_par(%bandfx_id[17], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[30], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[32], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[18], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[29], $CONTROL_PAR_HIDE, $HIDE_WHOLE_C
ONTROL)
set_control_par(%bandfx_id[19], $CONTROL_PAR_HIDE, $HIDE_PART_NO
THING)
set_control_par(%bandfx_id[20], $CONTROL_PAR_HIDE, $HIDE_PART_NO
THING)
set_control_par(%bandfx_id[21], $CONTROL_PAR_HIDE, $HIDE_PART_NO
THING)
set_control_par(%bandfx_id[31], $CONTROL_PAR_HIDE, $HIDE_PART_NO
THING)
set_control_par(%bandfx_id[0], $CONTROL_PAR_PICTURE_STATE, 2)
$count := 0
while ($count < 9)
set_control_par(%subcat_menu_id[$count],$CONTROL_PAR_HID
E,$HIDE_WHOLE_CONTROL)
inc ($count)
end while
end if
end on
{reverb functionality}
on ui_control ($rev_onoff_bandfx)
_set_engine_par($ENGINE_PAR_SEND_EFFECT_BYPASS, (($rev_onoff_bandfx + 1)
mod 2), -1, $reverb_slot, 0)
end on
on ui_control ($category_reverb)
$count := 0
while ($count < 9)
if ($count = $category_reverb)
set_control_par(%subcat_menu_id[$count],$CONTROL_PAR_HID
E,$HIDE_PART_NOTHING)
else
set_control_par(%subcat_menu_id[$count],$CONTROL_PAR_HID
E,$HIDE_WHOLE_CONTROL)
end if
inc ($count)
end while
set_control_par(get_ui_id($image_reverb),$CONTROL_PAR_PICTURE_STATE,$cat
egory_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,0)
{change 0 to 1 if reverb is on insert effect}
end on
on ui_control ($hall_reverb)
_load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)...
& !ir_path[$hall_reverb],$reverb_slot,0)
end on
on ui_control ($cathedral_reverb)
_load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)...
& !ir_path[$cathedral_reverb],$reverb_slot,0)
end on
on ui_control ($club_reverb)
_load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)...
& !ir_path[$club_reverb],$reverb_slot,0)
end on
on ui_control ($room_reverb)
_load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)...
& !ir_path[$room_reverb],$reverb_slot,0)
end on
on ui_control ($l300_reverb)
_load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)...
& !ir_path[$l300_reverb],$reverb_slot,0)
end on
on ui_control ($quadstick_reverb)
_load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)...
& !ir_path[$quadstick_reverb],$reverb_slot,0)
end on
on ui_control ($brt7_reverb)
_load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)...
& !ir_path[$brt7_reverb],$reverb_slot,0)
end on
on ui_control ($plate_reverb)
_load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)...
& !ir_path[$plate_reverb],$reverb_slot,0)
end on
on ui_control ($cabinet_reverb)
_load_ir_sample(_get_folder($GET_FOLDER_FACTORY_DIR)...
& !ir_path[$cabinet_reverb],$reverb_slot,0)
end on
on ui_control ($rev_amount_bandfx)
set_engine_par ($ENGINE_PAR_SENDLEVEL_0, $rev_amount_bandfx, -1, $sends_
slot, 1)
set_control_par_str(get_ui_id($rev_amount_bandfx),$CONTROL_PAR_LABEL,get
_engine_par_disp($ENGINE_PAR_SENDLEVEL_0, -1, $sends_slot, 1) & " dB")
end on
{cab functionality}
on ui_control ($cab_onoff_bandfx)
set_engine_par ($ENGINE_PAR_EFFECT_BYPASS, (($cab_onoff_bandfx + 1) mod
2), -1, $cab_slot, 1)
end on
on ui_control ($cab_type_bandfx)
set_engine_par($ENGINE_PAR_CABINET_TYPE, $cab_type_bandfx, -1, $cab_slot
, 1)
set_control_par(%bandfx_id[12], $CONTROL_PAR_PICTURE_STATE, $cab_type_ba
ndfx)
end on
on ui_control ($cab_air_bandfx)
set_engine_par ($ENGINE_PAR_CB_AIR,$cab_air_bandfx,-1,$cab_slot,1)
set_control_par_str(get_ui_id($cab_air_bandfx),$CONTROL_PAR_LABEL,get_en
gine_par_disp($ENGINE_PAR_CB_AIR, -1, $cab_slot, 1) & " %")
end on
{eq functionality}
on ui_control ($eq_onoff_bandfx)
set_engine_par ($ENGINE_PAR_EFFECT_BYPASS, (($eq_onoff_bandfx + 1) mod 2
), -1, $meq_slot, 1)
end on
on ui_control ($eq_lo_bandfx)
set_engine_par($ENGINE_PAR_GAIN1, $eq_lo_bandfx, -1, $meq_slot, 1)
set_control_par_str(get_ui_id($eq_lo_bandfx),$CONTROL_PAR_LABEL,get_engi
ne_par_disp($ENGINE_PAR_GAIN1, -1, $meq_slot, 1) & " dB")
end on
on ui_control ($eq_mid_bandfx)
set_engine_par($ENGINE_PAR_GAIN2, $eq_mid_bandfx, -1, $meq_slot, 1)
set_control_par_str(get_ui_id($eq_mid_bandfx),$CONTROL_PAR_LABEL,get_eng
ine_par_disp($ENGINE_PAR_GAIN2, -1, $meq_slot, 1) & " dB")
end on
on ui_control ($eq_hi_bandfx)
set_engine_par($ENGINE_PAR_GAIN3, $eq_hi_bandfx, -1, $meq_slot, 1)
set_control_par_str(get_ui_id($eq_hi_bandfx),$CONTROL_PAR_LABEL,get_engi
ne_par_disp($ENGINE_PAR_GAIN3, -1, $meq_slot, 1) & " dB")
end on
{*** END CONTROL GROUP "BANDFX" UI_CONTROL CALLBACKS}
on note
{-----Constrain to Scale------}
if (%cur_scale[$EVENT_NOTE mod 12] = 1)
select ($mapping_style)
case 0
exit
case 1
ignore_event($EVENT_ID)
exit
case 2
$a := 1
while($a < 12)
if (%cur_scale[($EVENT_NOTE+$a) mod 12]
= 0 )
change_note($EVENT_ID,$EVENT_NOT
E+$a)
$a := 100
end if
inc($a)
end while
case 3
$a := -1
while($a > -12)
if (%cur_scale[($EVENT_NOTE+$a) mod 12]
= 0 )
change_note($EVENT_ID,$EVENT_NOT
E+$a)
$a := -100
end if
dec($a)
end while
end select
end if
{----Harmonizer------}
if ($absolute = 0)
$c := 0
while($c < 4)
if (%tone_note_arr[$c] > 0)
$a := 0
$b := 0
while(%tone_note_arr[$c] > $b and ($EVENT_NOTE+$
a) > -1 and ($EVENT_NOTE+$a) < 128)
if (%cur_scale[($EVENT_NOTE+$a) mod 12]
= 0)
inc($b)
end if
if ($b = %tone_note_arr[$c])
$note_helper := $EVENT_NOTE + $a
if ($note_helper >= 0 and $note_
helper <= 127 and $note_helper # $EVENT_NOTE)
$id := play_note($note_h
elper,$EVENT_VELOCITY,0,-1)
change_vol($id,get_event
_par($EVENT_ID,$EVENT_PAR_VOLUME),1)
change_tune($id,get_even
t_par($EVENT_ID,$EVENT_PAR_TUNE),1)
change_pan($id,get_event
_par($EVENT_ID,$EVENT_PAR_PAN),1)
end if
end if
inc($a)
end while
end if
inc($c)
end while
else
$c := 0
while($c < 4)
$note_helper := 0
select (%tone_note_arr[$c])
case 2
if (%cur_scale[($EVENT_NOTE+2) mod 12] =
0)
$note_helper := $EVENT_NOTE + 2
else
if (%cur_scale[($EVENT_NOTE+1) m
od 12] = 0)
$note_helper := $EVENT_N
OTE + 1
end if
end if
case 3
if (%cur_scale[($EVENT_NOTE+4) mod 12] =
0)
$note_helper := $EVENT_NOTE + 4
else
if (%cur_scale[($EVENT_NOTE+3) m
od 12] = 0)
$note_helper := $EVENT_N
OTE + 3
else
if (%cur_scale[($EVENT_N
OTE+2) mod 12] = 0)
$note_helper :=
$EVENT_NOTE + 2
else
if (%cur_scale[(
$EVENT_NOTE+5) mod 12] = 0)
$note_he
lper := $EVENT_NOTE + 5
end if
end if
end if
end if
case 4
if (%cur_scale[($EVENT_NOTE+5) mod 12] =
0)
$note_helper := $EVENT_NOTE + 5
else
if (%cur_scale[($EVENT_NOTE+6) m
od 12] = 0)
$note_helper := $EVENT_N
OTE + 6
else
if (%cur_scale[($EVENT_N
OTE+4) mod 12] = 0)
$note_helper :=
$EVENT_NOTE + 4
end if
end if
end if
case 5
if (%cur_scale[($EVENT_NOTE+7) mod 12] =
0)
$note_helper := $EVENT_NOTE + 7
else
if (%cur_scale[($EVENT_NOTE+6) m
od 12] = 0)
$note_helper := $EVENT_N
OTE + 6
else
if (%cur_scale[($EVENT_N
OTE+8) mod 12] = 0)
$note_helper :=
$EVENT_NOTE + 8
end if
end if
end if
case 6
if (%cur_scale[($EVENT_NOTE+9) mod 12] =
0)
$note_helper := $EVENT_NOTE + 9
else
if (%cur_scale[($EVENT_NOTE+8) m
od 12] = 0)
$note_helper := $EVENT_N
OTE + 8
else
if (%cur_scale[($EVENT_N
OTE+10) mod 12] = 0)
$note_helper :=
$EVENT_NOTE + 10
end if
end if
end if
case 7
if (%cur_scale[($EVENT_NOTE+10) mod 12]
= 0)
$note_helper := $EVENT_NOTE + 10
else
if (%cur_scale[($EVENT_NOTE+11)
mod 12] = 0)
$note_helper := $EVENT_N
OTE + 11
else
if (%cur_scale[($EVENT_N
OTE+9) mod 12] = 0)
$note_helper :=
$EVENT_NOTE + 9
end if
end if
end if
case 8
$note_helper := $EVENT_NOTE + 12
end select
if ($note_helper > 0 and $note_helper <= 127 and $note_h
elper # $EVENT_NOTE)
$id := play_note($note_helper,$EVENT_VELOCITY,0,
-1)
change_vol($id,get_event_par($EVENT_ID,$EVENT_PA
R_VOLUME),1)
change_tune($id,get_event_par($EVENT_ID,$EVENT_P
AR_TUNE),1)
change_pan($id,get_event_par($EVENT_ID,$EVENT_PA
R_PAN),1)
end if
inc($c)
end while
end if
end on

You might also like