Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ProjectM could really use Milkdrop2's function key menus #113

Closed
BugZappr opened this issue Oct 6, 2018 · 7 comments
Closed

ProjectM could really use Milkdrop2's function key menus #113

BugZappr opened this issue Oct 6, 2018 · 7 comments

Comments

@BugZappr
Copy link

BugZappr commented Oct 6, 2018

The original WinAmp Milkdrop 2 has extensive function key menus. This lets you toggle display items such as song name, song time progress, and Milkdrop preset name. Even more helpfully, it lets you load a specific preset and set the preset random change interval. If there are presets one really likes, it's great to be able to select it; instead of just taking pot luck all the time. The Clementine player, while no WinAmp substitute, is still pretty good; but it gives one only a choice of either seeing all presets in order, or seeing them in the order they are in in its dialog box. To a casual user, this might not make much of a difference, but to someone who really enjoys visualizations; or to someone recording them, these choices surely seem pretty limiting. While supporting function keys WinAmp-style would also involve convincing people writing players to be able to add a "hands-off" mode, to let the function key menus control what preset is displayed instead, that shouldn't be very hard.

The menus also have preset editing features; and to fully do all of the function key features seems like it would be a considerable piece of work. I would suggest song/time/preset display features to be most important, followed by the ability to change the random time for loading presets, and then, loading given presets for viewing.

It might be claimed that this functionality should be left up to the respective players; but I disagree. Some may not bother to get around to it for a long time. Doing it in ProjectM will get it in most or all of them; and only require implementing it once. It wouldn't be a bad idea to have these function key menus, and yet still allow for an API to allow player writers to set these options from their GUI's, too.

I suppose this was probably expected to be in the works, although I see no formal mention of it. I'm just creating the issue, of course, so it can be used for discussion; but also to let devs here know that I'm interested in this feature; and I would expect many others would be too - especially preset writers.

One can easily access this feature by pressing F1 a full-screened WinAmp Milkdrop 2 visualization. It will work in windowed mode too; but will be harder to read in the available area. F1 gives you a list of the other function keys supported. Of course, the Milkdrop 2 source is open; and in particular, an implementer may want to study the API with WinAmp for guidance on some of the features. Some players may not readily broadcast the song now playing, e.g., so loading presets might actually be an easier place to start; depending on the availability of an existing WinAmp-like platform with a suitable API for adding these features. Just my thoughts on it, FWIW.

Future expansion: presets might have tags, so that only presets with a certain tag might play; whether in random, or in a linear order.

@nicki-krizek
Copy link

In the Qt application projectM-pulseaudio, you can do some edit the playlist of presets, change settings, turn on/off shuffle etc. Press M to bring up the GUI.

There's also a config file that has some settings too, mine's in /usr/local/share/projectM/config.inp

@revmischa
Copy link
Collaborator

I think it'd be super awesome. It should be definitely possible. Patches welcome!

@sage-michaels
Copy link
Contributor

I'm very interested in enhancing the functionality of ProjectM-SDL, specifically editing presets within the GUI. Would anyone be willing to walk me through the code in projectM-pulseaudio that implements the user interface so I can use it as a template?

@sage-michaels
Copy link
Contributor

or even just tell me what files/functions/classes to focus on?

@revmischa
Copy link
Collaborator

Looks like it's implementation is here https://github.com/projectM-visualizer/projectm/blob/master/src/projectM-qt/qpreseteditordialog.cpp

And this is the UI https://github.com/projectM-visualizer/projectm/blob/master/src/projectM-qt/qpreseteditordialog.ui

SDL app also could use an audio capture device selection UI which the qt app looks like it has as well

@revmischa
Copy link
Collaborator

Updated PA/Qt/Jack makefiles here #163

@revmischa
Copy link
Collaborator

Consolidating some issues into: #204

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants
@revmischa @BugZappr @nicki-krizek @sage-michaels and others