projectm icon indicating copy to clipboard operation
projectm copied to clipboard

[FEATURE] Implement a preset editor.

Open ghost opened this issue 6 years ago • 21 comments

Build a consensus with development team. Document and define things such as default keybindings and key features.

ghost avatar Jun 13 '19 18:06 ghost

projectM-visualizer/projectm#204 projectM-visualizer/frontend-sdl2#8 projectM-visualizer/projectm#208 projectM-visualizer/projectm#217 etc

revmischa avatar Jun 13 '19 18:06 revmischa

I wish we could get feedback from GEISS, Martin, or EOS about how they developed many of their creations. @revmischa I have no experience developing these milk drop presets, do you know how to get in contact with any of the preset designers?

ghost avatar Jun 13 '19 18:06 ghost

I don't but I'd start here: http://forums.winamp.com/forumdisplay.php?f=84

revmischa avatar Jun 13 '19 20:06 revmischa

Actually I work with Geiss, can ask him something specific if you guys want

PeterMalkin avatar Jun 13 '19 22:06 PeterMalkin

This document describes some of the keybindings: http://www.geisswerks.com/hosted/milkdrop2/milkdrop_preset_authoring.html

Flexi is active on twitter, and I imagine would be happy to answer questions: https://twitter.com/Flexi23

jberg avatar Jun 14 '19 00:06 jberg

My suggestion: Get the emscripten branch fully working (#92) and make a web-based preset editor And ask people on the milkdrop forums what sort of UI they would like to have

I would split up shader code into its own entry field and make the UI so people don't have to write the actual literal preset code by hand, but abstract out a lot of the fields into more friendly inputs

revmischa avatar Jun 17 '19 09:06 revmischa

@revmischa I agree that the web-based version would get quick feedback. @PeterMalkin I do have a question for Geiss about the preset creation community. I would like to understand the essence of what exactly led up to the formation of an entire community interested in creating new and original milkdrop presets. What can we do to start encouraging preset creators and developers to contribute new content?

ghost avatar Jun 20 '19 20:06 ghost

If I could get this building on Windows, I can help a lot. I just feel intimidated here since I have no idea how to build this on Windows but could actually start developing it. I UMLed the framework and got a bunch of the relationships understood. @mancoast How are you developing and building the core framework?

teotigraphix avatar Jun 26 '19 16:06 teotigraphix

Greetings, I am very happy to help! First, look in the msvc folder and open the projectm.sln

Let me know when you are able to open the visual studio solution file.

Please look at the appveyer.yml file for exact command prompt instructions to build on your machine.

On Jun 26, 2019, at 12:58 PM, Michael Schmalle [email protected] wrote:

If I could get this building on Windows, I can help a lot. I just feel intimidated here since I have no idea how to build this on Windows but could actually start developing it. I UMLed the framework and got a bunch of the relationships understood. @mancoast How are you developing and building the core framework?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

ghost avatar Jun 26 '19 18:06 ghost

@mancoast Here's what Ryan has to say:

"Back in the early 2000's, winamp was very popular, so it had quite a few more (daily active) users than it does today (I assume). With that one central site, which had a lot of users, all we really had to do was add a forum for milkdrop preset authoring, and it took off right away. It was a single and obvious place where folks could chat about how to do it, share their presets, and so on.

At first, I wrote a bunch of basic presets myself, just to show what you could do, and then other people started working from those. They shared their tricks (and presets) on the forums. One thing that surprised me was that a lot of the authors didn't actually know how to code, or how to use a sine wave, but were nonetheless able to hack together really amazing presets.

I upgraded MilkDrop to use pixel shaders in 2007, which opened up the graphical possibilities quite a bit, and I think that also gave the preset authoring community another kick. After that point, some authors did stuff I never dreamed of, like making mandelcube zoomers. Some of Martin's presets really blew my mind.

From my point of view, though, what I experienced was basically this: I just added the preset authoring capability, and created a few forums, and after that it pretty much exploded on its own. It was a fun and wild ride. :)

If I were reviving this, I'd consider creating a central website, with a good (not fancy) name that made its purpose obvious, that had both forums for people to talk, and (even better) places for people to upload presets and then vote on them. Even better, I'd probably port MilkDrop to webGL and then make the entire thing run in a webpage, including being able to author the new presets, view others' presets, vote on them, built custom collections (in the cloud), etc.

I think that if someone did those things, and made it really easy for people to use (no installation woes, works from any web browser), it would greatly increase the chances of rekindling a community -- and a strong userbase. :)"

PeterMalkin avatar Jun 26 '19 18:06 PeterMalkin

I super agree! A website where you can edit and preview presets would be amazing and really not so far off from where we are now on the emscripten branch. I could help build a simple serverless backend and start a react frontend if people are interested in contributing.

revmischa avatar Jun 26 '19 19:06 revmischa

This is a zip i found with 52k milk drop 2 presets. I imagine monsiourtalbot whittled away at these to come up with his super pack but that’s only conjecture on my part.. https://bit.ly/2Jl4VZb

Hope this helps and/or is new to you..

bebop210 avatar Jul 03 '19 13:07 bebop210

Thanks for the url! If interested, this is an easy opportunity to create a pull request to the repo and we can then include you in the authors.txt

On Jul 3, 2019, at 9:57 AM, bebop210 [email protected] wrote:

This is a zip i found with 52k milk drop 2 presets. I imagine monsiourtalbot whittled away at these to come up with his super pack but that’s only conjecture on my part.. https://bit.ly/2Jl4VZb

Hope this helps and/or is new to you..

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

ghost avatar Jul 03 '19 14:07 ghost

@PeterMalkin I greatly appreciate you taking the time to speak with Geiss. That is really cohesive idea of unification, and I love it.

@revmischa who did the webdev branch intially? How broken is it?

@jberg we’re you able to contact Flexi?

@teotigraphix how’s your build environment looking?

ghost avatar Jul 03 '19 15:07 ghost

me and @axe312ger worked on the webGL implementation. i forget how broken it is, but i think it's really close to working. see projectM-visualizer/projectm#92

revmischa avatar Jul 03 '19 16:07 revmischa

@mancoast Same, I had to leave it the other day. I managed to get the VS solution loaded and things seem to look correct. From there... well that is where I am at. :) So understanding all the VS projects and what to compile, I am a bit confused still.

teotigraphix avatar Jul 07 '19 18:07 teotigraphix

Hey everyone, I want to contribute. But i can't code well enough yet. What I can offer is some webspace I have lying around. How does the domain milkdrops.org sound?

Broeckelmaier avatar Dec 05 '19 01:12 Broeckelmaier

@Broeckelmaier If you want to point it here sure, though milkdrop is a separate project from projectM

revmischa avatar Dec 05 '19 09:12 revmischa

@revmischa i thought it might be a kind of clever play of words, as the used presets would be the 'drops' that make the visuals of milkdrop and projectm work.

Broeckelmaier avatar Dec 05 '19 10:12 Broeckelmaier

Even if this ticket is a few years old now, this still seems to be a great idea. There are different suggestions on where to implement the editor, preferring either desktop- or web-based solutions. With emscripten and WebAssembly, we might even be able to implement a single editor UI with Qt that can be compiled and run on both platforms. Besides that issue, the editor should support a few features people are expecting today:

  • Easy UI-based editing of all preset init settings, e.g. as a property list.
  • Providing text editors with syntax highlighting and maybe even code suggestions for writing both per_pixel/per_frame equations and HLSL shaders.
  • A live preview that can be updated similar to ShaderToy by pressing Alt+Enter and can be shown in the main UI or in a separate window if the platform supports it to make use of a second monitor.
  • Error checking in both equation and shader code with useful error messages.
  • Display the translated and wrapped GLSL shaders projectM will actually run.
  • A compatibility test mode to run presets with different OpenGL [ES] versions.
  • A performance profiler that gives details on how long each rendering steps takes.
  • Checking overall Milkdrop/AVS compatibility of the preset.

To support many of these features, the editor needs to tap deep into projectM's internals like the equation parser or OpenGL renderer, possibly requiring some additional code to support callbacks on parsing and rendering errors.

kblaschke avatar Aug 26 '21 10:08 kblaschke