Wow! revmischa, thank you so much for all the work you have clearly put into this!!!
I tried for months/years to get the older, original projectM to build and run without full success (the one on sourceforge that hasn't been updated for 6 years at least!). Granted, that was 5+ years ago and I didn't have a lot of experience with building software from sources, much less all the errors that were coming up! But I had been able to figure things out until projectM... there were so many problems with cmake and in the code/scripts itself! (I eventually got some help and managed to build a binary, but it was not too stable and didn't fully support Milkdrop v2 presets as promised. There were also problems trying to get textures to load.)
I just read your awesome "introduction to projectM" article. That was very informative and well-written.
What you have done with this project is remarkable! I have wanted to make this project work so badly that I actually signed up for a class in C++ so that I would be able to work on it myself. But it turns out my brain doesn't work like that at all! In any case, I am so happy that someone who cares is working on this!
I learned two important things from your article. First of all, you have basically finally set the record straight for me regarding pixel shaders.
[A while back someone told me that the nvidia's CG toolkit wasn't actually even capable of providing support for the pixel shaders except in Windows. That seemed to be true because I have never seen an instance of projectM that is able to properly play the v2 presets that rely on pixel shaders (on any platform, including Android). Also, the CG documentation (which I found sketchy & vague) did not explicitly clarify the matter.]
The other thing I learned is that projectM may not actually as pathetic as I had concluded. You certainly speak highly of it several times.
You mentioned basically re-writing a bunch of the code to make use of VBOs in OpenGL ES and provide better support for shaders. I'm very excited! I hope that goes as smoothly & easily as possible.
I presume you are already well aware and familiar with what Ryan Geiss has written about MD over the years, and his posts and comments in various places (I know some are gone though.)
At some point after finally getting the latest version open-sourced, he wrote somewhere about his thoughts and ideas for future improvements & potential new features for Milkdrop; very interesting and exciting.
Ryan seems to have a special place in his heart for MD and despite always being very busy he has found the time to answer questions; and he always throws in some insightful ideas & perspectives.
I would encourage you to reach out to him and let him know what you're doing. I'm sure he will be very pleased and supportive; and he may have some great thoughts; after all, the Milkdrop code/concept has had plenty of time to ripen & mature in his subconscious.
I was a little bit surprised by how little you talked about Milkdrop—focusing almost exclusively on projectM. Maybe I'm just projecting my own perspective, but it seems to me that your ultimate, underlying goal is a cross-platform app/plug-in that can accurately reproduce/play all of the available MD2 presets. That seemed to be the object of projectM as well; although as far as I've ever seen they never really seemed to even come close!
Since you basically seem to be doing a rewrite of most (or at least quite a bit) of the project, I'm wondering how much have you gone back to the original Milkdrop code? I can't help but think it makes more sense to just go back to the real, original source.
I don't know; that may not actually be as helpful as it seems in my mind. Have you looked at the Milkdrop code much? Is that even of any use/value for what you're doing?
Obviously my idea isn't really based on anything particularly substantial, except for the fact that you are basically maintaining the commitment retain compatibility with MD presets — which I FULLY support and praise because there are SO many of them! Plus, once you get a cross-platform, very smooth & stable version of the software running (especially if it's been streamlined & optimized for the latest hardware & APIs while providing full support for all the presets) that will open up a lot of possibilities and potential new & returning users.
And if you also decide to include/restore all the controls, settings, customization and on-the-fly tweaking that was possible in Milkdrop, and maybe a few extra controls/features, I bet people would start writing presets again and upgrading some of the old ones!
I guess what I'm really getting at here is: in light of all the code that you have already and are planning to re-write... have you considered re-branding your project?
There is no real benefit to holding onto the projectM name! It's actually associated with a lot of frustration and bad ju-ju for a LOT of people; and it's not catchy, clever or memorable at all...
What you're working on is a cross-platform version/re-write/port of Milkdrop. The Milkdrop name/brand is well-known and catchy, and it has a long history and legacy associated with it; as well as a lot of nostalgia and "prestige". Milkdrop is also open source now. It seems like it would make sense to re-associate with that name. You are much more likely to garner support and even assistance if you do so.
And since both projects are open source now, you don't have to give up any of the investments you've already made.
Maybe you could call it Project Milkdrop or something?
I don't know, just some ideas to ponder and consider if you wish...
It definitely makes sense to me- particularly when I consider all the frustrating, disappointing and negative experiences that so many people inevitably associate with projectM. (One thing that stands out is scamming fiasco that the original developers did with their mobile apps... Basically, at some point they came out with a "major" update promising a number of improvements, fixes and new features. But then they decided to create it as a new app (with just a slightly different name) which meant that all the people that had paid for the "pro version" were left high & dry. And their new app had very limited, restricted capabilities in the free version, trying to 'force' users to buy it again. Many users were understandably very upset! In light of those and other experiences I'm not surprised that they decided not to share the updated code with the community. I hold them in quite low regard actually.
I haven't tried out your plug-in for iTunes yet (or any of your versions- I just learned of this today!); but I guess this will be the moment of truth and we'll see if my presets actually work, or if they don't! I'm certainly excited!
I really can't thank you enough! You have just brought me so much joy- just by the fact that someone is actually interested and CAPABLE of doing something with this! I truly wish there was something I could do to assist or participate! Maybe I'll figure something out...