mtrack 0.10.2

A multitrack audio and MIDI player for live performances.
Documentation

mtrack

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

mtrack is a multitrack player intended for running on small devices like the Raspberry Pi. It can output multiple tracks of audio as well as MIDI out via class compliant interfaces. The general intent here is to allow mtrack to be controlled remotely from your feet as opposed to needing to drive a computer or tablet on stage.

Features

  • Multi-format audio playback — WAV, FLAC, MP3, OGG, AAC, ALAC, and more 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.
  • Lighting engine — Tag-based, venue-agnostic lighting system with a DSL for defining effects, cues, and sequences. Legacy MIDI-to-DMX conversion still supported.
  • MIDI-triggered samples — Low-latency sample playback via MIDI or piezo audio triggers with velocity scaling, voice management, and release groups.
  • Web UI — Browser-based interface for playback control, waveform visualization, stage view with real-time DMX state, and lighting simulation.
  • Terminal UI — Optional ratatui-based TUI with playlist, now-playing, fixture colors, and log panel.
  • Hardware profiles — Multiple host configurations in a single config file with hostname-based profile selection.
  • 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

Discover your devices:

$ mtrack devices
$ mtrack midi-devices

Start the player:

$ mtrack start /path/to/player.yaml

The web UI will be available at http://localhost:8080.

Documentation

For full documentation, see the mtrack book.

Topics covered include:

  • Getting started — installation, device discovery, song setup, and player configuration
  • Interfaces — web UI, 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.