Sobre o projeto

projectM é uma reimplementação de código aberto do visualizador clássico Winamp Milkdrop de Geiss, empacotada como uma biblioteca moderna, multiplataforma e reutilizável. Seu propósito é ler uma entrada de áudio, detectar o ritmo e analisar dados PCM com FFT, aplicar equações e parâmetros no estilo Milkdrop e renderizar os visuais resultantes por meio de OpenGL. Os presets são definidos por shaders de pixel e equações no estilo Milkdrop, e o projeto é compatível com o grande corpo de presets Milkdrop contribuídos por usuários. Este repositório contém apenas libprojectM, a biblioteca compartilhada/estática destinada ao desenvolvimento de aplicativos. Frontends, plug-ins e outras ferramentas vivem em repositórios separados. Os lançamentos aqui são lançamentos de código-fonte e binários das bibliotecas e cabeçalhos de desenvolvimento, não downloads para usuários finais. A biblioteca pode renderizar para um contexto OpenGL dedicado ou para uma textura. Ela analisa presets, analisa dados PCM de áudio com detecção de batida e FFT, aplica presets aos dados de características de áudio e renderiza a saída. A biblioteca principal depende principalmente de OpenGL. Existem frontends para usuários finais para Windows, macOS, Linux, Android e Xbox/Windows Phone, incluindo um aplicativo SDL autônomo (projectMSDL), um frontend Rust SDL, um aplicativo de desktop Qt para Linux com backends PipeWire, PulseAudio e JACK, um plug-in GStreamer, um plug-in Apple Music e lançamentos Steam/Windows Store. O README observa que muitos desses frontends são pré-visualizações de desenvolvimento que podem não ser completos em termos de recursos e podem conter bugs, e que os aplicativos Android não são criados ou suportados pelos desenvolvedores do projectM. A biblioteca em si é distribuída sem presets. Pacotes de presets são mantidos em repositórios separados, incluindo o pacote de texturas base Milkdrop, o pacote Cream of the Crop (cerca de 10 mil presets, o padrão atual), presets clássicos do projectM (mais de 4 mil), presets originais do Milkdrop 2 e presets En D. Um MegaPack com mais de 130 mil presets também é referenciado. O projectM foi integrado a aplicativos de terceiros como Kodi, Helix, Silverjuke e VLC Media Player, embora essas integrações não sejam desenvolvidas ou suportadas pela equipe do projectM. As instruções de compilação cobrem CMake, compilações Emscripten/WebAssembly e documentação para desenvolvedores no wiki. A biblioteca principal é lançada sob a GNU Lesser General Public License 2.1, permitindo uso em aplicativos de código fechado como uma biblioteca compartilhada sob os termos da licença. Projetos a montante e a jusante podem usar licenças diferentes. O suporte da comunidade está disponível via Discord, e contribuições são aceitas por meio de pull requests e issues.