An excerpt from the repository, fetched Nov 13, 2026.
Read the project’s introduction
Chat with us on Discord
projectM - The most advanced open-source music visualizer
Experience psychedelic and mesmerizing visuals by transforming music into equations that render into a limitless array
of user-contributed visualizations.
projectM is an open-source project that reimplements the
esteemed Winamp Milkdrop by Geiss in a more modern, cross-platform reusable
library.
Its purpose in life is to read an audio input and to produce mesmerizing visuals, detecting tempo, and rendering
advanced equations into a limitless array of user-contributed visualizations.
Important: This repository only contains libprojectM for use in application development!
This repository now only contains the projectM shared/static library. All frontends, plug-ins and other tools were
outsourced into separate repositories. If you're not a developer and just look for a download to run projectM visuals on
your machine or device, please use one of the links listed below. The releases section in this repository only contains
source-code and binary releases of the projectM development libraries and headers, which aren't useful for end users.
End-User Applications
Important: projectM is currently undergoing heavy development. The available end-user frontends are
development previews, which are not feature-complete and may have bugs.
Windows
Standalone (projectMSDL 2.0 pre-release)
Steam (Same as standalone development
preview)
Windows Store (Old 3.1.12 release)
macOS
Standalone
C++ app pre-release
Rust app development preview (signed)
Steam (Old 3.1.12 release)
Music.app Plugin (currently only available as an
unsigned development preview)
Brew (Old 3.1.12 release)
Linux
Standalone (projectMSDL 2.0 pre-release, also
available as .deb and .tar.gz)
Steam (Same as standalone development
preview)
Or check your distribution's package manager for a binary release. If it is outdated, please contact the package
maintainer, as the projectM development team does not maintain any of the distribution-specific packages.
Android
Google Play
Note: Both the free and paid apps are not created or supported by the projectM developers!
If you have technical troubles or other inquiries, please contact the app author via the means provided in the Play
Store. Any bug reports in the projectM issue tracker regarding the apps will be closed immediately.
Android TV / Google TV
ProjectM TV (free, open source; APK download, see the repository for
install instructions)
Google Play (paid)
Note: These apps are not created or supported by the projectM developers, and bug reports in the projectM issue
tracker regarding them will be closed. For ProjectM TV, please use the issue tracker of its own repository. For the Play
Store app, contact its author via the Play Store.
Xbox / Windows Phone
Windows Store (Old 3.1.12 release)
Other
Source code and other resources, mostly aimed at developers.
Library source code (this repository)
GStreamer plugin
Qt based (Qt5/Qt6) desktop apps for Linux with
PipeWire, PulseAudio and JACK audio
backends (source code, requires libprojectM 4.x).
ALSA, XMMS, Winamp, JACK (legacy 2.x sources for historic
purposes, unmaintained since 2012)
Discord chat
Chat with us on Discord!
Click For Demo Videos
Presets
The preset files define the visualizations via pixel shaders and Milkdrop-style equations and parameters.
The projectM library does not ship with any presets. The frontends come with varying preset packs which can be found in
separate repositories in the projectM repository list:
Base Milkdrop texture pack - Recommended for
use with any preset pack!
Cream of the Crop Pack - A collection of about 10K
presets compiled by Jason Fletcher. Currently, projectM's default preset pack.
Classic projectM Presets - A bit over 4K presets
shipped with previous versions of projectM.
Milkdrop 2 Presets - The original preset
collection shipped with Milkdrop and Winamp.
En D Presets - About 50 presets created by "En D".
Included with projectM are the bltc201, Milkdrop 1 and 2, projectM, tryptonaut and yin collections. You can grab these
presets here.
You can also download an enormous 130k+ presets from the MegaPack here (4.08GB zipped, incl. textures).
Also Featured In
Kodi (formerly XBMC)
Helix
Silverjuke (FOSS Jukebox)
VLC Media Player (AKA VideoLAN Client)
Reminder: These are all third-party integrations of libprojectM and not developed or supported by the projectM
development team. Please report bugs in those applications to their respective developers.
Screenshots
Architecture
Article
Building from source
See the build guide for
instructions on building libprojectM from source, including the full CMake reference,
the Emscripten guide for
WebAssembly builds, and
the developer documentation in the wiki.
Using the library
At its core projectM is a library, libprojectM. This library is responsible for parsing presets,
analyzing audio PCM data with beat detection and FFT, applying the preset to the audio feature data and rendering the
resulting output with OpenGL. It can render to a dedicated OpenGL context or a texture.
To get started using projectM in your own projects, please go to the wiki and read
the developer documentation
available there.
There are some open-source applications that make use of libprojectM which can be found in
the projectM organization's repositories and elsewhere.
See Also
GStreamer plugin for offline rendering
ProjectM Rust Crate
Milkdrop evaluation library
Help
Report issues on GitHub in the respective repositories:
Rendering issues, crashes or the libprojectM core/API
Standalone SDL app (including the Steam release)
Windows Store App
Apple Music plug-in
Issues regarding the projectM Android apps in the Play Store, please contact the app author via the Play Store. We
cannot help with any problems or requests.
If unsure, post your issue in the
main libprojectM issue tracker.
Please always check any existing issues if your problem has already been posted by another
Read the full README on GitHub