Play tracker music in your terminal
Слушай трекерную музыку в терминале
A terminal-based player for MOD tracker files. Runs on Linux, plays your .mod, .xm, .s3m, and .it files with a live pattern view like the old ProTracker and Fasttracker days.
Shows notes scrolling past, VU meters for each channel, FFT spectrum analyzer, and a real-time oscilloscope. Everything runs in your terminal.
Плеер для MOD-файлов прямо в терминале. Работает на Linux, запускает .mod, .xm, .s3m и .it с живым видом паттернов — как в старых добрых Protracker и Fasttracker.
Показывает прокручивающиеся ноты, VU-метры для каждого канала, FFT-спектр и осциллограф в реальном времени. Всё это в твоём терминале.
Install directly from AUR using your favorite AUR helper:
Установить программу можно через любой AUR-хелпер:
yay -S cli-modplayer# or# илиparu -S cli-modplayer
You need these packages (Debian/Ubuntu example):
Нужны эти пакеты (пример для Debian/Ubuntu):
sudo apt install g++ cmake libopenmpt-dev portaudio19-dev
Optional for export formats:
Если нужен экспорт в разные форматы:
sudo apt install libmp3lame-dev libflac-dev
Build it:
Собери:
cmake -S . -B build
cmake --build build
Run it:
Запусти:
./build/cli-modplayer
# or# или
./build/cli-modplayer /path/to/song.mod
Added About page (press A) with ASCII art, version info, and credits. Module info overlay (press N) now shows everything without limits - all instruments and messages with proper scrolling using arrow keys, j/k, or PageUp/PageDown. Module info and export dialogs dim the background now and info window adapts to content size. Fixed playhead centering (was off by one), export thread doesn't hold mutex for entire duration anymore, arrow keys work properly in overlays, and info shows actual content height. Added file browser that starts when you run the program without arguments - shows only module files (.mod, .xm, .s3m, .it) with file sizes, navigate with arrow keys or j/k, Enter to select, Backspace for parent directory, Home/End to jump around, PgUp/PgDn to scroll fast, Q to quit. Built real-time oscilloscope with separate left (cyan) and right (green) waveforms using 512 samples per channel, updates live from audio stream and sits next to the FFT spectrum analyzer. Renamed project from cli-tracker to cli-modplayer so the executable is now called cli-modplayer. Added FileBrowser class for filesystem stuff, update_waveform() method in Player for capturing audio data, waveform_left and waveform_right fields in TransportState with thread-safe buffer handling. FFT spectrum analyzer with 20 logarithmic bands, audio effects (Bass Boost, Echo, Reverb, Flanger, Phaser, Chorus), export to WAV/MP3/FLAC
Добавил страницу «О программе» (жми A) с ASCII-артом, версией и авторами. Сделал инфо о модуле (жми N) — теперь показывает всё без ограничений: все инструменты и сообщения, можно скроллить стрелками, j/k или PageUp/PageDown. Окна инфо и экспорта затемняют фон, размер окна подстраивается под контент. Починил центровку курсора воспроизведения (была на единицу смещена), поток экспорта не держит мьютекс всё время, стрелки нормально работают в окнах, инфо показывает реальную высоту контента. Добавил браузер файлов — запускается, если программу запустить без аргументов, показывает только модульные файлы (.mod, .xm, .s3m, .it) с размерами, управление стрелками или j/k, Enter чтобы выбрать, Backspace для родительской папки, Home/End чтобы прыгнуть, PgUp/PgDn для быстрой прокрутки, Q чтобы выйти. Сделал осциллограф в реальном времени с отдельными левым (голубой) и правым (зелёный) каналами по 512 сэмплов, обновляется живьём из аудиопотока рядом с FFT-спектром. Переименовал проект из cli-tracker в cli-modplayer, теперь исполняемый файл называется cli-modplayer. Добавил класс FileBrowser для файловой системы, метод update_waveform() в Player для захвата аудио, поля waveform_left и waveform_right в TransportState с потокобезопасной работой с буферами. Сделал FFT-спектр с 20 логарифмическими полосами, аудиоэффекты (усиление баса, эхо, реверб, фленжер, фазер, хорус), экспорт в WAV/MP3/FLAC.