Releases: kblaschke/frontend-sdl-cpp
Release list
macOS x86_64/arm64 Development Pre-Release
This is a macOS 64-bit Universal Binary (x86_64/arm64) development pre-release of projectMSDL, built against a shared libprojectM library from upstream master (commit projectM-visualizer/projectm@d89c09e) and shared SDL2/Poco libraries. It is shipped as a macOS Installer package and installs (by default) into the system Applications directory (can be changed during installation). Being a Universal Binary, this application will run natively on both Apple-Silicon- and Intel-based Macs without requiring Rosetta emulation.
The applications contains the "Cream of the Crop" preset pack and our Milkdrop texture pack and is pre-configured to use those. To use your own preset pack or textures, change either path in the settings window, save the settings and restart the app.
The projectM app was built in debug mode to produce the best possible stack traces if it crashes, and thus isn't optimized for speed. It should run quite well on most Macs though.
Code Signing / Gatekeeper Issues
Thus, macOS Gatekeeper will probably warn you that the package came from an untrusted (AKA the internets) source. If you cannot dismiss the dialog and continue, you'll have to remove the file quarantine flag manually. to do this, open a terminal, cd to your download directory and run this command:
xattr -d com.apple.quarantine projectM-2.0.0-Darwin.pkgAudio Recording
Due to macOS CoreAudio restrictions, the application cannot capture audio played by local applications. It can only record audio from external sources like microphones or line-in. To record system audio, you'll have to install a virtual loopback driver like BlackHole.
Hotkeys
ESCtoggles the built-in UI.rswitches to a random preset immediately.nswitches to the next preset (random if shuffle is on).pswitches to the previous preset (random if shuffle is on).BACKSPACEswitches to the previous preset in the playback history, regardless of shuffle.Shift+<preset switch key>uses a smooth transition for the above switch hotkeys.SPACElocks/unlocks the current preset.ytoggles shuffle mode.⌃+irotates through audio capture devices.⌃+ftoggles fullscreen mode.⌃+mmoves the window through available monitors (works in fullscreen and windowed mode).⌃+qquits the application.
If you want to edit the configuration manually, the user-specific configuration is stored at ~/Library/Preferences/projectM/projectM.properties - the path/file might not exist until you save the settings once in the application. See the default configuration file in /Applications/projectM.app/Contents/Resources/projectM.properties for details on the different settings.
Remember this is a development build, so crashes and bugs are to be expected. Nonetheless, please report any issues you find in the main projectM issue tracker.
Linux x64 Development Pre-Release
This is a Linux 64-bit development pre-release of projectMSDL, built against libprojectM master (commit projectM-visualizer/projectm@f3d6cca) and a shared SDL2 library. Will require a recent Linux distro to run on (glibc 2.35 or higher is needed, e.g. Ubuntu 22.04) and have a libSDL2 library installed, ideally 2.0.16 or newer.
Note: The default configuration files in the packages below may have broken paths for presets and textures. If you only see the default "floating M with headphones" preset when running the application, press ESC to open the menu, open the settings window and enter the preset and texture paths manually, then click "Save" in the settings window below and restart the app. The DEB package installs those files to /usr/share/projectMSDL/presets and /usr/share/projectMSDL/textures, respectively. For the TGZ/portable version, you can enter ${application.dir}/presets and ${application.dir}/textures into the path boxes, the placeholder will automatically be replaced with the location of the projectMSDL executable no matter where you move it.
Hotkeys
ESCtoggles the built-in UI.rswitches to a random preset immediately.nswitches to the next preset (random if shuffle is on).pswitches to the previous preset (random if shuffle is on).BACKSPACEswitches to the previous preset in the playback history, regardless of shuffle.Shift+<preset switch key>uses a smooth transition for the above switch hotkeys.SPACElocks/unlocks the current preset.ytoggles shuffle mode.Ctrl+irotates through audio capture devices.Ctrl+ftoggles fullscreen mode.Ctrl+mmoves the window through available monitors (works in fullscreen and windowed mode).Ctrl+qquits the application.
If you want to edit the configuration manually, the user-specific configuration is stored at ~/.config/projectM/projectMSDL.properties - the path/file might not exist until you save the settings once in the application. See the default configuration file in /usr/share/projectM/projectMSDL.properties for details on the different settings.
Remember this is a development build, so crashes and bugs are to be expected. Nonetheless, please report any issues you find in the main projectM issue tracker.
Windows x64 Development Pre-Release
This is a development preview build of the rewritten projectM SDL2 frontend application. It ships with version 4.1.3 of libprojectM, which has a rewritten expression parser and an all-new rendering stack. The new UI is still a work in progress, with the playlist management and preset search/selection dialogs still missing. Since the last pre-release, the application now comes with a fully working configuration dialog and has more settings to configure the windows position and size on startup, which might come in handy during live acts and capturing projectM's output with OBS.
If you get an error telling that VCOMP140.DLL, MSVCP140.DLL or a similarly named file is missing, please download and install the Microsoft Visual C Runtime Redistributable.
Hotkeys
ESCtoggles the built-in UI.rswitches to a random preset immediately.nswitches to the next preset (random if shuffle is on).pswitches to the previous preset (random if shuffle is on).BACKSPACEswitches to the previous preset in the playback history, regardless of shuffle.Shift+<preset switch key>uses a smooth transition for the above switch hotkeys.SPACElocks/unlocks the current preset.ytoggles shuffle mode.Ctrl+irotates through audio capture devices.Ctrl+ftoggles fullscreen mode.Ctrl+mmoves the window through available monitors (works in fullscreen and windowed mode).Ctrl+qquits the application.
Configuration and Log Files
To find the user-specific configuration and log files, open Explorer and type into the address bar: %APPDATA%\projectM
If that doesn't work for some reason, you can usually browse to C:\Users\<your username>\AppData\Roaming\projectM manually. Note that AppData is a hidden directory and might not be shown by default.
The file projectMSDL.properties contains your personal settings made in the settings window. Refer to the file with the same name in the install dir for supported options and their descriptions.
projectMSDL.log contains all log output. Developers may ask you to set the debug level higher and provide information from this file for bug reports.
projectMSDL.UI.ini stores positions of the UI windows. If you have moved a window out of your screen and can't get it back, you can either delete the coordinates for that window from this file, or simply delete the whole file to reset the UI to the default positions and sizes.
Libraries used to build
- POCO 1.12.4
- SDL2 2.26.5
- Dear ImGui 1.89.2
- Freetype 2.12.1
- libprojectM version 4.1.0
Known Issues in this Version
- The
Ctrl+shotkey displayed in the File menu doesn't open the settings dialog yet (will be changed anyways, just ignore for now). - Some presets still don't render properly for various, hard-to-fix reasons. If you come across such a preset, please feel free to report it to us so we can have a look at it and potentially fix the issue.
If you experience any issues with the SDL2 frontend, like crashes, audio capturing issues and other things we should know about, please use the links in the application's help menu to report your issue, or browse to the upstream issue tracker from here.
Update 2025-12-15
Updated the release ZIP with the latest libprojectM built from master commit projectM-visualizer/projectm@f06cbf9. If you've already downloaded this package, you can simply download it again and replace any existing files.