No announcement yet.

milkdrop changes in 5.57 beta

This is a sticky topic.
  • Filter
  • Time
  • Show
Clear All
new posts

  • #61
    Hello everyone. I see a few mentions of projectm in this sticky thread so I hope to add my two cents and continue the dialog here. Leveraged milkdrop for many years, then I got involved with projectm a few months back and modernized windows support. I am looking to communicate with those that understand the preset design process for Milkdrop so we can make it happen for projectM.

    on a tangential note, Its actually quite wild how the Xbox release of projectM operates, (HLSL to GLSL transpilation in libprojectM, then OpenGLES to DirectX transpilation using Angle for Xbox) but it works great! As a dev team, we are now starting to figure out what is next for this and I think we need more presets! I am curious, how are these presets developed? Are there any active preset developers that are still here on this board?


    • #62

      Agreed, the behaviour of rand() has silently changed and broken a number of presets. As regards variable names, I always limit them to 8 characters, which seems to be safe.
      These incompatibilities may have sneaked in with the integration of ns_eel language features into milkdrop. This is poorly documented - it took me quite a while to understand how to get a while() loop working - but it was a major improvement. Unfortunately introduced rather late, and not many preset authors really took advantage of the new features.

      @ mancoast

      What do you mean by "understand the design process" ?


      • #63

        IssaMe here, I finally got my old account revived so will use this one from now on.

        I've come across several presets that were specifically made for ATI/NVidia cards. I still have an old Radeon HD 6950 and of the few GPU specific presets I've found, both the ATI/NV types seem to work fine on my ATI card... however, contrary to the mentions presets may not always work on ATI cards, I've had more issues with the GeForce 210 (really old) on my wife's computer (apart from presets requiring shader 4.0 which always freezes my MD for a short period)

        I'm currently facing a forced hardware change as one of the monitors died, and from the looks of it this also means I'll be forced to update the GPU...I will probably again end up going with an AMD GPU but on the off chance I'll end up going with an NVidia GPU, is there a list of functions/calculation methods that will likely cause presets to not show as intended? I'll need to recheck which presets but I've encountered several that gave error messages on the NVidia card even though the presets seemed to show the same as on my ATI card.


        • #64

          I'm not an expert on this. Issues I am aware of:

          1. Shader model 1, used by most older presets, allows 64 instructions, but the number of instructions generated depends on the compiler. It may happen that the preset compiles to 63 instructions on a specific test setup, but to 65 on another, in which case it would throw an error. This can easily be resolved by changing to a higher shader model.

          2. Shader model "4" (version number in the milk file) would allow 1024 instructions, but this only seems to work on NVidia cards, and not even all of them. With ATI cards, you may just see a black screen. Probably a MD bug. Try it out by setting the lines
          to "4" in the milk file.

          Other than these, I have not encountered any specific functions which work on one card but not another.



          • #65
            Greetings @Nitorami

            Sorry for getting off-topic, but I want to better understand the preset design process, and implement a design studio element into the library of libprojectM, primarily so my kids can play it on the Xbox. Are you the same martin that I see as author of many presets? Do you have any presence on GitHub?

            Also, I am curious from the preset designers lens, does projectm need anything fixed for full compatibility with your MilkDrop designs for 5.57beta?


            • #66
              Hi mancoast
              Are you the same martin that I see as author of many presets?

              Do you have any presence on GitHub?
              No. I'm just a hobby programmer who happened to stumble across milkdrop ten years ago.

              does projectm need anything fixed for full compatibility with your MilkDrop designs for 5.57beta?
              Well, I can't tell. I am exclusively using winamp/milkdrop under win10 and and honestly had no need to try projectm.

              I want to better understand the preset design process
              Well, I bet that most presets out there were created simply by smashing the A key, followed by S when the result seemed ok. Milkdrop's block architecture using separate functional blocks for waves, shapes, warp and comp shader was obviously designed with the goal to enable easy "mashups", and is probably the major reason why we now have some 50000+ presets. Making new presets just requires no artistical neither programming skills whatsoever. The downside is that many presets are not particularly original or interesting.

              Of course there were/ are preset authors who wrote their own genuine code, and some of them certainly put countless hours into it. What can I say ? I personally always tried to make something new, a 3D effect or just something which does not look "like milkdrop". The possibilities are very limited, we have waves and shapes which can only be rotated around only single axis; and we have warp and comp shaders which do not support a geometry, i.e. no z-axis, just a flat mesh. This results in truly painful limitations.
              My own work all revolves around the desire to overcome the limitations imposed by this simple concept, and to make something which had not previously been considered possible with milkdrop. I gradually learned how shaders work, but my attempts often ended with frustration because I had not understood the limitations yet, and consequently things did not work out the way I had imagined.
              Now, by years of experience, I know quite well what can be done and what not. But other than that, there is absolutely no design process I followed.


              • #67
                Originally Posted by Nitorami View Post
                No. I'm just a hobby programmer who happened to stumble across milkdrop ten years ago.
                Martin if you don't mind, may I ask what your profession is? If you're not a professional programmer and just a hobbyist, how are you so good at it?

                You've always been an inspiration and I only ask this out of curiosity as someone who is changing careers and self-learning coding (albeit just JavaScript and web development frameworks).


                • #68
                  Hi Neebster

                  Thanks for asking; I am an electrical engineer, and learned programming with a beautiful language: Pascal. It was always self-learning to me, and I never abandoned it. My interest was always more on algorithms than applications, user interfaces or communications... the web ! - oh leave me alone.

                  I discovered milkdrop by chance. With programming skills rusty and hopelessly outdated, the wysiwyg way to program shaders - which I never had heard of - was just overwhelming. I had had no clue things like that were possible.
                  I got into it, by tinkering, try and error, self learning, a lot of patience and perseverance. The mathematical background from the studies was certainly helpful, notably for the spatial rotations and matrix operations in pixies party. But with hindsight, fascination and perseverance were probably the main factors. I spent far more time with milkdrop than what most others would consider sane... and guess that is it, more or less.



                  • #69
                    Thanks for your candid reply, good to get to know one of the most prolific preset authors a bit better