Skip to content

Multi-Device Jam

Turn any phone or tablet into a real-time controller for INBOIL. No app install — just open the URL and enter a room code.

INBOIL uses WebRTC DataChannel for peer-to-peer communication between two devices. One device acts as the host (runs audio and holds state), and the other joins as a guest (controller-only, no audio).

┌──────────────┐ WebRTC P2P ┌──────────────┐
│ Host (PC) │◄───────────────────►│ Guest (Phone) │
│ Audio + DAW │ low-latency data │ Controller │
└──────────────┘ └──────────────┘
  1. Open SYSTEM panel (sidebar)
  2. Under JAM SESSION, tap HOST
  3. An 8-character room code appears (e.g. A3F7KN2X)
  4. Share the code with your jam partner
  1. Open INBOIL in your mobile browser
  2. Open SYSTEMJAM SESSION
  3. Enter the room code and tap JOIN
  4. The connection establishes via WebRTC — your screen mirrors the host’s state
Action How
Toggle steps Tap on the step grid
Change velocity / chance Switch to VEL/CHNC mode and drag
Mute / Solo tracks Tap M or S buttons
Switch patterns Use the pattern selector
FILL / REV / BRK Perf Sheet (PERF tab → Kaoss Pad XY controller)
Tweak parameters Turn knobs in the dock
Play / Stop Transport controls

All changes are sent to the host instantly and reflected on both screens.

  • Audio only plays on the host — the guest device is a controller
  • The host sends a full state snapshot when the guest connects
  • Ongoing changes are synced as JSON Patch deltas (minimal bandwidth)
  • Playhead position is broadcast every step for visual sync
  • 1:1 model — one host, one guest per room
Scenario Latency Suitability
Same WiFi 1–5 ms All controls, real-time
LAN (wired + WiFi) 2–10 ms All controls
Internet (same region) 20–80 ms Step editing, pattern switching
Internet (cross-region) 50–200 ms Non-realtime edits

The connection uses public STUN servers for NAT traversal. Both devices must be able to establish a WebRTC peer connection.

  • For the best experience, use the same WiFi network
  • The guest UI automatically uses the mobile layout — optimized for touch
  • If the connection drops, the guest can rejoin with the same room code
  • Tap DISCONNECT in the SYSTEM panel to end the session