Here is the top view of my pedalboard
From the top left, is a el cheapo touch screen monitor from Amazon, underneath that is an M1 Mac Mini 16gB/512gB, to the right of the MacMini and still mostly underneath the monitor is an RME Digiface USB, and a 20 dollar analog to digital converter from Amazon that converts analog to SPDIF on lightpipe/TOSlink.
On the underside of the board not seen is a DoreMIDI expression pedal to MIDI converter.
After that on top are four volume knobs controlling the level of Send to PA, Send to FRFR, Send to IEM, and Guitar wireless output level attenuator before the analog to digital converter.
Top right is the XVive P58 which I am trying as an alternative to the Shure GLXD16+ I usually use on my boards.
Going down to the bottom right are three expression pedals. Furthest right normally shares keyboard and harmonizer volume, which of these is chosen by some switches in my rackspace panel. Sometimes it instead morphs clean sound into distortion.
Middle expression pedal is volume, and when pulled all the way back, opens a tuner plugin
The pedal on the left is for wah and uses a script to automatically turn it on when the pedal is moved by a certain user defined threshold.
Left of that is the Paint Audio MIDI Captain for switching
And finally on the bottom left are the pieces of an XVive U45 5.8gHz IEM system. Like the guitar wireless transmitter, these are all 3M Dual Locked to the board for charging when not in use
Here is my Output Bay
The output bay contains a PA send, an FRFR send and an IEM send. The PA and FRFR sends have Triton Audio phantom power blockers on them. Finally, there is a powercon connector for powering an FRFR speaker
Here is my input bay
Right now this side has the PA input from the PA monitor sends which can be mixed in with my pedalboard output volume before getting to the IEM send. Also a headphone out which carries the entire stereo signal from the computer if needed. The blank spot will be for tracks and click playback. Finally there is a powercon connector for bringing in the electricity to power the pedalboard
Here is my Rackspace view
The left majority of the top rack represents the Paint Audio MIDI Captain controller’s short press functions. Top row is a switch to enable a pitch shifter in the Helix Native instance “Helix Input” for tuning down half a step when needed. Next is a play stop button for the streaming media file player. After is an undefined switch that I may need different functions for per song or rackspace. After that is a sample play button for shorter cue type sounds or stingers. Finally on the top row of the pedalboard is a tap tempo switch
Bottom row are pedals to call up different parts or variations.
On the right side, top row are a series of switches. First one on the left indicates when the wah is on. This is mostly an indicator to show when the auto engage logic has been triggered to turn on the wah by moving the expression pedal past a user defined threshold. Directly underneath this switch is a slider controlled by my leftmost expression pedal, which both sends the signal to the auto engage switching system and controls the position of the wah (in this case the wah in the Helix Native instance named “Helix Input” in wiring view
Next two switches enable or bypass gain control internal Gig Performer plugins named “Clean Gain” and “Rhy Gain” who’s values are derived from the two sliders underneath these switches (normally) controlled by a single expression pedal, the middle expression pedal on my pedalboard. Also notice there is a knob hidden but visible in Edit view which is sent To Global Rackspace for handling the auto engage switch in the Global Rack which pops up a tuner when the middle expression pedal is all the way heel down. These two sliders and the knob are all on Widget Link D so as to be all controlled by the middle expression pedal
Next switch enables or bypasses an internal Gig Performer gain control plugin called “Harmony Gain” who’s value is derived from the red Slider underneath it, controlled by the rightmost expression pedal on Widget link C
Next switch enables or bypasses an internal Gig Performer gain control plugin called “KB Gain” also controlled by the rightmost expression pedal also on Widget link C
Next switch enables or bypasses an internal Gig Performer gain control plugin called “KB Controlled by Rhy Gain” which allows me to use the rightmost expression pedal to mix between the Rhy signal path and the Keyboard signal path (really useful for situations where I switch between keyboard and guitar sounds in the same measure). A hidden knob also on Widget link C but set to send reverse values actually controls the “KB Controlled by Rhy Gain” gain control plugin
Onto the bottom rack: At the top left is a group of radio buttons on Radio Group 1 that choses the key for the harmonizer. For my free jam rackspace, this is set to ignore variations, and I’d love for that to work on the Setlist view as well, but at the moment, ignore variation stays on for ALL songs referring to a particular rackspace
On the bottom right are widget switches to turn on and off specific FX in the Helix Input and Helix Output instances. At the farthest right of that switch group are two knobs controlling the treble parameter on the clean and distorted Amp sim plugins
On the far right are four sliders controlling a Gig Performer 8ch Audio Mixer plugin. This mixer is directly after the Gain control plugins and sets the level of the Clean, Rhythm/Lead, Harmony and Keyboard patches, before they go on to the final output FX
Finally, we have the Global Rackspace. Except for the extreme right side, the Global Rackspace is mostly the incredible GP Grid Selector made by @rank13 as detailed in this thread. At the far right is a slider and a switch that automatically opens a tuner GUI when the volume pedal is pulled all the way to heel down
Here is the edit view, in order to show some of the hidden knobs and mappings to make the pedalboard logic possible
Here is my wiring view
Here is my setlist view
Here is my Global Rackspace Script
Include “Includes Global Send CC20.gpscript”
Include “Includes Global Volume Calls Tuner.gpscript”
//Include “Global - Song Grid Working Use This 2.gpscript”
The two included files are here:
Includes Global Send CC20.gpscript:
Var
MidiOutPort : String = “U2MIDI Pro”
// Called when you switch rackspaces
On Rackspace(oldRackspaceIndex : integer, newRackspaceIndex : integer)
SendNowToMidiOutDevice(MidiOutPort, MakeControlChangeMessage(20, 1))
End
// Called when you switch to another song
//On Song(oldSongIndex : integer, newSongIndex : integer)
// SendNowToMidiOutDevice(MidiOutPort, MakeControlChangeMessage(20, 127))
//End
Includes Global Volume Calls Tuner.gpscript:
//$
// DO NOT EDIT THIS SECTION MANUALLY
Var
VolumePed : Widget
TunerSwitch : Widget
//$
PreviousTime : Double
DetectionTime : Integer
MinThreshold : Double
// Called automatically after script is loaded
Initialization
DetectionTime = 30 // Change this to the number of milliseconds that the wah is at position 0 (heel down) before it’s bypassed.
MinThreshold = 0.1 // Change this to whatever the mimimum wah pedal value should be before the wah is switched off (value between 0.0 and 1.0)
// tuner switch
//TunerState = False // We will start assuming the tuner is off when the rackspace loads
End
// Called when a widget value has changed
On WidgetValueChanged(newValue : double) from VolumePed
if GetWidgetValue(TunerSwitch) == 0.0 and newValue > MinThreshold then
SetWidgetValue(TunerSwitch, 1.0)
end
if newValue <= MinThreshold then
PreviousTime = ClockTime()
SetTimersRunning(true)
end
End
On TimerTick(ms : double)
if GetWidgetValue(VolumePed) <= MinThreshold and ClockTime() - PreviousTime >= DetectionTime then
SetTimersRunning(false)
SetWidgetValue(TunerSwitch, 0.0)
end
End //End of Wah
Here is my Current Rackspace Script:
Include “Includes Local Variations.gpscript”
Include “Includes Local Auto Engage.gpscript”
//Include “Includes Local Variations Discard.gpscript”
The two included files are here:
Include “Includes Local Variations.gpscript”:
//$
// DO NOT EDIT THIS SECTION MANUALLY
Var
V1, V2, V3, V4, V5 : Widget
VA : Widget Array = [V1, V2, V3, V4, V5]
white : Integer = RGBToColor(1.0, 1.0, 1.0, 1.0)
red : Integer = RGBToColor(1.0, 0.0, 0.0, 1.0)
black : Integer = RGBToColor(0.0, 0.0, 0.0, 1.0)
grey : Integer = RGBToColor(0.5, 0.5, 0.5, 1.0)
lightgrey : Integer = RGBToColor(0.8, 0.8, 0.8, 1.0)
darkgrey : Integer = RGBToColor(0.2, 0.2, 0.2, 1.0)
darkergrey : Integer = RGBToColor(0.15, 0.15, 0.15, 1.0)
Function UpdateWidgets(selected : Integer)
Var i : Integer
For i = 0; i < Size(VA); i = i + 1 Do
SetWidgetLabel(VA[i], GetVariationName(i))
If i == selected Then
SetLabelColor(VA[i], white)
SetWidgetFillColor(VA[i], red)
SetWidgetOutlineColor(VA[i], white)
SetWidgetOutlineThickness(VA[i], 3)
Else
SetLabelColor(VA[i], lightgrey)
SetWidgetFillColor(VA[i], darkgrey)
SetWidgetOutlineColor(VA[i], grey)
SetWidgetOutlineThickness(VA[i], 2)
End
End
End
// Called when you switch rackspaces
//On Rackspace(oldRackspaceIndex : integer, newRackspaceIndex : integer)
// UpdateWidgets(GetCurrentVariation())
//End
// Called when you switch variations
On Variation(oldVariationIndex : integer, newVariationIndex : integer)
UpdateWidgets(newVariationIndex)
End
Include “Includes Local Auto Engage.gpscript”:
//$
// DO NOT EDIT THIS SECTION MANUALLY
Var
WAH : Widget
WAH_ENABLE : Widget
//$
PreviousTime : Double
DetectionTime : Integer
MinThreshold : Double
// Called automatically after script is loaded
Initialization
DetectionTime = 70 // Change this to the number of milliseconds that the wah is at position 0 (heel down) before it’s bypassed.
MinThreshold = 0.1 // Change this to whatever the mimimum wah pedal value should be before the wah is switched off (value between 0.0 and 1.0)
End
// Called when a widget value has changed
On WidgetValueChanged(newValue : double) from WAH
if GetWidgetValue(WAH_ENABLE) == 0.0 and newValue > MinThreshold then
SetWidgetValue(WAH_ENABLE, 1.0)
end
if newValue <= MinThreshold then
PreviousTime = ClockTime()
SetTimersRunning(true)
end
End
On TimerTick(ms : double)
if GetWidgetValue(WAH) <= MinThreshold and ClockTime() - PreviousTime >= DetectionTime then
SetTimersRunning(false)
SetWidgetValue(WAH_ENABLE, 0.0)
end
End
Saving a draft now, but I will be showing my files and scripts and giving a better explanation of what everything is. Hopefully once its all laid out, people will have ideas on how I can make this better/safer/simpler






