Sobre o projeto

rtrack é um tracker de música escrito em Rust, oferecendo tanto uma UI de terminal (ratatui) quanto uma GUI nativa para desktop (egui) que compartilham a mesma biblioteca core sem interface gráfica. Ele produz som imediatamente, sem precisar de um sintetizador externo, DAW ou SoundFont. Principais capacidades incluem: - Sintetizador embutido com 30 patches (saw, square, FM bell, acid, chiptune, etc.) com envelopes ADSR, filtros SVF, sub‑oscilladores, síntese FM e efeitos por canal (distortion, filter, chorus, delay, reverb). - Motor de amostras que suporta carregamento de WAV/AIFF, reprodução com mudança de pitch, pontos de loop, corte baseado em transientes e até 32 vozes simultâneas com roubo de voz sem clique. - Entrada/saída MIDI com portas virtuais, roteamento de hardware, gravação passo a passo e punch‑in, mapeamento aftertouch‑para‑filtro, aprendizado MIDI para mapeamento de CC e saída/entrada de clock. - Ableton Link sincronização bidirecional de tempo e transporte. - Edição de padrões estilo tracker clássico com entrada modal, layout de teclado de piano, seleção de bloco, interpolação, transposição, desfazer/refazer e 12 comandos de efeito. - Estrutura de música com múltiplos padrões, contagem de linhas por padrão, listas de ordem com repetições, salto de posição e efeitos de quebra de padrão. - Renderização offline para WAV/FLAC sem dispositivo de áudio, além de importação/exportação de arquivos MIDI padrão. - Reprodução opcional de SoundFont (.sf2) para suporte a General MIDI. O projeto está estruturado como um workspace Cargo com três crates: rtrack-core (engine sem interface gráfica, áudio, MIDI, modelo de dados), rtrack-tui (frontend de terminal) e rtrack-gui (frontend de desktop). As músicas são salvas como arquivos JSON (.rtrk). Requer Rust 1.89+ e CMake 3.14+.