MilkDrop
Music visualization software
From Wikipedia, the free encyclopedia
MilkDrop is a hardware-accelerated music visualization plugin for Winamp and Kodi, which was originally developed by Ryan Geiss in 2001. It uses DirectX and beat detection to render iterated images which blend seamlessly.[1] MilkDrop uses a complex system of interpolation to transition between presets gradually through time, creating a constantly changing visual experience.[2]
| MilkDrop | |
|---|---|
Screenshot of preset included in MilkDrop version 1.04d | |
| Developer | Ryan Geiss |
| Initial release | 5 November 2001 |
| Stable release | Milkdrop 2.25d, Winamp 5.66, Kodi 20.2.0
/ 9 September 2022 |
| Operating system | Windows, DirectX 9 |
| Type | Music visualization |
| License | Proprietary (before 2.25c); 3-clause BSD license (2.25c), source-available (2.25d) |
| Website | http://www.geisswerks.com/milkdrop/ |
Presets
MilkDrop is an environment for running presets, software which controls MilkDrop, and does not produce visualizations by itself.
Presets are saved in .milk file format, typically in a subfolder of the MilkDrop plugin directory. Creating new presets is generally referred to as authoring, or writing, making the person that wrote a preset its author. Presets are distributed on the Internet through Winamp, the Winamp forums, and through the personal webpages of MilkDrop preset authors.[3] A preset's title also doubles as its .milk save name, and usually includes the preset author or authors' pseudonym. Since MilkDrop presets were frequently shared on forums, they often have more than one author and such variations are referred to as remixes, edits, or mashups. Hence these presets will often include these terms within the preset's title.
History
MilkDrop was the successor of an earlier music visualization software by Ryan Geiss, the Geiss Plugin for Winamp, which was released in 1998.[4][5] The software generated visuals by utilizing the CPU with highly optimized, hand-tuned assembly code.[4][6]
MilkDrop v1.0 was released by Ryan Geiss in 2001 and was specifically designed with GPU hardware support in mind.[7] 12 versions of MilkDrop were released between November 2001 and July 2003.[8] The source code of MilkDrop v1.04 was released under the BSD license in May 2005.[9][10] Geoff Potter (aka Redi Jedi)[11] did further development and released 6 beta versions.[12] MilkDrop has been ported to multiple platforms: such as XBMC (now known as Kodi), a media player for Xbox, PC, or LiveCD.
MilkDrop v2.0 was released in 2007 and introduced Per Pixel Shader support. New features included DirectX 9.0 support and the ability to use pixel shaders within presets. Milkdrop is implemented in Winamp v5.66 and ProjectM. The source code for MilkDrop 2.25c was released under the BSD license in May 2013.[7]
MilkDrop 2.25d was released in December 2022 as part of Winamp v5.9, an update that migrated Winamp from Visual Studio 2008 to Visual Studio 2019.[13] It broke backwards compatibility with some presets.[14] It was released under a source-available license along with the rest of Winamp in September 2024.[15]
Reception
According to the Winamp main download page, the milkdrop plugin and its predecessor Geiss were the most downloaded plugins overall, with 2,737,890 and 4,686,010 downloads (on 10 August 2014), respectively.[16]
Forks, ports, clones
| Name | Author | Platform (technology) | Released | Last updated[a] | License | Notes |
|---|---|---|---|---|---|---|
| projectM[17] | projectM team | Cross-platform native (OpenGL, C++) | 2003 | 2026 | LGPL 2.1 | Bundled into Clementine, Poweramp, and Qmmp. Plugins available for Audacious, XMMS, Winamp, iTunes, Jack, PulseAudio, foobar2000, Windows Media Player, VLC media player and XBMC. Also available as standalone app on desktop, Xbox, and Android.[18] |
| Flickernoise | M-Labs | Milkymist One | 2010 | 2013 | GPLv3 | Flickernoise is the video synthesizer software for Milkymist One, an open-source hardware video synthesizer (CC BY). The scripting language is heavily inspired by MilkDrop 2 and some MilkDrop presets can be run with minimal change. |
| DS-MilkDrop | Sky-Skan | DigitalSky 2 | 2015 | ? | Unknown | Plugin for DigitalSky 2 that allows a computer cluster to render MilkDrop visuals within a planetarium dome using a multi-projector setup. |
| Butterchurn[19] | Jordan Berg et al. | Cross-platform web (WebGL, JavaScript) | 2018 | 2026 | MIT | Used in Webamp, a Winamp 2.9x reimplementation used by the Internet Archive web page.[20] |
| BeatDrop[21] | Maxim Volskiy | Windows and WINE (DirectX 9, C++) | 2018 | 2018 | 3-clause BSD | MilkDrop2 as a standalone application that takes audio input hrough WASAPI. Based on Casey Langen's port of the official MilkDrop2 code to musikcube. One-off code release, has several forks such as one that adds Spout video streaming output target.[22] |
| Incubo BeatDrop | Incubo_ | Windows and WINE (DirectX 9, C++) | 2022 | 2026 | 3-clause BSD | Fork of Volskiy's BeatDrop with enhanced beat detection, extra custom shapes/waves, new transitions, real-time song information, Spout support, projectM-eval integration, shader caching/precaching, and screen-dependent render mode.[23] |
| NestDrop[24] | Nestimmerision.ca | Windows | 2020 | ? | Proprietary | Commercial (freemium) software based on the MilkDrop2 code release. Intended for use by video jockeys. Includes features such as Spout video output, Spout video input (as sprites for the visual),[25] and allows simutaneous use of up to four MilkDrop instances. Comes with a large curated preset library. |
| MilkDrop3[26] | Windows and WINE (DirectX 9, C++) | milkdrop2077 | 2023 | 2026 | 3-clause BSD | AI-assisted fork of Volskiy's BeatDrop. Main addition is the "double-preset" (.milk2 file format) for combining the display of two presets. Also allows loading presets based on beat detection, injecting effects in the shaders, saving any image directly in the preset, and up to 16 custom shapes/waves. Adds new waveforms and new transition effects. |
Other derived projects
MilkDropLM
MilkDropLM (2024) is an open-weight large language model designed to interpret and generate scripts in the MilkDrop scripting language. Built upon Qwen2.5, it was fine-tuned on a dataset comprising over 10,000 MilkDrop presets organized into categories and subcategories. The model is available in two different configurations, with 7 and[27] 32 billion parameters respectively.[28]