projectM-visualizer / projectm

projectM - Cross-platform Music Visualization Library. Open-source and Milkdrop-compatible.
https://discord.gg/mMrxAqaa3W
GNU Lesser General Public License v2.1
3.34k stars 373 forks source link

Config not documented anywhere #350

Closed goosewobbler closed 3 years ago

goosewobbler commented 4 years ago

I've been messing around with ProjectM (SDL on MacOS) for a while and finally found the config file, after searching google and github issues. I was using ProjectMilkSyphon - which does exactly what I want - if I ignore the dead presets, the crashes on manually switching presets, the heavy CPU load, and the semi-functional options. So I switched to projectM, ditching the convenience of Syphon in favour of more stability and better functionality.

Basically I am wanting to tweak the preset duration as the SDL default (10s I believe) is too hyperactive for my liking. I increased the preset duration to 60 and smooth transition duration to 5, which results in the project M logo visual not being replaced in a reasonable time (> 2 days). So I am guessing that this combination of settings is unreasonable. Perhaps - or does it just need more time? Hopefully you can see where I'm going with this. Is there any documentation for configuring project M?

Although I'd like to get projectM working for my particular use case I'd like to help the project out too. I'm not a C dev but as part of figuring out my problem I'd like to offer my help in documenting the configuration options - assuming people with more knowledge than me are willing to answer my questions in this issue. If there is some documentation on config, I'm sure it could be made easier to find...

goosewobbler commented 4 years ago

Oh also logging. If they exist, where are logs located on the different platforms?

milkdropper commented 4 years ago

Hi @goosewobbler

My guess is that your config doesn't have the presents folder set, or it's not a full path.

If you put your config file in /usr/local/share/projectM and your presets config value is "presets" it will look relative to the config file, not relative to the projectM binary. So maybe your presets are in /Users/goose/Downloads/projectM/presets but SDL will look in /usr/local/share/projectM.

I am planning to make new config options and will create clear documentation at the same time.

revmischa commented 4 years ago

Do take a look at #346

goosewobbler commented 4 years ago

Thanks guys, my config file is/usr/local/share/projectM/config.inp. My Preset Path config value is presets and I seem to have presets in /usr/local/share/projectM/presets, which should work? Does it need a particular ownership or...? this is why I was also asking about the log file haha, might help with debug.

Offer to help still stands, I'll try to aggregate some information about the config file in this thread at least.

revmischa commented 4 years ago

Help is greatly appreciated! On macOS for logs try launching the app binary from terminal, run the whole thing from xcode, or maybe check in Console.app

goosewobbler commented 4 years ago

Nice thanks, I dragged the app binary onto the terminal and got this. Can't find presets directory as @milkdropper said. I'll try putting an absolute path in there...

/Applications/projectM\ SDL.app/Contents/MacOS/SDLprojectM 
2020-05-05 13:40:00.036 SDLprojectM[61633:415907] INFO: GL_VERSION: 4.1 ATI-2.11.21
2020-05-05 13:40:00.036 SDLprojectM[61633:415907] INFO: GL_SHADING_LANGUAGE_VERSION: 4.10
2020-05-05 13:40:00.036 SDLprojectM[61633:415907] INFO: GL_VENDOR: ATI Technologies Inc.
2020-05-05 13:40:00.036 SDLprojectM[61633:415907] INFO: Using data directory: /usr/local/share/projectM
2020-05-05 13:40:00.036 SDLprojectM[61633:415907] INFO: Looking for configuration file in data dir: /usr/local/share/projectM.
[projectM] config file: /usr/local/share/projectM/config.inp
[PresetLoader] ENOENT error. The path "presets" probably does not exist. "man open" for more info.
[PresetFactory] url is idle://Geiss & Sperl - Feedback (projectM idle HDR mix).milk
2020-05-05 13:40:00.183 SDLprojectM[61633:415907] INFO: Using config from /usr/local/share/projectM/config.inp
2020-05-05 13:40:00.274 SDLprojectM[61633:415907] INFO: Using audio driver: coreaudio
2020-05-05 13:40:00.274 SDLprojectM[61633:415907] INFO: Found audio capture device 0: Built-in Microphone
2020-05-05 13:40:00.274 SDLprojectM[61633:415907] INFO: Found audio capture device 1: Loopback Audio
2020-05-05 13:40:00.274 SDLprojectM[61633:415907] INFO: Found audio capture device 2: Loopback Audio 2
2020-05-05 13:40:00.274 SDLprojectM[61633:415907] INFO: Found audio capture device 3: ZoomAudioDevice
Detected devices:
2020-05-05 13:40:05.470 SDLprojectM[61633:415907] INFO: Opened audio capture device index=0 devId=2: Built-in Microphone
2020-05-05 13:40:05.470 SDLprojectM[61633:415907] INFO: Samples: 2048, frequency: 44100, channels: 2, format: 33056
fps: 60
goosewobbler commented 4 years ago

Great, works now I updated the Preset Path value to /usr/local/share/projectM/presets (potential new issue for MacOS - support relative paths).

Doesn't seem to be respecting the preset duration values though, having a play...

Update: so I think Hard Cut Sensitivity was set too low.

milkdropper commented 4 years ago

Discussion: would anyone object to me changing the preset lock from L to SPACEBAR? I find if you are sitting back and enjoying visualizations (hands not on keyboard) L is hard to find in a hurry. SPACEBAR is just right there.

revmischa commented 4 years ago

Go for it, why not both space and L

goosewobbler commented 4 years ago

Another thing I wanted to ask, when you make a change using a keyboard shortcut e.g. change input source, is there a way to make it briefly display some text at the bottom of the screen for instance, to provide feedback? Currently there's no way to tell which input source you've changed to without looking in the logs, and also no feedback to show that the command actually was successful or even tried to do anything...

revmischa commented 4 years ago

It would be great if there was such a thing!

milkdropper commented 4 years ago

I was thinking to add the same thing. It's especially annoying for LOCK because I don't know if I just locked or unlocked things.

kblaschke commented 3 years ago

Toast messages work properly (again) for toggling the preset lock and changing audio devices in the SDL frontend. Any other integration using the built-in menu should also be able to display arbitrary text using toasts.