Universal Controller MIDI
Blog Setup 8 min read

Gamepad to MIDI on macOS and Windows (Xbox + PS5)

Use any Xbox or PS5 gamepad as a MIDI controller on macOS or Windows. Cross-platform setup, virtual MIDI ports, mapping editor — covered in one guide.

By Aidxn Design

Whether you own an Xbox Series X controller, a PS5 DualSense, a PS4 DualShock, or a Switch Pro pad, the same bridge gets you to MIDI on both macOS and Windows. This guide covers the cross-platform gamepad to MIDI path end to end — driver behaviour on each OS, the differences between XInput and HID, the virtual MIDI port setup, and a working mapping for any DAW or VJ app.

TL;DR
  • What you do: install Universal Controller MIDI, connect any modern gamepad, pick a preset, route into your host.
  • What you need: a gamepad (Xbox/PS/Switch Pro), macOS 12+ or Windows 10+, the bridge.
  • Time: 8 minutes start to finish.
  • What's different per controller: Xbox has no touchpad or adaptive triggers; DualSense has both; DualShock has touchpad but no adaptive triggers; Switch Pro has neither.

Controller compatibility at a glance

ControllerButtons + sticksTriggersTouchpadAdaptive hapticsGyro
PS5 DualSenseYesAnalogYesYesYes
PS5 DualSense EdgeYes + paddlesAnalogYesYesYes
PS4 DualShockYesAnalogYesYes
Xbox Series X|SYesAnalog
Xbox Elite Series 2Yes + paddlesAnalog
Nintendo Switch ProYesDigitalYes

What you'll need

  • Universal Controller MIDI v1.0+ (download)
  • Any controller from the table above
  • macOS 12+ or Windows 10+
  • USB-C or micro-USB cable, or Bluetooth 5.0 capable laptop

macOS setup

1. Plug in or pair

All four controller families are recognised by macOS natively — no driver install required. For Bluetooth, hold the pair button (PS5 share + PS, Xbox sync, Switch sync) and add the device in System Settings → Bluetooth.

2. Enable the IAC Driver

Open Audio MIDI Setup (Cmd-Space → "Audio MIDI Setup"). Window → Show MIDI Studio. Double-click IAC Driver, tick Device is online, and add a port named UCMIDI Out.

# Confirm the IAC bus is online from the terminal
system_profiler SPMIDIDataType | grep -A 2 "IAC"

3. Launch the bridge

Open Universal Controller MIDI. The sidebar lists every connected gamepad. Pick yours, then pick a preset for your DAW (Ableton, Logic, Bitwig, Reaper) or VJ app (Resolume, TouchDesigner, VDMX).

Windows setup

1. Plug in over USB or pair via Bluetooth

Windows 10 and 11 recognise Xbox controllers as XInput devices automatically. DualSense and DualShock are recognised as native HID gamepads. Switch Pro is recognised as HID on Windows 11 and as DInput via the controller's Pro-mode on Windows 10.

2. Use the bundled virtual MIDI port

The bridge installs its own kernel-level virtual MIDI port on Windows. No loopMIDI, no Bome, no manual driver fiddling. The port appears in any DAW's MIDI input list as Universal Controller MIDI.

3. Verify with the PowerShell device check

{`# Confirm Windows sees the controller
Get-PnpDevice -Class HIDClass | Where-Object {
  $_.FriendlyName -match "Wireless Controller|Xbox|Pro Controller"
}`}

Pick a preset for your host

The bridge ships presets for the most common DAW + VJ hosts. Each one maps the controller's inputs in a way that matches the host's typical workflow.

HostPreset nameCoverage
Ableton LiveAbleton Live (default)Transport, clip launch, macro CCs, touchpad XY (DualSense)
Resolume ArenaResolume Arena (default)Clip triggers, deck crossfade, effect rack, XY pad
Bitwig StudioBitwig Grid + ClipModulator CCs, scene launch, transport
ReaperReaper MixerTrack arm, transport, send levels
TouchDesignerTD PerformerOp flow control, XY pad, scene presets
VDMXVDMX LiveLayer triggers, crossfade, effect intensity

Default mapping (any controller)

The default mapping is consistent across controllers. Where an input does not exist on a given controller (Xbox has no touchpad, Switch Pro has digital triggers), the bridge simply does not emit those CCs.

InputMIDINotes
Face buttons (A/B/X/Y or Cross/Circle/Square/Triangle)Notes 60, 62, 64, 65One per button
Shoulders (LB/L1, RB/R1)Notes 67, 69Discrete
Triggers (LT/L2, RT/R2)CC 1, CC 2Analog on Xbox/PS, digital on Switch Pro
Left stick X / YCC 3, CC 414-bit available in Pro
Right stick X / YCC 5, CC 614-bit available in Pro
Touchpad X / Y (DualSense, DualShock)CC 16, CC 17Not emitted on Xbox / Switch Pro
D-pad up / right / down / leftNotes 78–81One note each, on press

Pro tips and troubleshooting

  • Xbox Bluetooth quirks. Xbox controllers tied to a console via the proprietary Xbox Wireless protocol do not pair as Bluetooth — you need an Xbox Wireless adapter or a USB cable on macOS.
  • DualShock 4 on Windows. If the OS picks it up as a generic HID gamepad with weird axis ordering, the bridge has a DualShock 4 compatibility mode toggle that remaps axes to the standard DualSense layout.
  • Switch Pro digital triggers. The Switch Pro's triggers are buttons, not analog axes — they emit CC 1 as a 0 / 127 toggle rather than a sweep. Plan your mappings accordingly.
  • Multiple controllers — separate ports. Connect two pads and the bridge exposes UCMIDI 1, UCMIDI 2… as independent virtual ports. Each routes to its own DAW track.
  • Audio dropouts at high MIDI poll rate. Default poll rate is 250 Hz. If you hear glitches, drop to 120 Hz in Settings — still smooth, lower CPU.
  • Bluetooth versus USB on stage. Always wired for paid gigs. Bluetooth is fine for the studio.

Cross-platform notes

Save the bridge's preset as a JSON file and it travels between Mac and Windows unchanged — same CC numbers, same channels, same calibration. If your show laptop runs Windows and your home machine runs macOS, this is the cleanest workflow. The MIDI specification is consistent across both platforms, so the bridge's output is 100% portable.

Whichever controller is closest to hand, it is also a MIDI controller. Universal Controller MIDI is one app, one license, every gamepad you own.

Keep reading

More setup walkthroughs