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
ActionHow
Toggle stepsTap on the step grid
Change velocity / chanceSwitch to VEL/CHNC mode and drag
Mute / Solo tracksTap M or S buttons
Switch patternsUse the pattern selector
FILL / REV / BRKPerf Sheet (PERF tab → Kaoss Pad XY controller)
Tweak parametersTurn knobs in the dock
Play / StopTransport 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
ScenarioLatencySuitability
Same WiFi1–5 msAll controls, real-time
LAN (wired + WiFi)2–10 msAll controls
Internet (same region)20–80 msStep editing, pattern switching
Internet (cross-region)50–200 msNon-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