frontend-sdl2
frontend-sdl2 copied to clipboard
[Feature Request] cli flag and/or hotkey for disabling OSD
currently some things like preset locking or changing beat sens., etc showing on-screen messages which is unwanted during live performance
nice bonus would be to still print those messages in the terminal log 🖤
Definitely a good suggestion! Currently, the OSD is built-in into libprojectM, and some of these messages are hard-coded there, e.g. the beat sensitivity message. We're planning to remove the built-in OSD from libprojectM alltogether and replace it in this frontend with a Dear-ImGui-based UI. After this, there'll definitely be an option to disable any OSD messages displayed after pressing hotkeys (the menu/UI will still be shown if opened of course).
Update: OSD was just removed from the core library, and other changes are in the works right now. After that, the Dear ImGui implementation will be done on this end, with many configuration options.
Printing any setting changes to the log is a good idea though, but will probably be done on "debug" log level only, as it can make log files large and hard to read for the average user.
thanks for the update @kblaschke
does this means that if i'll build latest versions of libprojectm and frontend-sdl2 - it would be completely without OSD (including the one for selecting preset)?
in that case, mb i'll build old and latest versions in two different directories, to use one for choosing presets and other for video-capturing the output
does this means that if i'll build latest versions of libprojectm and frontend-sdl2 - it would be completely without OSD (including the one for selecting preset)?
Well, it just wouldn't compile as I've removed a few API calls in the library, but not in the SDL app. There are more feature removals planned in the core lib, e.g. removing playlist management and the built-in key handler. I'll bring the app here on par with the upstream changes when they're done, everything else would just be too much work and leave the app in an unusable state. That said, for now check out the library at commit 62cecb36 and you'll be fine!
Alternatively https://github.com/projectM-visualizer/frontend-sdl2/pull/44 builds against projectm master and doesn't show any OSD.
As correctly sayd by @nzoschke, the latest libprojectM has no built-in overlays anymore. Be aware that using this version will also make it impossible to search/browse for presets in the current state, so it's not all good news here. If you just want to run projectM as-is, its totally fine though.
The upcoming new UI will add options to enable visual feedback for certain events like audio device name, value changes or preset names, possibly even how thy look and where they appear.
Update: Currently implementing a new UI, already added a new config option/menu item to toggle displaying toast messages. Also added an option to disable displaying preset names in the window title, setting it to just projectM to make it easier for OBS to find the window if used as a streaming source.
sounds dope 🔥 please update here as soon as will be available commits of client and lib for testing it
I push my UI working branch regularly to my fork, so if you dare, you may try it out. May not compile sometimes, as I'm committing unfinished edits and amend later, so no support on that:
https://github.com/kblaschke/frontend-sdl2/tree/imgui-test
May rename the branch at some point. Added Dear ImGui as a new submodule, so don't forget to git submoule init/git submodule update after cloning it.
For the core library, I'm keeping the SDL frontend up to date with the official master branch or my latest, currently open pull request, so check out whichever is more recent.
as far as i understood this branch with ImGui got already merged mainstream, right?
does that means this issue should be closed or that option still not presented in a new UI? (i'm still staying on 'stable' commit you suggested before, so i haven't been updating yet, as it works stable for my workflow except for the on topic issue)
I think that it can be closed, yeah. Will do so.
There's now a setting "Enable toast messages", which, if disabled, will prevent these popups from being shown. There are other options to not display the preset name in the window title, as well as additional windows placement options for live perfomances and streaming purposes, e.g. to put the window at an exact coordinate and monitor, with and without borders etc.
To find the options, press ESC to show the UI, go to File->Settings and set the approriate options.
A future addition will be a remote control API, which is more suited for live performances.
thanks a lot for the details! i'll build the latest git of core and frontend to test