Skip to content

conormkelly/reamo

Repository files navigation

REAmo

A wireless, zero-config all-in-one control surface for REAPER.

Transport, mixer, timeline, tuner, instruments, notes — all from your phone or tablet. Supports WiFi and USB.

REAmo in action

Quick Start

  1. Download the latest release from Releases
  2. Run Install_REAmo.lua in REAPER (Actions > Run ReaScript)
  3. Restart REAPER
  4. Extensions > REAmo > Show QR Code — scan it with your phone
  5. Add to Home Screen for a native app feel

That's it.

What You Get

View
Timeline Waveforms, regions, markers, pinch-to-zoom, item selection
Mixer Faders, meters, pan, mute/solo/arm, routing, FX, track details
Clock Big transport controls, fully customizable layout
Tuner Select a track, play a note, tune up
Actions Custom button grid — trigger any REAPER action, MIDI CC / PC
Instruments Drum pads, piano keyboard, chord pads using MIDI
Notes Edit project notes from your device

Highlights

  • Recording workflow — Scrap bad takes, retake from the same spot, A/B compare takes, auto-punch, tap tempo
  • Touch instruments — Drum pads, scrollable piano, diatonic chord pads with strum and voice leading. Low-latency MIDI over WebSocket
  • Mix monitoring — Stream REAPER's master output to your phone for quick mix checks, no plugin required
  • FX control — Browse, add, tweak FX parameters and presets from your device
  • Track routing — Sends, receives, and hardware outputs with level/pan control
  • Custom toolbar — Configurable buttons for any REAPER action, SWS extension, or MIDI CC/PC command
  • Works everywhere — Responsive on iPhone, iPad, Android, tablets. Remembers layout per device

Coming Soon

  • Cue Lists — Build playlists from regions for rehearsal and arrangement

Installation

Automatic (Recommended)

  1. Download the latest REAmo-vX.X.zip from Releases
  2. Extract the ZIP file
  3. In REAPER, run Actions > ReaScript: Run ReaScript... (Action ID: 41060)
  4. Select Install_REAmo.lua from the extracted folder
  5. Restart REAPER
  6. (Optional) Preferences > Media — uncheck Set media items offline when application is not active. If enabled, REAPER takes media offline when you switch to another app, which prevents waveforms from loading on your device.

Uninstall

Run Uninstall_REAmo.lua using the same Run ReaScript action.

Manual installation

Copy these files from the ZIP to your REAPER resource path (Options > Show REAPER resource path):

File in ZIP Copy to
reaper_reamo.dylib / .dll / .so UserPlugins/
web/ (entire folder) reaper_www_root/web/
effects/REAmo/PitchDetect.jsfx Effects/REAmo/

Restart REAPER.

Connecting

Scan the QR code: Extensions > REAmo > Show QR Code.

Advanced connection options

REAmo runs an HTTP server on your computer (default port 9224).

  • Same computer: http://localhost:9224/
  • Other device: http://YOUR-IP:9224/ (shown in QR code dialog)
  • Change port: Extensions > REAmo > Change Server Port
  • USB tethering: Connect phone via USB for lowest latency. REAmo detects USB interfaces automatically.
  • Tailscale/VPN: Add your hostname in Extensions > REAmo > Allowed Hosts

For Developers

Zig extension (WebSocket server) + React 19 / TypeScript / Zustand / Tailwind CSS 4 frontend.

cd frontend && npm install && npm run dev   # Dev server with hot reload
make all                                     # Test + build everything

See extension/API.md for the WebSocket API.

Contributing

  1. Fork the repo
  2. Create a feature branch
  3. Open a Pull Request

License

MIT