365.VMjLgPV....OPwTUGkjSSQUPTUDHig1WvziHw3BLh.Ra0QWYeMFZeASOh.iHfLFZeESOhDiKvHBHsUGck80Xn8UL8HBLh.xXn8kL8HRLt.iHfzVczU1Wig1WxziHwHBHig1WyziHw3BLh.Ra0QWYeMFZeMSOh.iHfLFZeQSOh.iK4jyLyTSM3DCL1PiLxPiLzLSL1PiHfzVczU1Wig1WzziHvHBHig1W0ziHw3BLh.Ra0QWYeMFZeUSOh.iHfLFZeYSOhDiKvHBHsUGck80Xn8kM8HBLh.xXn80M8HRLt.iHfzVczU1Wig1W2ziHvHBHig1W3ziHw3BLh.Ra0QWYeMFZegSOh.iHfLFZekSOh.iK4jyLyTSM3DCL1PiLxPiLzLSL1PiHfzVczU1Wig1W4ziHvHBHig1Ww.SOhDiKvHBHsUGck80Xn8ULvziHvHBHig1WwDSOhDiKvHBHsUGck80Xn8ULwziHvHxK9..
327.VMjLg3S....OPwTUGkjSSQUPTUDHig1WvziHw3BLh.Ra0QWYeMFZeASOh.iHfLFZeESOhDiKvHBHsUGck80Xn8UL8HBLh.xXn8kL8HRLt.iHfzVczU1Wig1WxziHvHBHig1WyziHw3BLh.Ra0QWYeMFZeMSOh.iHfLFZeQSOhDiKvHBHsUGck80Xn8EM8HBLh.xXn8UM8HRLt.iHfzVczU1Wig1W0ziHvHBHig1W1ziHw3BLh.Ra0QWYeMFZeYSOh.iHfLFZecSOhDiKvHBHsUGck80Xn80M8HBLh.xXn8EN8HRLt.iHfzVczU1Wig1W3ziHvHBHig1W4ziHw3BLh.Ra0QWYeMFZekSOh.iHfLFZeECL8HRLt.iHfzVczU1Wig1Ww.SOh.iHfLFZeESL8HRLt.iHfzVczU1Wig1WwDSOh.iHu3C.
4868.VMjLgruD...OPwTUGkjSSQUPTUDHCgVXt4VYrEyS0QGb0QWOh.iKvXiL0HBHCgVXt4VYrIyS0QGb0QWOh.iKwHSMh.xPnElatUFay7TczAWcz0iHv3RL3bSMh.xPnElatUFaz7TczAWcz0iHv3hL0HBHCgVXt4VYrUyS0QGb0QWOh.iKyDiL0HBHCgVXt4VYrYyS0QGb0QWOh.iKybSMh.xPnElatUFa27TczAWcz0iHv3BMybSMh.xPnElatUFa37TczAWcz0iHv3RMh.xPnElatUFa47TczAWcz0iHv3RM1HSMh.xPnElatUFaw.yS0QGb0QWOh.iK1HSMh.xPnElatUFawDyS0QGb0QWOh.iK1fyM0HBHCgVXt4VYrEiLOUGcvUGc8HBLtbSMh.xPnElatUFawLyS0QGb0QWOh.iK3DiL0HBHCgVXt4VYrECMOUGcvUGc8HBLtfyM0HBHCgVXt4VYrESMOUGcvUGc8HBLtjyL2TiHfLDZg4lakwVL17TczAWcz0iHw3BLh.RSo4lSuQWY8HBLt.iHfzTX34zazUVOhDiKvHBHTIWXtMGbuMWY8HBLtTiHfLEcuAWPrwlSuQWYy0iHv3BLh.xTzk1XqkmSuQWYCgVXt4VYr0iHv3BLh.xTzk1XqkmSuQWYVUFauMVZzkWOh.iK0HBHC0hLe4zazU1St8EL8HBLt.iHfPjXsHyWN8Fck8jaeESOh.iKvHBHD0hLe4zazU1St8kL8HBLt.iHfTjXsHyWN8Fck8jaeMSOh.iKvHBHE0hLe4zazU1St8EM8HBLt.iHfXTKx7kSuQWYO41W0ziHv3BLh.xQh0hLe4zazU1St8kM8HBLt.iHfbTKx7kSuQWYO41W2ziHv3BLh.RPh0hLe4zazU1St8EN8HBLt.iHfDTKx7kSuQWYO41W4ziHv3BLh.hPh0hLe4zazU1St8ULvziHv3BLh.hPsHyWN8Fck8jaeESL8HBLt.iHfLTKw7kSuQWYO41WwHSOh.iKvHBHDIVKw7kSuQWYO41WwLSOh.iKvHBHD0RLe4zazU1St8ULzziHv3BLh.RQh0RLe4zazU1St8UL0ziHv3BLh.RQsDyWN8Fck8jaeEiM8HBLt.iHfXTKw7kSuQWYO41WwbSOh.iKvHBHGIVKw7kSuQWYO41WwfSOh.iKvHBHG0RLe4zazU1St8UL4ziHv3BLh.RPh0RLe4zazU1St8kLvziHv3BLh.RPsDyWN8Fck8jaeISL8HBLt.iHfHjXsDyWN8Fck8jaeIiL8HBLt.iHfHTKw7kSuQWYO41WxLSOh.iKvHBHCAyWN8Fck8jaeICM8HBLt.iHfPjXv7kSuQWYO41WxTSOh.iKvHBHDAyWN8Fck8jaeIiM8HBLt.iHfTjXv7kSuQWYO41WxbSOh.iKvHBHEAyWN8Fck8jaeICN8HBLt.iHfXDLe4zazU1St8kL4ziHv3BLh.xQhAyWN8Fck8jaeMCL8HBLt.iHfbDLe4zazU1St80LwziHv3BLh.RPhAyWN8Fck8jaeMiL8HBLt.iHfDDLe4zazU1St80LyziHv3BLh.hPhAyWN8Fck8jaeMCM8HBLt.iHfHDLe4zazU1St80L0ziHv3BLh.xPw7kSuQWYO41WyXSOh.iKvHBHDIVLe4zazU1St80L2ziHv3BLh.BQw7kSuQWYO41WyfSOh.iKvHBHEIVLe4zazU1St80L4ziHv3BLh.RQw7kSuQWYO41Wz.SOh.iKvHBHFEyWN8Fck8jaeQSL8HBLt.iHfbjXw7kSuQWYO41WzHSOh.iKvHBHGEyWN8Fck8jaeQyL8HBLt.iHfDjXw7kSuQWYO41WzPSOh.iKvHBHAEyWN8Fck8jaeQSM8HBLt.iHfHjXw7kSuQWYO41WzXSOh.iKvHBHBEyWN8Fck8jaeQyM8HBLt.iHfLjLe4zazU1St8EM3ziHv3BLh.BQhIyWN8Fck8jaeQSN8HBLt.iHfPjLe4zazU1St8UMvziHv3BLh.RQhIyWN8Fck8jaeUSL8HBLt.iHfTjLe4zazU1St8UMxziHv3BLh.hQx7kSuQWYO41W0LSOh.iKvHBHGIlLe4zazU1St8UMzziHv3BLh.xQx7kSuQWYO41W0TSOh.iKvHBHAIlLe4zazU1St8UM1ziHv3BLh.RPx7kSuQWYO41W0bSOh.iKvHBHBIlLe4zazU1St8UM3ziHv3BLh.hPx7kSuQWYO41W0jSOh.iKvHBHCMyWN8Fck8jaeYCL8HBLt.iHfPjXy7kSuQWYO41W1DSOh.iKvHBHDMyWN8Fck8jaeYiL8HBLt.iHfTjXy7kSuQWYO41W1LSOh.iKvHBHEMyWN8Fck8jaeYCM8HBLt.iHfXzLe4zazU1St8kM0ziHv3BLh.xQhMyWN8Fck8jaeYiM8HBLt.iHfbzLe4zazU1St8kM2ziHv3BLh.RPhMyWN8Fck8jaeYCN8HBLt.iHfDzLe4zazU1St8kM4ziHv3BLh.hPhMyWN8Fck8jaecCL8HBLt.iHfHzLe4zazU1St80MwziHv3BLh.xPz7kSuQWYO41W2HSOh.iKvHBHDIFMe4zazU1St80MyziHv3BLh.BQz7kSuQWYO41W2PSOh.iKvHBHEIFMe4zazU1St80M0ziHv3BLh.RQz7kSuQWYO41W2XSOh.iKvHBHFQyWN8Fck8jaecyM8HBLt.iHfbjXz7kSuQWYO41W2fSOh.iKvHBHGQyWN8Fck8jaecSN8HBLt.iHfDjXz7kSuQWYO41W3.SOh.iKvHBHAQyWN8Fck8jaegSL8HBLt.iHfHjXz7kSuQWYO41W3HSOh.iKvHBHBQyWN8Fck8jaegyL8HBLt.iHfLTMe4zazU1St8ENzziHv3BLh.BQhUyWN8Fck8jaegSM8HBLt.iHfPTMe4zazU1St8EN1ziHv3BLh.RQhUyWN8Fck8jaegyM8HBLt.iHfTTMe4zazU1St8EN3ziHv3BLh.hQ07kSuQWYO41W3jSOh.iKvHBHGIVMe4zazU1St8UNvziHv3BLh.xQ07kSuQWYO41W4DSOh.iKvHBHAIVMe4zazU1St8UNxziHv3BLh.RP07kSuQWYO41W4LSOh.iKvHBHBIVMe4zazU1St8UNzziHv3BLh.hP07kSuQWYO41W4TSOh.iKvHBHCYyWN8Fck8jaekiM8HBLt.iHfPjX17kSuQWYO41W4bSOh.iKvHBHDYyWN8Fck8jaekCN8HBLt.iHfTjX17kSuQWYO41W4jSOh.iKvHBHEYyWN8Fck8jaeECLvziHv3BLh.hQ17kSuQWYO41Ww.SL8HBLt.iHfbjX17kSuQWYO41Ww.iL8HBLt.iHfbjMe4zazU1St8ULvLSOh.iKvHBHAIlMe4zazU1St8ULvPSOh.iKvHBHAYyWN8Fck8jaeECL0ziHv3BLh.hPhYyWN8Fck8jaeECL1ziHv3BLh.hP17kSuQWYO41Ww.yM8HBLt.iHfLzMe4zazU1St8ULvfSOh.iKvHBHDI1Me4zazU1St8ULvjSOh.iKvHBHDcyWN8Fck8jaeESLvziHv3BLh.RQhcyWN8Fck8jaeESLwziHv3BLh.RQ27kSuQWYO41WwDiL8HBLt.iHfXzMe4zazU1St8ULwLSOh.iKvHBHGI1Me4zazU1St8ULwPSOh.iKvHBHGcyWN8Fck8jaeESL0ziHv3BLh.RPhcyWN8Fck8jaeESL1ziHv3BLh.RP27kSuQWYO41WwDyM8HBLt.iHfHjX27kSuQWYO41WwDCN8HBLt.iHfHzMe4zazU1St8ULwjSOh.iKvHBHCgyWN8Fck8jaeEiLvziHv3BLh.BQhgyWN8Fck8jaeEiLwziHv3BLh.BQ37kSuQWYO41WwHiL8HBLt.iHfTjX37kSuQWYO41WwHyL8HBLt.iHfTDNe4zazU1St8ULxPSOh.iKvHBHFgyWN8Fck8jaeEiL0ziHv3BLh.xQhgyWN8Fck8jaeEiL1ziHv3BLh.xQ37kSuQWYO41WwHyM8HBLt.iHfzTZt4zazUlUkw1aikFc40iHv3BLh.RSggmSuQWYVUFauMVZzkWOhDiKvHBHMklaSMVXrUFYN8FckYUYr81XoQWd8HBLt.iHfzTX3M0XgwVYj4zazUlUkw1aikFc40iHw3BLh.xS0QGb0QmUkw1aikFc40zajUVOh.iKvHBHPMTOh.iKvHBHCMDL8HBLt.iHfLzPwziHv3BLh.xPCISOh.iKvHBHCMzL8HBLt.iHfLzPzziHv3BLh.xPCUSOh.iKvHBHCMjM8HBLt.iHfLzP2ziHv3BLh.xPCgSOh.iKvHBHCMTN8HBLt.iHfLzPw.SOh.iKvHBHCMTLwziHv3BLh.xPCEiL8HBLt.iHfLzPwLSOh.iKvHBHCMTLzziHv3BLh.xPCESM8HBLt.iHfLzPwXSOh.iKvHBHCMTL2ziHv3BLh.xPCECN8HBLt.iHfLzPwjSOh.iKvHBHCMjLvziHv3BLh.xPCISL8HBLt.iHfLzPxHSOh.iKvHBHCMjLyziHv3BLh.xPCICM8HBLt.iHfLzPxTSOh.iKvHBHCMjL1ziHv3BLh.xPCIyM8HBLt.iHfLzPxfSOh.iKvHBHCMjL4ziHv3BLh.xPCMCL8HBLt.iHfLzPyDSOh.iKvHBHCMzLxziHv3BLh.xPCMyL8HBLt.iHfLzPyPSOh.iKvHBHCMzL0ziHv3BLh.xPCMiM8HBLt.iHfLzPybSOh.iKvHBHCMzL3ziHv3BLh.xPCMSN8HBLt.iHfLzPz.SOh.iKvHBHCMDMwziHv3BLh.xPCQiL8HBLt.iHfLzPzLSOh.iKvHBHCMDMzziHv3BLh.xPCQSM8HBLt.iHfLzPzXSOh.iKvHBHCMDM2ziHv3BLh.xPCQCN8HBLt.iHfLzPzjSOh.iKvHBHCMTMvziHv3BLh.xPCUSL8HBLt.iHfLzP0HSOh.iKvHBHCMTMyziHv3BLh.xPCUCM8HBLt.iHfLzP0TSOh.iKvHBHCMTM1ziHv3BLh.xPCUyM8HBLt.iHfLzP0fSOh.iKvHBHCMTM4ziHv3BLh.xPCYCL8HBLt.iHfLzP1DSOh.iKvHBHCMjMxziHv3BLh.xPCYyL8HBLt.iHfLzP1PSOh.iKvHBHCMjM0ziHv3BLh.xPCYiM8HBLt.iHfLzP1bSOh.iKvHBHCMjM3ziHv3BLh.xPCYSN8HBLt.iHfLzP2.SOh.iKvHBHCMzMwziHv3BLh.xPCciL8HBLt.iHfLzP2LSOh.iKvHBHCMzMzziHv3BLh.xPCcSM8HBLt.iHfLzP2XSOh.iKvHBHCMzM2ziHv3BLh.xPCcCN8HBLt.iHfLzP2jSOh.iKvHBHCMDNvziHv3BLh.xPCgSL8HBLt.iHfLzP3HSOh.iKvHBHCMDNyziHv3BLh.xPCgCM8HBLt.iHfLzP3TSOh.iKvHBHCMDN1ziHv3BLh.xPCgyM8HBLt.iHfLzP3fSOh.iKvHBHCMDN4ziHv3BLh.xPCkCL8HBLt.iHfLzP4DSOh.iKvHBHCMTNxziHv3BLh.xPCkyL8HBLt.iHfLzP4PSOh.iKvHBHCMTN0ziHv3BLh.xPCkiM8HBLt.iHfLzP4bSOh.iKvHBHCMTN3ziHv3BLh.xPCkSN8HBLt.iHfLzPw.CL8HBLt.iHfLzPw.SL8HBLt.iHfLzPw.iL8HBLt.iHfLzPw.yL8HBLt.iHfLzPw.CM8HBLt.iHfLzPw.SM8HBLt.iHfLzPw.iM8HBLt.iHfLzPw.yM8HBLt.iHfLzPw.CN8HBLt.iHfLzPw.SN8HBLt.iHfLzPwDCL8HBLt.iHfLzPwDSL8HBLt.iHfLzPwDiL8HBLt.iHfLzPwDyL8HBLt.iHfLzPwDCM8HBLt.iHfLzPwDSM8HBLt.iHfLzPwDiM8HBLt.iHfLzPwDyM8HBLt.iHfLzPwDCN8HBLt.iHfLzPwDSN8HBLt.iHfLzPwHCL8HBLt.iHfLzPwHSL8HBLt.iHfLzPwHiL8HBLt.iHfLzPwHyL8HBLt.iHfLzPwHCM8HBLt.iHfLzPwHSM8HBLt.iHfLzPwHiM8HBLt.iHfLzPwHyM8HBLt.iHf.UZzMFZhUlaj0iHv3BLh.RPlQWYxQ2a0MFZ8HBLtTiHfzzat8FSucWYyQ2StwVd8HBLt.iHfzzat8FRocFZkMGcO4Fa40iHv3BLh.hPr81Xq4zazU1St0iHv3BLh.hPr81Xq4zazU1SlYVOh.iKvHBHBw1aisFToQ2XnIVYtQVOh.iKvHBHBw1aisVPlQWYxQ2a0MFZ8HBLt.iHfHDauM1ZP8Fa4Q2a0MFZ8HBLt.iHfHDauM1ZC8lazI2arwVYxMWOh.iKvHBHBw1aisVSuQ1UnUVYr0iHv3BLh.hPr81XqY0arUWak0iHv3BLh.hPr81XqMUcyQWXo4VOh.iKvHBHxk1YeUWZj0iHvHxK9..
// Tell GP Script the names of our widgets and FLAGS
var
MIDIin : MidiInBlock;
//---------------- variables declaration of presets radio buttons -----------------------------//
doSwitching : Boolean
Button0, Button1, Button2, Button3, Button4, Button5, Button6, Button7 : Widget
ButtonProgramNumber : Integer Array
ButtonBankNumber : Integer Array
Button_Locker : Integer Array
ButtonWidget : Widget Array
CurrentButtonID : Integer
//----------------- End of variables declaration of presets radio buttons ----------------------//
initialization
OpenLogWindow(); // For convenience
Print("=== INITIALIZATION ''" + GetRackspaceName() + "'' called ===");
Print(" ");
//--------------------- Initialization of presets radio buttons ------------------------------//
doSwitching = True; // Do Rackspace/Variation switching
// doSwitching = False;// Prevent Rackspace/Variation switching
ButtonProgramNumber = [0,1,2,3,4,5,6,7]
ButtonBankNumber = [0,0,0,0,0,0,0,0]
Button_Locker = [0,0,0,0,0,0,0,0]
ButtonWidget = [Button0,Button1,Button2,Button3,Button4,Button5,Button6,Button7]
CurrentButtonID = 0;
//Label = [Label1,Label2,Label3,Label4,Label5,Label6,Label7,Label8]
//---------------------- End of Initialization of presets radio buttons ----------------------//
End
//------------------- Functions and callbacks of presets radio buttons -----------------------//
// Activate one preset radio button while deactivating the others
Function ActivateRadioButton(ButtonID : Integer)
var
GlobalExternal_RackspaceName : String
GlobalExternal_WidgetName : String
GlobalExternalWidget : ExternalWidget
value : Double
i : Integer
//----- IDENTIFY THE GLOBAL RACKSPACE WHERE TO STORE THE ID OF THE ACTIVED PRESET RADIO BUTTON
GlobalExternal_RackspaceName = "Ivory";
GlobalExternal_WidgetName = "Label0";
// Get a handle on the global external widget label
If (!GlobalExternalWidget.BindExternalWidget(GlobalExternal_WidgetName, GlobalExternal_RackspaceName))
Then
Notify("In rackspace <"+GetRackspaceName()+"> script, couldn't bind <"+GlobalExternal_WidgetName+"> in <"+GlobalExternal_RackspaceName+">!");
Else
// If the function is called with -1 parameter, retrieves the GlobalID value
If (ButtonID<0)
Then
// Encode the ID Integer in the widget double value
ButtonID = Round(GlobalExternalWidget.GetExternalWidgetValue() * 1000.0)-990;
Print(" =======>");
Print(" =======> Only Button"+ButtonID+" is ON according to global value !");
Print(" =======>");
End
// Encode the ID Integer in the widget double value
value = (990.0 + IntToFloat(ButtonID)) / 1000.0;
// Store the current active preset button ID at a global level
GlobalExternalWidget.SetExternalWidgetValue(value);
For i=0; i<=7; i=i+1 Do
If (i==ButtonID)
Then
if (GetWidgetValue(ButtonWidget[i])!=1.0)
Then
Button_Locker[i] = Button_Locker[i]+1;
SetWidgetValue(ButtonWidget[i], 1.0);
End
Else
if (GetWidgetValue(ButtonWidget[i])!=0.0)
Then
Button_Locker[i] = Button_Locker[i]+1;
SetWidgetValue(ButtonWidget[i], 0.0);
End
End
End
End
End
// Called when you switch variations
On Variation(oldVariation : integer, newVariation : integer)
Print("");
Print(">>>>>>>>>> Switched to Variation Number : "+ GetCurrentVariation() );
Print("");
End
// Called when rackspace is activated
On Activate
Print("###################################################");
Print("######## Activation callback of "+GetRackspaceName()+" rackspace");
doSwitching = False;
// Using -1 value, Activates the preset radio button already activated at global level
ActivateRadioButton(-1);
doSwitching = True;
Print("###################################################");
Print("");
End
// Called when you push the Button0 widget
On WidgetValueChanged(newValue : double) from Button0
var ID,i : Integer
//Button ID for this widget button callback
ID =0;
Print("Button"+ID+" callback start ============");
If (Button_Locker[ID] > 0)
Then
Button_Locker[ID] = Button_Locker[ID]-1;
Print("=== SILENT CALL ===");
Else
If (newValue == 1.0)
Then
ActivateRadioButton(ID);
// Action of te button
If (doSwitching) Then SwitchToProgramNumber(ButtonProgramNumber[ID],ButtonBankNumber[ID]); End //Program,Bank
//SendNow(MIDIin, MakeProgramChangeMessageEx(0,0));//Program, Channel
For i=0; i<=7; i=i+1 Do
If (GetWidgetValue(ButtonWidget[i]) == 1.0)
Then Print(" Button"+i+": ON");
Else Print(" Button"+i+": OFF");
End
End
Else
Print(" Button"+ID+" new value is <OFF>! Let's Check if it is OK at global level");
ActivateRadioButton(-1);
End
End
Print("Button"+ID+" callback stop ============");
Print(" ");
End
// Called when you push the Button1 widget
On WidgetValueChanged(newValue : double) from Button1
var ID,i : Integer
//Button ID for this widget button callback
ID =1;
Print("Button"+ID+" callback start ============");
If (Button_Locker[ID] > 0)
Then
Button_Locker[ID] = Button_Locker[ID]-1;
Print("=== SILENT CALL ===");
Else
If (newValue == 1.0)
Then
ActivateRadioButton(ID);
// Action of te button
If (doSwitching) Then SwitchToProgramNumber(ButtonProgramNumber[ID],ButtonBankNumber[ID]); End //Program,Bank
//SendNow(MIDIin, MakeProgramChangeMessageEx(0,0));//Program, Channel
For i=0; i<=7; i=i+1 Do
If (GetWidgetValue(ButtonWidget[i]) == 1.0)
Then Print(" Button"+i+": ON");
Else Print(" Button"+i+": OFF");
End
End
Else
Print(" Button"+ID+" new value is <OFF>! Let's Check if it is OK at global level");
ActivateRadioButton(-1);
End
End
Print("Button"+ID+" callback stop ============");
Print(" ");
End
// Called when you push the Button2 widget
On WidgetValueChanged(newValue : double) from Button2
var ID,i : Integer
//Button ID for this widget button callback
ID =2;
Print("Button"+ID+" callback start ============");
If (Button_Locker[ID] > 0)
Then
Button_Locker[ID] = Button_Locker[ID]-1;
Print("=== SILENT CALL ===");
Else
If (newValue == 1.0)
Then
ActivateRadioButton(ID);
// Action of te button
If (doSwitching) Then SwitchToProgramNumber(ButtonProgramNumber[ID],ButtonBankNumber[ID]); End //Program,Bank
//SendNow(MIDIin, MakeProgramChangeMessageEx(0,0));//Program, Channel
For i=0; i<=7; i=i+1 Do
If (GetWidgetValue(ButtonWidget[i]) == 1.0)
Then Print(" Button"+i+": ON");
Else Print(" Button"+i+": OFF");
End
End
Else
Print(" Button"+ID+" new value is <OFF>! Let's Check if it is OK at global level");
ActivateRadioButton(-1);
End
End
Print("Button"+ID+" callback stop ============");
Print(" ");
End
// Called when you push the Button3 widget
On WidgetValueChanged(newValue : double) from Button3
var ID,i : Integer
//Button ID for this widget button callback
ID =3;
Print("Button"+ID+" callback start ============");
If (Button_Locker[ID] > 0)
Then
Button_Locker[ID] = Button_Locker[ID]-1;
Print("=== SILENT CALL ===");
Else
If (newValue == 1.0)
Then
ActivateRadioButton(ID);
// Action of te button
If (doSwitching) Then SwitchToProgramNumber(ButtonProgramNumber[ID],ButtonBankNumber[ID]); End //Program,Bank
//SendNow(MIDIin, MakeProgramChangeMessageEx(0,0));//Program, Channel
For i=0; i<=7; i=i+1 Do
If (GetWidgetValue(ButtonWidget[i]) == 1.0)
Then Print(" Button"+i+": ON");
Else Print(" Button"+i+": OFF");
End
End
Else
Print(" Button"+ID+" new value is <OFF>! Let's Check if it is OK at global level");
ActivateRadioButton(-1);
End
End
Print("Button"+ID+" callback stop ============");
Print(" ");
End
// Called when you push the Button1 widget
On WidgetValueChanged(newValue : double) from Button4
var ID,i : Integer
//Button ID for this widget button callback
ID =4;
Print("Button"+ID+" callback start ============");
If (Button_Locker[ID] > 0)
Then
Button_Locker[ID] = Button_Locker[ID]-1;
Print("=== SILENT CALL ===");
Else
If (newValue == 1.0)
Then
ActivateRadioButton(ID);
// Action of te button
If (doSwitching) Then SwitchToProgramNumber(ButtonProgramNumber[ID],ButtonBankNumber[ID]); End //Program,Bank
//SendNow(MIDIin, MakeProgramChangeMessageEx(0,0));//Program, Channel
For i=0; i<=7; i=i+1 Do
If (GetWidgetValue(ButtonWidget[i]) == 1.0)
Then Print(" Button"+i+": ON");
Else Print(" Button"+i+": OFF");
End
End
Else
Print(" Button"+ID+" new value is <OFF>! Let's Check if it is OK at global level");
ActivateRadioButton(-1);
End
End
Print("Button"+ID+" callback stop ============");
Print(" ");
End
//------------------- End of functions and callbacks of presets radio buttons ----------------//
403.VMjLgnX....OPwTUGkjSSQUPTUDHig1WvziHw3BL1fCN4.SM2DSM4PiLyfiL3DiL0HBHsUGck80Xn8EL8HBLh.xXn8UL8HRLt.iHfzVczU1Wig1WwziHvHBHig1WxziHv3BN3XCM1XyMzDSM1DCN3jiMzfCMzHBHsUGck80Xn8kL8HBLh.xXn80L8HRLtDCLzTiLvHCLwXCNy.CMzPyLyTSNh.Ra0QWYeMFZeMSOh.iHfLFZeQSOhDiKvHBHsUGck80Xn8EM8HBLh.xXn8UM8HRLt.iHfzVczU1Wig1W0ziHvHBHig1W1ziHw3BLh.Ra0QWYeMFZeYSOh.iHfLFZecSOhDiKvHBHsUGck80Xn80M8HBLh.xXn8EN8HRLt.iHfzVczU1Wig1W3ziHvHBHig1W4ziHv3BN3XCM1XyMzDSM1DCN3jiMzfCMzHBHsUGck80Xn8UN8HBLh.xXn8ULvziHw3BLh.Ra0QWYeMFZeECL8HBLh.xXn8ULwziHw3BLh.Ra0QWYeMFZeESL8HBLh7hO..
346.VMjLgDU....OPwTUGkjSSQUPTUDHig1WvziHw3BLh.Ra0QWYeMFZeASOh.iHfLFZeESOhDiKvHBHsUGck80Xn8UL8HBLh.xXn8kL8HRLt.iHfzVczU1Wig1WxziHvHBHig1WyziHw3BLh.Ra0QWYeMFZeMSOh.iHfLFZeQSOh.iKzjiMwfiMwXyMv.SL2HCMxPyLwXiHfzVczU1Wig1WzziHvHBHig1W0ziHw3BLh.Ra0QWYeMFZeUSOh.iHfLFZeYSOhDiKvHBHsUGck80Xn8kM8HBLh.xXn80M8HRLt.iHfzVczU1Wig1W2ziHvHBHig1W3ziHw3BLh.Ra0QWYeMFZegSOh.iHfLFZekSOhDiKvHBHsUGck80Xn8UN8HBLh.xXn8ULvziHw3BLh.Ra0QWYeMFZeECL8HBLh.xXn8ULwziHw3BLh.Ra0QWYeMFZeESL8HBLh7hO..
4868.VMjLgruD...OPwTUGkjSSQUPTUDHCgVXt4VYrEyS0QGb0QWOh.iKvXiL0HBHCgVXt4VYrIyS0QGb0QWOh.iKwHSMh.xPnElatUFay7TczAWcz0iHv3RL3bSMh.xPnElatUFaz7TczAWcz0iHv3hL0HBHCgVXt4VYrUyS0QGb0QWOh.iKyDiL0HBHCgVXt4VYrYyS0QGb0QWOh.iKybSMh.xPnElatUFa27TczAWcz0iHv3BMybSMh.xPnElatUFa37TczAWcz0iHv3RMh.xPnElatUFa47TczAWcz0iHv3RM1HSMh.xPnElatUFaw.yS0QGb0QWOh.iK1HSMh.xPnElatUFawDyS0QGb0QWOh.iK1fyM0HBHCgVXt4VYrEiLOUGcvUGc8HBLtbSMh.xPnElatUFawLyS0QGb0QWOh.iK3DiL0HBHCgVXt4VYrECMOUGcvUGc8HBLtfyM0HBHCgVXt4VYrESMOUGcvUGc8HBLtjyL2TiHfLDZg4lakwVL17TczAWcz0iHw3BLh.RSo4lSuQWY8HBLt.iHfzTX34zazUVOhDiKvHBHTIWXtMGbuMWY8HBLtTiHfLEcuAWPrwlSuQWYy0iHv3BLh.xTzk1XqkmSuQWYCgVXt4VYr0iHv3BLh.xTzk1XqkmSuQWYVUFauMVZzkWOh.iK0HBHC0hLe4zazU1St8EL8HBLt.iHfPjXsHyWN8Fck8jaeESOh.iKvHBHD0hLe4zazU1St8kL8HBLt.iHfTjXsHyWN8Fck8jaeMSOh.iKvHBHE0hLe4zazU1St8EM8HBLt.iHfXTKx7kSuQWYO41W0ziHv3BLh.xQh0hLe4zazU1St8kM8HBLt.iHfbTKx7kSuQWYO41W2ziHv3BLh.RPh0hLe4zazU1St8EN8HBLt.iHfDTKx7kSuQWYO41W4ziHv3BLh.hPh0hLe4zazU1St8ULvziHv3BLh.hPsHyWN8Fck8jaeESL8HBLt.iHfLTKw7kSuQWYO41WwHSOh.iKvHBHDIVKw7kSuQWYO41WwLSOh.iKvHBHD0RLe4zazU1St8ULzziHv3BLh.RQh0RLe4zazU1St8UL0ziHv3BLh.RQsDyWN8Fck8jaeEiM8HBLt.iHfXTKw7kSuQWYO41WwbSOh.iKvHBHGIVKw7kSuQWYO41WwfSOh.iKvHBHG0RLe4zazU1St8UL4ziHv3BLh.RPh0RLe4zazU1St8kLvziHv3BLh.RPsDyWN8Fck8jaeISL8HBLt.iHfHjXsDyWN8Fck8jaeIiL8HBLt.iHfHTKw7kSuQWYO41WxLSOh.iKvHBHCAyWN8Fck8jaeICM8HBLt.iHfPjXv7kSuQWYO41WxTSOh.iKvHBHDAyWN8Fck8jaeIiM8HBLt.iHfTjXv7kSuQWYO41WxbSOh.iKvHBHEAyWN8Fck8jaeICN8HBLt.iHfXDLe4zazU1St8kL4ziHv3BLh.xQhAyWN8Fck8jaeMCL8HBLt.iHfbDLe4zazU1St80LwziHv3BLh.RPhAyWN8Fck8jaeMiL8HBLt.iHfDDLe4zazU1St80LyziHv3BLh.hPhAyWN8Fck8jaeMCM8HBLt.iHfHDLe4zazU1St80L0ziHv3BLh.xPw7kSuQWYO41WyXSOh.iKvHBHDIVLe4zazU1St80L2ziHv3BLh.BQw7kSuQWYO41WyfSOh.iKvHBHEIVLe4zazU1St80L4ziHv3BLh.RQw7kSuQWYO41Wz.SOh.iKvHBHFEyWN8Fck8jaeQSL8HBLt.iHfbjXw7kSuQWYO41WzHSOh.iKvHBHGEyWN8Fck8jaeQyL8HBLt.iHfDjXw7kSuQWYO41WzPSOh.iKvHBHAEyWN8Fck8jaeQSM8HBLt.iHfHjXw7kSuQWYO41WzXSOh.iKvHBHBEyWN8Fck8jaeQyM8HBLt.iHfLjLe4zazU1St8EM3ziHv3BLh.BQhIyWN8Fck8jaeQSN8HBLt.iHfPjLe4zazU1St8UMvziHv3BLh.RQhIyWN8Fck8jaeUSL8HBLt.iHfTjLe4zazU1St8UMxziHv3BLh.hQx7kSuQWYO41W0LSOh.iKvHBHGIlLe4zazU1St8UMzziHv3BLh.xQx7kSuQWYO41W0TSOh.iKvHBHAIlLe4zazU1St8UM1ziHv3BLh.RPx7kSuQWYO41W0bSOh.iKvHBHBIlLe4zazU1St8UM3ziHv3BLh.hPx7kSuQWYO41W0jSOh.iKvHBHCMyWN8Fck8jaeYCL8HBLt.iHfPjXy7kSuQWYO41W1DSOh.iKvHBHDMyWN8Fck8jaeYiL8HBLt.iHfTjXy7kSuQWYO41W1LSOh.iKvHBHEMyWN8Fck8jaeYCM8HBLt.iHfXzLe4zazU1St8kM0ziHv3BLh.xQhMyWN8Fck8jaeYiM8HBLt.iHfbzLe4zazU1St8kM2ziHv3BLh.RPhMyWN8Fck8jaeYCN8HBLt.iHfDzLe4zazU1St8kM4ziHv3BLh.hPhMyWN8Fck8jaecCL8HBLt.iHfHzLe4zazU1St80MwziHv3BLh.xPz7kSuQWYO41W2HSOh.iKvHBHDIFMe4zazU1St80MyziHv3BLh.BQz7kSuQWYO41W2PSOh.iKvHBHEIFMe4zazU1St80M0ziHv3BLh.RQz7kSuQWYO41W2XSOh.iKvHBHFQyWN8Fck8jaecyM8HBLt.iHfbjXz7kSuQWYO41W2fSOh.iKvHBHGQyWN8Fck8jaecSN8HBLt.iHfDjXz7kSuQWYO41W3.SOh.iKvHBHAQyWN8Fck8jaegSL8HBLt.iHfHjXz7kSuQWYO41W3HSOh.iKvHBHBQyWN8Fck8jaegyL8HBLt.iHfLTMe4zazU1St8ENzziHv3BLh.BQhUyWN8Fck8jaegSM8HBLt.iHfPTMe4zazU1St8EN1ziHv3BLh.RQhUyWN8Fck8jaegyM8HBLt.iHfTTMe4zazU1St8EN3ziHv3BLh.hQ07kSuQWYO41W3jSOh.iKvHBHGIVMe4zazU1St8UNvziHv3BLh.xQ07kSuQWYO41W4DSOh.iKvHBHAIVMe4zazU1St8UNxziHv3BLh.RP07kSuQWYO41W4LSOh.iKvHBHBIVMe4zazU1St8UNzziHv3BLh.hP07kSuQWYO41W4TSOh.iKvHBHCYyWN8Fck8jaekiM8HBLt.iHfPjX17kSuQWYO41W4bSOh.iKvHBHDYyWN8Fck8jaekCN8HBLt.iHfTjX17kSuQWYO41W4jSOh.iKvHBHEYyWN8Fck8jaeECLvziHv3BLh.hQ17kSuQWYO41Ww.SL8HBLt.iHfbjX17kSuQWYO41Ww.iL8HBLt.iHfbjMe4zazU1St8ULvLSOh.iKvHBHAIlMe4zazU1St8ULvPSOh.iKvHBHAYyWN8Fck8jaeECL0ziHv3BLh.hPhYyWN8Fck8jaeECL1ziHv3BLh.hP17kSuQWYO41Ww.yM8HBLt.iHfLzMe4zazU1St8ULvfSOh.iKvHBHDI1Me4zazU1St8ULvjSOh.iKvHBHDcyWN8Fck8jaeESLvziHv3BLh.RQhcyWN8Fck8jaeESLwziHv3BLh.RQ27kSuQWYO41WwDiL8HBLt.iHfXzMe4zazU1St8ULwLSOh.iKvHBHGI1Me4zazU1St8ULwPSOh.iKvHBHGcyWN8Fck8jaeESL0ziHv3BLh.RPhcyWN8Fck8jaeESL1ziHv3BLh.RP27kSuQWYO41WwDyM8HBLt.iHfHjX27kSuQWYO41WwDCN8HBLt.iHfHzMe4zazU1St8ULwjSOh.iKvHBHCgyWN8Fck8jaeEiLvziHv3BLh.BQhgyWN8Fck8jaeEiLwziHv3BLh.BQ37kSuQWYO41WwHiL8HBLt.iHfTjX37kSuQWYO41WwHyL8HBLt.iHfTDNe4zazU1St8ULxPSOh.iKvHBHFgyWN8Fck8jaeEiL0ziHv3BLh.xQhgyWN8Fck8jaeEiL1ziHv3BLh.xQ37kSuQWYO41WwHyM8HBLt.iHfzTZt4zazUlUkw1aikFc40iHv3BLh.RSggmSuQWYVUFauMVZzkWOhDiKvHBHMklaSMVXrUFYN8FckYUYr81XoQWd8HBLt.iHfzTX3M0XgwVYj4zazUlUkw1aikFc40iHw3BLh.xS0QGb0QmUkw1aikFc40zajUVOh.iKvHBHPMTOh.iKvHBHCMDL8HBLt.iHfLzPwziHv3BLh.xPCISOh.iKvHBHCMzL8HBLt.iHfLzPzziHv3BLh.xPCUSOh.iKvHBHCMjM8HBLt.iHfLzP2ziHv3BLh.xPCgSOh.iKvHBHCMTN8HBLt.iHfLzPw.SOh.iKvHBHCMTLwziHv3BLh.xPCEiL8HBLt.iHfLzPwLSOh.iKvHBHCMTLzziHv3BLh.xPCESM8HBLt.iHfLzPwXSOh.iKvHBHCMTL2ziHv3BLh.xPCECN8HBLt.iHfLzPwjSOh.iKvHBHCMjLvziHv3BLh.xPCISL8HBLt.iHfLzPxHSOh.iKvHBHCMjLyziHv3BLh.xPCICM8HBLt.iHfLzPxTSOh.iKvHBHCMjL1ziHv3BLh.xPCIyM8HBLt.iHfLzPxfSOh.iKvHBHCMjL4ziHv3BLh.xPCMCL8HBLt.iHfLzPyDSOh.iKvHBHCMzLxziHv3BLh.xPCMyL8HBLt.iHfLzPyPSOh.iKvHBHCMzL0ziHv3BLh.xPCMiM8HBLt.iHfLzPybSOh.iKvHBHCMzL3ziHv3BLh.xPCMSN8HBLt.iHfLzPz.SOh.iKvHBHCMDMwziHv3BLh.xPCQiL8HBLt.iHfLzPzLSOh.iKvHBHCMDMzziHv3BLh.xPCQSM8HBLt.iHfLzPzXSOh.iKvHBHCMDM2ziHv3BLh.xPCQCN8HBLt.iHfLzPzjSOh.iKvHBHCMTMvziHv3BLh.xPCUSL8HBLt.iHfLzP0HSOh.iKvHBHCMTMyziHv3BLh.xPCUCM8HBLt.iHfLzP0TSOh.iKvHBHCMTM1ziHv3BLh.xPCUyM8HBLt.iHfLzP0fSOh.iKvHBHCMTM4ziHv3BLh.xPCYCL8HBLt.iHfLzP1DSOh.iKvHBHCMjMxziHv3BLh.xPCYyL8HBLt.iHfLzP1PSOh.iKvHBHCMjM0ziHv3BLh.xPCYiM8HBLt.iHfLzP1bSOh.iKvHBHCMjM3ziHv3BLh.xPCYSN8HBLt.iHfLzP2.SOh.iKvHBHCMzMwziHv3BLh.xPCciL8HBLt.iHfLzP2LSOh.iKvHBHCMzMzziHv3BLh.xPCcSM8HBLt.iHfLzP2XSOh.iKvHBHCMzM2ziHv3BLh.xPCcCN8HBLt.iHfLzP2jSOh.iKvHBHCMDNvziHv3BLh.xPCgSL8HBLt.iHfLzP3HSOh.iKvHBHCMDNyziHv3BLh.xPCgCM8HBLt.iHfLzP3TSOh.iKvHBHCMDN1ziHv3BLh.xPCgyM8HBLt.iHfLzP3fSOh.iKvHBHCMDN4ziHv3BLh.xPCkCL8HBLt.iHfLzP4DSOh.iKvHBHCMTNxziHv3BLh.xPCkyL8HBLt.iHfLzP4PSOh.iKvHBHCMTN0ziHv3BLh.xPCkiM8HBLt.iHfLzP4bSOh.iKvHBHCMTN3ziHv3BLh.xPCkSN8HBLt.iHfLzPw.CL8HBLt.iHfLzPw.SL8HBLt.iHfLzPw.iL8HBLt.iHfLzPw.yL8HBLt.iHfLzPw.CM8HBLt.iHfLzPw.SM8HBLt.iHfLzPw.iM8HBLt.iHfLzPw.yM8HBLt.iHfLzPw.CN8HBLt.iHfLzPw.SN8HBLt.iHfLzPwDCL8HBLt.iHfLzPwDSL8HBLt.iHfLzPwDiL8HBLt.iHfLzPwDyL8HBLt.iHfLzPwDCM8HBLt.iHfLzPwDSM8HBLt.iHfLzPwDiM8HBLt.iHfLzPwDyM8HBLt.iHfLzPwDCN8HBLt.iHfLzPwDSN8HBLt.iHfLzPwHCL8HBLt.iHfLzPwHSL8HBLt.iHfLzPwHiL8HBLt.iHfLzPwHyL8HBLt.iHfLzPwHCM8HBLt.iHfLzPwHSM8HBLt.iHfLzPwHiM8HBLt.iHfLzPwHyM8HBLt.iHf.UZzMFZhUlaj0iHv3BLh.RPlQWYxQ2a0MFZ8HBLtTiHfzzat8FSucWYyQ2StwVd8HBLt.iHfzzat8FRocFZkMGcO4Fa40iHv3BLh.hPr81Xq4zazU1St0iHv3BLh.hPr81Xq4zazU1SlYVOh.iKvHBHBw1aisFToQ2XnIVYtQVOh.iKvHBHBw1aisVPlQWYxQ2a0MFZ8HBLt.iHfHDauM1ZP8Fa4Q2a0MFZ8HBLt.iHfHDauM1ZC8lazI2arwVYxMWOh.iKvHBHBw1aisVSuQ1UnUVYr0iHv3BLh.hPr81XqY0arUWak0iHv3BLh.hPr81XqMUcyQWXo4VOh.iKvHBHxk1YeUWZj0iHvHxK9..
// Tell GP Script the names of our widgets and FLAGS
var
SLOW_LED_BUTTON : Widget
FAST_LED_BUTTON : Widget
SPEED_SWITCH : Widget
SLOW_LED_BUTTON_DF : Boolean
FAST_LED_BUTTON_DF : Boolean
SPEED_SWITCH_DF : Boolean
MIDIin : MidiInBlock
//---------------- variables declaration of presets radio buttons -----------------------------//
doSwitching : Boolean
Button0, Button1, Button2, Button3, Button4, Button5, Button6, Button7 : Widget
ButtonProgramNumber : Integer Array
ButtonBankNumber : Integer Array
Button_Locker : Integer Array
ButtonWidget : Widget Array
CurrentButtonID : Integer
//----------------- End of variables declaration of presets radio buttons ----------------------//
initialization
OpenLogWindow(); // For convenience
Print("=== INITIALIZATION ''" + GetRackspaceName() + "'' called ===");
Print(" ");
SLOW_LED_BUTTON_DF = False
FAST_LED_BUTTON_DF = False
SPEED_SWITCH_DF = False
//--------------------- Initialization of presets radio buttons ------------------------------//
doSwitching = True; // Do Rackspace/Variation switching
// doSwitching = False;// Prevent Rackspace/Variation switching
ButtonProgramNumber = [0,1,2,3,4,5,6,7]
ButtonBankNumber = [0,0,0,0,0,0,0,0]
Button_Locker = [0,0,0,0,0,0,0,0]
ButtonWidget = [Button0,Button1,Button2,Button3,Button4,Button5,Button6,Button7]
CurrentButtonID = 0;
//Label = [Label1,Label2,Label3,Label4,Label5,Label6,Label7,Label8]
//---------------------- End of Initialization of presets radio buttons ----------------------//
End
//------------------- Functions and callbacks of presets radio buttons -----------------------//
// Activate one preset radio button while deactivating the others
Function ActivateRadioButton(ButtonID : Integer)
var
GlobalExternal_RackspaceName : String
GlobalExternal_WidgetName : String
GlobalExternalWidget : ExternalWidget
value : Double
i : Integer
//----- IDENTIFY THE GLOBAL RACKSPACE WHERE TO STORE THE ID OF THE ACTIVED PRESET RADIO BUTTON
GlobalExternal_RackspaceName = "Ivory";
GlobalExternal_WidgetName = "Label0";
// Get a handle on the global external widget label
If (!GlobalExternalWidget.BindExternalWidget(GlobalExternal_WidgetName, GlobalExternal_RackspaceName))
Then
Notify("In rackspace <"+GetRackspaceName()+"> script, couldn't bind <"+GlobalExternal_WidgetName+"> in <"+GlobalExternal_RackspaceName+">!");
Else
// If the function is called with -1 parameter, retrieves the GlobalID value
If (ButtonID<0)
Then
// Encode the ID Integer in the widget double value
ButtonID = Round(GlobalExternalWidget.GetExternalWidgetValue() * 1000.0)-990;
Print(" =======>");
Print(" =======> Only Button"+ButtonID+" is ON according to global value !");
Print(" =======>");
Else
// Encode the ID Integer in the widget double value
value = (990.0 + IntToFloat(ButtonID)) / 1000.0;
// Store the current active preset button ID at a global level
GlobalExternalWidget.SetExternalWidgetValue(value);
End
For i=0; i<=7; i=i+1 Do
If (i==ButtonID)
Then
if (GetWidgetValue(ButtonWidget[i])!=1.0)
Then
Button_Locker[i] = Button_Locker[i]+1;
SetWidgetValue(ButtonWidget[i], 1.0);
End
Else
if (GetWidgetValue(ButtonWidget[i])!=0.0)
Then
Button_Locker[i] = Button_Locker[i]+1;
SetWidgetValue(ButtonWidget[i], 0.0);
End
End
End
End
End
// Called when rackspace is activated
On Activate
Print("###################################################");
Print("######## Activation callback of "+GetRackspaceName()+" rackspace");
doSwitching = False;
// Using -1 value, Activates the preset radio button already activated at global level
ActivateRadioButton(-1);
doSwitching = True;
Print("###################################################");
Print("");
End
// Called when you push the Button0 widget
On WidgetValueChanged(newValue : double) from Button0
var ID,i : Integer
//Button ID for this widget button callback
ID =0;
Print("Button"+ID+" callback start ============");
If (Button_Locker[ID] > 0)
Then
Button_Locker[ID] = Button_Locker[ID]-1;
Print("=== SILENT CALL ===");
Else
If (newValue == 1.0)
Then
ActivateRadioButton(ID);
// Action of te button
If (doSwitching) Then SwitchToProgramNumber(ButtonProgramNumber[ID],ButtonBankNumber[ID]); End //Program,Bank
//SendNow(MIDIin, MakeProgramChangeMessageEx(0,0));//Program, Channel
For i=0; i<=7; i=i+1 Do
If (GetWidgetValue(ButtonWidget[i]) == 1.0)
Then Print(" Button"+i+": ON");
Else Print(" Button"+i+": OFF");
End
End
Else
Print(" Button"+ID+" new value is <OFF>! Let's Check if it is OK at global level");
ActivateRadioButton(-1);
End
End
Print("Button"+ID+" callback stop ============");
Print(" ");
End
// Called when you push the Button1 widget
On WidgetValueChanged(newValue : double) from Button1
var ID,i : Integer
//Button ID for this widget button callback
ID =1;
Print("Button"+ID+" callback start ============");
If (Button_Locker[ID] > 0)
Then
Button_Locker[ID] = Button_Locker[ID]-1;
Print("=== SILENT CALL ===");
Else
If (newValue == 1.0)
Then
ActivateRadioButton(ID);
// Action of te button
If (doSwitching) Then SwitchToProgramNumber(ButtonProgramNumber[ID],ButtonBankNumber[ID]); End //Program,Bank
//SendNow(MIDIin, MakeProgramChangeMessageEx(0,0));//Program, Channel
For i=0; i<=7; i=i+1 Do
If (GetWidgetValue(ButtonWidget[i]) == 1.0)
Then Print(" Button"+i+": ON");
Else Print(" Button"+i+": OFF");
End
End
Else
Print(" Button"+ID+" new value is <OFF>! Let's Check if it is OK at global level");
ActivateRadioButton(-1);
End
End
Print("Button"+ID+" callback stop ============");
Print(" ");
End
// Called when you push the Button2 widget
On WidgetValueChanged(newValue : double) from Button2
var ID,i : Integer
//Button ID for this widget button callback
ID =2;
Print("Button"+ID+" callback start ============");
If (Button_Locker[ID] > 0)
Then
Button_Locker[ID] = Button_Locker[ID]-1;
Print("=== SILENT CALL ===");
Else
If (newValue == 1.0)
Then
ActivateRadioButton(ID);
// Action of te button
If (doSwitching) Then SwitchToProgramNumber(ButtonProgramNumber[ID],ButtonBankNumber[ID]); End //Program,Bank
//SendNow(MIDIin, MakeProgramChangeMessageEx(0,0));//Program, Channel
For i=0; i<=7; i=i+1 Do
If (GetWidgetValue(ButtonWidget[i]) == 1.0)
Then Print(" Button"+i+": ON");
Else Print(" Button"+i+": OFF");
End
End
Else
Print(" Button"+ID+" new value is <OFF>! Let's Check if it is OK at global level");
ActivateRadioButton(-1);
End
End
Print("Button"+ID+" callback stop ============");
Print(" ");
End
// Called when you push the Button3 widget
On WidgetValueChanged(newValue : double) from Button3
var ID,i : Integer
//Button ID for this widget button callback
ID =3;
Print("Button"+ID+" callback start ============");
If (Button_Locker[ID] > 0)
Then
Button_Locker[ID] = Button_Locker[ID]-1;
Print("=== SILENT CALL ===");
Else
If (newValue == 1.0)
Then
ActivateRadioButton(ID);
// Action of te button
If (doSwitching) Then SwitchToProgramNumber(ButtonProgramNumber[ID],ButtonBankNumber[ID]); End //Program,Bank
//SendNow(MIDIin, MakeProgramChangeMessageEx(0,0));//Program, Channel
For i=0; i<=7; i=i+1 Do
If (GetWidgetValue(ButtonWidget[i]) == 1.0)
Then Print(" Button"+i+": ON");
Else Print(" Button"+i+": OFF");
End
End
Else
Print(" Button"+ID+" new value is <OFF>! Let's Check if it is OK at global level");
ActivateRadioButton(-1);
End
End
Print("Button"+ID+" callback stop ============");
Print(" ");
End
// Called when you push the Button4 widget
On WidgetValueChanged(newValue : double) from Button4
var ID,i : Integer
//Button ID for this widget button callback
ID =4;
Print("Button"+ID+" callback start ============");
If (Button_Locker[ID] > 0)
Then
Button_Locker[ID] = Button_Locker[ID]-1;
Print("=== SILENT CALL ===");
Else
If (newValue == 1.0)
Then
ActivateRadioButton(ID);
// Action of te button
If (doSwitching) Then SwitchToProgramNumber(ButtonProgramNumber[ID],ButtonBankNumber[ID]); End //Program,Bank
//SendNow(MIDIin, MakeProgramChangeMessageEx(0,0));//Program, Channel
For i=0; i<=7; i=i+1 Do
If (GetWidgetValue(ButtonWidget[i]) == 1.0)
Then Print(" Button"+i+": ON");
Else Print(" Button"+i+": OFF");
End
End
Else
Print(" Button"+ID+" new value is <OFF>! Let's Check if it is OK at global level");
ActivateRadioButton(-1);
End
End
Print("Button"+ID+" callback stop ============");
Print(" ");
End
//------------------- End of functions and callbacks of presets radio buttons ----------------//
// Called when you push the SLOW_LED_BUTTON widget
On WidgetValueChanged(newValue : double) from SLOW_LED_BUTTON
If SLOW_LED_BUTTON_DF
Then
SLOW_LED_BUTTON_DF = False
Else
FAST_LED_BUTTON_DF = True
SPEED_SWITCH_DF = True
//Print("SLOW_LED_BUTTON new value is " + newValue)
SetWidgetValue(FAST_LED_BUTTON, newValue ) // FAST_LED_BUTTON widget goes in reverse
SetWidgetValue(SPEED_SWITCH, newValue ) // SPEED_SWITCH widget goes in reverse
End
End
// Called when you push the FAST_LED_BUTTON widget
On WidgetValueChanged(newValue : double) from FAST_LED_BUTTON
If FAST_LED_BUTTON_DF
Then
FAST_LED_BUTTON_DF = False
Else
SLOW_LED_BUTTON_DF = True
SPEED_SWITCH_DF = True
//Print("FAST_LED_BUTTON new value is " + newValue)
SetWidgetValue(SLOW_LED_BUTTON, newValue ) // SLOW_LED_BUTTON widget goes in reverse
SetWidgetValue(SPEED_SWITCH, 1.0-newValue ) // SPEED_SWITCH widget goes in reverse
End
End
// Called when you push the SPEED_SWITCH widget
On WidgetValueChanged(newValue : double) from SPEED_SWITCH
If SPEED_SWITCH_DF
Then
SPEED_SWITCH_DF = False
Else
SLOW_LED_BUTTON_DF = True
FAST_LED_BUTTON_DF = True
//Print("SPEED_SWITCH new value is " + newValue)
SetWidgetValue(SLOW_LED_BUTTON, newValue ) // SLOW_LED_BUTTON widget goes in reverse
SetWidgetValue(FAST_LED_BUTTON, 1.0 - newValue ) // FAST_LED_BUTTON widget goes in reverse
End
End
// Called on switch to variations
On Variation(oldVariation : integer, newVariation : integer)
Print("");
Print(">>>>>>>>>> Switched to Variation Number : "+ GetCurrentVariation() );
Print("");
End