mtrack is a multitrack audio, MIDI, and lighting player for live performances. It runs on
small devices like the Raspberry Pi and is designed to be controlled remotely — from your feet,
a phone, or any device with a browser — so you never have to babysit a computer on stage.
- Multi-format audio playback — WAV, FLAC, MP3, OGG, AAC/M4A, AIFF via Symphonia. Automatic transcoding to match your audio device.
- MIDI playback and control — Play back MIDI files, emit MIDI events on song selection, and control the player via MIDI. Beat clock output for syncing external gear.
- DMX lighting engine — Tag-based, venue-agnostic lighting system with a custom DSL for effects, cues, and sequences. Real-time effects engine with OLA integration for DMX output.
- Web UI — Full browser-based interface for playback control, song management, lighting show authoring, playlist editing, and hardware configuration. Includes a DAW-style timeline editor with integrated playback preview and real-time stage visualization.
- Zero-config startup — Point mtrack at a directory of songs and it works. No config file required. Bulk import entire song libraries from the filesystem.
- Lock mode — Safety mechanism for live shows. Lock the player to prevent accidental configuration changes while keeping playback controls active.
- MIDI-triggered samples — Low-latency sample playback via MIDI or piezo audio triggers with velocity scaling, voice management, and release groups.
- Terminal UI — Optional ratatui-based TUI with playlist, now-playing, fixture colors, and log panel.
- Hardware profiles — Per-machine hardware configurations with hostname-based profile selection. Carry the same config across rehearsal and show rigs.
- Remote control — gRPC and OSC interfaces for external control and status reporting.
- Systemd integration — Generated service file with security hardening for production deployments.
- A computer that runs Linux or macOS. A Raspberry Pi 3 or newer is a common choice for the stage; a pre-built Pi image is available.
- For multitrack playback, an audio interface with as many outputs as you want to route separately. mtrack uses the operating system's audio drivers, so a class-compliant interface works without extra drivers.
- For lighting, an OLA installation (the
oladdaemon) and a DMX interface it supports. - For MIDI playback or control, a MIDI interface or controller the operating system can see.
- A web browser on any device that can reach the player.
- Not a DAW: it plays back prepared songs and does not record, edit audio, or mix live.
- Not a lighting console: lighting is authored ahead of time as cues that play in sync with songs.
- Not released for Windows: the pre-built binaries are for Linux and macOS.
Install mtrack (pre-built binaries, a Raspberry Pi
image, a .deb package, or cargo install mtrack --locked), then start the player
(zero-config):
$ cd /path/to/my/songs
$ mtrack start
Or point at a specific directory (mtrack start /path/to/my/songs) or an existing config file
(mtrack start /path/to/mtrack.yaml).
The web UI will be available at http://localhost:8080. Use the web UI to import songs,
create playlists, configure hardware, and author lighting shows. The
Quick Start guide walks through a first song.
For full documentation, see the mtrack book.
Topics covered include:
- Getting started — installation, device discovery, song setup, and player configuration
- Web UI — dashboard, song browser, timeline editor, playlist editor, configuration, and lock mode
- Interfaces — terminal UI, gRPC, and OSC control
- Configuration — hardware profiles, samples, and triggers
- Lighting — lighting system overview, fixture configuration, effects, and cueing
- Deployment — systemd setup and service hardening
mtrack uses a Makefile for build tasks. First, install system dependencies:
$ ./setup.sh # build dependencies only
$ ./setup.sh --dev # include development tools (buf, cargo-tarpaulin, licensure, mdbook)
Then build:
$ make build
Other useful targets: make test, make lint, make fmt, make docs, make docs-serve. The Makefile lists the rest, including the web UI journey tests.
Need help with mtrack? Join us on Discord!
This project is licensed under the GNU General Public License v3.0.

