---
title: "Milkdrop-compatible Visuals in the Video Window - DMXDesktop"
description: "Switch on the Milkdrop-compatible engine (Butterchurn), pick presets from the preview grid, build playlists, import .milk files and follow the music."
canonical: https://www.dmxdesktop.com/knowledgebase/milkdrop
lang: en
source: /knowledgebase/milkdrop
---

# Milkdrop-compatible Visuals in the Video Window

v1.0.52+

DMXDesktop's Video Window can render Milkdrop-compatible presets through **Butterchurn**, driven by the same live audio that drives your lights. This article covers switching it on, choosing presets, building playlists, importing your own `.milk` files, and the two ways the rotation can be made to follow the music. For the overview, see [Milkdrop visuals](/milkdrop-visuals).

[Download DMXDesktop](/download) [See plans →](/pricing)

## [What you need](#what-you-need)

- **DMXDesktop v1.0.52 or later.**
- **A Standard or Pro subscription.** The Video tab is not available on the Free plan.
- **An audio source DMXDesktop can hear.** Anything that already drives beat detection will drive the visuals. See [Audio configuration](/knowledgebase/live-audio).
- **A second display is optional but recommended.** The video window is an ordinary window and can go on a projector, a TV, an LED processor input or a capture card.

## [Switch on the Milkdrop-compatible engine](#switch-on-the-milkdrop-compatible-engine)

1. Go to **Console**, then the **Video** tab, then **Patterns**.
2. Turn on **Milkdrop-compatible engine (Butterchurn)**.
3. The preset list changes from the built-in patterns to the Milkdrop library. The two engines have separate preset sets, so your built-in pattern selection is kept and comes back if you switch the toggle off again.

Next to the toggle are two pickers. **Audio** should stay on *Live audio (auto)* in normal use. **Device** is for rigs where the DJ master goes to a dedicated interface rather than the default output: choose that output here and the visualizer captures from it.

## [Choosing which presets rotate](#choosing-which-presets-rotate)

100 presets are bundled. Each has a checkbox, and the ticked ones are what rotates.

- **Grid or list.** The two buttons next to the sort dropdown switch between a thumbnail grid and a compact list. The grid is the fast way to choose, because a Milkdrop preset name tells you very little about what the preset looks like.
- **Search.** Type in the search box to filter the library by name.
- **Filter buttons.** All, Built-in and Imported. Your last choice is remembered between sessions.
- **Sort.** By name, by colour or by movement. Presets with no preview generated yet always sort last, so sorting never hides what is already there.
- **Select all and Deselect all.** The quick way to audition: deselect all, then tick the handful you are testing.

Everything on this panel applies instantly to an open video window. The **LIVE** badge on the Pattern Rotation panel is there to confirm it. Nothing needs the window closed and reopened.

## [Previews, and pausing them](#previews-and-pausing-them)

Grid thumbnails are generated in the background, one at a time, and kept once made. A preset you scroll to is prioritised over the background sweep, so looking at something never queues behind it.

If you would rather it did nothing at all during a show, use the **Pause** button next to the progress line. Queued presets are kept, so resuming carries on where it stopped rather than starting over.

## [Preset playlists](#preset-playlists)

The tick grid gives you one rotation. Playlists give you as many named, ordered sets as you want, and you switch between them from the **Preset source** dropdown at the top of the panel.

- **Playlist from selection.** Tick what you want in the grid, click the button, name it. One step.
- **Manage.** Opens the playlist manager: create, rename and delete playlists, add presets from the same preview grid, and drag members to reorder them.
- **Import.** The manager can import an existing Milkdrop playlist file, a `.txt` or `.m3u` list of `.milk` presets.
- **Missing members.** A playlist entry that is not in your current library is greyed rather than removed. It is skipped when playing and kept in case you re-import that preset later.

When a playlist is the active source, the checkboxes in the grid mean membership of that playlist rather than the general enabled set, so ticking and unticking edits the list directly. The playlist also appears as a fourth filter button alongside All, Built-in and Imported, showing its name and how many presets it holds.

## [Importing your own .milk presets](#importing-your-own-milk-presets)

Click **Import .milk** and pick one or more files. MilkDrop v1 and v2 presets are supported, as `.milk` and `.milk2`.

Presets that use advanced pixel shaders or unsupported equation features may not import. You get a per-preset report listing exactly which ones failed, so a preset missing from the library is never a mystery.

Imported presets appear in the same grid as the bundled ones, are counted under the **Imported** filter, and each one has a delete button. Bundled presets have no delete button and cannot be removed by accident.

## [Cycle Timing](#cycle-timing)

**Cycle duration** is how long a preset holds before the next one loads. The slider steps through fixed stops: 10, 15, 20, 30 and 45 seconds, then 1, 2, 3, 4, 5, 8, 15, 30 and 60 minutes, then **Never**. A random variation of up to 20 percent is applied on top so rotations do not feel metronomic.

**Preset order** chooses between *Next preset*, which walks the enabled list in order, and *Random preset*, which jumps around it.

**Also switch preset on silence (track change)** moves the rotation on when the music stops, which in practice means between tracks. Set the cycle duration to **Never** and leave this switched on, and you get exactly one new look per track.

## [Reactive Presets](#reactive-presets)

A timer cannot know where the drop is. **Reactive Presets** switches the preset when a chosen frequency band spikes past a threshold, which is what puts a new look on the drop rather than four bars after it.

- **When.** Bass, Mid, Treble or Overall energy. Bass suits dance music; Overall energy suits a live band, where the whole mix lifts together.
- **Spikes above.** How big the spike has to be, as a percentage. Raise it for a dense mix, lower it for something sparse.
- **No more than once every.** A minimum gap in seconds between reactive switches. This is what stops a busy track flicking through presets. The default is 3 seconds.

Reactive Presets works *alongside* Cycle Timing and switch-on-silence rather than replacing them. All three can advance the rotation, so a slow timed drift that jumps early whenever the music earns it is a valid setup, and a good starting point.

## [The video window](#the-video-window)

- **Launch Window** opens it. Drag it to the display you want and full-screen it.
- **Keep window on top** is on by default, because a display output should stay visible. Turn it off if you are on a single monitor and it is covering the desk.
- **Show label on change** names each preset on screen as it loads. Useful while building a rotation, worth switching off for the show.
- **Patterns: ON / OFF** gives you a clean black screen without closing the window. Your preset selection is preserved, so turning patterns back on restores the exact rotation you had.

The window remembers which display it was on, its position and whether it was set to stay on top, and the preset filter you were using is remembered too.

## [Presets in the 3D Visualizer](#presets-in-the-3d-visualizer)

Milkdrop presets can also render on the screen source inside the [3D Visualizer](/visualizer). If your previz includes an LED wall or a screen, it shows what the real one will be showing rather than a placeholder.

## [Troubleshooting](#troubleshooting)

- **The screen is black.** Check the **Patterns** toggle at the top right of the Pattern Rotation panel. Off is a deliberate black screen, not a fault.
- **Nothing is moving.** The visuals follow live audio. If DMXDesktop is not hearing anything, check your audio source in [Audio configuration](/knowledgebase/live-audio), and check the **Device** picker next to the engine toggle if your audio goes to an interface other than the default output.
- **A preset did not import.** Read the import report. Presets using advanced pixel shaders or unsupported equation features are the usual cause.
- **A playlist entry is greyed out.** That preset is not in your current library. Re-import it and the entry becomes active again.
- **The window keeps covering the desk.** Turn off **Keep window on top**.
- **There is no Video tab.** It needs a Standard or Pro subscription.

## [Credits and licensing](#credits-and-licensing)

Milkdrop-compatible rendering is powered by **Butterchurn** by Jordan Berg, used under the MIT licence. The bundled presets are the work of the MilkDrop preset community and each keeps its author's name.

**MilkDrop** itself is Ryan Geiss's original music visualizer for Winamp. DMXDesktop does not ship MilkDrop. It renders presets written in that format through Butterchurn, an independent open-source engine that reads them.

Preset names are shown exactly as their authors wrote them, author prefix included. That prefix is the credit, so DMXDesktop does not tidy it away.

[Related guide Milkdrop visuals: what it is and what it does →](/milkdrop-visuals)
