SimpMusic/README.md

13 KiB

SimpMusic Banner

SimpMusic (Enhanced Edition)

Cliente de YouTube Music moderno, sem anúncios e com foco em fluidez extrema para Android e Desktop.

Fork aprimorado com suporte completo a 120 FPS, Android Auto reestruturado, widget nativo de alto desempenho, novos controles de reprodução e total liberdade de compilação.

Latest Release Build Status License: GPL v3


🌟 Sobre este Fork

Este repositório é uma versão aprimorada e mantida ativamente por @muriloscolari, desenvolvida sobre a base do projeto SimpMusic de maxrave-dev.

O foco deste fork é elevar o padrão de usabilidade, desempenho e estabilidade do aplicativo para o uso diário, eliminando gargalos de performance, adicionando recursos práticos que faltavam no projeto original e removendo todas as distrações ou travas proprietárias.


🚀 Todas as Melhorias e Recursos Exclusivos deste Fork

Abaixo estão todas as otimizações e novos recursos desenvolvidos e incorporados nesta versão:

🏎️ 1. Desempenho Extremo e Fluidez (120 FPS cravados)

  • Suporte Nativo a Altas Taxas de Atualização (120 Hz / 120 FPS): Remoção das limitações de taxa de quadros e migração de renderização de vídeo para TextureView, desativando o rate-voting restritivo do ExoPlayer.
  • Otimização Drástica do Player Apple Music: Eliminação de recomposições contínuas a cada 50ms e remoção de filtros de desfoque pesados redundantes que causavam engasgos e perda de frames.
  • Integração com ADPF (Android Dynamic Performance Framework): Implementação de sessões de performance hint para informar a CPU/GPU sobre a carga de renderização em tempo real, mitigando quedas de taxa de quadros (stutters).
  • Pausa de UI em Segundo Plano: Quando a tela de reprodução está ativa, transições infinitas ociosas e recomposições das telas em segundo plano são congeladas para liberar ciclos de CPU.
  • Fluidez em Grandes Playlists: Otimização profunda de paginação no banco de dados SQLite, transações em lote (batch transactions) e cálculo correto de offset de linhas para eliminar travamentos ao rolar bibliotecas com centenas de músicas.

☁️ 2. SimpSync Cloud: Sincronização em Tempo Real com Criptografia E2EE (Zero-Knowledge)

  • Criptografia Ponta a Ponta (Zero-Knowledge E2EE): Toda a biblioteca (músicas curtidas, playlists locais com fotos e ordem das faixas, artistas seguidos, álbuns favoritados, histórico de reprodução e configurações) é criptografada no cliente com AES-256-GCM antes de ser enviada ao servidor.
  • Chaveiro com Senha Mestra + Recovery Key: Chave de dados (DEK) protegida por derivação PBKDF2-HMAC-SHA256 (120.000 iterações) e com suporte a Chave de Recuperação (XXXX-XXXX-XXXX-...) para recuperação de conta caso a senha seja esquecida.
  • Auto-Push em Tempo Real (~1.5s): Ações principais da biblioteca (curtir uma música, alterar uma playlist, seguir um artista) disparam sincronização automática e silenciosa em ~1.5 segundo, sem precisar esperar nem sincronizar manualmente.
  • Notificações Instantâneas via WebSocket (~300ms): Ao curtir ou alterar uma playlist em um dispositivo (ex: PC), os outros aparelhos conectados (ex: celular Android) recebem o aviso via WebSocket em ~300ms e atualizam a interface automaticamente e em silêncio.
  • Gerenciamento de Dispositivos Conectados: Interface completa em Configurações -> Dispositivos permitindo visualizar os aparelhos ativos na conta e revogar o acesso de sessões remotas.
  • Backend Próprio em Go Otimizado e Blindado: Servidor auto-hospedável com consumo ínfimo de RAM (~10 MB), semáforos de concorrência Argon2id anti-OOM, rate limiter por IP, sincronização delta por hash e bloqueio de novos registros (ALLOW_REGISTRATION=false).

🚗 3. Reformulação do Android Auto

  • Navegação Visual com Capas de Álbuns: Categorias, prateleiras e listas com arte em alta resolução na tela do carro.
  • Prateleira de Playlists na Categoria Início: A categoria Início agora começa com uma prateleira de playlists; ao abri-la, as capas e a biblioteca completa aparecem em grade.
  • Categorias de Biblioteca: Acesso rápido a Downloaded, Favorites, Playlists e Songs, na mesma ordem da interface nova.
  • Desduplicação de Curtidas: Filtro automático para evitar que a playlist de curtidas do YouTube apareça repetida ("Músicas que gostei" e "YouTube Liked Music").
  • Botão de Fila na Tela do Carro: Botão dedicado de fila adicionado ao player em reprodução (Now Playing) para inspecionar e gerenciar as próximas faixas direto na multimídia do veículo.
  • Correção de Seleção de Faixas: Solução definitiva para a falha em que clicar em uma música na tela do carro não tocava a faixa correta ou revertia para a música anterior.

A interface nova com Car App Library (abas e seções) está preservada no branch feat/car-cal-ui (tag car-cal-ui-v1). No branch custom, o Android Auto usa a interface legada de MediaBrowserService, otimizada para ficar o mais próxima possível dela.

📱 3. Novo Widget Compacto Nativo (RemoteViews)

  • Arquitetura Leve em RemoteViews: Substituição de frameworks pesados por RemoteViews nativo do Android, garantindo inicialização instantânea e menor consumo de RAM e bateria.
  • Arte do Álbum Ampliada em Alta Definição: Aumento considerável no tamanho da capa da música com decodificação em alta qualidade.
  • Paleta Adaptativa com Cor Dominante: O widget analisa a capa da música e ajusta a cor e o gradiente de fundo dinamicamente.
  • Layout de 2 Linhas: Título da música e artista organizados em linhas separadas para evitar cortes de texto.
  • Roteamento Inteligente de Toques: Tocar na capa ou no título abre diretamente o player em reprodução; botões de play/pause e skip operam instantaneamente.

🎧 4. Player, Rádio e Letras Inteligentes

  • Auto-Resume ao Pular Faixas: Se a reprodução estiver pausada e você pular para a próxima música ou voltar para a anterior, ela começa a tocar automaticamente sem exigir um clique manual no botão de Play.
  • Transição Contínua para Rádio (Seamless Radio): Iniciar um rádio a partir da música atual faz uma transição perfeita sem recarregar nem interromper a reprodução da faixa que está tocando.
  • Priorização de Letras Palavra por Palavra (RICH_SYNCED): O motor de letras sincronizadas prioriza automaticamente fontes ricas palavra por palavra no SimpMusic Lyrics e LRCLIB.
  • Gesto de Voltar Preditivo (Predictive Back): Suporte nativo ao gesto de voltar do Android 14+ com animações de transição suaves.

📥 5. Downloads Concorrentes Configuráveis

  • Downloads Paralelos Ajustáveis: Nova opção na tela de configurações para definir o número de downloads simultâneos (maxParallelDownloads), acelerando expressivamente o download de playlists e álbuns inteiros para o modo offline.

🖥️ 6. Player Desktop (Linux & Windows)

  • Ajuste de Volume com o Scroll do Mouse: Altere o volume facilmente apenas rolando a roda do mouse sobre o ícone ou controle de volume.
  • Ajuste de Volume em Tempo Real (Live Slider Drag): A alteração sonora ocorre instantaneamente enquanto você arrasta a barra, permitindo encontrar o volume ideal de ouvido sem ter que soltar o clique.

🧹 7. Experiência Limpa e Sem Bloatware

  • Sem Auto-Promoção ou Popups: Remoção de todos os banners de anúncios de repositório, popups de avaliação insistentes e convites forçados de redes sociais do desenvolvedor original.
  • Remoção da Trava de Assinatura Proprietária: O código original continha uma verificação artificial impedindo o app de rodar se compilado com chaves de assinatura diferentes. Essa trava foi eliminada, garantindo total liberdade para compilar releases customizadas.

⚙️ 8. Pipeline de CI/CD Totalmente Automatizado

  • Releases Automáticas no GitHub Actions: A cada commit no branch custom, o GitHub Actions compila e publica automaticamente os pacotes para todas as plataformas:
    • APK Android ARM64 (arm64-v8a)
    • APK Android Universal
    • AppImage portátil para Linux (x86_64)
    • Instalador offline para Windows (x64)
  • Changelog e Notas Detalhadas: As notas de cada release trazem automaticamente o título e a descrição completa do commit que a gerou.

📥 Downloads

Baixe os binários da versão mais recente na nossa página de Releases:

Plataforma Pacote Recomendação
Android (Smartphones modernos) SimpMusic-v*-arm64-v8a.apk Recomendado: mais leve e otimizado para CPUs 64 bits.
Android (Universal) SimpMusic-v*-universal.apk Compatível com todos os dispositivos e emuladores Android.
Linux SimpMusic-v*-Linux-x86_64.AppImage Executável único compatível com qualquer distribuição Linux.
Windows SimpMusic-v*-Windows-x64-installer.zip Instalador offline com script automatizado para Windows 10/11.

Warning

Não é possível instalar por cima do SimpMusic oficial. Esta é uma build assinada com chave de debug e mantém o mesmo applicationId (com.maxrave.simpmusic) do app original — o Android vai recusar a instalação (App not installed / App não instalada) por incompatibilidade de assinatura. Desinstale a versão oficial antes de instalar esta (o mesmo vale ao voltar para o oficial depois). Se quiser preservar seus dados, faça um backup antes.


✨ Recursos Herdados da Base

  • Reprodução livre de anúncios e em segundo plano com áudio de alta fidelidade (Opus / AAC até 256 kbps).
  • Equalizador de 10 bandas integrado com suporte a perfis de fone AutoEq, Reverb e Delay.
  • Modo Offline e Cache inteligente para reprodução sem internet.
  • Crossfade estilo DJ com transições suaves.
  • Integração nativa com SponsorBlock e Return YouTube Dislike.
  • Scrobbling no Last.fm.
  • Suporte a múltiplos perfis e contas do YouTube.

🛠️ Compilação Local

Pré-requisitos

  • JDK 21 ou superior
  • Android SDK configurado na variável de ambiente ANDROID_HOME
  • Conveyor (necessário para empacotar a distribuição Desktop)

Comandos de Compilação

# Compilar APK de Release (Android)
./gradlew :androidApp:assembleRelease --no-configuration-cache

# Gerar e empacotar AppImage (Linux)
./gradlew :desktopApp:writeConveyorConfig --no-configuration-cache
conveyor --agree-to-license=1 -Kapp.machines=linux.amd64.glibc make --overwrite=HARD_REPLACE linux-app
./gradlew :desktopApp:packageConveyorAppImage --no-configuration-cache

# Executar a versão Desktop em modo desenvolvimento
./gradlew :desktopApp:run

  • Fork não oficial: este projeto não é afiliado, endossado nem suportado pelo SimpMusic original nem por seus desenvolvedores.
  • Não relate problemas deste fork no projeto original. Use as Issues deste repositório para reportar bugs e enviar sugestões.
  • Fornecido "COMO ESTÁ" (AS IS): sem garantia de qualquer tipo, expressa ou implícita. Os autores não se responsabilizam por qualquer dano, perda de dados ou prejuízo decorrente do uso deste software.
  • Sem incentivo à pirataria: este projeto não apoia nem incentiva a pirataria. Os usuários são os únicos responsáveis por garantir que o uso esteja em conformidade com as leis de direitos autorais do seu país e com os Termos de Serviço das plataformas acessadas.
  • Código aberto (GPLv3): o código-fonte completo das modificações está disponível neste repositório.

📄 Licença e Atribuição