BeatDrop Music Visualizer

Free & open source · For Windows

MilkDrop visuals.
For all your music.

BeatDrop is a free, standalone MilkDrop music visualizer for Windows. Use it for DJ sets, VJ performances, streams, music videos, parties, karaoke—or just enjoy the visuals while you listen.

Reacts to system audio or a microphone. No specific music player is required.

Video 1 of 4
Press play to preview
Watch: 1 2 3 4
All of them are actual footage from BeatDrop
10,000+bundled presets
Two audio modesSystem audio or Microphone
32-bit & 64-bitWindows builds available
Free to downloadopen-source development

What can I use BeatDrop for?

At home, on stream
or behind the DJ booth.

Run it on its own or add its output to your existing visual setup. Choose presets that fit your music and the occasion.

DJ sets & VJ performances

Run visuals alongside your mix, show them fullscreen, or send them through Spout to apps such as Resolume, NestDrop, TouchDesigner and Synesthesia.

Streams & music videos

Bring BeatDrop into OBS with a Spout plug-in or window capture. Combine it with other sources for livestreams, recordings and music videos. If you share your visuals, tag #BeatDrop or #BeatDropMusicVisualizer so the community can find them.

Parties & karaoke

Show visuals on a party screen and add synchronized lyrics when available. Use microphone input when you want the visuals to react to sound in the room.

Music & desktop visuals

Listen with your usual player, keep a small borderless view open, or use Desktop Mode to display visuals behind your Windows icons.

Displays & installations

Use fullscreen visuals on a dedicated display, or route the output into a Spout-compatible setup for an installation or exhibition.

Making your own presets

Edit .milk presets, experiment with shapes and waves, and use mouse, keyboard, shader variables, video or GIF textures in your work. Press M to get started.

For public or commercial work, check the permissions for each preset and any other media you use.

More ways to enjoy MilkDrop

What’s included in BeatDrop?

Enjoy the presets as they are, or experiment with window modes, media inputs and the built-in editor.

A Spout Sender image is received and composited inside a BeatDrop preset
A live Spout source invoked as a sprite, brought into BeatDrop.

Spout · Video · GIFs

Make BeatDrop part
of your visual setup.

Send the visualizer’s output to Spout-compatible apps such as OBS, Resolume, NestDrop, TouchDesigner, Synesthesia etc. You can also bring a Spout feed as a sprite by putting Spout/ or Spout\ prefixes, along with the sender name to your image path from your beatdrop_img.ini file, or add GIFs and videos as sprites and textures. Presets will automatically load GIFs and videos if available.

OBS requires a Spout plug-in. Check preset permissions before using visuals in a stream or performance.

Explore media and Spout support
BeatDrop's animated visualizer running behind Windows desktop icons
Desktop mode, running behind your icons.

Desktop · Borderless · Fullscreen

Choose how the
visuals are displayed.

Fill your screen, place a borderless window beside your music player, or put the visualizer on your desktop. Use the view that suits your desktop, recording or performance setup.

Shift + W Desktop modeCtrl + W Hide windowF2 Borderless modeF7 Always on topAlt + Enter Full-screen
A synchronized lyric line displayed over a BeatDrop visualization
Synchronized lyrics displayed over the visuals.
BeatDrop Lyrics Editor showing timestamped input lyrics, parsed preview, editing controls and save options
Its included lyrics editor lets you import, edit, capture timestamps, preview and save synchronized lyrics.

Song information · Synchronized lyrics

Show track information
and synchronized lyrics.

BeatDrop can show the current track and timed LRC lyrics over the visuals. On standard Windows 10 and newer builds, it follows the supported media session’s playback position to select each lyric line. Matching lyrics can be fetched from LRCLIB in the background and cached on your PC for later use.

Song information and playback timing depend on a supported Windows media session. Older Windows builds keep the lyrics editor and local cache, but do not provide automatic media-session timing.

Make or adjust timed lyrics

Press Ctrl + Shift + E to open the editor—even while a BeatDrop menu is open. Import an LRC file, or type plain lyrics and choose Parse text to create editable lines.

Play the song and press Space or Capture timestamp to time the selected line. Use the seek buttons to check a line against the song, nudge timestamps by seconds, reorder lines, or insert silence. Undo and redo keep up to 100 editing steps.

The parsed pane previews what BeatDrop will render. Keep Auto-apply to renderer enabled to preview changes on the visualizer; save a local LRC when you are done. If you choose Upload to LRCLIB, the editor asks before publishing the track details and lyrics to its public service.

You can delete a selected line, reset the editor, or clear the local lyrics cache. The cache action asks before deleting its saved LRC files.

Ctrl + L Toggle lyricsCtrl + Shift + E Open lyrics editor

On-screen information

F4 Show / hide preset infoF5 Show / hide FPSF6 Show / hide ratingF8 Show / hide song infoF10 Show / hide song seek, duration and time
A BeatDrop preset displays the current system time as a glowing clock
A real-time clock rendered by a BeatDrop preset.

New shader variables · System clock

Put the live date and time into a preset.

Presets can read the current local time and date while they run. Use the individual values—hour, minute, second, milliseconds, totalseconds, year, month, day and weekday—or the shader vectors sysTime and sysDate.

sysTime contains hour, minute, second and total seconds. sysDate contains year, month, day and weekday (1 = Monday through 7 = Sunday). Separate sysTimeHour, sysTimeMinute, sysTimeSecond, sysTimeTotalSeconds, sysDateYear, sysDateMonth, sysDateDay and sysDateWeekday values are available too.

Video 1 of 6
Press play to preview
Watch: 1 2 3 4 5 6
Mouse and keyboard-controlled presets on BeatDrop

Preset interactions · Keyboard · Mouse

Let your inputs shape the visuals.

Presets can react to pointer movement, mouse buttons and directional keys while they run. The per-frame values mousex and mousey provide pointer position; mousedown and mouseclick report button input. Mouse coordinates are -1 when the pointer is outside the visualizer.

In shaders, mouse.x and mouse.y give the pointer position. mouse.z (also mouse_clicked) can carry a held-button coordinate, while mouse.w (also mouse_released) can carry a release-click coordinate. To use button events, presets can pass their per-frame values through q variables into those vector components.

While BeatDrop is active, hold Ctrl and press an arrow key to control a preset: ← left, → right, ↑ up or ↓ down.

The directional per-frame values ctrllt, ctrlrt, ctrlup and ctrldn let presets respond to those Ctrl + arrow inputs. Press M in BeatDrop to open the preset editor.

Se7enSlasher and ADOB’s Waves preset draws several bright waveforms using audio wave data MilkDrop2077’s Equalizer4 MidSoft preset renders a multicolor equalizer driven by FFT frequency data
Waves · Se7enSlasher + ADOB · FFT and Wave data in action

New shader functions · FFT · Wave

Build visuals from the sound itself.

BeatDrop adds MilkDrop 3-inspired FFT functions for reading frequency levels and peak holds: get_fft(), get_fft_hz(), get_fft_peak() and get_fft_peak_hz(). A normalized position runs from the lowest frequency (0) to about 22 kHz (1); the other functions read a frequency in hertz.

Wave functions give a preset the mono waveform or an individual channel: get_wave(), get_wave_left() and get_wave_right(), each read at a normalized position from 0 to 1. Use them to draw lines, bars, rings and other audio-reactive effects.

FFT functions are inspired by MilkDrop 3; BeatDrop also adds its mono and left/right waveform functions. FFT uses RMS normalization with smooth attack and decay; press M in the preset editor to adjust both from 0 to 1. The shader reference notes that using frac() with these functions may cause errors.

Read the shader feature notes

Menu · Playback controls

Quick access to BeatDrop’s controls.

Right-click the visualizer, or right-click BeatDrop’s icon in the taskbar tray, to open its menu. Change display options, adjust audio and lyrics, manage presets, or control music playback from there.

For keyboard control, use these shortcuts while BeatDrop is active. The arrow keys seek through the current track.

Previous trackZ
Play / pauseX
StopC
Next trackV
Seek in track← Seek left→ Seek right
01

Load and edit MilkDrop presets

Load .milk presets with drag and drop. Edit up to 16 custom shapes and waves, with new waveforms, code and shader variables to experiment with.

02

Shader precaching and caching

Precache shaders or let them cache as you go. Cached shaders reduce compilation waits when you revisit a preset.

03

Audio from your PC

Capture system sound or switch to a microphone. BeatDrop follows default audio-device changes and supports high sample rates.

Ready when you are

Download BeatDrop
for Windows.

Choose a build for your computer and start using BeatDrop for your music, recordings or live visuals.

Get BeatDrop for WindowsAll releases & release notes

Choose your build

Standard
Windows 10 and Windows 11
Architecture
x64 for 64-bit Windows; x86 for 32-bit Windows
Older Windows
Look for an OldOS build. Song information and synchronized playback features are limited.
Full system requirements

Getting started

Download, extract and run.

Use the release package and keep its resource folders together. You don’t need to compile the source code.

  1. 1

    Download & extract

    Choose either the installer or portable package from the latest release. If you choose portable, extract the full archive and keep BeatDrop Resources beside the executable.

  2. 2

    Open BeatDrop & play music

    Start the matching executable, then play audio in Spotify, YouTube, VLC, Winamp, WACUP or another app. BeatDrop listens to system audio by default; you do not need to install Winamp or WACUP specifically.

  3. 3

    Explore your presets

    Use the preset browser (L) or drop a .milk file into the visualizer. Press F1 for the full list of controls and shortcuts.

Need a hand? Check the README for setup details and runtime requirements.

Read the guide

Frequently asked questions

Questions about BeatDrop

Where do I download and install BeatDrop?

Get the latest package from GitHub Releases. Under the release’s Assets, choose the installer or portable package for your Windows system; the “Source code” archives are for developers. Run the installer, or extract the portable package and keep the complete folder—including BeatDrop Resources—together. Then start the matching BeatDrop executable. Check the release notes and runtime requirements if Windows reports a missing dependency.

Can I use BeatDrop for DJ or VJ performances?

Yes. BeatDrop can provide audio-reactive visuals for DJ sets and VJ performances, either fullscreen or through Spout in compatible apps. Capture your mix through system audio, or select microphone input for an external audio source. Make sure the audio reaches the selected input and check your routing before a show. For paid performances, streams and other public uses, check the licenses of the presets and media you plan to use.

Does BeatDrop run on Linux?

There is no native Linux build. You can try running the Windows version through Wine, using tools such as Winetricks for dependencies or Lutris to manage the setup. Graphics and audio configuration depend on your machine, so compatibility is not guaranteed.

Incubo_ has also run BeatDrop in Winlator on Android using Turnip Vulkan, Zink OpenGL, DXVK + VKD3D and PulseAudio settings. This is a reported working configuration, not a requirement for every Linux or Android device. BeatDrop uses Direct3D 9, which DXVK can translate to Vulkan; VKD3D is not required for its Direct3D 9 renderer.

Desktop Mode and Windows media-session features (including automatic track information and playback timing used by synchronized lyrics) did not work in the reported Wine-based setup. Use windowed or fullscreen mode and expect some Windows-specific features to be unavailable. See the Lutris overview for more about its Wine support.

Do I need Winamp, WACUP or a particular music player?

No. BeatDrop captures Windows system audio, so any app that plays sound can provide the music. Winamp, WACUP or any media players are optional; install or use one only if you want it as your player.

Can I use microphone audio?

Yes. Press Ctrl + D, or use the context menu, to switch between speaker and microphone input.

Can I run BeatDrop on a Mac with Parallels or Prism?

BeatDrop’s official releases target Windows, and compatibility with Parallels or Prism has not been confirmed. MilkDrop2077 has reported running MilkDrop 3 on an M3 Mac with Parallels or in a Windows 11 ARM virtual machine with Prism; that report is about MilkDrop 3 rather than BeatDrop. Graphics and performance may vary with the Mac, virtual machine and graphics setup. A community macOS port is maintained separately and may produce different graphics or behavior.

Can I use the visuals in videos or live shows?

Permissions depend on the presets you use. Some carry noncommercial restrictions, and credit alone does not grant permission. Read the preset permissions below and check the original author’s terms for your intended use.

Respect the artists

Using MilkDrop
presets in public.

Every preset is someone’s work. Before using one in a video, stream, event or commercial project, check its source and license.

The app and the presets have different licenses.

BeatDrop’s code is available under the BSD 3-Clause License, except where otherwise noted. That license does not automatically cover the presets, textures, music or other media you use with it.

Some presets have noncommercial restrictions.

BeatDrop’s preset notice identifies many Shadertoy conversions as CC BY-NC-SA 3.0. For those presets, give the required attribution, follow the ShareAlike terms when distributing adaptations, and obtain separate permission for commercial use.

Credit the author and check before sharing.

Keep the preset name and original author credits. Follow the individual license; if the permissions are missing or unclear, ask the creator. A credit does not replace permission.

Support independent development

Help keep BeatDrop growing.

BeatDrop is free to download and developed independently. If it has been useful for your DJ or VJ sets, streams, events or everyday listening, you can support the project with a Ko-fi donation. Contributions help cover hosting and development tools and leave more time for fixes and new features.

Support is optional. BeatDrop remains free to download, and a donation does not change the permissions for presets or other media.

Support me on Ko-fi

An ongoing community project

Get in touch.

Have a question, found a bug, or made something with BeatDrop? Join the Discord, open an issue on GitHub, or email beatdropmusicvisualizer@gmail.com. Preset contributions, feature requests and improvements are welcome.