Об этом проекте

projectM — это реализация с открытым исходным кодом классического визуализатора Winamp Milkdrop от Geiss, упакованная в виде современной кроссплатформенной переиспользуемой библиотеки. Её назначение — читать аудиовход, определять темп и анализировать PCM-данные с помощью БПФ, применять уравнения и параметры в стиле Milkdrop и отображать результирующую графику через OpenGL. Пресеты определяются пиксельными шейдерами и уравнениями в стиле Milkdrop, и проект совместим с большим количеством пользовательских пресетов Milkdrop. Этот репозиторий содержит только libprojectM — разделяемую/статическую библиотеку, предназначенную для разработки приложений. Интерфейсы, плагины и другие инструменты находятся в отдельных репозиториях. Релизы здесь — это исходный код и бинарные релизы библиотек разработки и заголовков, а не загрузки для конечных пользователей. Библиотека может отображать графику в выделенный контекст OpenGL или в текстуру. Она разбирает пресеты, анализирует аудио PCM-данные с обнаружением битов и БПФ, применяет пресеты к аудио-характеристикам и отображает результат. Основная библиотека зависит в основном от OpenGL. Интерфейсы для конечных пользователей существуют для Windows, macOS, Linux, Android и Xbox/Windows Phone, включая автономное SDL-приложение (projectMSDL), Rust SDL-интерфейс, Qt-приложение для рабочего стола Linux с бэкендами PipeWire, PulseAudio и JACK, плагин GStreamer, плагин Apple Music и релизы для Steam/Windows Store. В README отмечается, что многие из этих интерфейсов являются предварительными версиями для разработки, которые могут быть неполными и содержать ошибки, а приложения для Android не созданы и не поддерживаются разработчиками projectM. Сама библиотека поставляется без пресетов. Пакеты пресетов поддерживаются в отдельных репозиториях, включая базовый пакет текстур Milkdrop, пакет Cream of the Crop (около 10 тыс. пресетов, текущий стандартный), классические пресеты projectM (более 4 тыс.), оригинальные пресеты Milkdrop 2 и пресеты En D. Также упоминается MegaPack с более чем 130 тыс. пресетов. projectM был интегрирован в сторонние приложения, такие как Kodi, Helix, Silverjuke и VLC Media Player, хотя эти интеграции не разрабатываются и не поддерживаются командой projectM. Инструкции по сборке охватывают CMake, сборки Emscripten/WebAssembly и документацию для разработчиков в вики. Основная библиотека выпущена под GNU Lesser General Public License 2.1, что позволяет использовать её в закрытых приложениях как разделяемую библиотеку в соответствии с условиями лицензии. Верхние и нижние проекты могут использовать другие лицензии. Поддержка сообщества доступна через Discord, а вклад принимается через pull request и issues.