How to Use Your iPhone as a MIDI Controller in REAPER

Install NueCtrl on your iPhone, connect it to your computer over Bluetooth LE MIDI, Wi-Fi (Network / RTP-MIDI) or USB, then open Options → Preferences → Audio → MIDI Devices and enable the device twice: once for input, and once for control messages. That second tick is what REAPER's MIDI learn actually listens to. From there you have three routes to a mapping — Param → Learn in any FX window, parameter modulation with its link-from-MIDI section, and MIDI/OSC learn in the action list for transport and everything that is not a parameter.

What you need

Part 1 — Connect your iPhone

This part is the same for every DAW, because it happens at the operating-system level before REAPER is involved. Pick one of the three routes below. If you want the full walkthrough with screenshots of each dialog, see the MIDI connection setup guide.

Option A — Bluetooth LE MIDI

The fastest route, and the only one that needs no cable and no shared network. NueCtrl advertises itself over Bluetooth LE when it launches.

  1. On your iPhone, open Settings → Bluetooth and make sure Bluetooth is on.
  2. Launch NueCtrl and go to Settings → Connection → Bluetooth MIDI, then tap Advertise so the phone is visible.
  3. On your Mac, open Audio MIDI Setup (Applications → Utilities), choose Window → Show MIDI Studio, and click the Bluetooth icon.
  4. Find NueCtrl BLE in the device list and click Connect. NueCtrl's status indicator will read Connected.

On Windows: Bluetooth MIDI support is inconsistent. Windows 10 and 11 can pair a Bluetooth LE MIDI device at the OS level, but not every DAW exposes it as a selectable port, and some setups need a third-party Bluetooth MIDI bridge before the port shows up. If REAPER does not list the device after pairing, use the Wi-Fi route below instead — it is the more dependable wireless path on Windows.

Option B — Wi-Fi (Network / RTP-MIDI)

Lower latency than Bluetooth, still wireless. Roughly 5 ms in practice.

  1. Put the iPhone and the computer on the same Wi-Fi network — 5 GHz if you have the choice.
  2. macOS: Network MIDI is built in. Open Audio MIDI Setup → Window → Show MIDI Studio, double-click the Network icon, click + under My Sessions and tick Enabled. Select NueCtrl in the Directory panel and click Connect.
  3. Windows: there is no built-in Network MIDI. Install rtpMIDI (the free RTP-MIDI driver from Tobias Erichsen), create a session in it, and connect to NueCtrl from its directory list.
  4. In REAPER, the input will appear under the session name (for example Session 1), not under the phone's name.

Option C — USB

The lowest latency and the most reliable route — around 2 ms — and the right choice for a take you intend to keep.

  1. Connect the iPhone to the Mac with a Lightning or USB-C cable.
  2. First time only: in Audio MIDI Setup, choose Window → Show Audio Devices, select your iPhone and click Enable.
  3. NueCtrl detects the cable and switches to USB MIDI automatically. The port appears as NueCtrl.

USB is a macOS route. Getting MIDI off an iPhone over USB relies on macOS exposing the phone as a MIDI device in Audio MIDI Setup. On Windows, use Wi-Fi with rtpMIDI for the low-latency path.

Part 2 — REAPER setup

REAPER is unusually explicit about MIDI inputs: a device is off until you say otherwise, and it has two independent on switches rather than one. Getting the first and missing the second is the single most common reason a correctly connected iPhone appears to do nothing inside REAPER.

Step 1 — Enable the device, and then enable it again

  1. Open Options → Preferences, then in the left-hand tree go to Audio → MIDI Devices.
  2. In the MIDI inputs list, find the device carrying NueCtrl: NueCtrl BLE for Bluetooth, the session name for Wi-Fi, or NueCtrl for USB.
  3. Double-click it. A small device dialog opens.
  4. Tick Enable input from this device. This lets the CC stream reach tracks, so you can record raw controller data into an item.
  5. Tick Enable input for control messages as well, then confirm. The device row should now show that both are on.

This is the sentence to remember: without "Enable input for control messages", MIDI learn does nothing. It is REAPER's equivalent of Ableton's Remote switch. Input alone routes the CC into tracks; control messages is the flag that lets the same data reach MIDI learn, parameter modulation and the action list. If you click Learn, wave the phone around and the dialog just sits there waiting, this checkbox is the cause far more often than anything else — check it before you touch a single other setting.

Step 2 — Route 1: learn an FX parameter

  1. Open the FX window for the plug-in you want to control.
  2. Click Param in that window's toolbar and choose Learn. If you prefer, right-clicking the control itself offers the same learn entry.
  3. Move your iPhone so NueCtrl transmits its CC. REAPER captures the incoming message and fills it into the learn dialog.
  4. Before confirming, look at the options in that dialog. You can set the range the controller sweeps, switch on soft takeover, and scope the mapping — checkboxes there limit it to when the relevant track or item is selected, or to when that FX window is focused.

Soft takeover is worth switching on almost every time. Without it, the parameter jumps to wherever the phone happens to be pointing the instant the first CC arrives. With it, the parameter waits until your movement passes through its current value and only then picks it up — so a mapped cutoff will not slam open the moment you lift the phone off the desk.

Step 3 — Route 2: parameter modulation and link from MIDI

This is REAPER's real differentiator, and it is worth learning properly rather than treating as an advanced-only feature. From Param → Modulation (or by right-clicking the control), open the parameter modulation window. Alongside the LFO and audio-follower sections there is a link from MIDI section: enable it, pick the CC that NueCtrl is sending, and you now have three shaping controls that a plain learn does not give you.

  1. Baseline — where the parameter rests when the controller is not pushing it. A plain learn always starts from zero; a baseline lets you sit a filter at, say, half open and move around that point.
  2. Strength — how far the incoming CC is allowed to move the parameter away from the baseline. This is your depth control, and it is the reason one gesture can be subtle on one destination and dramatic on another.
  3. Direction — whether the CC pushes the parameter up, down, or symmetrically around the baseline.

Set the same CC up on several parameters with different baselines and strengths and one hand movement becomes a small, purpose-built macro — without any scripting, and without leaving the FX window.

Step 4 — Route 3: actions

Not everything worth controlling is a parameter. For transport, markers, track selection and anything else REAPER exposes as a command, open Actions → Show action list, select the action you want, then use Add… → MIDI/OSC learn and move the phone. Bear in mind that a continuous CC is a poor fit for a discrete command — this route is most useful for the handful of controls you want on a phone tilt threshold rather than as a sweep.

Step 5 — Record the pass as an envelope

A mapped parameter is only written to disk if the track's automation mode says so. In Trim/Read — the default — REAPER plays back existing envelopes and records nothing, which is why a first attempt often produces a perfect-sounding pass and an empty project. Switch the track to Touch, Latch or Write, run the section, and ride the parameter by hand. REAPER draws the movement as an envelope you can then edit point by point, or thin out with its envelope point-reduction options.

Part 3 — What to map in REAPER

NueCtrl converts iPhone motion into continuous MIDI CC, so it belongs on parameters that want to move, not on on/off switches. REAPER's stock plug-in set and its modulation system give a motion controller more to do than most hosts.

Parameter modulation with Baseline and Strength

The most REAPER-native way to use a motion controller, and the first thing to try. Link one CC into three or four destinations across a chain, then give each one its own baseline, its own strength and its own direction. One tilt can open a filter a long way, nudge a send a little, and pull a compressor threshold down slightly — all from one gesture, all shaped independently, and none of it requiring a Rack-style container or any scripting.

ReaEQ band frequency and gain

Sweeping a ReaEQ band by hand is the fastest way to find a resonance, and it is also a usable effect in its own right. Learn the band's frequency to your tilt with a sensible range set in the learn dialog, and put the band's gain on a second fader if you want to hunt and cut in one pass. Because ReaEQ exposes each band separately, you can leave a permanent mapped band on a template track.

ReaComp threshold and ReaXcomp

Riding compression as a performance rather than setting it once is where motion control earns its keep on a mix. Map ReaComp's threshold and you can lean into the compression on the loud phrases and back off on the quiet ones, writing a threshold envelope that no static setting could match. On ReaXcomp the same move works per band, which is how you tame a single boomy passage without dulling the whole track.

ReaVerbate / ReaVerb wet and send levels

Send level to a reverb bus is a classic mix gesture that never sounds right when drawn with a mouse, because it is fundamentally a performance. Map the send, or ReaVerbate's wet control, and push the vocal into the tail at the ends of lines before pulling it back for the next phrase. ReaVerb's wet level works the same way when you are running a convolution space.

JSFX parameters

Every JSFX slider is a learnable parameter, which makes REAPER unusually open to this kind of control. Any of the stock JSFX in the ReaPlugs and JS folders can be mapped exactly like a VST parameter, and if you want a shaping stage that behaves precisely the way you like, a short JSFX — written yourself or grabbed from the community — will slot straight in and expose its sliders to learn and to parameter modulation. NueCtrl itself does not ship or require any JSFX; it just sends CC, and REAPER does the rest.

CC1 and CC11 into sampled and orchestral instruments

If you run sampled or orchestral libraries in REAPER, set NueCtrl to send CC1 (modulation) and CC11 (expression) and the instrument will respond directly — no learn, no modulation window, nothing to enable beyond the device itself, because the library already listens to those controllers. Sustained string and brass lines live or die on the shape of the CC11 curve, and a curve that came from a hand is immediately different from one drawn with a mouse.

Resolution note. NueCtrl's Max Mode captures motion at up to 500 Hz, which produces far denser envelopes than a physical fader would. That density is a feature on one or two parameters and a liability across a dozen. REAPER's counterweight is point reduction: there is an option in the automation preferences to reduce point data while recording or drawing, and an envelope's own right-click menu offers reduction after the fact. Record the passes that matter at full resolution, then thin the rest.

Troubleshooting

FAQ

Can I use an iPhone as a MIDI controller in REAPER?

Yes. REAPER treats an iPhone running NueCtrl like any other MIDI input device. Connect over Bluetooth LE MIDI, Wi-Fi (Network / RTP-MIDI) or USB, enable the device in Preferences → Audio → MIDI Devices, and use MIDI learn or parameter modulation to drive any FX parameter, JSFX slider or action.

Why does REAPER's MIDI learn ignore my iPhone even though it is connected?

Almost always because the device is enabled for input but not for control messages. Double-click the device in Preferences → Audio → MIDI Devices and tick both boxes: Enable input from this device, and Enable input for control messages. The second one is what feeds MIDI learn, parameter modulation and action learn. Without it the CC stream can reach a track but will never create a mapping.

Should I use MIDI learn or parameter modulation in REAPER?

Use a plain learn when you want the controller to take over the parameter across its full travel. Use parameter modulation with link from MIDI when you want the CC to move the parameter around a resting value: Baseline sets where the parameter sits with no movement, Strength sets how far the CC pushes it, and the direction control sets the sense. Modulation is also how you drive several destinations from one CC with different depths.

Does Bluetooth MIDI add too much latency for REAPER?

Bluetooth MIDI typically runs around 10-15 ms, which is fine for riding a filter, a send or a compressor threshold but noticeable for tight rhythmic work. Wi-Fi is roughly 5 ms and USB roughly 2 ms. Use USB or Wi-Fi when timing matters, and remember that your audio device block size in REAPER adds its own latency on top.

Is NueCtrl free?

NueCtrl is free to download and use. A one-time Pro in-app purchase unlocks Max Mode (up to 500 Hz motion capture), unlimited faders, per-fader sensitivity, full customization and unlimited presets.

Turn your iPhone into a REAPER controller

NueCtrl is free to download. Two checkboxes and a Learn click and you are performing a parameter.

Download on the App Store

REAPER is a trademark of Cockos Incorporated. NueCtrl is not affiliated with, endorsed by, or sponsored by Cockos Incorporated. Product and DAW names are used for identification only.