Blog Switch Joy-Cons 9 min read

Joy-Con Gyro to MIDI: Motion Control, Tilt and Gestures

Turn Nintendo Switch Joy-Con motion sensors into MIDI. Per-half gyro mapping, drift control, dead bands, recentre bindings, and two-handed gestural performance.

By Aidxn Design

Most gamepad-to-MIDI setups are about buttons and sticks, which is to say they are a worse version of a keyboard controller. Joy-Cons are the exception. Each half is a tiny, independently paired, battery-powered motion sensor you can hold in one hand and wave, and that is a kind of instrument no MIDI keyboard makes. The hard part is not getting the data — it is making motion data musically usable, because raw gyro output is a fizzing mess that will fill your automation lanes with noise.

TL;DR
  • What you get: two independent six-axis motion sensors, one per hand, each on its own MIDI channel.
  • The three settings that matter: smoothing, a dead band around rest, and a bound recentre button.
  • Best uses: slow continuous modulation — reverb size, grain density, wavetable position — not pitch bend.
  • Cost: free tier covers the default mapping and three saved presets; motion routing and running two controllers at once are Pro features at $89 one-time.

Can Joy-Con motion controls be used as MIDI?

Yes — each Joy-Con contains its own three-axis gyroscope and three-axis accelerometer, and a bridge can map any of those axes to a MIDI CC.

The gyroscope measures rate of rotation and the accelerometer measures linear acceleration including gravity. That distinction is the whole game. Integrating the gyro gives you an orientation that is smooth and responsive but drifts over time. Reading the accelerometer gives you an orientation relative to gravity that never drifts but jumps every time you move the controller rather than tilt it. Practical setups use the gyro for the feel and the accelerometer as a slow correction, which is what the bridge does internally — but you should know it is happening, because it explains every weird behaviour you are about to see.

How do you pair two Joy-Cons to one computer?

Slide each half off the Switch rail and hold the small sync button on the inside edge, between SL and SR, until the green indicator lights run back and forth — then add it from your OS Bluetooth panel. Repeat for the second half.

They pair as two completely separate Bluetooth devices, listed as Joy-Con (L) and Joy-Con (R). This is a feature, not a limitation: two devices means two independent input streams, two independent motion sensors and two sets of MIDI channel assignments. The bridge lists them as two controllers and you map them separately.

On macOS 13 Ventura and later, Joy-Cons are supported through Apple's GameController framework directly. On earlier macOS versions and on Windows, they enumerate as generic Bluetooth HID devices and the bridge reads them through its HID backend. Either path gets you motion data; the GameController path is tidier about reconnecting after sleep.

If a Joy-Con refuses to pair, it is still bound to a Switch. Put the console to sleep or take the Joy-Cons out of range first. The basic pairing walkthrough and the button layout for each half live in the Joy-Con pairing guide — this post picks up where that one leaves off.

Why is my Joy-Con stick sideways?

Because a detached Joy-Con is designed to be held horizontally, so the OS reports its stick axes rotated ninety degrees from what a normal gamepad would send.

Push the stick "up" relative to how you are holding it and you will see the X axis move, not the Y. The same rotation applies to the motion axes: what feels like pitch to your wrist arrives as roll. The bridge has an axis-swap setting per controller for exactly this, and you want it on for both halves — but set it before you build any mappings, because flipping it afterwards silently transposes everything you already bound.

Also note the two halves are not mirror images in software. The left Joy-Con's four directional buttons are four discrete buttons, not a d-pad, so each one can carry its own note. The right half's A, B, X and Y sit in the Nintendo arrangement with A on the right. Treat them as two different controllers that happen to look similar, because that is what they are.

How do you stop gyro drift ruining the mapping?

Three settings, applied in this order: smoothing, a dead band around the rest position, and a recentre binding you can hit mid-performance.

Smoothing is a short moving average over recent samples. It removes the sensor's noise floor and your hand's tremor. The cost is a small amount of lag, which is irrelevant at the speeds a wrist moves and would be fatal on a drum pad — which is why you smooth motion heavily and smooth buttons not at all.

A dead band is a window around the current rest position inside which no change is emitted. Different from a stick deadzone: a stick deadzone is about a fixed centre, a motion dead band is about wherever you currently are. With it on, holding the controller still holds the CC value still, even if the sensor is reporting tiny wobbles. Without it, a parameter you set drifts away from you while you are not touching anything.

A recentre binding zeroes the orientation reference on demand. Bind it to SL or the stick click — something you can press with the hand already holding the Joy-Con. Press it whenever you have settled into a new playing position. This is the one that makes a half-hour set survivable, because gyro integration error accumulates and after twenty minutes "level" is not level anymore.

What should each motion axis control?

Slow, continuous, forgiving parameters — the ones where a drifting value sounds like intention rather than a mistake.

Motion axis mapping, both halves
Control MIDI message Target
Joy-Con (L) — Pitch (tilt forward/back) Ch 1, CC 16 Filter cutoff Largest, most controllable wrist movement
Joy-Con (L) — Roll (tilt left/right) Ch 1, CC 17 Reverb size or send Forgiving of imprecision
Joy-Con (L) — Yaw (twist) Ch 1, CC 18 Stereo width Hardest axis to isolate; give it a lazy job
Joy-Con (R) — Pitch Ch 2, CC 16 Wavetable position or grain density Wants a slow hand
Joy-Con (R) — Roll Ch 2, CC 17 Delay feedback Self-correcting if you overshoot
Both — Accelerometer shake Note trigger One-shot stab or crash Threshold on magnitude, not position
L stick click / R stick click Note 85 / 86 Recentre gyro Reachable without regripping

The destinations that do not work are the sharp ones. Pitch bend from a gyro sounds seasick because your hand is never as still as a pitch wheel's detent. Filter resonance near self-oscillation turns every tremor into a scream. Note velocity from acceleration is tempting and almost always arrives late, because you have to finish the gesture before the magnitude peaks.

Can you trigger notes from a shake?

Yes, by thresholding the accelerometer's magnitude rather than any single axis — but accept that a shake-triggered note fires at the end of the gesture, not the start.

Configure it as: take the vector magnitude of the three accelerometer axes, subtract the resting gravity component, and fire a note when the result crosses a threshold. Add a refractory period of a couple of hundred milliseconds so a single wave does not fire five times on the rebound. The result is genuinely fun for crash cymbals, risers and one-shot stabs, and genuinely useless for anything that needs to land on a grid line, because human beings cannot predict exactly when a shake will cross a threshold.

If you need motion-triggered hits that land in time, quantise them in the DAW. Record the take, let Live or your host snap the notes to the grid, and the gesture survives while the timing gets fixed. This is the same compromise the Wii Remote motion setup makes, and for the same physical reason.

How do you perform two-handed without the halves fighting?

Put each Joy-Con on its own MIDI channel, and give each hand a job that does not depend on the other hand's state.

Channel separation is the mechanical part and it is easy. The compositional part is harder: two gestural hands produce a lot of simultaneous continuous data, and if both are driving things in the same frequency range the result is mud. If you want both hands shaping pitch at once, MPE gives each half its own expression lane. The split that works is one hand shapes, one hand fires. The left Joy-Con does slow continuous modulation; the right does discrete events — button notes, shake triggers, scene changes. You get the appearance of two-handed gestural playing with half the amount of continuous data actually moving.

For two performers rather than two hands, the same channel split applies and you can go further and put each Joy-Con on its own virtual MIDI port, which keeps them independent even across separate tracks with separate instruments. Multi-controller operation is a Pro-tier feature; there is a fuller treatment of the pattern in the multi-controller jam session guide.

Troubleshooting

  • Only one Joy-Con appears. They pair independently — go back and sync the second one. Check it is not still bound to a Switch.
  • Motion values fizz with the controller on a table. Smoothing is too low or the dead band is too narrow. Raise both until the input monitor sits still — the smoothing filter breakdown explains which filter to reach for.
  • Everything slowly rotates away from where you set it. That is gyro integration drift. Bind and use a recentre button.
  • Tilt feels like it is on the wrong axis. Turn on the axis-swap setting for detached Joy-Cons, and do it before building mappings.
  • Disconnects after sleep on macOS. On macOS 13 and later let the GameController path handle it; on older versions remove and re-pair the device rather than fighting the Bluetooth cache.
  • Battery dies mid-set. Joy-Cons are small and have small batteries. Charge them on the Switch or a charging grip between sets and keep a spare pair paired and ready.

Frequently asked questions

Do both Joy-Cons have a gyroscope?

Yes, both the left and right Joy-Con carry a full six-axis inertial measurement unit, which is why Nintendo can use each half independently for motion in games.

How do you stop Joy-Con gyro drift ruining a MIDI mapping?

Combine three things: smoothing to remove sensor noise, a dead band around the rest position so small hand tremors produce no change, and a bound recentre button that zeroes the gyro reference on demand.

Do Joy-Cons work with macOS?

Yes. macOS 13 Ventura and later expose Joy-Cons through Apple's GameController framework, and on earlier versions the bridge reads them as generic Bluetooth HID devices instead.

Why is my Joy-Con stick sideways?

A detached Joy-Con is designed to be held horizontally, so the operating system reports its stick axes rotated ninety degrees relative to a normal gamepad, which the bridge corrects with an axis swap setting.

Can two people play a Joy-Con each into the same DAW?

Yes, assign each half its own MIDI channel or its own virtual port so the two performers never collide, though running more than one controller at once is a Pro-tier feature.

The instrument nobody else sells

A pair of Joy-Cons is two wireless six-axis sensors with buttons, a stick and a week of standby battery each, and they cost nothing if there is a Switch in the house. Nothing in the MIDI accessory market does that. Give the motion the three settings it needs, give each hand a clear job, and you have a gestural instrument rather than a novelty.

Download Universal Controller MIDI, pair both halves, and put the slow things on your wrists.

Keep reading

More setup walkthroughs