Об этом проекте

rtrack — музыкальный трекер, написанный на Rust, предлагающий как терминальный интерфейс (ratatui), так и нативный десктопный GUI (egui), которые используют одну и ту же безголовую (headless) ядровую библиотеку. Он генерирует звук сразу из коробки, без необходимости внешнего синтезатора, DAW или SoundFont. Ключевые возможности включают: - Встроенный синтезатор с 30 патчами (пила, квадрат, FM‑колокол, acid, чиптюн и др.) с ADSR‑огибающими, SVF‑фильтрами, суб‑осцилляторами, FM‑синтезом и эффектами на каждый канал (искажение, фильтр, хор, задержка, реверберация). - Сэмплер, поддерживающий загрузку WAV/AIFF, воспроизведение с изменением высоты, точки цикла, нарезку по транзиентам и до 32 одновременных голоса с плавным «stealing». - MIDI‑ввод/вывод с виртуальными портами, аппаратной маршрутизацией, пошаговой и «punch‑in» записью, маппингом aftertouch → фильтр, обучением MIDI (MIDI learn) для назначения CC, а также выводом/вводом тактового сигнала. - Двусторонняя синхронизация темпа и транспорта через Ableton Link. - Классический трекер‑стиль редактирования паттернов с модальным вводом, раскладкой клавиатуры пианино, блочным выделением, интерполяцией, транспонированием, отменой/повтором и 12 командами эффектов. - Структура песни с несколькими паттернами, индивидуальным числом строк в паттерне, списком порядков с повторениями, прыжками позиции и эффектами прерывания паттерна. - Оффлайн‑рендеринг в WAV/FLAC без аудиоустройства, а также импорт/экспорт стандартных MIDI‑файлов. - Опциональное воспроизведение SoundFont (.sf2) для поддержки General MIDI. Проект организован как рабочее пространство Cargo с тремя crate'ами: rtrack-core (безголовый движок, аудио, MIDI, модель данных), rtrack-tui (терминальный фронтенд) и rtrack-gui (десктопный фронтенд). Песни сохраняются в виде JSON‑файлов (.rtrk). Требуется Rust 1.89+ и CMake 3.14+.