Ada Tracker

April 14, 2026 ยท View on GitHub

Mentioned in Awesome Ada

A MOD, XM, S3M, and IT music tracker player writen in Ada, using SDL2 for audio output and UI rendering.

Screenshots

Main

main

Analyzer

analyzer

About

about

Features

  • Plays MOD (ProTracker / Amiga), XM (FastTracker II), S3M (ScreamTracker 3), and IT (ImpulseTracker) files
  • Full effect support: portamento, vibrato, tremolo, arpeggio, volume/panning slides, pattern loop, pattern delay, and more
  • Volume and panning envelopes with sustain and loop (XM + IT)
  • IT compressed samples (8-bit and 16-bit delta coding, it215 second-order predictor)
  • IT New Note Action (NNA) - background voice pool for layered notes
  • XM auto-vibrato and fadeout
  • 4-point cubic Hermite (Catmull-Rom) sample interpolation
  • Amiga hard-panning for MOD (channels 0/3 left, 1/2 right)
  • Pattern editor with live playback position, channel info strip, and active instrument names
  • Oscilloscope waveform display
  • Real-time spectrum analyser (2048-point FFT, log-scaled 20 Hz - 20 kHz, peak hold)
  • Per-channel VU meters and mute
  • In-app file browser - navigate directories and load songs without restarting
  • PRotected objects for thread-safe sequencer <-> mixer communication

Dependencies

  • GNAT Ada compiler (gprbuild)
  • SDL2 (libsdl2-dev)

Build

make

Use gprbuild if available, fall back to gnatmake automatic. Or build directly:

gprbuild -P tracker.gpr

Install

make install              # install to /usr/local/bin/tracker
make install PREFIX=~/.local

Usage

./bin/tracker_main [file.mod|file.xm|file.s3m|file.it]

If no file is given, the in-app file browser opens automatic.

Keyboard shortcuts

KeyAction
SpacePlay / Pause
EscQuit (or close open popup)
OOpen file browser
WExport current song to WAV
AToggle spectrum analyser
<- / ->Jump to previous / next order
Page Up / Page DownBPM +1 / -1
F1-F8Toggle mute on channels 1-8
F5Jump to start
Right-clickToggle About popup

File browser: Key Up/Key Down navigate, Enter load file or enter directory, Esc cancel.

Supported effects

MOD / XM / S3M / IT (common)

EffectDescription
0xyArpeggio
1xxPortamento up
2xxPortamento down
3xxTone portamento
4xyVibrato
5xyTone portamento + volume slide
6xyVibrato + volume slide
7xyTremolo
8xxSet panning
9xxSample offset
AxyVolume slide
BxxJump to order
CxxSet volume
DxxPattern break
FxxSet speed / BPM

XM extended effects (Exy)

EffectDescription
E1x/E2xFine portamento up/down
E4x/E7xSet vibrato/tremolo waveform
E5xSet finetune
E6xPattern loop
E8xSet panning
E9xRetrigger
EAx/EBxFine volume slide up/down
ECxNote cut
EDxNote delay
EExPattern delay
TxxSet BPM
PxxPanning slide

IT-specific volume column commands

ValueDescription
0-64Set volume
65-74Fine volume slide up
75-84Fine volume slide down
85-94Volume slide up
95-104Volume slide down
128-192Set panning
193-202Portamento
203-212Vibrato

Resources

Mod Archive - download music modules for the tracker here