This is bugging me. I hope it’s not too long a question. I couldn’t find it covered anywhere. I have my 1st script. What I wanted was to have 10 plugins(guitar pedals) that I can choose from and a clean uncluttered way to edit parameters. So I have 10 buttons for pedals and added 9 sliders and 6 more buttons to be assigned to various parameters I might want to change. These refer to the last selected pedal. One button will open and close the plugin. It works great except for when I first start the rackspace. One of my plugin windows starts open even after I tried closing them all in Initialize. I noticed after initialize a bunch of my callbacks get called including the one that opens my plugins. It was being called once and opened the last plugin. I put something in to ignore the 1st call to that call back and so far it works just like I want but I wonder why that happens? Any tips? Thanks in advance
Tim
PS. my code is not pretty and I may have done something stupid. It would be cleaner I think if I could have used an Array of Arrays but I’m not a real progammer.
Your code looks quite clean from here
Could you share some excerpts/details to have a look at?
1 Like
Happy to share if this is appropriate. I cut and pasted the whole script but it’s kind of long. Right now I’m using free plugins from Melda and TH-U so I could share the gig file if anyone is interested. In time I will use some others but the Melda free stuff sounds pretty nice.
var
current_button : integer = 0
r,t : double
st,st2 : string
wait_to_open : boolean = False
Slider_1,Slider_2,Slider_3,Slider_4,Slider_5 : widget
Slider_6,Slider_7,Slider_8,Slider_9 : widget
FX_WIDGET_1,FX_WIDGET_2,FX_WIDGET_3,FX_WIDGET_4,FX_WIDGET_5 : widget
FX_WIDGET_6,FX_WIDGET_7,FX_WIDGET_8,FX_WIDGET_9,FX_WIDGET_10 : widget
Global_Switch,Open_Plugin,Previous_Button,Next_Button : widget
PLUGIN_NAME,RESET_DEFAULT,DO_TEST,SET_TEST: widget
P_BUTTON_1,P_BUTTON_2,P_BUTTON_3,P_BUTTON_4,P_BUTTON_5,P_BUTTON_6 : widget
SLIDERS : widget Array = [Slider_1,Slider_2,Slider_3,Slider_4,Slider_5,Slider_6,Slider_7,Slider_8,Slider_9]
BUTTONS : widget Array = [P_BUTTON_1,P_BUTTON_2,P_BUTTON_3,P_BUTTON_4,P_BUTTON_5,P_BUTTON_6]
FX_WIDGETS : widget Array = [FX_WIDGET_1,FX_WIDGET_2,FX_WIDGET_3,FX_WIDGET_4,FX_WIDGET_5,FX_WIDGET_6,FX_WIDGET_7,FX_WIDGET_8,FX_WIDGET_9,FX_WIDGET_10]
LP_FILTER,PHASER,FLANGER,TREMELO,FREQUENCY_SHIFTER,DELAY,VIBRATO,EQUALIZER,CONVOLUTION,REVERB : PluginBlock
EV_FOLLOWER : PluginBlock
FX_BLOCKS : PluginBlock Array = [LP_FILTER,PHASER,FLANGER,TREMELO,FREQUENCY_SHIFTER,DELAY,VIBRATO,EQUALIZER,CONVOLUTION,REVERB]
FX_Names : string Array = ["Mutron","Phaser","Flanger","Tremelo","Frequency Shift","Dual Delay","Vibrato","Equalizer","Convolver","Reverb"]
FX_Names_short : string Array = ["Mutron","Phaser","Flanger","Tremelo","FrqShft","Delay","Vibrato","Equlizer","Convolve","Reverb"]
Is_Plugin_Open : Boolean Array = [False,False,False,False,False,False,False,False,False,False]
Mutron_Slider_Labels :string Array = ["Q","Slope","Output"]
Mutron_Slider_Params : integer Array = [8,9,1]
Mutron_Slider_Defaults : double Array = [0.51879,0.3636,0.5338]
Mutron_Button_Labels : string Array = []
Mutron_Button_Params : integer Array = []
Mutron_Button_Defaults : double Array = []
Phaser_Slider_Labels :string Array = ["Min","Max","Rate","Fdbk","Mode","Width","Sat","Shape","Mix"]
Phaser_Slider_Params : integer Array = [1,2,3,4,5,6,7,9,0]
Phaser_Slider_Defaults : double Array = [0.4336,0.6344,0.6058,0.5012,0.0505,0.75,0.0,1.0,0.714]
Phaser_Button_Labels : string Array = ["Sync"]
Phaser_Button_Params : integer Array = [11]
Phaser_Button_Defaults : double Array = [1.0]
Flanger_Slider_Labels :string Array = ["Min","Max","Depth","Range","Rate","Fdbk","Width","Sat","Jet"]
Flanger_Slider_Params : integer Array = [8,9,1,2,3,4,5,12,10]
//Flanger_Slider_Defaults : double Array = [0.0,0.75,0.2828,0.2920,0.025,0.755,0.100,1.0,0.25]
Flanger_Slider_Defaults : double Array = [0.1,1.0,0.75,0.2828,0.2920,0.648,0.500,0.0,0.5]
Flanger_Button_Labels : string Array = ["Sync"]
Flanger_Button_Params : integer Array = [13]
Flanger_Button_Defaults : double Array = [1.0]
Tremelo_Slider_Labels :string Array = ["Depth","Rate","Width","Length","Type","Phase","Count"]
Tremelo_Slider_Params : integer Array = [0,1,2,6,7,8,15]
Tremelo_Slider_Defaults : double Array = [0.40,0.4,0.05,0.6,0.19,0.25,0.03]
Tremelo_Button_Labels : string Array = ["Sync"]
Tremelo_Button_Params : integer Array = [5]
Tremelo_Button_Defaults : double Array = [1.0]
FreqSh_Slider_Labels :string Array = ["Mix","Shift","Width","Fdbk","Delay","Charct","Length","Type","Count"]
FreqSh_Slider_Params : integer Array = [0,1,2,3,4,5,8,9,16]
FreqSh_Slider_Defaults : double Array = [1.00,0.473,0.711,0.607,0.1,0.0,6667.714,0.0,0.0]
FreqSh_Button_Labels : string Array = ["Sync"]
FreqSh_Button_Params : integer Array = [7]
FreqSh_Button_Defaults : double Array = [1.0]
Delay_Slider_Labels :string Array = ["Dry","Gain 1","Time 1 2","Fdbk 1","Gain 2","Time 2","Fdbk 2","LP","HP"]
Delay_Slider_Params : integer Array = [0,9,11,8,18,20,17,3,4]
Delay_Slider_Defaults : double Array = [1.00,0.844,0.46,0.3,0.996,0.416,0.4,0.17,0.92]
Delay_Button_Labels : string Array = ["D 1","D 2","Fz 1","Fz 2","Snc 1","Snc 2"]
Delay_Button_Params : integer Array = [7,16,15,24,25,28]
Delay_Button_Defaults : double Array = [1.0,0.0,0.0,0.0,0.0,0.0]
Vibrato_Slider_Labels :string Array = ["Depth","Rate","Width","Tremelo","TM Phase","Length","Type","Phase","Count"]
Vibrato_Slider_Params : integer Array = [0,1,2,3,4,9,10,11,18]
Vibrato_Slider_Defaults : double Array = [0.072,0.844,0.88,0.36,0.431,0.714,0.0,0.25,0.00]
Vibrato_Button_Labels : string Array = ["Sync","RS","Pr","Ne"]
Vibrato_Button_Params : integer Array = [8,7,16,17]
Vibrato_Button_Defaults : double Array = [1.0,0.0,0.0,0.0]
Equalizer_Slider_Labels :string Array = ["Freq 1","Freq 2 1","Freq 3","Gain 1","Gain 2","Gain 3","Blend","Shift","Level"]
Equalizer_Slider_Params : integer Array = [4,11,18,5,12,19,10,51,1]
Equalizer_Slider_Defaults : double Array = [0.25,0.514,0.768,0.413,0.543,0.427,1.0,0.536,0.588]
Equalizer_Button_Labels : string Array = ["B1","B2","B3","MB","Pr","Ne"]
Equalizer_Button_Params : integer Array = [3,10,17,24,49,50]
Equalizer_Button_Defaults : double Array = [1.0,1.0,1.0,0.0,1.0,1.0]
Convolve_Slider_Labels :string Array = ["Mix","Wide","HP","LP","Pre","IR"]
Convolve_Slider_Params : integer Array = [0,1,2,3,8,4]
Convolve_Slider_Defaults : double Array = [0.16,0.00,0.14,0.80,0.1,0.2545455]
Convolve_Button_Labels : string Array = []
Convolve_Button_Params : integer Array = []
Convolve_Button_Defaults : double Array = []
Reverb_Slider_Labels :string Array = ["Mix","Len","Size","LP","HP","Pre","Gain","DfL","DfH"]
Reverb_Slider_Params : integer Array = [4,5,6,7,8,9,10,13,17]
Reverb_Slider_Defaults : double Array = [0.25,0.2859,0.85,0.699,1.0,0.4162,0.5,0.4337,0.91]
Reverb_Button_Labels : string Array = ["DL","DH"]
Reverb_Button_Params : integer Array = [12,16]
Reverb_Button_Defaults : double Array = [1.0,0.0]
//Up to 9 for 9 sliders for each Effect
number_of_params_per_fx : integer Array = [Size(Mutron_Slider_Labels),Size(Phaser_Slider_Labels),Size(Flanger_Slider_Labels),Size(Tremelo_Slider_Labels),Size(FreqSh_Slider_Labels),Size(Delay_Slider_Labels),Size(Vibrato_Slider_Labels),Size(Equalizer_Slider_Labels),Size(Convolve_Slider_Labels),Size(Reverb_Slider_Labels)]
// up to 6 Buttons for each Effect
number_of_button_params_per_fx : integer Array = [Size(Mutron_Button_Params),Size(Phaser_Button_Params),Size(Flanger_Button_Params),Size(Tremelo_Button_Labels),Size(FreqSh_Button_Labels),Size(Delay_Button_Params),Size(Vibrato_Button_Params),Size(Equalizer_Button_Labels),Size(Convolve_Button_Labels),Size(Reverb_Button_Labels)]
Function TestDelay() Autotype
var
i : integer
r : double
s : string
For i = 0; i < number_of_params_per_fx[5]; i = i + 1 Do
r = GetParameter(FX_BLOCKS[5],Delay_Slider_Params[i])
s = " Check "+IntToString(i)+" "+DoubleToString(Delay_Slider_Params[i],3)+" "+DoubleToString(r,3)
Print(s)
End
End
Function SetDefaults(cb: integer, newValue : double) Autotype
// TAB TEST 2 Is SetParameter neccessary in this callback because SetWidget launcshes a call back that leads to
// setting parameters anyway - or does it
var
i : integer
s : String
s = "In SetDefaults newValue = "+DoubleToString(newValue,3)
Print(s)
if newValue == 1.0 then
//Print("Reset Start")
Select
cb == 0 Do
Print("Set Defaults 0")
For i = 0; i < number_of_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Mutron_Slider_Params[i],Mutron_Slider_Defaults[i])
//SetWidgetValue(SLIDERS[i],Mutron_Slider_Defaults[i])
End
cb == 1 Do
Print("Set Defaults 1")
For i = 0; i < number_of_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Phaser_Slider_Params[i],Phaser_Slider_Defaults[i])
//SetWidgetValue(SLIDERS[i],Phaser_Slider_Defaults[i])
End
For i = 0; i < number_of_button_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Phaser_Button_Params[i],Phaser_Button_Defaults[i])
//SetWidgetLabel(BUTTONS[i],Phaser_Button_Labels[i])
//SetWidgetValue(BUTTONS[i],Phaser_Button_Defaults[i])
End
cb == 2 Do
Print("Set Defaults 2")
For i = 0; i < number_of_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Flanger_Slider_Params[i],Flanger_Slider_Defaults[i])
//SetWidgetValue(SLIDERS[i],Flanger_Slider_Defaults[i])
End
For i = 0; i < number_of_button_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Flanger_Button_Params[i],Flanger_Button_Defaults[i])
//SetWidgetLabel(BUTTONS[i],Flanger_Button_Labels[i])
//SetWidgetValue(BUTTONS[i],Flanger_Button_Defaults[i])
End
cb == 3 Do
Print("Set Defaults 3")
For i = 0; i < number_of_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Tremelo_Slider_Params[i],Tremelo_Slider_Defaults[i])
//SetWidgetValue(SLIDERS[i],Tremelo_Slider_Defaults[i])
End
For i = 0; i < number_of_button_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Tremelo_Button_Params[i],Tremelo_Button_Defaults[i])
//SetWidgetLabel(BUTTONS[i],Tremelo_Button_Labels[i])
//SetWidgetValue(BUTTONS[i],Tremelo_Button_Defaults[i])
End
cb == 4 Do
Print("Set Defaults 4")
For i = 0; i < number_of_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],FreqSh_Slider_Params[i],FreqSh_Slider_Defaults[i])
//SetWidgetValue(SLIDERS[i],FreqSh_Slider_Defaults[i])
//r = GetParameter(FX_BLOCKS[currrent_block],FreqSh_Slider_Params[i])
//Print(i)
//Print(r)
End
For i = 0; i < number_of_button_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],FreqSh_Button_Params[i],FreqSh_Button_Defaults[i])
//SetWidgetLabel(BUTTONS[i],FreqSh_Button_Labels[i])
//SetWidgetValue(BUTTONS[i],FreqSh_Button_Defaults[i])
End
cb == 5 Do
Print("Set Dela 5")
For i = 0; i < number_of_params_per_fx[cb]; i = i + 1 Do
s = " Dealy stuff "+IntToString(i)+" "+IntToString(Delay_Slider_Params[i])+" "+DoubleToString(Delay_Slider_Defaults[i],3)
Print(s)
SetParameter(FX_BLOCKS[cb],Delay_Slider_Params[i],Delay_Slider_Defaults[i])
//SetWidgetValue(SLIDERS[i],Delay_Slider_Defaults[i])
End
For i = 0; i < number_of_button_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Delay_Button_Params[i],Delay_Button_Defaults[i])
//SetWidgetLabel(BUTTONS[i],Delay_Button_Labels[i])
//SetWidgetValue(BUTTONS[i],Delay_Button_Defaults[i])
End
cb == 6 Do
Print("Set Defaults 6")
For i = 0; i < number_of_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Vibrato_Slider_Params[i],Vibrato_Slider_Defaults[i])
//SetWidgetValue(SLIDERS[i],Vibrato_Slider_Defaults[i])
End
For i = 0; i < number_of_button_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Vibrato_Button_Params[i],Vibrato_Button_Defaults[i])
//SetWidgetLabel(BUTTONS[i],Vibrato_Button_Labels[i])
//SetWidgetValue(BUTTONS[i],Vibrato_Button_Defaults[i])
End
cb == 7 Do
Print("Set Defaults 7")
For i = 0; i < number_of_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Equalizer_Slider_Params[i],Equalizer_Slider_Defaults[i])
//SetWidgetValue(SLIDERS[i],Equalizer_Slider_Defaults[i])
End
For i = 0; i < number_of_button_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Equalizer_Button_Params[i],Equalizer_Button_Defaults[i])
//SetWidgetLabel(BUTTONS[i],Equalizer_Button_Labels[i])
//SetWidgetValue(BUTTONS[i],Equalizer_Button_Defaults[i])
End
cb == 8 Do
Print("Set Defaults 8")
For i = 0; i < number_of_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Convolve_Slider_Params[i],Convolve_Slider_Defaults[i])
//SetWidgetValue(SLIDERS[i],Convolve_Slider_Defaults[i])
End
For i = 0; i < number_of_button_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Convolve_Button_Params[i],Convolve_Button_Defaults[i])
//SetWidgetLabel(BUTTONS[i],Convolve_Button_Labels[i])
//SetWidgetValue(BUTTONS[i],Convolve_Button_Defaults[i])
End
cb == 9 Do
Print("Set Defaults 9")
For i = 0; i < number_of_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Reverb_Slider_Params[i],Reverb_Slider_Defaults[i])
//SetWidgetValue(SLIDERS[i],Reverb_Slider_Defaults[i])
End
For i = 0; i < number_of_button_params_per_fx[cb]; i = i + 1 Do
SetParameter(FX_BLOCKS[cb],Reverb_Button_Params[i],Reverb_Button_Defaults[i])
//SetWidgetLabel(BUTTONS[i],Reverb_Button_Labels[i])
//SetWidgetValue(BUTTONS[i],Reverb_Button_Defaults[i])
End
end //Select
end //end if newValue
Print("SetDefaults Done")
End // Function
Initialization
var
m : integer
Print("INIT")
For m = 0; m < Size(SLIDERS); m = m + 1 Do
SetWidgetLabel(SLIDERS[m],"")
End
For m = 0; m < Size(BUTTONS); m = m + 1 Do
SetWidgetLabel(BUTTONS[m],"")
End
For m = 0; m < Size(FX_WIDGETS); m = m + 1 Do
SetWidgetLabel(FX_WIDGETS[m],FX_Names_short[m])
//ClosePlugin(FX_BLOCKS[m])
//SetWidgetValue(FX_WIDGETS[m],0.0)
current_button=m
Print(current_button)
Print("Should be calling RESET")
//SetWidgetValue(RESET_DEFAULT,1.0) ///TAB 1 TEST ??? Is this necessary
//SetWidgetValue(RESET_DEFAULT,0.0) ///TAB 1 TEST ??? Is this necessary
SetDefaults(current_button ,1.0)
End
current_button=0
Print("111111")
//SetWidgetValue(DO_TEST,1.0)
/*TestDelay()
SetDefaults(5 ,1.0)
Print("22222")
TestDelay()
SetDefaults(6 ,1.0)
Print("333")
TestDelay()
SetDefaults(7 ,1.0)
Print("44444")
TestDelay()
SetDefaults(8 ,1.0)
Print("55555")
TestDelay()
SetDefaults(9 ,1.0)
Print("666666")
TestDelay()
*/
Print("Done INIT")
End
On WidgetValueChanged(w : Widget, index: integer, newValue : double) from FX_WIDGET_1,FX_WIDGET_2,FX_WIDGET_3,FX_WIDGET_4,FX_WIDGET_5,FX_WIDGET_6,FX_WIDGET_7,FX_WIDGET_8,FX_WIDGET_9,FX_WIDGET_10
var
i : integer
Print("WIDGETS")
current_button = index
SetWidgetLabel(PLUGIN_NAME,FX_Names[index])
SetWidgetLabel(FX_WIDGETS[index],FX_Names_short[index])
SetWidgetValue(Global_Switch,newValue)
//Print("Into WidgetValueChanged for 10 Effect Buttons")
//Print(GetWidgetLabel(FX_WIDGETS[index]))
For i = 0; i < Size(SLIDERS); i = i + 1 Do
SetWidgetLabel(SLIDERS[i],"") // Erase Labels
End
For i = 0; i < Size(BUTTONS); i = i + 1 Do
SetWidgetLabel(BUTTONS[i],"") // Erase Labels
End
//Print("Array Sizes")
//Print(number_of_params_per_fx[current_button])
//Print(number_of_button_params_per_fx[current_button])
//Print(current_button)
if newValue >= 0.0then
Select
index == 0 Do
For i = 0; i < number_of_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(SLIDERS[i],Mutron_Slider_Labels[i])
r = GetParameter(FX_BLOCKS[index],Mutron_Slider_Params[i])
SetWidgetValue(SLIDERS[i],r)
End
For i = 0; i < number_of_button_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(BUTTONS[i],Mutron_Button_Labels[i])
r = GetParameter(FX_BLOCKS[index],Mutron_Button_Params[i])
SetWidgetValue(BUTTONS[i],r)
End
index == 1 Do
For i = 0; i < number_of_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(SLIDERS[i],Phaser_Slider_Labels[i])
r = GetParameter(FX_BLOCKS[index],Phaser_Slider_Params[i])
SetWidgetValue(SLIDERS[i],r)
End
For i = 0; i < number_of_button_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(BUTTONS[i],Phaser_Button_Labels[i])
r = GetParameter(FX_BLOCKS[index],Phaser_Button_Params[i])
SetWidgetValue(BUTTONS[i],r)
End
index == 2 Do
For i = 0; i < number_of_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(SLIDERS[i],Flanger_Slider_Labels[i])
r = GetParameter(FX_BLOCKS[index],Flanger_Slider_Params[i])
SetWidgetValue(SLIDERS[i],r)
End
For i = 0; i < number_of_button_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(BUTTONS[i],Flanger_Button_Labels[i])
r = GetParameter(FX_BLOCKS[index],Flanger_Button_Params[i])
SetWidgetValue(BUTTONS[i],r)
End
index == 3 Do
For i = 0; i < number_of_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(SLIDERS[i],Tremelo_Slider_Labels[i])
r = GetParameter(FX_BLOCKS[index],Tremelo_Slider_Params[i])
SetWidgetValue(SLIDERS[i],r)
End
For i = 0; i < number_of_button_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(BUTTONS[i],Tremelo_Button_Labels[i])
r = GetParameter(FX_BLOCKS[index],Tremelo_Button_Params[i])
SetWidgetValue(BUTTONS[i],r)
End
index == 4 Do
For i = 0; i < number_of_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(SLIDERS[i],FreqSh_Slider_Labels[i])
r = GetParameter(FX_BLOCKS[index],FreqSh_Slider_Params[i])
SetWidgetValue(SLIDERS[i],r)
End
For i = 0; i < number_of_button_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(BUTTONS[i],FreqSh_Button_Labels[i])
r = GetParameter(FX_BLOCKS[index],FreqSh_Button_Params[i])
SetWidgetValue(BUTTONS[i],r)
End
//Print("Done 4")
index == 5 Do
For i = 0; i < number_of_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(SLIDERS[i],Delay_Slider_Labels[i])
r = GetParameter(FX_BLOCKS[index],Delay_Slider_Params[i])
SetWidgetValue(SLIDERS[i],r)
End
For i = 0; i < number_of_button_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(BUTTONS[i],Delay_Button_Labels[i])
r = GetParameter(FX_BLOCKS[index],Delay_Button_Params[i])
SetWidgetValue(BUTTONS[i],r)
End
//Print("Done 5")
index == 6 Do
For i = 0; i < number_of_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(SLIDERS[i],Vibrato_Slider_Labels[i])
r = GetParameter(FX_BLOCKS[index],Vibrato_Slider_Params[i])
SetWidgetValue(SLIDERS[i],r)
End
For i = 0; i < number_of_button_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(BUTTONS[i],Vibrato_Button_Labels[i])
r = GetParameter(FX_BLOCKS[index],Vibrato_Button_Params[i])
SetWidgetValue(BUTTONS[i],r)
End
index == 7 Do
For i = 0; i < number_of_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(SLIDERS[i],Equalizer_Slider_Labels[i])
r = GetParameter(FX_BLOCKS[index],Equalizer_Slider_Params[i])
SetWidgetValue(SLIDERS[i],r)
End
For i = 0; i < number_of_button_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(BUTTONS[i],Equalizer_Button_Labels[i])
r = GetParameter(FX_BLOCKS[index],Equalizer_Button_Params[i])
SetWidgetValue(BUTTONS[i],r)
End
index == 8 Do
For i = 0; i < number_of_params_per_fx[current_button]; i = i + 1 Do
//Print(i)
SetWidgetLabel(SLIDERS[i],Convolve_Slider_Labels[i])
r = GetParameter(FX_BLOCKS[index],Convolve_Slider_Params[i])
SetWidgetValue(SLIDERS[i],r)
End
For i = 0; i < number_of_button_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(BUTTONS[i],Convolve_Button_Labels[i])
r = GetParameter(FX_BLOCKS[index],Convolve_Button_Params[i])
SetWidgetValue(BUTTONS[i],r)
End
index == 9 Do
//Print("into 10")
For i = 0; i < number_of_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(SLIDERS[i],Reverb_Slider_Labels[i])
r = GetParameter(FX_BLOCKS[index],Reverb_Slider_Params[i])
SetWidgetValue(SLIDERS[i],r)
End
For i = 0; i < number_of_button_params_per_fx[current_button]; i = i + 1 Do
SetWidgetLabel(BUTTONS[i],Reverb_Button_Labels[i])
r = GetParameter(FX_BLOCKS[index],Reverb_Button_Params[i])
SetWidgetValue(BUTTONS[i],r)
End
//Print("Done 9")
End //Select
end
//Print("Select Buttons Out")
End // Effect Widget Buttons
On WidgetValueChanged(w : Widget, index: integer, newValue : double) from Slider_1,Slider_2,Slider_3,Slider_4,Slider_5,Slider_6,Slider_7,Slider_8,Slider_9
Print("Into Sliders")
//Print(GetWidgetLabel(FX_WIDGETS[current_button]))
//Print(index)
//Print(newValue)
Select
current_button == 0 Do
if index < Size(Mutron_Slider_Params) then
SetParameter(FX_BLOCKS[current_button],Mutron_Slider_Params[index],newValue)
end
current_button == 1 Do
if index < Size(Phaser_Slider_Params) then
Print(index)
Print(Size(Phaser_Slider_Params))
SetParameter(FX_BLOCKS[current_button],Phaser_Slider_Params[index],newValue)
end
current_button == 2 Do
if index < Size(Flanger_Slider_Params) then
SetParameter(FX_BLOCKS[current_button],Flanger_Slider_Params[index],newValue)
end
current_button == 3 Do
if index < Size(Tremelo_Slider_Params) then
SetParameter(FX_BLOCKS[current_button],Tremelo_Slider_Params[index],newValue)
end
current_button == 4 Do
if index < Size(FreqSh_Slider_Params) then
SetParameter(FX_BLOCKS[current_button],FreqSh_Slider_Params[index],newValue)
end
current_button == 5 Do
if index < Size(Delay_Slider_Params) then
SetParameter(FX_BLOCKS[current_button],Delay_Slider_Params[index],newValue)
end
current_button == 6 Do
if index < Size(Vibrato_Slider_Params) then
SetParameter(FX_BLOCKS[current_button],Vibrato_Slider_Params[index],newValue)
end
current_button == 7 Do
if index < Size(Equalizer_Slider_Params) then
SetParameter(FX_BLOCKS[current_button],Equalizer_Slider_Params[index],newValue)
end
current_button == 8 Do
if index < Size(Convolve_Slider_Params) then
SetParameter(FX_BLOCKS[current_button],Convolve_Slider_Params[index],newValue)
end
current_button == 9 Do
if index < Size(Reverb_Slider_Params) then
SetParameter(FX_BLOCKS[current_button],Reverb_Slider_Params[index],newValue)
end
End
//Print("Sliders Out")
End
On WidgetValueChanged(w : Widget, index: integer, newValue : double) from Open_Plugin
Print("Into Open")
if wait_to_open then
if current_button >= 0 and current_button <= 9 then
if Is_Plugin_Open[current_button] then
ClosePlugin(FX_BLOCKS[current_button])
Is_Plugin_Open[current_button] = False
else
OpenPlugin(FX_BLOCKS[current_button])
Is_Plugin_Open[current_button] = True
end
end
else
wait_to_open = True
end
End
On WidgetValueChanged(w : Widget, index: integer, newValue : double) from Previous_Button,Next_Button
Print("Into P/N")
// Should be handy for a foot controller to move through FX
if newValue == 1.0 then
if index == 0 then
current_button = current_button - 1
else
current_button = current_button + 1
end
if current_button < 0 then
current_button = 9
end
if current_button > 9 then
current_button = 0
end
r = GetWidgetValue(FX_WIDGETS[current_button])
if r == 0.0 then
SetWidgetValue(FX_WIDGETS[current_button],1.0)
//else
// SetWidgetValue(FX_WIDGETS[current_button],0.0) // Not sure about this
end
end
End // Previous and Next Button
On WidgetValueChanged(w : Widget, index: integer, newValue : double) from RESET_DEFAULT
// TAB TEST 2 Is SetParameter neccessary in this callback because SetWidget launcshes a call back that leads to
// setting parameters anyway - or does it
var
i : integer
Print("Into RESET")
SetDefaults(current_button,newValue)
End // RESET DEFAULT
On WidgetValueChanged(w : Widget, index: integer, newValue : double) from DO_TEST,SET_TEST
var
i : integer
s : string
//if newValue == 1.0 then
Print("current")
Print(current_button)
Print("------")
if index == 0 then
For i = 0; i < number_of_params_per_fx[5]; i = i + 1 Do
r = GetParameter(FX_BLOCKS[5],Delay_Slider_Params[i])
s = " Check "+IntToString(i)+" "+DoubleToString(Delay_Slider_Params[i],3)+" "+DoubleToString(r,3)
Print(s)
//Print(i)
//Print(
//Print(yr)
End
elsif index == 1 then
For i = 0; i < number_of_params_per_fx[5]; i = i + 1 Do
SetDefaults(i,1.0)
end
//SetParameter(FX_BLOCKS[4],FreqSh_Slider_Params[1],FreqSh_Slider_Defaults[1])
end
//end
End
On WidgetValueChanged(w : Widget, index: integer, newValue : double) from P_BUTTON_1,P_BUTTON_2,P_BUTTON_3,P_BUTTON_4,P_BUTTON_5,P_BUTTON_6
Print("Intp P_BUTTON")
//if newValue == 1.0 then
Select
//current_button == 0 Do
//SetParameter(FX_BLOCKS[current_button],Mutron_Button_Params[index],newValue)
current_button == 1 Do
if index < Size(Phaser_Button_Params) then
SetParameter(FX_BLOCKS[current_button],Phaser_Button_Params[index],newValue)
end
current_button == 2 Do
if index < Size(Flanger_Button_Params) then
SetParameter(FX_BLOCKS[current_button],Flanger_Button_Params[index],newValue)
end
current_button == 3 Do
if index < Size(Tremelo_Button_Params) then
SetParameter(FX_BLOCKS[current_button],Tremelo_Button_Params[index],newValue)
end
current_button == 4 Do
if index < Size(FreqSh_Button_Params) then
SetParameter(FX_BLOCKS[current_button],FreqSh_Button_Params[index],newValue)
end
current_button == 5 Do
if index < Size(Delay_Button_Params) then
SetParameter(FX_BLOCKS[current_button],Delay_Button_Params[index],newValue)
end
current_button == 6 Do
if index < Size(Vibrato_Button_Params) then
SetParameter(FX_BLOCKS[current_button],Vibrato_Button_Params[index],newValue)
end
current_button == 7 Do
if index < Size(Equalizer_Button_Params) then
SetParameter(FX_BLOCKS[current_button],Equalizer_Button_Params[index],newValue)
end
//current_button == 8 Do
//SetParameter(FX_BLOCKS[current_button],Convolve_Button_Params[index],newValue)
current_button == 9 Do
if index < Size(Reverb_Button_Params) then
SetParameter(FX_BLOCKS[current_button],Reverb_Button_Params[index],newValue)
end
End // Select
//End //if
//Print("Buttons Done")
End
// Setup a Button to attach to a foot pedal to work on the current Effect
On WidgetValueChanged(w : Widget, index: integer, newValue : double) from Global_Switch
Print("Intp GLOBAL")
SetWidgetValue(FX_WIDGETS[current_button],newValue)
End
on activate
var
m : integer
For m = 0; m < Size(FX_WIDGETS); m = m + 1 Do
SetWidgetLabel(FX_WIDGETS[m],FX_Names_short[m])
//ClosePlugin(FX_BLOCKS[m])
SetWidgetValue(FX_WIDGETS[m],0.0)
end
end