Introduction
Welcome to MilkDrop.org. A site dedicated to MilkDrop and music visualisation. I am collecting and preserving MilkDrop presets and content related to creating music visualisations. The visualizations are powered by Butterchurn, a WebGL-based implementation of the MilkDrop 2 engine that runs in modern browsers.
What is MilkDrop?
MilkDrop is a music visualisation plugin for Winamp, written by Ryan Geiss. It generates real-time graphics that respond to the music being played. It uses a combination of DirectX and advanced mathematical formulas to create dynamic, flowing visual effects that move in sync with the audio. MilkDrop allows users to create and share presets, which define the visual patterns and effects that are displayed during music playback.
What is a MilkDrop Preset?
A MilkDrop preset is a text-based configuration file with a .milk extension that acts as a mathematical “recipe” for the MilkDrop 2 engine. It contains the procedural code, including per-frame logic, per-pixel equations, and HLSL shaders that tells the GPU how to transform and color pixels in real-time. By reacting to parameters like time, bass, and treble, the .milk file generates dynamic, beat-synced visualizations on the fly.
A Little Bit of History
The evolution of MilkDrop is a story of shifting from raw CPU power to modern GPU-driven artistry, followed by a transition to the web and community-led revivals.
- MilkDrop 1 (2001): Created by Ryan Geiss as a successor to his “Geiss” plugin, MilkDrop 1 was a breakthrough for Winamp. Unlike its predecessors that relied on the CPU, MilkDrop 1 was specifically designed to harness the power of GPU hardware acceleration using DirectX.
- MilkDrop 2 (2007): This major update unlocked the creative potential of pixel shaders. By supporting Shader Model 3.0, it allowed authors to write complex code for every pixel on the screen, leading to the sophisticated, high-definition visuals that defined the “golden era” of Winamp.
- Butterchurn (2018): As desktop music players declined, Jordan Berg developed Butterchurn to bring the MilkDrop experience to the web. It is a WebGL2-based implementation that allows the original MilkDrop 2 presets to run natively in modern browsers and is famously integrated into Webamp.
- MilkDrop 3 (2023): Released by the developer MilkDrop2077, this fan-driven version modernizes the engine for today’s hardware. It introduced the .milk2 format for simultaneous double-preset blending and added features like native support for audio from any source, including Spotify and YouTube.
Why MilkDrop.org?
I started out curating a small set of 10 or so presets for an application I work on, and looking for resources on authoring presets for users. I started with Ryan Geiss’s MilkDrop Preset Authoring Guide, which has a broken link to Rovastar and Krash’s Beginners Guide to MilkDrop Preset Writing. The domain is held by a squatter now, but the guide was preserved on Wayback Machine. At first, I was only going to mirror the old site just so the link would load quicker… but as I worked at it the idea kind of evolved into a preset browser and community hub. So we ended up here.
Roadmap / Goals
- build a catalog of presets that the community can browse, share, and remix.
- build a library of content related to music visualization and preset authoring.
- make an API that other applications can pull from, and make the presets themselves freely available.
- highlight authors and creators in the community
