projectm icon indicating copy to clipboard operation
projectm copied to clipboard

Discussion: preset editor

Open ghost opened this issue 6 years ago • 6 comments

I was reading here: http://wiki.winamp.com/wiki/MilkDrop_Preset_Authoring

What are the plans/status for preset editor in projectm? I would like to get this operation so the community can easily generate/share new presets.

ghost avatar May 10 '19 17:05 ghost

No plan right now, one would be great. A emscripten or SDL version would be ideal, because it would be nice and cross-platform.

Related issues: https://github.com/projectM-visualizer/projectm/issues/145 projectM-visualizer/frontend-sdl2#8 https://github.com/projectM-visualizer/projectm/issues/113

A live editor would be really nice. Especially if it could provide a basic abstraction over the raw preset file code, especially for editing shaders. Labeled fields for various parameters and a basic reference would be very helpful for newbies. Keyboard and MIDI input to modify global parameters on the fly would be great for performances.

Any other suggestions/desires people have? Who wants to work on this?

revmischa avatar May 10 '19 18:05 revmischa

I don't know if you are aware of this project: https://github.com/jberg/butterchurn

cyberic99 avatar May 10 '19 19:05 cyberic99

I don't know if you are aware of this project: https://github.com/jberg/butterchurn

Yes, it's awesome, and we could do something very similar with projectM. There is some emscripten project configuration already in-tree and a stale PR projectM-visualizer/projectm#92 to improve it. It hasn't been revisited since switching to GLES-compatible GL, which should enable projectM to run in a web browser, finally. Someone just needs to do it.

revmischa avatar May 11 '19 16:05 revmischa

This is quite an old, stale topic as it seems, yet still relevant.

My personal take on this would be to implement a preset editor using the existing Qt GUI, which already has a simple text-based editing window, but that provides nothing more than opening the preset file in any other editor.

Since Qt is cross-platform, it works on all major desktop platforms and even Android and WebAssembly. The only non-portable portion of the application is the audio source, there are two separate applications to use either Pulseaudio or JACK, both Linux audio APIs. Replacing these platform-specific implementations with a cross-platform audio library and also adding a file-based audio source which simply streams an audio file into the visualizer would be a good thing to have.

As for the editor, I imagine something similar to Shadertoy would work well, having the editors for the different preset features on one side and a small preview renderer on the other which you can reload by pressing alt-return or something similar.

The preset parser already validates a lot of stuff, showing the error messages in the editor would also be of great use.

kblaschke avatar Jun 11 '21 12:06 kblaschke

Yeah agree 100% to all of that. Other option is to build a web UI with emscripten. Anyone can go try their hand at writing presets without even downloading anything, and would make it a lot easier to share and publish presets.

revmischa avatar Jun 11 '21 12:06 revmischa