projectm

projectM - cross-platform music visualization. Open-source and Milkdrop-compatible

Github星跟蹤圖

Build Status

Logo

projectM - The most advanced open-source music visualizer

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.

Available For

Download

Get it from the Releases tab
or
Download from the Windows Store (PC, XBOX, Phone)

Demo Video

Presets

The preset files define the visualizations via pixel shaders and Milkdrop-style equations and parameters. 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 41,000 preset pack of presets here (123MB zipped).

Kodi Kodi (formerly XBMC)

Helix Helix

Silverjuke Silverjuke (FOSS Jukebox)

Silent Radiance Distance Disco


Screenshots

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot


Architecture

Building from source

See BUILDING.md

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 an openGL context or a texture.

To look at a simple example way of using the library see the libSDL2 sample code.

There are many other applications that make use of libprojectM and that can be found in the src directory.


Todo

  • Support for the missing Milkdrop waveforms to get full compatibility with Milkdrop presets.
  • Steal cool stuff from the recently-released Milkdrop source.
  • Finish emscripten support for building to wasm/webGL for the web.
  • Update the various implementations using libprojectM.
  • Update downstream projects with new versions.

Help

Report issues on GitHub
We're on IRC at irc.freenode.net #projectM

If you would like to help improve this project, either with documentation, code, porting, hardware or anything else please let us know! We gladly accept pull requests and issues.

Maintainers

If you maintain packages of libprojectM, we are happy to work with you! Please note well:

  • The main focus of this project is libprojectM. It's a library that only really depends on OpenGL. The other applications are more like examples and demos.
  • Most of the applications (e.g. src/projectM-*) are likely outdated and of less utility than the core library. If you desire to use them or depend on them, please file an issue so we can help update them.
  • The "canonical" application for actually viewing the visualizations is now projectM-sdl, based on libSDL2 because it supports audio input and is completely cross-platform.
  • This is an open source project! If you don't like something, feel free to contribute improvements!
  • Yes, you are looking at the official version. This is not a fork.

Authors

Authors

License

LGPL

主要指標

概覽
名稱與所有者projectM-visualizer/projectm
主編程語言C++
編程語言C++ (語言數: 4)
平台
許可證GNU Lesser General Public License v2.1
所有者活动
創建於2013-08-12 02:54:23
推送於2025-06-10 19:11:59
最后一次提交2025-06-10 21:11:58
發布數39
最新版本名稱v4.1.4 (發布於 )
第一版名稱v0.5-alpha (發布於 )
用户参与
星數3.7k
關注者數87
派生數399
提交數2.7k
已啟用問題?
問題數382
打開的問題數37
拉請求數357
打開的拉請求數2
關閉的拉請求數69
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?