Questions

A game controller as a DJ controller on a Mac

Yes, with a translator that sends MIDI: InputConfig, my free Mac app, turns each button into a MIDI note and each trigger into a fader-like MIDI CC, sent through a virtual MIDI port named InputConfig. The DJ app's MIDI learn then maps them like any controller.

DJ apps on the Mac are built for MIDI controllers, and a game controller is not one until something translates. It is a good way to learn, practice on a sofa, or carry two decks in a bag. It is not a replacement for jog wheels.

On this page: 10 sections
  1. Steps
  2. Use MIDI, not keyboard shortcuts
  3. Build a two-deck layout
  4. Map it in Mixxx or rekordbox
  5. Keep the latency low
  6. Share the decks between two people
  7. If the DJ app does not see it
  8. What it cannot do
  9. The short version
  10. Questions

Steps

  1. In InputConfig, give each face button a MIDI Note output and each trigger a MIDI CC output.
  2. Activate the preset so the InputConfig MIDI port appears.
  3. In the DJ app, pick InputConfig as a MIDI controller.
  4. Use the app's MIDI learn to press each control and choose its job.

Use MIDI, not keyboard shortcuts

Most DJ apps have keyboard shortcuts, and a controller can press those too. But a key is on or off, so a fader or a filter cannot follow a trigger. MIDI can:

  • A trigger on MIDI CC. Sends 0 to 127 as you pull it.
  • A button on MIDI Note. Sends note-on when pressed and note-off when released, which is what a cue button that previews while held needs.

Only MIDI lets a trigger move a filter smoothly.

Download InputConfig on the Mac App StoreInputConfig is free on the Mac App Store. macOS 14 or later, no account, no tracking, open source.

Build a two-deck layout

ControlInputConfig outputMap it to
Cross / AMIDI Note 36Deck 1 play
Square / XMIDI Note 37Deck 1 cue
Circle / BMIDI Note 38Deck 2 play
Triangle / YMIDI Note 39Deck 2 cue
Left triggerMIDI CC 20Deck 1 filter or effect amount
Right triggerMIDI CC 21Deck 2 filter or effect amount
D-pad left and rightMIDI Notes 40 and 41Sync deck 1, sync deck 2
D-pad up and downMIDI Notes 42 and 43Loop on and off for each deck
BumpersMIDI Notes 44 and 45Pitch bend or nudge, held
Right stick rightMIDI CC 22A filter sweep
InputConfig rows sending MIDI notes 36 to 39 from the face buttons and MIDI CC 20 from the left trigger.
Figure 1. Buttons send notes for play and cue, triggers send CC, and the DJ app learns them.
  • Any numbers. The note and CC numbers are arbitrary; the DJ app learns whatever arrives.
  • Triggers rest at 0. A trigger at rest sends 0 and a full pull sends 127, so give it a job that should sit at zero when you let go, like a filter or an effect amount, rather than a channel volume, which would drop to silence.
  • Sticks spring back. A stick returns to center, where its rows return to 0, so it suits momentary moves like a filter sweep better than a crossfader.
  • A crossfader. A trigger can be one if you are happy for it to rest at one end; otherwise put the app's own crossfader keys on two buttons.
The built-in MIDI: Drum Pad preset in InputConfig, with a MIDI note on each face button.
Figure 2. MIDI: Drum Pad is a ready starting point for a note on every button.

Put filters and effects on the triggers, never a channel volume.

Map it in Mixxx or rekordbox

  • Mixxx (free and open source). Open Preferences, Controllers, pick InputConfig in the list, enable it, and use the Learning Wizard to press each control and choose its job.
  • rekordbox. Its MIDI Learn window assigns rekordbox functions to a MIDI controller. Choose InputConfig as the device and press each control to learn it.
  • djay Pro and Serato DJ Pro. Both have MIDI mapping of their own. What each allows depends on the version and the license, so check their documentation before planning a set around it.

InputConfig's port exists while the app runs and keeps the same identity each time, so a mapping you save stays put. You do not need the IAC Driver. Learn one control at a time: if two rows share a note or CC number, the app learns whichever arrived last.

Keep the latency low

  • You: Set both polling rates to 240 in Settings, Advanced, Polling rate before you play.
  • InputConfig: Sends a note the moment its poll sees the press, about 4 ms at 240 Hz.
  • Check: A rumble on the play rows, set under Feedback, tells you a press landed without looking down.

240 Hz polling and a buzz on play are the two settings worth making before a set.

Share the decks between two people

Since 1.6, two PlayStation pads each get their own light color and rumble, and a preset can hold a group of rows for each controller. Two people can share the decks with each pad on its own MIDI channel.

If the DJ app does not see it

Climb this ladder, smallest step first:

  1. Keep InputConfig running. The InputConfig port exists only while the app runs.
  2. Enable the device in the DJ app. In Mixxx, pick InputConfig in Preferences, Controllers and enable it.
  3. Learn one control at a time. Two rows on the same number confuse MIDI learn.

If InputConfig is running, its MIDI port is there for any app to pick.

What it cannot do

A game controller has no jog wheels and no long faders. For practice, parties at home and learning the moves it is plenty; for a booked gig, a real DJ controller is the better tool.

The short version

  • Buttons. MIDI notes for play, cue, sync and loops.
  • Triggers. MIDI CC for filters and effects.
  • The app. MIDI learn, with InputConfig as the device.

Two decks in your hands, from a pad you already own.

Questions

Can I DJ with a PS5 or Xbox controller on a Mac?

Yes, through a translator that sends MIDI. Buttons become notes for play, cue, sync and loops, triggers send continuous CC for filters and effects, and the DJ app maps them with MIDI learn.

Does Mixxx support game controllers directly?

Mixxx's controller support is built for MIDI and for specific HID DJ controllers. Sending the game controller as MIDI is the simple route.

Do I need the IAC Driver or a virtual MIDI cable?

No. InputConfig makes its own virtual MIDI source named InputConfig whenever it runs.

Is this good enough to perform with?

For practice, parties at home and learning the moves, yes. For a booked gig, a real DJ controller with jog wheels and proper faders is the better tool.

Download InputConfig on the Mac App StoreFree. macOS 14 or later. No account, nothing leaves your Mac. Open source on GitHub.