MilkDrop

Last updated

MilkDrop
Developer(s) Ryan Geiss
Initial release5 November 2001;22 years ago (2001-11-05)
Stable release
Winamp: 2.25d, Kodi: 20.2.0
Operating system Windows / HTML5
Type Music visualization
License BSD license
Website http://www.geisswerks.com/milkdrop/
Screenshot of preset included in MilkDrop version 1.04d Milkdrop Screenshot Mandala Chasers.jpg
Screenshot of preset included in MilkDrop version 1.04d

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]

Contents

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. MilkDrop presets often have more than one author, which is generally referred to as remixing or editing. A remix or an edit will often include these terms in the preset's title.

Double-Presets

MilkDrop 3.0 introduced a new type of .milk2 file format combining two presets and displaying them simultaneously. The first lines contains the blending information (blending_pattern, blending_progress, blending_direction and the fives random values used for blending pattern like plasma. The first preset is saved between [PRESET1_BEGIN] and [PRESET1_END], the second one between [PRESET2_BEGIN] and [PRESET2_END], and since MilkDrop version 3.2, an extra line containing the original preset name after 'NAME='.

Creating presets

Screenshot of preset displaying custom wave per-frame code along with the resulting visual effect Milkdrop Screenshot Glowstick-Code.jpg
Screenshot of preset displaying custom wave per-frame code along with the resulting visual effect

A current .milk file is composed of four major different kinds of scriptable equations. These include per_frame and per_pixel equations, as well as custom shapes and custom waves. [3]

Code in the per_frame section is executed once for each frame, modifying variables which affect different parameters that can be passed to other areas of code. Trigonometric functions which modify MilkDrop's internal looping time variable, systems of logic, and interaction with the audio information received from Winamp or other applicable media player's Fast Fourier transform (FFT) [4] can be used to govern how these parameters evolve through time. [3] [5]

Code in the per_pixel section of MilkDrop is not actually re-evaluated at every pixel as the name would suggest, rather the screen is divided into a grid and the code is evaluated at each grid point. [6] The pixels in-between these points interpolate their values from the surrounding four points on the grid. The size of the grid is 32×24 by default, but can be set higher or lower by the user. Per_Pixel equations allow the preset author to alter some of MilkDrop's parameters differently in certain areas of the screen based upon x and y values, distance from the center of the screen, and the angle. [3]

Custom shapes and custom waves each have variables which allow the author to change the shape, size, color, and location on screen, among other things. Shapes and custom waves each have internal per_frame code that affects these variables similarly to how per_frame equations affect the entire preset. Custom shapes and waves equations are included in MilkDrop version 1.04 and later. [3] While initially MilkDrop allowed four custom shapes and waves, the latest version of the MilkDrop beta allows up to five custom shapes and five custom waves to be utilized per preset, [7] and up to 16 in the version of MilkDrop 3.0.

History

Milkdrop is the successor of an earlier music visualization software by Ryan Geiss, the geiss plugin for Winamp, released around 1998. [8] [9] The geiss plugin did the real-time music visualization purely software rendered by utilizing the CPU effectively by highly optimized, hand-tuned assembly code. [8] [10]

In 2001 the first version of milkdrop was written, built around the now widely available GPU hardware. [11] Ryan Geiss released 12 versions of MilkDrop between 5 November 2001 and 31 July 2003. [12]

Originally closed source, version 1.04 Milkdrop's source code was released under the BSD license in May 2005. [13] [14] Geoff "Redi Jedi" Potter [15] has taken up developing the program since 2005 and has released six beta versions. [7]

With the availability of the source code, MilkDrop has been ported to many platforms: for instance to XBMC (now Kodi), a homebrew developed media player that can be downloaded for Xbox, PC, or as a LiveCD.

projectM [16] is an implementation of MilkDrop using OpenGL in C++, and is released under the GNU LGPL. It is available as a plugin for Audacious, XMMS, Winamp, iTunes, Jack, PulseAudio, foobar2000, Windows Media Player, VLC media player and XBMC, and also as a standalone desktop application. [17] The VLC versions 2.2.x does not support the projectM plugin. however it returned to VLC 3.0.0. [18] It comes natively with Clementine, Poweramp, and Qmmp that are also available in the Play Store on Android.

MilkDrop 2.0 was released in 2007, introducing Per Pixel Shader support. It is available with Winamp 5.5 or from projectM in their 2.0.1 version for use with other players like VLC media player. MilkDrop 2 added DirectX 9.0 support and added the ability to use pixel shaders in its presets.

The source code for MilkDrop 2.25c has been released on 15 May 2013. [11]

Milkdrop is implemented in Winamp (actual 5.66).

MilkDrop 2.25d was released in December 2022.

MilkDrop 3.0 has been released on the 3rd March 2023.

Reception

In 2011, Milkdrop was retrospectively described as "the greatest single work of art produced during the naughties". [19]

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. [20]

The Flickernoise software for the Milkymist One video synthesizer is largely inspired by MilkDrop, and is compatible with MilkDrop presets to some extent.

Butterchurn

Butterchurn (2018) is a web implementation of the original source code of Milkdrop released on the WinAmp forum in 2007.

2020

Butterchurn v2.6.7.1e-complete (2020-08-20) is easy to implement with example webpage and extended functions and implementation manual. [21] [ better source needed ]

MilkDrop 3.0

MilkDrop 3.0 (2023) is an updated fan version of MilkDrop released on the WinAmp forum in 2023 by MilkDrop2077 MilkDrop3 supports any audio sources (like Spotify or YouTube), double-preset, loading presets based on beat detection, new waveforms, new transition effects, injecting effects in the shaders, saving any image directly in the preset and is actively developed.

See also

Related Research Articles

<span class="mw-page-title-main">XMMS</span> Free and open source audio player

X Multimedia System (XMMS) is an audio player for Unix-like systems released under a free software license.

<span class="mw-page-title-main">Winamp</span> Media player for Microsoft Windows

Winamp is a media player for Microsoft Windows originally developed by Justin Frankel and Dmitry Boldyrev by their company Nullsoft, which they later sold to AOL in 1999 for $80 million. It was then acquired by Radionomy in 2014, now known as the Llama Group. Since version 2 it has been sold as freemium and supports extensibility with plug-ins and skins, and features music visualization, playlist and a media library, supported by a large online community.

Advanced Visualization Studio (AVS), is a music visualization plugin for Winamp. It was designed by Winamp creator, Justin Frankel and was first shipped in version 2.0a4 with Winamp 2.61. AVS has a customizable design which allows users to create their own visualization effects, or "presets". AVS was made open source software in May 2005, released under a BSD-style license. AVS is currently at version 2.83 and is included with Winamp, though the distributed version has later been reverted due to compatibility issues. Winamp currently ships with version 2.82 for Windows Vista and 2.81d for older Windows versions.

<span class="mw-page-title-main">VLC media player</span> Free and open-source media-player and streaming-media-server

VLC media player is a free and open-source, portable, cross-platform media player software and streaming media server developed by the VideoLAN project. VLC is available for desktop operating systems and mobile platforms, such as Android, iOS and iPadOS. VLC is also available on digital distribution platforms such as Apple's App Store, Google Play, and Microsoft Store.

<span class="mw-page-title-main">OpenMPT</span> Open source module tracker

OpenMPT is an open-source audio module tracker for Windows. It was previously called ModPlug Tracker, and was first released by Olivier Lapicque in September 1997.

The following comparison of video players compares general and technical information for notable software media player programs.

WavPack is a free and open-source lossless audio compression format and application implementing the format. It is unique in the way that it supports hybrid audio compression alongside normal compression which is similar to how FLAC works. It also supports compressing a wide variety of lossless formats, including various variants of PCM and also DSD as used in SACDs, together with its support for surround audio.

The Game Boy Sound System (GBS) is a file format containing Nintendo Game Boy sound driver data designed for the Game Boy sound hardware.

<span class="mw-page-title-main">MediaPortal</span>

MediaPortal is an open-source media player and digital video recorder software project, often considered an alternative to Windows Media Center. It provides a 10-foot user interface for performing typical PVR/TiVo functionality, including playing, pausing, and recording live TV; playing DVDs, videos, and music; viewing pictures; and other functions. Plugins allow it to perform additional tasks, such as watching online video, listening to music from online services such as Last.fm, and launching other applications such as games. It interfaces with the hardware commonly found in HTPCs, such as TV tuners, infrared receivers, and LCD displays.

<span class="mw-page-title-main">MediaMonkey</span> Digital media player

MediaMonkey is a digital media player and media library application developed by Ventis Media Inc., for organizing and playing audio on Microsoft Windows and Android operating systems. MediaMonkey for Windows includes various management tools, and is extensible using plugins, while MediaMonkey for Android is an adjunct for sharing the library with Android devices. MediaMonkey is commonly displayed/marketed as a solution for managing large libraries of music.

<span class="mw-page-title-main">Music visualization</span> Generation of animated imagery based on a piece of music

Music visualization or music visualisation, a feature found in electronic music visualizers and media player software, generates animated imagery based on a piece of music. The imagery is usually generated and rendered in real time and in a way synchronized with the music as it is played.

<span class="mw-page-title-main">Audacious (software)</span> Free and open source audio player

Audacious is a free and open-source audio player software with a focus on low resource use, high audio quality, and support for a wide range of audio formats. It is designed primarily for use on POSIX-compatible Unix-like operating systems, with limited support for Microsoft Windows. Audacious was the default audio player in Ubuntu Studio in 2011–12, and was the default music player in Lubuntu until October 2018, when it was replaced with VLC.

<span class="mw-page-title-main">KMPlayer</span> Freeware media player for Microsoft Windows

K-Multimedia Player is an Adware-supported media player for Windows and iOS that can play most current audio and video formats, including VCD, HDML, DVD, AVI, MKV, Ogg, OGM, 3GP, MPEG-1/2/4, AAC, WMA 7, 8, WMV, RealMedia, FLV and QuickTime.

<span class="mw-page-title-main">Grome</span> 3D terrain generation software

Grome is an environmental modeling package developed by Quad Software dedicated for procedural and manual generation of large virtual outdoor worlds suitable for games and other 3D real-time simulation applications.

The following comparison of audio players compares general and technical information for a number of software media player programs. For the purpose of this comparison, "audio players" are defined as any media player explicitly designed to play audio files, with limited or no support for video playback. Multi-media players designed for video playback, which can also play music, are included under comparison of video player software.

<span class="mw-page-title-main">JetAudio</span>

JetAudio is a shareware media player application for Microsoft Windows and Android released in 1997, that offers playback options for a wide range of multimedia file formats.

<span class="mw-page-title-main">Impulse Tracker</span> Free music sequencing software created in 1995 for the DOS platform

Impulse Tracker is a multi-track music tracker. Originally released in 1995 by Jeffrey Lim as freeware with commercial extensions, it was one of the last tracker programs for the DOS platform.

<span class="mw-page-title-main">Darktable</span>

Darktable is a free and open-source photography application and raw developer. Rather than being a raster graphics editor like Adobe Photoshop or GIMP, it comprises a subset of image editing operations specifically aimed at non-destructive raw image post-production. It is primarily focused on improving a photographer's workflow by facilitating the handling of large numbers of images. It is freely available in versions tailored for most major Linux distributions, macOS, Solaris and Windows and is released under the GPL-3.0-or-later.

qmmp Open source audio player

Qmmp is a free and open-source cross-platform audio player that is similar to Winamp. It is written in C++ using the Qt widget toolkit for the user interface. It officially supports the operating systems Linux, FreeBSD and Microsoft Windows. In most Linux distributions, it is available through the standard package repositories. Until Audacious switched to Qt in version 4.0, qmmp was the only audio player to use Qt and not feature a database.

References

  1. "MilkDrop 1.04 for Windows 2000/NT/ME/98/95". Shareware Music Machine. Hitsquad Pty Ltd. Retrieved 11 October 2010.
  2. MilkDrop Version History Archived 23 May 2007 at the Wayback Machine
  3. 1 2 3 4 5 MilkDrop preset authoring guide Archived 7 June 2007 at the Wayback Machine
  4. "change the drawing order? – Winamp & SHOUTcast Forums".
  5. Beginners Guide to MilkDrop Preset Writing 28 February 2002.
  6. Beginners Guide to MilkDrop Preset Writing: Additional per_pixel Effects 28 February 2002.
  7. 1 2 Development Archived 15 May 2007 at the Wayback Machine
  8. 1 2 Geiss, Ryan. "geiss.txt" . Retrieved 10 August 2014. GEISS is entirely copyright (c) 1998–2000 by Ryan M. Geiss [...] Geiss uses hand-tuned x86 assembly language to reach blazing speeds, generating smooth and graceful realtime graphics... and it can hear whatever your computer hears and synchronize the graphics it generates to the sound you're hearing.
  9. "Geis".
  10. "Frequently-asked questions about Geiss for Winamp" . Retrieved 10 August 2014. Also, a 3d-accelerated video card will make NO difference.. What you see in Geiss right now is not hardware accelerated (nor can it be).
  11. 1 2 "Geisswerks – About MilkDrop".
  12. MilkDrop 2.0d (January 2008) Archived 23 May 2007 at the Wayback Machine
  13. MilkDrop plug-in for Winamp Archived 2 August 2005 at the Wayback Machine
  14. Milkdrop 1 Source Code released (May 4, 2005) http://www.nullsoft.com/free/milkdrop_1.04_Source.zip%5B%5D
  15. About me Archived 18 May 2007 at the Wayback Machine
  16. "projectM".
  17. "GitHub - projectM-visualizer/frontend-sdl2: Standalone application based on SDL2 that turns your desktop audio into awesome visuals. Available on most platforms supported by both libprojectM and libSDL2". GitHub . Retrieved 10 June 2023.
  18. "ProjectM visualization choice missing from VLC 2.2.0 – The VideoLAN Forums".
  19. Nielson, Jim (13 February 2011). "Milkdrop". futureartnow.org. Archived from the original on 12 August 2014. To my mind, the greatest single work of art produced during the naughties – at least the greatest of which I'm so far aware – may be Ryan Geiss's open-source music visualization plugin project, Milkdrop.
  20. "Winamp Visualization Most Downloaded". Archived from the original on 12 August 2014. Retrieved 10 August 2014.
  21. "MilkDrop easy to implement on webpages ..."