Gig Performer is built around one idea that makes it unusually gamepad-friendly: a widget is an abstraction sitting between your hardware and your plugins. The widget learns a physical control once, then connects to whatever plugin parameter the current Rackspace needs. Swap songs and the physical control means something new without you touching the hardware. That is a perfect fit for a device with fourteen buttons and five analogue axes that lives in a gig bag. This guide sets up a Gig Performer gamepad MIDI controller rig with a DualSense, Xbox or 8BitDo pad using Universal Controller MIDI.
- What you do: publish the pad as a virtual MIDI port, enable it in Options → MIDI Ports, drop widgets onto a Rackspace panel, Learn them from the gamepad, connect each to a plugin parameter.
- What you need: Gig Performer 4 or 5, macOS or Windows, any supported controller, the bridge.
- Time: 15 minutes for a first Rackspace, then a couple of minutes per song after that.
- The key decision: Global Rackspace for anything that must never change, per-Rackspace for everything else.
Why a gamepad suits Gig Performer specifically
Live hosts live or die on two things: how fast you can change what a control does, and how little you have to look at the screen. Gig Performer's widget model handles the first. A gamepad handles the second — your hands find a face button or a trigger without any visual confirmation at all, which is more than can be said for a laptop trackpad on a dark stage.
The third factor is cost of failure. Dedicated control surfaces are expensive enough that nobody carries a spare. A gamepad is cheap enough that carrying two is obvious, and the second one pairs in seconds. That is the same reasoning behind the festival redundancy rig, and the hot-swap procedure applies here unchanged.
What you need
- Gig Performer 4 or 5 — macOS or Windows
- Universal Controller MIDI — download for your platform
- A supported controller — DualSense, DualShock 4, Xbox Series, Switch Pro, 8BitDo
- macOS: IAC Driver online in Audio MIDI Setup. Windows: nothing extra
- A USB cable — wired, for anything with an audience
How do you get the gamepad into Gig Performer's MIDI list?
Create the virtual port, launch the bridge, then open Gig Performer and tick the port under Options → MIDI Ports.
1. Virtual port
On macOS, Cmd-Space → Audio MIDI Setup → Window → Show MIDI Studio → double-click IAC Driver → tick Device is online. On Windows, the bridge installs a kernel-level virtual port when you run the installer; approve the driver prompt once and it persists.
2. Enable it in Gig Performer
Launch the bridge first, then Gig Performer. Open Options → MIDI Ports (on macOS this is under the application Preferences). You will see a list of MIDI inputs with checkboxes. Tick UCM Bridge on the input side. Leave the output side unticked — Gig Performer would otherwise send widget positions back out to a device that cannot display them.
3. Verify with the MIDI monitor
Gig Performer has a built-in MIDI monitor. Open it, press a face button, and confirm a Note On arrives. Pull the right trigger and confirm a stream of CC 2. If nothing shows, the port is unticked or Gig Performer launched before the bridge.
How do you bind a widget to a gamepad control?
Select the widget, open Widget Properties, switch to the MIDI tab, click Learn, and move the control you want — Gig Performer captures the message and holds the binding.
Put the Rackspace into edit mode and drag widgets from the palette onto the panel. For a gamepad, the productive set is:
- Two Faders — L2 and R2, the only genuinely analogue controls that hold position
- Four Knobs — stick axes, for push-and-release gestures
- Eight Buttons — face buttons, shoulders, Options and Share
- Four small Buttons — the d-pad, for navigation
Name every widget as you create it. Six months later, "Knob 7" tells you nothing and "FilterCutoff_LeftStickX" tells you everything. Gig Performer's widget list is searchable by name and your future self will thank you.
Widget response settings that matter for sticks
A gamepad stick springs back to centre, which fights any widget expecting an absolute position. Three ways to deal with it:
- Use triggers for parked values. L2 and R2 hold wherever you leave them. Filter cutoff, wet/dry, drive — these belong on triggers.
- Use sticks for gestures. A pitch bend, a reverb throw, a momentary filter dip — push, hold, release. The spring return is a feature here, not a bug.
- Set a relative or catch response in Widget Properties so the widget only moves once the incoming value crosses its current position.
Rackspace or Global Rackspace — which goes where?
Global Rackspace for anything that must behave identically all night; the per-song Rackspace for everything that changes with the material.
This decision is the single biggest determinant of whether a Gig Performer rig feels solid or chaotic on stage. The split that works:
Global Rackspace — never changes
- Panic / All Notes Off — Circle. The one button you must be able to hit blind.
- Next / Previous Rackspace — R1 and L1
- Song Part navigation — d-pad right and left
- Tap tempo — R3, the right stick click
- Master output level — right stick Y, with a catch response so it cannot jump
Per-Rackspace — changes per song
- L2 and R2 — the two parameters this song needs ridden. Different every song.
- Left stick X/Y — gestural modulation for this patch
- Touchpad X/Y — two-axis morph for whatever the song's lead sound exposes
- Cross, Square, Triangle — song-specific one-shots, mutes, or FX kills
Default mapping table for a Gig Performer rig
What the bridge sends by default on channel 1, and where each control belongs.
| Gamepad input | MIDI | Widget type | Scope | Typical target |
|---|---|---|---|---|
| Cross / A | Note 60 | Button | Rackspace | Song-specific one-shot |
| Circle / B | Note 62 | Button | Global | Panic — All Notes Off |
| Square / X | Note 64 | Button | Rackspace | FX bypass toggle |
| Triangle / Y | Note 65 | Button | Rackspace | Sustain latch |
| L1 / LB | Note 67 | Button | Global | Previous Rackspace |
| R1 / RB | Note 69 | Button | Global | Next Rackspace |
| L2 trigger | CC 1 | Fader | Rackspace | Filter cutoff |
| R2 trigger | CC 2 | Fader | Rackspace | Expression / wet mix |
| Left stick X | CC 3 | Knob | Rackspace | Gestural modulation |
| Left stick Y | CC 4 | Knob | Rackspace | Gestural modulation |
| Right stick X | CC 5 | Knob | Rackspace | Reverb send |
| Right stick Y | CC 6 | Knob (catch) | Global | Master level |
| R3 stick click | Note 72 | Button | Global | Tap tempo |
| Touchpad X / Y | CC 16 / 17 | XY widget | Rackspace | Two-axis morph |
| D-pad | Notes 78–81 | Buttons | Global | Song Part navigation |
Does the gamepad work as a backup when a keyboard dies?
Yes, and it is the cheapest insurance in a live rig — a second pad on the same virtual port takes over instantly because the widget bindings live in Gig Performer, not on the hardware.
That is worth saying plainly: because a widget learns a MIDI message rather than a specific device, any controller sending the same CC on the same channel drives the same widget. Pair a second gamepad, have the bridge route it to the same port, and the show keeps going. If you would rather keep them on separate ports with separate behaviour, that is multi-controller routing — a Pro feature, and the approach is in the two-controller guide.
Troubleshooting
- Port not listed in Options → MIDI Ports. Gig Performer launched before the bridge, or IAC is offline on macOS. Fix and relaunch.
- Learn captures the wrong control. A drifting stick fired first. Widen the deadzone in the bridge's calibration panel — see stick drift compensation — then re-Learn.
- Widget jumps when you change Rackspace. Set a catch or relative response in Widget Properties so it waits for the incoming value to cross the stored one.
- Button toggles twice per press. Gig Performer is reacting to both note-on and note-off. Set the widget to momentary, or set the binding to fire on press only in the bridge's mapping editor.
- Dropouts mid-set. You are on Bluetooth in a 2.4 GHz warzone. Use the cable. Bluetooth MIDI latency covers why.
- Only three presets save on the bridge. Free-tier limit — Pro vs Free.
FAQ
Can Gig Performer use a PS5 or Xbox controller?
Yes, once the pad is published as a MIDI port. Gig Performer reads MIDI inputs only, so Universal Controller MIDI converts the gamepad HID stream into a virtual MIDI device that shows up in Options → MIDI Ports like any keyboard.
Should I map at the Rackspace level or the Global Rackspace?
Put anything that must mean the same thing all night — panic, tap tempo, song navigation, master volume — in the Global Rackspace. Put per-song parameter rides in the individual Rackspace. That split is the whole reason Gig Performer has both.
How do I stop a spring-loaded stick snapping a parameter back to centre?
Set the widget to a relative or catch-style response in Widget Properties, or map parked values to the analogue triggers instead. Triggers hold their position; sticks do not.
Can one button step through Rackspaces?
Yes. Bind a widget to a system action rather than a plugin parameter — Gig Performer exposes Next Rackspace, Previous Rackspace and Song Part navigation as assignable targets.
Is the free tier of the bridge enough for a Gig Performer rig?
For a basic rig, yes — the default notes and CCs will Learn fine. You want Pro once you need custom bindings, per-binding curves, more than three saved presets, or two controllers on separate ports.
Where to go next
If you are also running Gig Performer alongside a VJ host or a backing-track player, the bridge can fan the same controller out to two virtual ports so both applications see it independently — that is in the multi-DAW doc. And if you are evaluating hosts rather than committed to one, the MainStage walkthrough covers the Mac-native equivalent of this same workflow.
Download Universal Controller MIDI, build one Rackspace properly, and duplicate it across the set. Fifteen minutes of setup buys you a whole gig of hands-free control.