Blog Collaboration 10 min read

Multi Controller MIDI Jam Session — Two Pads, One DAW

Run a multi controller MIDI jam session on one laptop with two DualSense pads. Separate ports, channel split, latency-matched, recordable.

By Aidxn Design

Two people, one laptop, two controllers, one Ableton Live 12 session — a real jam where each player drives their own instrument live. A multi controller midi jam session is the cheapest way to get band-feel collaboration in a bedroom studio. This guide covers the bridge config, DAW routing, channel split, and latency calibration so two DualSense pads (or DualSense + Xbox Series) feel like two instruments instead of one mess of overlapping MIDI.

TL;DR
  • What you do: plug two controllers, configure the bridge to enumerate them as separate MIDI ports, route each to its own DAW track, channel-match them.
  • What you need: 2× DualSense, DualShock 4, or Xbox controllers, the bridge, any DAW (Ableton recommended), USB-C hub if your laptop is light on ports.
  • Time: 20 minutes to a working session. 10 if you have done it before.
  • Cost: two controllers (you may already have them), bridge $89.

What you'll learn

  • How to enumerate two controllers as separate virtual MIDI ports (UCMIDI 1 and UCMIDI 2) plus channel-split as a safety net for DAWs that merge ports.
  • The Ableton Live 12 routing — two armed MIDI tracks, one per pad, both record simultaneously into Session view clips.
  • How to measure the intrinsic latency offset between two different pad models (DualSense vs Xbox Series) and compensate so both players land on the same grid pixel.
  • Drum-player vs synth-lead mapping templates — what each face button, trigger, stick, and touchpad axis should do per role.
  • Scaling from two pads to four for a full band layout, plus the USB hub gotchas that drop HID packets under load.

One laptop with two pads kills two laptops on Ableton Link

Two laptops with Ableton Link can sync tempo. Spoiler: that's all they can do. They can't share an arrangement, plugin state, or render to one stem. One laptop with two controllers gives you a single timeline, a shared mix bus, and one render at the end. The "wait, send me your project" tax disappears. Latency stays under 8 ms per controller on a Thunderbolt-equipped laptop.

Universal Controller MIDI enumerates each connected pad as its own virtual MIDI port. Two pads, two ports, two DAW tracks. No fighting over input.

What you'll need

  • Two controllers — any mix of DualSense, DualSense Edge, DualShock 4, Xbox Series, Xbox One, 8BitDo Pro 2, or Joy-Con pair
  • A USB-C cable per pad if you want sub-8 ms latency. Bluetooth works for jamming, just add 10 ms to your mental model.
  • USB-C hub if you only have one port. CalDigit TS3 Plus or Anker A8388 are reliable. Avoid bus-powered hubs under $15 — they drop HID packets.
  • Universal Controller MIDI v1.0+ (download)
  • Any DAW — Ableton Live is easiest for live jamming because of Session view
  • Two pairs of headphones + a small mixer or a stereo headphone amp. The Behringer HA400 at $25 is fine.

Bridge configuration for multi-controller MIDI

Enable multi-controller mode

Launch the bridge. Plug both pads in. The header status pill should read 2 controllers connected. If only one shows, your hub is undersized or a cable is charge-only — swap cables first.

Open Settings → Multi-controller. Toggle Enumerate as separate MIDI ports ON. The bridge restarts and exposes UCMIDI 1 and UCMIDI 2 as distinct virtual ports.

Assign different presets per controller

Two players usually want different mappings — one driving drums, one driving synth. In the controller picker (top-left of the bridge UI), select Controller 1, load Presets → Drum Rack. Select Controller 2, load Presets → Synth Lead. Each pad now sends a different mapping table to its own port.

Channel separation as a safety net

On top of separate ports, give each controller its own MIDI channel — Controller 1 on channel 1, Controller 2 on channel 2. Logic merges ports in some versions, so channel filtering is your fallback when the DAW lies.

Pad1 Pad2 ch 1 ch 2 DAW
Two pads to two MIDI channels into one DAW — multi controller MIDI jam routing.

Channel routing reference — pick your jam shape

Two pads can be configured a dozen ways depending on the jam. Here's the routing matrix I keep printed next to the laptop — pick the row that matches your session and you'll have the bridge and DAW config in under two minutes.

Jam shapePad 1 portPad 1 chPad 2 portPad 2 chDAW tracks
Drums + bassUCMIDI 11UCMIDI 222 (drum rack + Operator)
Drums + synth leadUCMIDI 11UCMIDI 232 (drum rack + Wavetable)
Chords + lead (call/response)UCMIDI 14UCMIDI 252 (pad + lead synth)
MPE split (per-pad zone)UCMIDI 11–8UCMIDI 29–161 (single MPE instrument)
FX rider + performerUCMIDI 11UCMIDI 216 (FX bus)1 perf + return bus
Three-pad bandUCMIDI 1/2/31/2/33 (drums + bass + lead)
Four-piece bandUCMIDI 1/2/3/41/2/3/44 (drums + bass + chords + lead)

Ableton Live 12 routing for a two player MIDI jam

Enable both ports

Preferences → Link, Tempo & MIDI. Find UCMIDI 1 and UCMIDI 2 in the MIDI Ports table. Set Track and Remote ON for both. Sync OFF for both.

Two MIDI tracks

Create two MIDI tracks. Track 1 input set to UCMIDI 1, Channel 1. Track 2 input set to UCMIDI 2, Channel 2. Arm both for recording. Drop a drum rack on track 1, an Operator or Wavetable on track 2.

Confirm the split

Have Player 1 press Cross. Track 1's clip indicator should flash. Have Player 2 press Cross. Track 2's clip indicator should flash. If both flash on either press, your channels collided — re-check the bridge multi-controller settings.

Max for Live MIDI router stub

If your DAW doesn't filter by port + channel cleanly (looking at you, Logic), drop a Max for Live MIDI Effect at the top of each track with this js object. It accepts incoming MIDI, checks the source port name, and only passes through messages from the pad you want. Saves you fighting Logic's input merging:

// pad-router.js — Max for Live MIDI Effect
// Pass-through only when the source port matches inlet 0 arg.
autowatch = 1;
inlets = 1;
outlets = 1;

var allowedPort = "UCMIDI 1";   // change per track instance
var allowedChannel = 1;          // 0 = any

function list() {
    var msg = arrayfromargs(arguments);
    var status = msg[0];
    var channel = (status & 0x0F) + 1;
    var portTag = this.patcher.parentpatcher.getnamed("portmeta").get();
    if (portTag !== allowedPort) return;
    if (allowedChannel !== 0 && channel !== allowedChannel) return;
    outlet(0, msg);
}

Latency calibration across two players

Why this matters

Two pads on USB-C will not have identical latency. One USB chip is 2 ms ahead of the other. Across a 4-minute jam that drift is audible in the tight parts. You want both players landing on the same actual moment in time.

Measuring the offset

Record a single drum pattern in Ableton. Both players hit the metronome on the beat for 16 bars. Stop, zoom into the clip, measure the average offset between Player 1 and Player 2 hits relative to the grid. On my rig (DualSense + Xbox Series, M2 MacBook Pro), Xbox is 3 ms behind every time.

Compensating

Open Settings → Latency Offset in the bridge. Add the measured offset to the slower controller as a negative delay. Both pads now land on the same grid pixel. Save it into the preset so it persists.

P1 P2
Latency-sync handshake — both pads land on the same beat grid after offset.

How to structure a multi controller MIDI jam session

Pre-jam setup, 10 minutes

  • Both players plug in, bridge confirms 2 controllers.
  • Tempo set in Ableton (start 96 BPM for groove, 128 BPM for techno).
  • Player 1 picks a drum kit, plays a basic 8-bar loop to record.
  • Player 2 picks a bass patch, dials in filter cutoff via L2 trigger.
  • Both arm. Set Live's record quantise to 1/16 so timing tightens automatically.

Loop 1, drums + bass

Record an 8-bar loop. Quantise on the way in. Re-record if it doesn't groove. Use 1/8 swing 56% for hip-hop, 1/16 straight for techno.

Loop 2, chords + lead

Drop new instruments on tracks 3 and 4 (a third controller helps eventually). Player 1 holds a four-bar chord pattern. Player 2 improvs a lead line on the right stick.

Mix and arrange

After 4–8 loops you have material. Drag the best loops into Arrangement view, structure into intro / verse / chorus / outro. One person mixes, the other rides FX on the touchpads.

Player 1 — drums Player 2 — bass
Drummer vs bassist split — two MIDI channels keep each player on their own track.

Useful jam mappings

Player 1 — drum rack

  • Cross → kick (Note 36)
  • Circle → snare (Note 38)
  • Square → closed hat (Note 42)
  • Triangle → open hat (Note 46)
  • D-pad up/down/left/right → toms, clap, ride, crash
  • L1 → ghost-note mode (next press is half velocity)
  • R1 → fill quantise off (let humanise through)
  • L2 trigger → drum bus filter cutoff (CC 11)
  • R2 trigger → drum bus distortion drive (CC 12)
  • Touchpad XY → drum bus stereo width + verb send

Player 2 — synth lead

  • Face buttons → scale degree triggers (root, 3rd, 5th, 7th)
  • D-pad up/down → octave shift
  • D-pad left/right → scale change
  • L1 → arp on/off
  • R1 → glide
  • L2 trigger → filter cutoff (CC 1)
  • R2 trigger → resonance (CC 2)
  • Left stick X/Y → LFO rate / LFO depth
  • Right stick X/Y → pitch bend / vibrato
  • Touchpad XY → wavetable position / morph

Recording the jam cleanly

Loop-record mode

In Session view, arm both tracks, enable global record. Each player triggers a clip into Slot 1, plays 8 bars, the clip captures. Move to Slot 2, repeat. Builds a clip-bank you re-arrange later.

Linear arrangement record

Arrangement view, hit record, 1-bar count-in metronome, both players play the full track live. No edits, no overdubs — pure performance capture. Closer to a band recording session and tends to produce the takes with the best feel.

Two-headphone monitoring

Run the laptop output into a Behringer HA400 or any small headphone amp. Both players hear identical click and mix. Without it, you're on two splitters at slightly different levels and the timing eats itself.

Mixing platforms

You can also mix gamepad ecosystems. DualSense + Xbox Series controller paired together works fine — the bridge handles HID enumeration on both. The 8BitDo Pro 2 in Switch mode also plays nice. For full cross-platform notes see Xbox + PS5 gamepad MIDI on Mac and Windows.

Troubleshooting

  • Only one controller shows. Your USB hub is underpowered or your cable is charge-only. Try a known good cable, plug both directly to laptop ports.
  • Both controllers fire same track. Multi-controller mode is off. Settings → Multi-controller → Enumerate as separate MIDI ports.
  • Tracks crosstalk after 20 minutes. macOS sometimes merges duplicate IAC ports under load. Use the bridge's native virtual ports instead of IAC.
  • Bluetooth pad keeps dropping. Bluetooth gets unhappy with two pads on the same radio. Wire both via USB-C for any session over 30 minutes.
  • Latency drifts mid-jam. Buffer size too high. Drop your Ableton buffer to 128 samples (3 ms RTL on M1+) and the drift stops.
  • Recordings out of time between players. See the calibration section. The two pads have different intrinsic latencies — compensate in the bridge.

Scaling the MIDI jam session to three or four players

Scaling beyond two pads

The bridge supports up to four controllers simultaneously on macOS, three on Windows (the limit there is a driver one). Plug a third pad, the bridge enumerates UCMIDI 3, you assign it to a new DAW track and a new MIDI channel. A four-player jam works on an M2 Pro MacBook without the buffer raising past 128 samples.

The four-piece band layout

  • Player 1 — drums (drum rack)
  • Player 2 — bass (mono synth, monophonic to keep parts tight)
  • Player 3 — chords (polyphonic pad)
  • Player 4 — lead + FX (synth + effect controls)

This mirrors a traditional band lineup. Each player has a defined role, the arrangement happens through dynamics and call-and-response, not through layered overdubs.

Bandwidth check

Four controllers polling at 250 Hz each is ~1,000 HID packets per second across the bus. Modern laptops handle it cleanly. The catch: cheap USB hubs choke. CalDigit and Anker hubs are tested; no-name USB-A hubs drop one packet in fifty under load.

The verdict — two-player jamming beats one-player overdubbing

Jamming with a second human is fundamentally different from layering overdubs alone. You react in real time, mistakes turn into features, you commit to performances you'd never have programmed. Most of my favourite production moments started as a 30-minute jam with a friend on a second pad. The bridge made it possible on a single laptop.

For the solo drumming side see finger drumming on a DualSense. For the underlying DAW config see DualSense in Ableton Live, the Ableton Link gamepad sync guide for tempo-locked rigs, and the two DualSense stereo MIDI guide for symmetric performance setups. The official Ableton MIDI routing reference is at ableton.com/manual.

Plug two pads into Universal Controller MIDI, open Ableton, hit record. That is the entire setup.

FAQ

Can two DualSense controllers run on one laptop at the same time?

Yes. macOS handles four simultaneous HID gamepads, Windows three. Universal Controller MIDI enumerates each as a separate virtual MIDI port (UCMIDI 1, UCMIDI 2, ...) so each pad lands on its own DAW track without channel clashes.

What's the latency of a two-pad MIDI jam in Ableton Live 12?

~3–8 ms per controller wired over USB-C on an M1 or M2 MacBook with a 128-sample buffer. Bluetooth adds 10 ms. Different pad models have different intrinsic latencies — the bridge has a Latency Offset slider to compensate so both players land on the same grid pixel.

Do I need Ableton Live for a multi controller MIDI jam session?

No — Logic Pro, FL Studio, Bitwig Studio, Reaper, and Cubase all accept multi-port MIDI input. Ableton Live 12's Session view is the easiest for live looping because clips capture in real-time, but Bitwig 5's launcher is identical in feel.

Will Joy-Cons work for a two-player MIDI jam?

Yes. The bridge supports Joy-Con pairs in horizontal and split modes. They have fewer inputs than DualSense pads (no triggers with full analog range, no touchpad) but for melodic jamming they work. Use a Switch Pro Controller if you want a closer feature match to DualSense.

How do I record each player to their own track?

Create one armed MIDI track per pad, set the input to the matching UCMIDI port plus channel filter. Player 1's notes land only on track 1, Player 2's only on track 2. Hit global record — Ableton (or your DAW) captures both lanes simultaneously into clips you can edit per player.

Keep reading

More setup walkthroughs