Go Back   Winamp & SHOUTcast Forums > Visualizations > MilkDrop > MilkDrop Presets

Reply
Thread Tools Search this Thread Display Modes
Old 28th March 2018, 06:04   #1
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
Zylot - The Complete Collection (Remastered, Retouched, Redone)

Hey Kids, ever dare to venture into the presets of old, and then wince in dismay? Things don't fade to black, colors are muted, the wrong bitwise operators are used, and there's no pixel shaders for miles?

I know, terrible, but fear not, because some have been spared.

Don't just take my word for it though! Visit the full album to see some examples of the changes.

So what's in the zip?

--> Every preset I made that isn't a remix.
--> Except some that couldn't be saved or weren't unique enough to be included.
--> Enhanced with only the most basic of shaders (in most cases), corrected for bad decays and with fixed maths.
--> A small number of new presets based off old ones.

It's a collection of old-style presets for the modern day, bright and colorful and working correctly.

Instructions:
--> Find the presets that begin with Zylot - and.. if they aren't remixed (Zylot & [some awesome guy]) delete them.
--> Download the zip
--> Extract into your preset folder.
--> Load milkdrop, view the presets, be underwhelmed.

Don't expect anything jaw dropping, folks, that's for later if I can git gud with the shaders. This is just an attempt to preserve some history and salvage some forgotten maths. There are a few treats here and there, and some presets have undergone some big changes to get them looking more like what I was going for before I had the tools and knowledge I do today.

Enjoy.

-Zy
Attached Files
File Type: zip Zylot.zip (424.5 KB, 319 views)

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Old 28th March 2018, 08:19   #2
RaveRocks
Junior Member
 
Join Date: Oct 2017
Posts: 14
Thank you for updating your Milkdrop legacy projects. The list of media players and devices that have Milkdrop compatible plugins is quite impressive & is a tribute both to the brilliance of the architecture & to the artists who willing tortured themselves with the hours upon months it took to learn how to make brilliant living, reacting artwork.

A few months back, I moved all the Milkdrop files onto a couple of USB drives and started to 'sort' through them. The biggest challenge is weeding out the duplicates. I've found software that will identify byte-for-byte clones, but that still leaves what I consider the occasional needless tweak by a novice tinker-type that that destroyed the original art, equivalent to what you'd expect the Mona Lisa to look like after a pair of six year old 'artists' finger painted a moustache, bushy eyebrows & a beard on the canvas. And I quickly add that I could not do much better with my limited knowledge and experience with the programming of Milkdrop presets. But I digress....

My original goal was to sort & categorize the 40,000+ milk files into meaningful groups, such as MTV (Moving Toward Viewer), MAFV (Moving Away From Viewer), TUNNEL, NBA (Non-Beat Aware), STROBE, LAT (Lateral Move), SCENE (like Martin's Planet series), WET, KAL (Colored Petals, Kaleidoscopic Patterns). Identifying missing texture files could be a whole lot easier if the error message was more specific. I've been using grepWin to search for sampler_ which is a lot easier than Notepad'ing each milk file.

Long, long ago, I retired from club dj'ing. More recently, I've retired from my final career of 26 years, churning out business code. With faster computers & video, Milkdrop renderings look absolutely brilliant with decent screen capture software. My chosen hobby is the creation of music videos to accompany remixes of songs that have been relevant to my life and several of my You-Tube uploads were generated with the help of Milkdrop. Your nom-de-plum was on my first short list. Full-blown retirement and depending on a future lottery windfall really sucks, but I'm sure I could afford a beverage or two of your choice if you'd ever wander close by. Cheers & thank you for being a brilliant devoted artist nerd. Have you ever tabulated how many hours Zylot.zip took to create over the years?
RaveRocks is offline   Reply With Quote
Old 28th March 2018, 14:20   #3
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
Including the non-included... a great many hours. I started so many years ago that it's impossible to estimate.

I can say that it took a good number of hours updating everything for this zip since I started a few weeks ago but I can also say that the better chunk of that was waiting for presets to save and delete. MD does not handle a directory full of "every preset ever(tm)" very well that's for sure.

In hindsight, I should have gotten what I needed from the archive and then moved everything except for my stuff until the work was done, well.. what's done is done.

Since you mentioned remixes, though, yeah back in the day we had a system where you'd [Original Author] [+/And/&] [Your name] - [preset name] which seems to mostly be followed, but I did see a ton of the presets I made with nz+ behind them.

I don't know what they are and I normally don't want to shit on someone's work but they just seemed to be random stuff slapped on top of flashing lights and more random stuff.

Can anyone clue me into what was going on there? Now that my work is done I need to prune the "all presets ever(tm)" down to a list MD can handle and include the presets that seem to involve an artist sitting down and doing work instead of random mashups. Then I can start looking through pixel shaders to figure out what I'm missing about them because I'm certainly missing something.

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Old 28th March 2018, 17:39   #4
Nitorami
Major Dude
 
Join Date: Mar 2008
Location: Erlangen
Posts: 831
Ouch, this stuff is thoroughly back to the basics ! But I must admit some code tricks are quite puzzling, it took me fifteen minutes to understand how you did the musical spectrum in 3D without even using waves.

The naming system is still in place, but requires reading the authoring guidelines, which not everyone did, apparently. Kids nowadays have so many distractions at their disposal, they want instant success and then move on; consequently they mash a few things up overnight, advertise it as the hottest shit ever conceived, and piss off never to be seen again. Some guys here delivered 100+ presets in a single night.

Back to the naming system, it is flawed anyway; it is voluntary, and after a few mashups of mashups of mashups and Hit-the-A-key-orgies it is really rather impossible to determine the original author. I myself, having done this shit for ten years, usually recognise my own shader code or fragments thereof immediately, and I can tell you that a LOT of presets are using it, with or without adding my name. In your presets for instance I can spot it in the True Visionary, Sound Plays the Sight, Heaven Bloom and a few others. At least you are aware, as you added a note in the code. But frankly I don't bother, and I prefer to move on to make something new anyway, as I tend to get bored by static effects rather quickly.

Quote:
I'm certainly missing something
Not sure what you mean ? There is no hidden feature or something you still have to discover. If you need a bit of advice, I'll be happy to help where I can. Just be serious about it. I learned on this forum that the absorption of lessons or new techniques is minimal or not existing. Guys either want to tinker up their own shit, thinking they can do it by their own brilliant magic without the need to study, or they lose interest after three days and turn on to the next hot shit on the internet.
Nitorami is offline   Reply With Quote
Old 28th March 2018, 17:57   #5
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
Quote:
Ouch, this stuff is thoroughly back to the basics !
I did promise an underwhelming experience, so you can't say I didn't deliver.

Of course, I'm the kind of person who will say that there's nothing wrong with basics. Does it look good? Is it colorful? Does it react to the music in a delightful way? Then it's a good preset in my book, and that goes for anyone's work not just mine.

Quote:
I myself, having done this shit for ten years, usually recognise my own shader code or fragments thereof immediately, and I can tell you that a LOT of presets are using it, with or without adding my name. In your presets for instance I can spot it in the True Visionary, Sound Plays the Sight, Heaven Bloom and a few others.
Yeah I tried to comment where I got the shader stuff from when it wasn't written all by myself. Not because I didn't want to give credit in the title but because I didn't explicitly start by loading your preset and modifying it. I really don't have a problem with people using my shit and not crediting it, in fact my complaint was more about someone using my stuff and not crediting themselves...

Quote:
Not sure what you mean ? There is no hidden feature or something you still have to discover.
Oh, i'm not thinking something along those lines. More like.. if I'm in per vertex and I see math, my brain can translate that math to what's going on fairly easily.

In a warp shader and composite shader that doesn't happen. I'm missing the relationship between what's being shown and what it's doing, and I'm stumped on getting something to look the way I want often. As fun as changing a .8 to a .7 and hoping that works is.. I need to actually sit down and figure it all out so I can get to where I want to be quicker and with less head scratching.

I decided to wait on that until I was done with this project though, as these presets couldn't drift far from their origins or it would defeat the purpose. The time to learn must coincide with the time to present something new.

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Old 28th March 2018, 18:39   #6
Nitorami
Major Dude
 
Join Date: Mar 2008
Location: Erlangen
Posts: 831
Quote:
I'm missing the relationship between what's being shown and what it's doing
I can relate to that, absolutely. Maybe this little post can shed a bit of light. It started to dawn on me after years of tinkering.
http://forums.winamp.com/showpost.ph...2&postcount=11

In case you aren't aware, there have been other amendments to milkdrop in the past years, apart from the shaders. Previously there was only one shape per shape section, now it is 1024. And in 2010, Benski added the the ns-eel language extension which also opened up a whole lot of new possibilities in the normal coding section, not the shaders.
Nitorami is offline   Reply With Quote
Old 28th March 2018, 18:59   #7
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
Yeah let's talk about those shape instances. Fuck 'em, lol.

I got exceptionally miffed during one of the revamps when it turns out that the code merely runs once and applies to all the instances, meaning rand([numbers]) is the same for all instances.

Then i got extra mad about it when the instance value did not work in logical ifs, thus further ruining all my fun.

I'm exaggerating a bit but I was a bit disappointed.

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Old 28th March 2018, 19:27   #8
Nitorami
Major Dude
 
Join Date: Mar 2008
Location: Erlangen
Posts: 831
Quote:
Then i got extra mad about it when the instance value did not work in logical ifs
It works for me, instance just increments from 0... num_inst-1. Take care to use the C style == operator for comparison, e.g

if (instance ==0, do something, do something else);

But the best way to handle this is normally to calculate all shape positions in the per frame section in a loop and to store them to the gmegabuf array. Then in the shape section all you need to do is to read the array and assign the values to x and y accordingly.

n = 0;
loop (100,
gmegabuf(2*n) = rand(1);
gmegabuf(2*n+1) = rand(1);
n +=1;
)
Nitorami is offline   Reply With Quote
Old 28th March 2018, 19:34   #9
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
I see, I was just hoping they'd work with Milkdrop's original shizz.. IE:

diff = .01;
x = if(above(x,1+.1*instance),0,x+diff);

To drift off variance between instances as time goes on, but they always returned to 0 at the exact same time. Guess it requires a bit more effort, something I'll look into.

Thanks for letting me know I wasn't chasing the impossible dream.

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Old 28th March 2018, 19:45   #10
Nitorami
Major Dude
 
Join Date: Mar 2008
Location: Erlangen
Posts: 831
The issue with that code is that native variables such as x ynd y are meant to be written OUT, and they are not remembered from one instance to the next. You should use your own variables e.g.

x0 = if(above(x0,1+.1*instance),0,x0+diff);
x = x0;
Nitorami is offline   Reply With Quote
Old 28th March 2018, 19:50   #11
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
Oddly... I actually tried that and it didn't work. It's what led me to believe it was the instance value in the first place, but maybe I was tired and only thought I did? It's more likely then one would think these days!

I'll check when I stop writing code for money and start writing code for fun again later today.

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Old 29th March 2018, 08:53   #12
fiShbRaiN
Member
 
fiShbRaiN's Avatar
 
Join Date: Jul 2004
Location: Mt. Gambier, South Australia
Posts: 89
Rock on Zylot!!
fiShbRaiN is offline   Reply With Quote
Old 29th March 2018, 09:35   #13
Flexi
wellspring of milk
Major Dude
 
Flexi's Avatar
 
Join Date: Apr 2007
Location: 54.089866,12.11168,18.75
Posts: 2,055
Send a message via ICQ to Flexi
ohai, welcome back. I just wrote about how I used gmegabuf and instancing in another thread. Take care! http://forums.winamp.com/showthread....47#post3152547
Flexi is offline   Reply With Quote
Old 29th March 2018, 17:48   #14
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
Thanks for the resources and well wishes guys, maybe just maybe we'll see something new from this old timer after all.

Oi, Martin, I did verify that I did in fact remove the flat x from the code and replaced it with variables prior and it didn't work, but if I take the parts where it references instance out of the if and throw it elsewhere it suddenly functions fine.

So, looks like it's fun with gmegabuf if I want to get the sort of thing working that I want, time to knuckle down and get to work.

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Old 30th March 2018, 19:34   #15
Flexi
wellspring of milk
Major Dude
 
Flexi's Avatar
 
Join Date: Apr 2007
Location: 54.089866,12.11168,18.75
Posts: 2,055
Send a message via ICQ to Flexi
I was thinking about what you said about learning shaders. There are some good online tutorial for creative coders. Check out https://thebookofshaders.com/
Flexi is offline   Reply With Quote
Old 1st April 2018, 16:02   #16
xmuzack
Senior Member
 
xmuzack's Avatar
 
Join Date: Sep 2016
Posts: 103
Quote:
Originally Posted by Flexi View Post
I was thinking about what you said about learning shaders. There are some good online tutorial for creative coders. Check out https://thebookofshaders.com/
Wow thanks for the link Flexi. Also from that site is a link to https://processing.org/
which looks to be very helpful to noobs like me.

Also, I'm sure Martin is glad to have some non-noobs here again to talk shop, lol.
xmuzack is offline   Reply With Quote
Old 1st April 2018, 21:41   #17
Virtual Self
Junior Member
 
Join Date: Mar 2018
Posts: 28
I'm glad you update your old works. I appreciated. Well, do you intend to do completely new works? We are talking about Zylot and the expectations are quite high.
Virtual Self is offline   Reply With Quote
Old 2nd April 2018, 01:02   #18
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
If you have high expectations then you haven't been paying attention

Nevertheless, that's the final step. In between that is brushing up and getting gud.

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Old 7th April 2018, 05:45   #19
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
Here I am, putting things together... slowly but surely.
Attached Files
File Type: milk Zylot - Bog Standard Music Visualizer.milk (7.6 KB, 78 views)

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Old 7th April 2018, 08:37   #20
Nitorami
Major Dude
 
Join Date: Mar 2008
Location: Erlangen
Posts: 831
Bog standard but quite pleasant to watch.

What is the meaning of 0|x in wvaes 2 ? The logical "or" operator is usually "||"
y = .5+(0|(((value1+value2)*.5)*3))*.001;
Nitorami is offline   Reply With Quote
Old 7th April 2018, 15:25   #21
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
Bitwise OR, we used it back in the day for shenanigans you couldn't otherwise get away with..

It's usable anywhere except in pixel shaders.

There's also & for bitwise AND.
Attached Files
File Type: milk Zylot - Bitwise.milk (7.5 KB, 80 views)

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Old 7th April 2018, 21:09   #22
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
...and now for something completely different.

Fixed the other preset by emptying gmegabuf in init since it seemed to persist from preset to preset.
Attached Files
File Type: milk Zylot - Bog Standard Music Visualizer.milk (7.7 KB, 82 views)
File Type: milk Zylot - Snake Game.milk (22.0 KB, 84 views)

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Old 8th April 2018, 13:20   #23
hakanh
Member
 
hakanh's Avatar
 
Join Date: Sep 2014
Location: World
Posts: 98
An old stager finally shared something (I mean the beginning of the year 2000).
I wanted to see more magical things. On the other hand, I liked the three presets in this package. These are:
- Fusion (Spinner mix),
- Dance of Lights,
- Your musical Spectrum in 3d ( awesome effect! )

Radiance, Funnels, and Crossing Over are my favorite presets from your old package.

Also, I think you will quickly adapt to the warp and composite shaders.
hakanh is offline   Reply With Quote
Old 10th April 2018, 16:58   #24
Nitorami
Major Dude
 
Join Date: Mar 2008
Location: Erlangen
Posts: 831
Quote:
There's also & for bitwise AND.
Alright, I never considered bitwise operators because the internal representation of numbers in MD is not quite clear to me, i.e. whether a number is represented as float or integer. Judged by rounding error, it appears that MD converts integers into floats very quickly; it would be useful for some purposes to force integer during calculations but I don't think it is possible.
Doing bitwise operation on a float will produce rather garbage if applied straightaway, e.g. to an IEEE float representation. But it seems that MD is not quite stupid and in such cases does a float->integer conversion first. In your 0|x construct, the 0 does nothing apparently, but the bit operator tells MD to use integers. 0|x appears to be equivalent to int(x).

The snake is not moving continuously; shouldn't it ? It rather goes step by step, and sometimes makes long pauses. Heck, what protracted code... I understand that you need collision detection and what not, but have you considered to proceed the snake in the megabuf simply by a memory copy e.g. memcpy (destination, source, number_of_values)?
Nitorami is offline   Reply With Quote
Old 11th April 2018, 03:36   #25
Zylot
Major Dude
 
Zylot's Avatar
 
Join Date: Jul 2001
Location: Pa, US(of)A
Posts: 799
Thanks for the detailed post!

Re: The Snake

memcpy, I had no idea this was a thing, now I do.
The choppy movement: on purpose. It was originally smoothly choppy (IE: moved every X frames vs the motion of it's parts which degraded based on distance from the head (in increments of five frames)) but then I added some variance to make it more unpredictable and.. well.. bad. Like the unreliable performance of an older game. In theory, you could remove the frame%val code and get it to move every single frame. It'd be quick, and smoother, but not the effect I wanted.
My code is bad: Yeah it is.

-------------
What do you wish for?
--Instrumentality
Zylot is offline   Reply With Quote
Reply
Go Back   Winamp & SHOUTcast Forums > Visualizations > MilkDrop > MilkDrop Presets

Tags
presets, remastered, zylot

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump