{"id":13423610,"url":"https://github.com/projectM-visualizer/projectm","last_synced_at":"2025-03-15T17:32:02.263Z","repository":{"id":10010065,"uuid":"12046604","full_name":"projectM-visualizer/projectm","owner":"projectM-visualizer","description":"projectM - Cross-platform Music Visualization Library. Open-source and Milkdrop-compatible.","archived":false,"fork":false,"pushed_at":"2024-10-26T12:30:21.000Z","size":221256,"stargazers_count":3363,"open_issues_count":35,"forks_count":375,"subscribers_count":87,"default_branch":"master","last_synced_at":"2024-10-29T10:54:43.707Z","etag":null,"topics":["library","milkdrop","music","music-visualizer","visualizer"],"latest_commit_sha":null,"homepage":"https://discord.gg/mMrxAqaa3W","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/projectM-visualizer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":"projectm","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2013-08-12T02:54:23.000Z","updated_at":"2024-10-28T21:33:21.000Z","dependencies_parsed_at":"2023-10-16T13:40:02.632Z","dependency_job_id":"d625e72f-0e4b-44a7-b843-d86f37b1d0ec","html_url":"https://github.com/projectM-visualizer/projectm","commit_stats":{"total_commits":2565,"total_committers":103,"mean_commits":"24.902912621359224","dds":0.7134502923976609,"last_synced_commit":"f6ff7943c163d9b22b1d31ab428da6c46399bd08"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectM-visualizer%2Fprojectm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectM-visualizer%2Fprojectm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectM-visualizer%2Fprojectm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectM-visualizer%2Fprojectm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/projectM-visualizer","download_url":"https://codeload.github.com/projectM-visualizer/projectm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243691249,"owners_count":20331931,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["library","milkdrop","music","music-visualizer","visualizer"],"created_at":"2024-07-31T00:00:38.758Z","updated_at":"2025-03-15T17:32:02.237Z","avatar_url":"https://github.com/projectM-visualizer.png","language":"C++","funding_links":["https://opencollective.com/projectm"],"categories":["C++","C","Cross-Platform","others","Music Visualization Tools","Software"],"sub_categories":["JavaScript","Misc","Music Visualizer"],"readme":"[![Windows Build Status](https://github.com/projectM-visualizer/projectm/actions/workflows/build_windows.yml/badge.svg?branch=master)](https://github.com/projectM-visualizer/projectm/actions/workflows/build_windows.yml)\n[![Linux Build Status](https://github.com/projectM-visualizer/projectm/actions/workflows/build_linux.yml/badge.svg?branch=master)](https://github.com/projectM-visualizer/projectm/actions/workflows/build_linux.yml)\n[![macOS Build Status](https://github.com/projectM-visualizer/projectm/actions/workflows/build_osx.yml/badge.svg?branch=master)](https://github.com/projectM-visualizer/projectm/actions/workflows/build_osx.yml)\n[![Emscripten Build Status](https://github.com/projectM-visualizer/projectm/actions/workflows/build_emscripten.yml/badge.svg?branch=master)](https://github.com/projectM-visualizer/projectm/actions/workflows/build_emscripten.yml)\n[![Android Build Status](https://github.com/projectM-visualizer/projectm/actions/workflows/build_android.yml/badge.svg?branch=master)](https://github.com/projectM-visualizer/projectm/actions/workflows/build_android.yml)\n\n![Discord Shield](https://discordapp.com/api/guilds/737206408482914387/widget.png?style=shield) [Chat with us on Discord](https://discord.gg/mMrxAqaa3W)\n\n![Logo](https://github.com/projectM-visualizer/projectm/raw/master/docs/web/logo.png)\n\n## projectM - The most advanced open-source music visualizer\n\n**Experience psychedelic and mesmerizing visuals by transforming music into equations that render into a limitless array\nof user-contributed visualizations.**\n\nprojectM is an open-source project that reimplements the\nesteemed [Winamp Milkdrop](https://en.wikipedia.org/wiki/MilkDrop) by Geiss in a more modern, cross-platform reusable\nlibrary.\n\nIts purpose in life is to read an audio input and to produce mesmerizing visuals, detecting tempo, and rendering\nadvanced equations into a limitless array of user-contributed visualizations.\n\n### Important: This repository only contains libprojectM for use in application development!\n\nThis repository now only contains the projectM shared/static library. All frontends, plug-ins and other tools were\noutsourced into separate repositories. If you're not a developer and just look for a download to run projectM visuals on\nyour machine or device, please use one of the links listed below. The releases section in this repository only contains\nsource-code and binary releases of the projectM development libraries and headers, which aren't useful for end users.\n\n### End-User Applications\n\n**Important**: projectM is currently undergoing heavy development, so the available end-user frontends are either\noutdated or unavailable. We've released a few development previews, which are not feature-complete and may have bugs. As\nsoon as we've finished the current modernization of libprojectM, we'll release new and tested versions of most of the\nfrontends listed below, while we may remove or replace some of those which are no longer maintained by their original\ndevelopers.\n\n##### Windows\n\n- Standalone (currently only available as\n  a [development preview](https://github.com/kblaschke/frontend-sdl2/releases/tag/2.0-windows-pre1))\n- [Steam](https://store.steampowered.com/app/1358800/projectM_Music_Visualizer/) (Same as standalone development\n  preview)\n- [Windows Store](https://www.microsoft.com/store/apps/9NDCVH0VCWJN) (Old 3.1.12 release )\n\n#### macOS\n\n- Standalone (currently only available as\n  a [development preview](https://github.com/kblaschke/frontend-sdl2/releases/tag/2.0-macos-pre1))\n- [Steam](https://store.steampowered.com/app/1358800/projectM_Music_Visualizer/) (Old 3.1.12 release)\n- Music.app Plugin  (currently only available as an\n  _unsigned_ [development preview](https://github.com/kblaschke/frontend-music-plug-in/releases/tag/v3.0-pre1))\n- [Brew](https://formulae.brew.sh/formula/projectm) (Old 3.1.12 release)\n\n#### Linux\n\n- Standalone (currently only available as\n  a [development preview](https://github.com/kblaschke/frontend-sdl2/releases/tag/2.0-linux-pre1) for Ubuntu 22.04 and\n  compatible distributions)\n- [Steam](https://store.steampowered.com/app/1358800/projectM_Music_Visualizer/) (Same as standalone development\n  preview)\n\nOr check your distribution's package manager for a binary release. If it is outdated, please contact the package\nmaintainer, as the projectM development team does not maintain any of the distribution-specific packages.\n\n#### Android\n\n- [Google Play](https://play.google.com/store/apps/details?id=com.psperl.prjM)\n\n**Note**: Both the free and paid apps plus the Android TV app are _not_ created or supported by the projectM developers!\nIf you have technical troubles or other inquiries, please contact the app author via the means provided in the Play\nStore. Any bug reports in the projectM issue tracker regarding the apps will be closed immediately.\n\n#### Xbox / Windows Phone\n\n- [Windows Store](https://www.microsoft.com/store/apps/9NDCVH0VCWJN) (Old 3.1.12 release)\n\n#### Other\n\nSource code and other resources, mostly aimed at developers.\n\n- [Library source code](https://github.com/projectM-visualizer/projectm/) (this repository)\n- [Qt5](https://www.qt.io/) based [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/) and JACK desktop\n  apps [as source code for Linux](https://github.com/projectM-visualizer/frontend-qt), currently broken and needs some\n  updating (help wanted!).\n- [ALSA, XMMS, Winamp, JACK](https://sourceforge.net/projects/projectm/files/) (legacy 2.x sources for historic\n  purposes, unmaintained since 2012)\n\n### Discord chat\n\n[Chat with us on Discord!](https://discord.gg/mMrxAqaa3W)\n\n### Demo Video\n\n[![](http://img.youtube.com/vi/2dSam8zwSFw/0.jpg)](http://www.youtube.com/watch?v=2dSam8zwSFw \"Demo\")\n\n### Presets\n\nThe preset files define the visualizations via pixel shaders and Milkdrop-style equations and parameters.\n\nThe projectM library does not ship with any presets. The frontends come with varying preset packs which can be found in\nseparate repositories in the projectM repository list:\n\n- [Base Milkdrop texture pack](https://github.com/projectM-visualizer/presets-milkdrop-texture-pack) - Recommended for\n  use with _any_ preset pack!\n- [Cream of the Crop Pack](https://github.com/projectM-visualizer/presets-cream-of-the-crop) - A collection of about 10K\n  presets compiled by Jason Fletcher. Currently, projectM's default preset pack.\n- [Classic projectM Presets](https://github.com/projectM-visualizer/presets-projectm-classic) - A bit over 4K presets\n  shipped with previous versions of projectM.\n- [Milkdrop 2 Presets](https://github.com/projectM-visualizer/presets-milkdrop-original) - The original preset\n  collection shipped with Milkdrop and Winamp.\n- [En D Presets](https://github.com/projectM-visualizer/presets-en-d) - About 50 presets created by \"En D\".\n\nIncluded with projectM are the bltc201, Milkdrop 1 and 2, projectM, tryptonaut and yin collections. You can grab these\npresets [here](http://spiegelmc.com/pub/projectm_presets.zip).\n\nYou can also download an enormous 41,000 preset pack of\npresets [here](https://mischa.lol/projectM/presets_community.zip) (123MB zipped).\n\n### Also Featured In\n\n[![Kodi](docs/web/kodi.png) Kodi (formerly XBMC)](https://kodi.tv/)\n\n[![Helix](docs/web/helix.jpg) Helix](https://web.archive.org/web/20180628174410/http://ghostfiregames.com/helixhome.html)\n\n[![Silverjuke](docs/web/silverjuke.png) Silverjuke (FOSS Jukebox)](https://www.silverjuke.net)\n\n[![VLC Media Player](docs/web/vlc.png) VLC Media Player (AKA VideoLAN Client)](https://www.videolan.org/vlc/)\n\nReminder: These are all third-party integrations of libprojectM and not developed or supported by the projectM\ndevelopment team. Please report bugs in those applications to their respective developers.\n\n---\n\n## Screenshots\n\n![Screenshot](docs/web/projectM_screenshots/Screen%20Shot%202014-08-25%20at%2012.31.20%20AM.png)\n\n![Screenshot](docs/web/projectM_screenshots/Screen%20Shot%202014-08-25%20at%2012.33.50%20AM.png)\n\n![Screenshot](docs/web/projectM_screenshots/Screen%20Shot%202014-07-18%20at%202.14.41%20PM.png)\n\n![Screenshot](docs/web/projectM_screenshots/Screen%20Shot%202014-07-18%20at%202.13.53%20PM.png)\n\n![Screenshot](docs/web/projectM_screenshots/Screen%20Shot%202014-07-18%20at%202.15.36%20PM.png)\n\n![Screenshot](docs/web/projectM_screenshots/Screen%20Shot%202014-08-16%20at%204.49.32%20PM.png)\n\n![Screenshot](docs/web/projectM_screenshots/Screen%20Shot%202014-08-16%20at%204.50.37%20PM.png)\n\n![Screenshot](docs/web/projectM_screenshots/Screen%20Shot%202014-08-25%20at%2012.31.07%20AM.png)\n\n---\n\n## Architecture\n\n- [Article](https://lwn.net/Articles/750152/)\n\n# Building from source\n\nSee [BUILDING.md](BUILDING.md) and\nthe [developer documentation in the wiki](https://github.com/projectM-visualizer/projectm/wiki/Building-libprojectM).\n\n# Using the library\n\nAt its core projectM is a library, [libprojectM](src/libprojectM). This library is responsible for parsing presets,\nanalyzing audio PCM data with beat detection and FFT, applying the preset to the audio feature data and rendering the\nresulting output with OpenGL. It can render to a dedicated OpenGL context or a texture.\n\nTo get started using projectM in your own projects, please go to the wiki and read\nthe [developer documentation](https://github.com/projectM-visualizer/projectm/wiki#integrating-projectm-into-applications)\navailable there.\n\nThere are some open-source applications that make use of libprojectM which can be found in\nthe [projectM organization's repositories](https://github.com/projectM-visualizer) and elsewhere.\n\n---\n\n# Todo\n\n- Improve projectM using the recently-released Milkdrop source (WIP).\n- Update the various implementations using libprojectM.\n- Update downstream projects with new versions.\n\n---\n\n## Help\n\nReport issues on GitHub in the respective repositories:\n\n- [Rendering issues, crashes or the libprojectM core/API](https://github.com/projectM-visualizer/projectm/issues)\n- [Standalone SDL app](https://github.com/projectM-visualizer/frontend-sdl2/issues) (including the Steam release)\n- [Windows Store App](https://github.com/projectM-visualizer/frontend-uwp/issues)\n- [Apple Music plug-in](https://github.com/projectM-visualizer/frontend-music-plug-in/issues)\n- Issues regarding the **projectM Android apps in the Play Store**, please contact the app author via the Play Store. We\n  cannot help with any problems or requests.\n\nIf unsure, post your issue in the\nmain [libprojectM issue tracker](https://github.com/projectM-visualizer/projectm/issues).\nPlease always check any existing issues if your problem has already been posted by another user. If so, add your logs\nand findings to the existing issue instead of opening a new ticket.\n\n## Get in contact with us\n\n[Chat with us on Discord.](https://discord.gg/mMrxAqaa3W)\n\n## Contribute to projectM\n\nIf you would like to help improve this project, either with documentation, code, porting, hardware or anything else\nplease let us know! We gladly accept pull requests and issues.\n\nBefore starting to write code, please take your time to read\nthe [contribution guidelines](https://github.com/projectM-visualizer/projectm/wiki#contributing-to-projectm) in our\nwiki.\n\n## Package Maintainers\n\nIf you maintain packages of libprojectM, we are happy to work with you! Please note well:\n\n- The main focus of this project is libprojectM. It's a library that only really depends on OpenGL. The other\n  applications are more like examples and demos.\n- Many of the frontend applications are likely outdated and of less utility than the core library. If you desire to use\n  them or depend on them, please file an issue in the respective repository so we can help update them.\n- The \"canonical\" application for actually viewing the visualizations is\n  now [projectM-SDL](https://github.com/projectM-visualizer/frontend-sdl2), based on libSDL2 because it supports audio\n  input and is completely cross-platform.\n- If you like Rust, there is a [SDL3 rust frontend](https://github.com/projectM-visualizer/frontend-sdl-rust) in the works looking for contributors.\n- This is an open source project! If you don't like something, feel free to contribute improvements!\n- Yes, you are looking at the official version. This is not a fork.\n\n## Authors\n\n[Authors](https://github.com/projectM-visualizer/projectm/raw/master/AUTHORS.txt)\n\n## License\n\nThe core projectM library is released under\nthe [GNU Lesser General Public License 2.1](https://github.com/projectM-visualizer/projectm/raw/master/LICENSE.txt) to\nkeep any changes open-sourced, but also enable the use of libprojectM in closed-source applications (as a shared\nlibrary) as long as the license terms are adhered to. The up- and downstream projects may use different licenses -\nplease check all parts of the software to be compatible with your specific project if you plan an integration.\n\n## Wiki\n\nMore information for developers is available from\nthe [projectM Wiki](https://github.com/projectM-visualizer/projectm/wiki).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FprojectM-visualizer%2Fprojectm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FprojectM-visualizer%2Fprojectm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FprojectM-visualizer%2Fprojectm/lists"}