#audio-player #midi #midi-file

bin+lib mtrack

A multitrack audio and MIDI player for live performances

25 releases (9 breaking)

0.11.2 Mar 21, 2026
0.10.2 Mar 14, 2026
0.6.0 Oct 19, 2025
0.5.0 Mar 16, 2025
0.1.1 Mar 26, 2024

#165 in Audio

GPL-3.0 license

4.5MB
91K SLoC

mtrack

Actions Status codecov Crates.io Version License: GPL v3 Contributor Covenant

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.

Dashboard

Features

  • 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.

Quick Start

Install via cargo:

$ cargo install mtrack --locked

Start the player (zero-config):

$ cd /path/to/my/songs
$ mtrack start

Or point at a specific directory:

$ mtrack start /path/to/my/songs

Existing config files still work:

$ 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.

Timeline editor

Documentation

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

Building

mtrack uses a Makefile for build tasks. With devbox installed:

$ devbox shell
$ make build

Other useful targets: make test, make lint, make fmt, make docs, make docs-serve.

License

This project is licensed under the GNU General Public License v3.0.

Dependencies

~41–82MB
~1.5M SLoC