MilkDrop
Encyclopedia
MilkDrop is an open source
, hardware-accelerated
music visualization
plugin for Winamp
, which was originally developed by Ryan Geiss. It uses DirectX
and intelligent beat detection to render iterated images which blend seamlessly. MilkDrop uses a complex system of interpolation
to transition between presets gradually through time, creating a constantly changing visual experience.
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. 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.
equations. These include per_frame and per_pixel equations, as well as custom shapes and custom waves.
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) can be used to govern how these parameters evolve though time.
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. The pixels in-between these points interpolate their values from the surrounding 4 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.
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. While initially MilkDrop allowed 4 custom shapes and waves, the latest version of the MilkDrop beta allows up to 5 custom shapes and 5 custom waves to be utilized per preset.
was released under the BSD license in May 2005. Ryan Geiss released 12 versions of MilkDrop between 5 November 2001 and 31 July 2003. Redi Jedi as well as Michael Matusowsky et al. (Geoff Potter) has taken up developing the program since 2005 and has released six beta versions.
projectM 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
and VLC media player
. It comes natively with Qmmp and is available as a package in Fedora
.
MilkDrop has been ported to XBMC Media Center, a homebrew
developed media player that can be downloaded for Xbox
, PC
, or as a LiveCD.
The Flickernoise software for the Milkymist
One video synthesizer
is largely inspired by MilkDrop, and is compatible with MilkDrop presets to some extent.
MilkDrop 2.0 was released in 2007. It is available with Winamp 5.5 or from projectM in their 2.0.1 version for use it with other players like the VLC media player
. MilkDrop 2 added DirectX 9.0 support and added the ability to use pixel shaders in its presets.
Open-source software
Open-source software is computer software that is available in source code form: the source code and certain other rights normally reserved for copyright holders are provided under a software license that permits users to study, change, improve and at times also to distribute the software.Open...
, hardware-accelerated
Hardware acceleration
In computing, Hardware acceleration is the use of computer hardware to perform some function faster than is possible in software running on the general-purpose CPU...
music visualization
Music visualization
Music visualization, a feature found in electronic music visualizers and media player software, generates animated imagery based on a piece of music...
plugin for Winamp
Winamp
Winamp is a media player for Windows-based PCs and Android devices, written by Nullsoft, now a subsidiary of AOL. It is proprietary freeware/shareware, multi-format, extensible with plug-ins and skins, and is noted for its graphical sound visualization, playlist, and media library features.Winamp...
, which was originally developed by Ryan Geiss. It uses DirectX
DirectX
Microsoft DirectX is a collection of application programming interfaces for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with Direct, such as Direct3D, DirectDraw, DirectMusic, DirectPlay,...
and intelligent beat detection to render iterated images which blend seamlessly. MilkDrop uses a complex system of interpolation
Interpolation
In the mathematical field of numerical analysis, interpolation is a method of constructing new data points within the range of a discrete set of known data points....
to transition between presets gradually through time, creating a constantly changing visual experience.
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
File format
A file format is a particular way that information is encoded for storage in a computer file.Since a disk drive, or indeed any computer storage, can store only bits, the computer must have some way of converting information to 0s and 1s and vice-versa. There are different kinds of formats for...
, 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
Winamp
Winamp is a media player for Windows-based PCs and Android devices, written by Nullsoft, now a subsidiary of AOL. It is proprietary freeware/shareware, multi-format, extensible with plug-ins and skins, and is noted for its graphical sound visualization, playlist, and media library features.Winamp...
, the Winamp forums, and through the personal webpages of MilkDrop preset authors. 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
Editing
Editing is the process of selecting and preparing written, visual, audible, and film media used to convey information through the processes of correction, condensation, organization, and other modifications performed with an intention of producing a correct, consistent, accurate, and complete...
. A remix or an edit will often include these terms in the preset's title.
Creating presets
A current .milk file is composed of 4 major different kinds of scriptableScripting language
A scripting language, script language, or extension language is a programming language that allows control of one or more applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the...
equations. These include per_frame and per_pixel equations, as well as custom shapes and custom waves.
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
Music
Music is an art form whose medium is sound and silence. Its common elements are pitch , rhythm , dynamics, and the sonic qualities of timbre and texture...
information received from Winamp
Winamp
Winamp is a media player for Windows-based PCs and Android devices, written by Nullsoft, now a subsidiary of AOL. It is proprietary freeware/shareware, multi-format, extensible with plug-ins and skins, and is noted for its graphical sound visualization, playlist, and media library features.Winamp...
or other applicable media player's Fast Fourier transform
Fast Fourier transform
A fast Fourier transform is an efficient algorithm to compute the discrete Fourier transform and its inverse. "The FFT has been called the most important numerical algorithm of our lifetime ." There are many distinct FFT algorithms involving a wide range of mathematics, from simple...
(FFT) can be used to govern how these parameters evolve though time.
Code in the per_pixel section of MilkDrop is not actually re-evaluated at every pixel
Pixel
In digital imaging, a pixel, or pel, is a single point in a raster image, or the smallest addressable screen element in a display device; it is the smallest unit of picture that can be represented or controlled....
as the name would suggest, rather the screen is divided into a grid and the code is evaluated at each grid point. The pixels in-between these points interpolate their values from the surrounding 4 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.
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. While initially MilkDrop allowed 4 custom shapes and waves, the latest version of the MilkDrop beta allows up to 5 custom shapes and 5 custom waves to be utilized per preset.
History
Originally closed source, its source codeSource code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
was released under the BSD license in May 2005. Ryan Geiss released 12 versions of MilkDrop between 5 November 2001 and 31 July 2003. Redi Jedi as well as Michael Matusowsky et al. (Geoff Potter) has taken up developing the program since 2005 and has released six beta versions.
projectM is an implementation of MilkDrop using OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
in C++, and is released under the GNU LGPL
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...
. It is available as a plugin for Audacious
Audacious Media Player
Audacious is a free software audio player with a focus on low resource usage, high audio quality, and support for a wide range of audio formats. It is designed primarily for use on POSIX-compatible systems such as Linux, with limited support for Microsoft Windows...
, XMMS
XMMS
The X Multimedia System is a free audio player for Unix-like systems.-History:XMMS was originally written as X11Amp by Peter and Mikael Alm in November 1997. The player was made to resemble Winamp, which was first released in May that year. As such, XMMS has supported Winamp 2 "classic" skins...
, Winamp
Winamp
Winamp is a media player for Windows-based PCs and Android devices, written by Nullsoft, now a subsidiary of AOL. It is proprietary freeware/shareware, multi-format, extensible with plug-ins and skins, and is noted for its graphical sound visualization, playlist, and media library features.Winamp...
, iTunes
ITunes
iTunes is a media player computer program, used for playing, downloading, and organizing digital music and video files on desktop computers. It can also manage contents on iPod, iPhone, iPod Touch and iPad....
, Jack
JACK Audio Connection Kit
JACK is a professional sound server daemon that provides real-time, low latency connections for both audio and MIDI data between applications that implement its API...
, PulseAudio
PulseAudio
PulseAudio is a cross-platform, networked sound server commonly used on the Linux-based and FreeBSD operating systems.PulseAudio runs under Microsoft Windows, Mac OS X, and POSIX-compliant platforms, such as Linux and FreeBSD...
, foobar2000
Foobar2000
foobar2000 is a freeware audio player for Windows developed by Peter Pawlowski, a former freelance contractor for Nullsoft. It is known for its highly modular design and extensive SDK which allows third-party developers to do such things as completely replace the interface...
and VLC media player
VLC media player
VLC media player is a free and open source media player and multimedia framework written by the VideoLAN project.VLC is a portable multimedia player, encoder, and streamer supporting many audio and video codecs and file formats as well as DVDs, VCDs, and various streaming protocols. It is able to...
. It comes natively with Qmmp and is available as a package in Fedora
Fedora (operating system)
Fedora is a RPM-based, general purpose collection of software, including an operating system based on the Linux kernel, developed by the community-supported Fedora Project and sponsored by Red Hat...
.
MilkDrop has been ported to XBMC Media Center, a homebrew
Homebrew (video games)
Homebrew is a term frequently applied to video games or other software produced by consumers to target proprietary hardware platforms not typically user-programmable or that use proprietary storage methods...
developed media player that can be downloaded for Xbox
Xbox
The Xbox is a sixth-generation video game console manufactured by Microsoft. It was released on November 15, 2001 in North America, February 22, 2002 in Japan, and March 14, 2002 in Australia and Europe and is the predecessor to the Xbox 360. It was Microsoft's first foray into the gaming console...
, PC
Personal computer
A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...
, or as a LiveCD.
The Flickernoise software for the Milkymist
Milkymist
The Milkymist project is an informal organization of people and companies who develop, manufacture and sell a comprehensive open source solution for the live synthesis of interactive visual effects for VJs...
One video synthesizer
Video synthesizer
A Video Synthesizer is a device that electronically creates a video signal.A video synthesizer is able to generate a variety of visual material without camera input through the use of internal video pattern generators, as seen in the stillframes of motion sequences shown above. It can also accept...
is largely inspired by MilkDrop, and is compatible with MilkDrop presets to some extent.
MilkDrop 2.0 was released in 2007. It is available with Winamp 5.5 or from projectM in their 2.0.1 version for use it with other players like the VLC media player
VLC media player
VLC media player is a free and open source media player and multimedia framework written by the VideoLAN project.VLC is a portable multimedia player, encoder, and streamer supporting many audio and video codecs and file formats as well as DVDs, VCDs, and various streaming protocols. It is able to...
. MilkDrop 2 added DirectX 9.0 support and added the ability to use pixel shaders in its presets.
See also
- Advanced Visualization StudioAdvanced Visualization StudioAdvanced Visualization Studio , is a music visualization plugin for Winamp. It was designed by Winamp's creator, Justin Frankel. 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...
(AVS) - Music visualizationMusic visualizationMusic visualization, a feature found in electronic music visualizers and media player software, generates animated imagery based on a piece of music...
- MilkymistMilkymistThe Milkymist project is an informal organization of people and companies who develop, manufacture and sell a comprehensive open source solution for the live synthesis of interactive visual effects for VJs...