https://github.com/projectM-visualizer/projectm Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Issues - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} projectM-visualizer / projectm Public * * Notifications * Star 1.5k * Fork 254 * projectM - cross-platform music visualization. Open-source and Milkdrop-compatible LGPL-2.1 License 1.5k stars 254 forks Star Notifications * Code * Issues 82 * Pull requests 13 * Discussions * Actions * Projects 1 * Wiki * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Projects * Wiki * Security * Insights master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 20 branches 30 tags Code Latest commit @theIDinside theIDinside Issue#130 (#546) ... e2d265f Oct 23, 2021 Issue#130 (#546) * Fixes issue #130 Adds functionality of writing a rendered frame to file as requested by the issue #130. Keyhandler.cpp has been updated to handle the keydown of 'd', which triggers writeNextFrameToFile to be set to true, which means at the end of Renderer::FinishPass1 we write the texture contents to file. Renderer::debugWriteMainTextureToFile() const contains the functionality of writing the contents of the main texture. * Addition to commit that fixes #130 Safe file write, making sure we don't overflow while creating the filename. If c++20 features was enabled, this could look so, so much better. * Added keybinding to README doc * Formatting Fixed snake_case to camelCase Changed delete to delete[] Turned magic constant to a named variable e2d265f Git stats * 2,194 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .circleci Create config.yml Nov 4, 2019 .github Update issue templates Aug 3, 2021 Installer.xcodeproj Split SDL project up into more managable pieces (#473) Apr 21, 2021 cmake Add GitHub Action to build with CMake on Windows, Linux and macOS. Jun 10, 2021 fonts bundle SDL for osx WIP Jul 31, 2018 m4 bumping version, update autoconf qt May 24, 2020 mac Mac enable glText (#472) Feb 28, 2021 msvc scaling (#512) Jul 9, 2021 nix Add a nix file Feb 10, 2019 presets Add CMake build system files (only as "autotools" replacement for now) ( Jun 4, 2021 projectM.xcworkspace Xcode cleanup, single mac installer, universal binary support (#461) Feb 14, 2021 src Issue#130 (#546) Oct 23, 2021 vendor/glm GLSL and emscripten - JavaScript and WebGL support (#92) May 11, 2019 web Add link and screenshot to Silverjuke, an FOSS jukebox which is also ... Feb 16, 2018 .appveyor.yml Update .appveyor.yml Nov 1, 2019 .clang-format Reformatted some code and updated .clang_format file. Jul 4, 2021 .gitignore Add CMake build system files (only as "autotools" replacement for now) ( Jun 4, 2021 .travis.yml x86_64 builds FOR NOW for macOS. update travis xcode. Dec 30, 2020 AUTHORS.txt Xcode cleanup, single mac installer, universal binary support (#461) Feb 14, 2021 BUILDING-cmake.md readme Aug 23, 2021 BUILDING.md link Aug 17, 2021 CHANGES.md tell fools where to find CHANGES Aug 17, 2021 CMakeLists.txt Update CMakeLists.txt Aug 23, 2021 LICENSE.txt Xcode cleanup, single mac installer, universal binary support (#461) Feb 14, 2021 LLVM_README.md LLVM - add native code generation for expression evaluation (#162) Mar 5, 2019 Makefile.am Fixed several build/install errors for out-of-source config's. (#518) Aug 17, 2021 README.md Issue#130 (#546) Oct 23, 2021 autogen.sh autogen.sh: fix (#248) Oct 6, 2019 background.png Code signing for macOS (#471) Feb 23, 2021 config.h.cmake.in Add CMake build system files (only as "autotools" replacement for now) ( Jun 4, 2021 configure-ndk projectM Android native build (#191) Apr 11, 2019 configure.ac Llvm 10 (#470) Jun 18, 2021 features.cmake Add CMake build system files (only as "autotools" replacement for now) ( Jun 4, 2021 policy.txt Create policy.txt Dec 3, 2019 View code [ ] projectM - The most advanced open-source music visualizer Available For Windows macOS Linux Android Xbox / Windows Phone Other Discord chat Demo Video Presets Also Featured In Screenshots Architecture Building from source Keyboard Controls: Only ProjectM SDL: Using the library Todo Help Maintainers Authors License README.md Build Status Logo 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. Available For Windows * Standalone (latest build) - (Requires the latest Visual C++ redistributable) * Steam * Windows Store macOS * Standalone * Steam * Music.app Plugin * Brew Linux * Steam * Check your repository for a binary release. Android * Google Play Xbox / Windows Phone * Windows Store Other * Source code * Qt5-based PulseAudio and JACK desktop apps in source code * ALSA, XMMS, Winamp, JACK (source, unmaintained) Discord chat Chat with us on Discord. Demo Video [687474703a] 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). Also Featured In Kodi Kodi (formerly XBMC) Helix Helix Silverjuke Silverjuke (FOSS Jukebox) [68747470733a2f2f73696c656e7] Silent Radiance Distance Disco --------------------------------------------------------------------- Screenshots Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot --------------------------------------------------------------------- Architecture * Article Building from source See BUILDING.md Keyboard Controls: * Up: increase beat sensitivity (max 5) * Down: decrease beat sensitivity (min 0) * Y: toggle shuffle enabled * R: jump to random preset * N or P: next or previous preset (hard transition) * Shift-N or Shift-P: next or previous preset (soft transition) * L: lock current preset * D: Save current frame to file * H or F1: show help (if supported) * M: Open preset navigation menu (if supported) * F3: show preset (if supported) * F4: show stats (if supported) * F5: show FPS (if supported) Only ProjectM SDL: * Cmd/Ctrl-Q: quit * Cmd/Ctrl-I: select next audio input device * Cmd/Ctrl-S: stretch monitors * Cmd/Ctrl-M: change monitor * Cmd/Ctrl-F: toggle full screen * Mouse Scroll Up / Down: next or previous preset (hard transition) * Return: search for preset (RETURN or ESCAPE to exit search) * Space: lock current preset 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 * 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 Chat with us on Discord.. 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 About projectM - cross-platform music visualization. Open-source and Milkdrop-compatible Resources Readme License LGPL-2.1 License Releases 26 v3.1.12 Latest Feb 20, 2021 + 25 releases Sponsor this project * open_collective opencollective.com/projectm Packages 0 No packages published Contributors 58 * @revmischa * @deltaoscarmike * @milkdropper * @labkey-matthewb * @mbellew * @kblaschke * @lgbaldoni * @mrRay * @fughilli * @axe312ger * @hibengler + 47 contributors Languages * C 43.2% * C++ 38.3% * M4 16.9% * CMake 0.5% * Objective-C 0.4% * Objective-C++ 0.2% * Other 0.5% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.