Sobre o projeto

Music Player é um daemon, servidor e cliente de música extensível escrito em Rust, distribuído como um único binário sem dependências de runtime. Foi projetado no espírito do MPD e do Mopidy. A reprodução é alimentada pelo motor de áudio do firmware Rockbox (por meio dos crates rockbox-playback, rockbox-dsp e rockbox-metadata), com suporte a mais de 40 formatos, incluindo MP3, FLAC, Vorbis, Opus, MP4/AAC/ALAC, WavPack, APE, WMA e chiptunes. A cadeia de DSP oferece presets de EQ, crossfade e ReplayGain, com buffering de nível gapless e streaming HTTP nativo. O daemon indexa a biblioteca de músicas no SQLite com busca de texto completo FTS5, mantida em sincronia automaticamente por triggers do banco de dados. Ele expõe a biblioteca via gRPC (tonic, com grpc-web habilitado), GraphQL (com GraphiQL), eventos WebSocket e uma interface web. O mesmo binário atua tanto como servidor quanto como cliente — a primeira invocação inicia o daemon, as seguintes se conectam a ele. As interfaces de usuário incluem: - Uma interface de terminal (ratatui) com um localizador difuso estilo fzf, linha de status inspirada no neovim e sobreposição de ajuda. - Uma interface web (React 19, TanStack Query, Jotai, Tailwind v4) com posição de reprodução ao vivo via assinaturas GraphQL, responsiva até a largura de um telefone. - Um aplicativo desktop Slint com skins, com um daemon embutido, compartilhando as mesmas skins, fontes e componentes da interface web. Recursos adicionais: - Navegar e transmitir de servidores Subsonic/Navidrome e Jellyfin. - Fazer cast para Chromecast e renderizadores UPnP/DLNA, ou controlar outro daemon music-player. - Busca e navegação de rádio pela internet (Radio Browser + TuneIn) com favoritos e uma visualização em tela cheia do que está tocando. - Scrobbling no Rocksky via AT Protocol. - Sincronização via AT Protocol para favoritos de rádio e músicas curtidas entre dispositivos. - Impressão digital acústica via Chromaprint, identificando arquivos pelo áudio e nomeando os mal etiquetados a partir do AcoustID/MusicBrainz. - Análises de audição alimentadas pelo DuckDB, importando histórico do Spotify, Last.fm e Rocksky (deduplicado entre fontes) para análise de sessões, pulos e deriva de gostos. - Saída de áudio flexível: dispositivo do sistema (cpal), stdout, FIFO, socket Unix ou socket TCP. A instalação está disponível via script de instalação curl, npm, Homebrew (incluindo um cask para macOS do aplicativo desktop), repositórios APT e DNF, AUR, Nix flakes e binários pré-compilados para macOS (arm64/x86_64) e Linux (amd64/arm64). A configuração fica em ~/.config/music-player/settings.toml, com cada chave podendo ser sobrescrita por variáveis de ambiente MUSIC_PLAYER_*.