Sobre el proyecto

projectM es una reimplementación de código abierto del clásico visualizador Winamp Milkdrop de Geiss, empaquetada como una biblioteca reutilizable moderna y multiplataforma. Su propósito es leer una entrada de audio, detectar el tempo y analizar datos PCM con FFT, aplicar ecuaciones y parámetros al estilo Milkdrop, y renderizar los visuales resultantes mediante OpenGL. Los presets se definen mediante pixel shaders y ecuaciones al estilo Milkdrop, y el proyecto es compatible con el gran conjunto de presets Milkdrop aportados por usuarios. Este repositorio contiene solo libprojectM, la biblioteca compartida/estática destinada al desarrollo de aplicaciones. Los frontends, plug-ins y otras herramientas viven en repositorios separados. Las versiones aquí son versiones de código fuente y binarias de las bibliotecas de desarrollo y los encabezados, no descargas para usuarios finales. La biblioteca puede renderizar en un contexto OpenGL dedicado o en una textura. Analiza presets, analiza datos PCM de audio con detección de beats y FFT, aplica presets a los datos de características de audio y renderiza la salida. La biblioteca principal depende principalmente de OpenGL. Existen frontends para usuarios finales en Windows, macOS, Linux, Android y Xbox/Windows Phone, incluida una aplicación SDL independiente (projectMSDL), un frontend SDL en Rust, una aplicación de escritorio basada en Qt para Linux con backends PipeWire, PulseAudio y JACK, un plugin de GStreamer, un plug-in de Apple Music y versiones para Steam/Windows Store. El README señala que muchos de estos frontends son vistas previas de desarrollo que pueden no estar completas en cuanto a funciones y pueden contener errores, y que las aplicaciones de Android no son creadas ni compatibles con los desarrolladores de projectM. La biblioteca en sí se distribuye sin presets. Los paquetes de presets se mantienen en repositorios separados, incluido el paquete base de texturas Milkdrop, el paquete Cream of the Crop (unos 10K presets, el predeterminado actual), los presets clásicos de projectM (más de 4K), los presets originales de Milkdrop 2 y los presets En D. También se hace referencia a un MegaPack de más de 130k presets. projectM se ha integrado en aplicaciones de terceros como Kodi, Helix, Silverjuke y VLC Media Player, aunque estas integraciones no son desarrolladas ni compatibles con el equipo de projectM. Las instrucciones de compilación cubren CMake, compilaciones con Emscripten/WebAssembly y documentación para desarrolladores en la wiki. La biblioteca principal se publica bajo la GNU Lesser General Public License 2.1, lo que permite su uso en aplicaciones de código cerrado como biblioteca compartida bajo los términos de la licencia. Los proyectos anteriores y posteriores pueden usar licencias diferentes. El soporte de la comunidad está disponible a través de Discord, y las contribuciones se aceptan mediante pull requests e issues.