Repository navigation
3.1.5 — MilkDrop library and editor, AI control over MCP, OSC in and out, in-app updates
Latest⬇️ Download
| Get this one | Or | You should know | |
|---|---|---|---|
| 🪟 Windows | ⬇️ Installer | Portable no install |
Only the installer registers the Dynamic Lighting background identity. Per-application audio capture needs Windows build 20348 or newer. |
| 🍎 macOS | ⬇️ .dmg | .zip | Apple Silicon. Unsigned — one Terminal command is needed, see below. |
| 🐧 Linux | ⬇️ AppImage | .deb Debian / Ubuntu |
x64. Needs PulseAudio or PipeWire, which desktop installations already have. |
Important
🍎 macOS: the app will say it is damaged. It is not.
This build is not signed — the Apple Developer Program has not been bought. macOS puts a quarantine flag on anything unsigned that arrives from the internet and refuses to open it, reporting it as "damaged and can't be opened." Right-clicking and choosing Open does not clear this on macOS 15 and later.
Open the .dmg, drag the app into Applications, then run this once in Terminal:
xattr -dr com.apple.quarantine "/Applications/CAYADEV Visualizer.app"After that it opens normally, every time. The command removes the download flag; it does not change the application.
Then, for sound: macOS has no way to record its own output, so install BlackHole (free) and pick it as the audio source. Microphones and line inputs work with no extra setup — macOS will ask for microphone permission the first time.
The biggest release so far: four weeks of work since v3.1.4. MilkDrop gets a real library, an editor and MilkDrop 3 presets; an AI agent can run the app over MCP; OSC now goes both ways for desks, Resolume and TouchDesigner; the timeline and clip deck are rebuilt for real shows; and the app can update itself. Everything below was measured in the running app before it shipped. 1402 tests were added, 2999 in total.
MilkDrop: library, editor and MilkDrop 3 (#583)
- Import a whole library from a ZIP pack, a folder, or by finding libraries already on the machine. Every preset is listed, not only the first 400.
- MilkDrop 3
.milk2double presets load, with an Automatic / MilkDrop 2 / MilkDrop 3 mode. - Thumbnails in a grid, favourites, tags, ratings and search by author (
author:geiss). - A preset editor in Studio — frame and pixel equations, waves, shapes, warp and composite shaders, with the preset running on screen.
- A preset generator and mash-ups of your own presets.
- Show control: auto advance by seconds or on the bar, hard cuts on loud beats, a lock, a back/forward history, next preset on track change, and MilkDrop actions on MIDI and OSC.
- User textures and sprites (
milk_img.ini), the same preset on every screen, flash limiting at WCAG 2.3.1's general-flash value, and recovery from a GPU reset.
AI control over MCP — new
Turn on MCP on the Control page and connect Claude Desktop, Codex, Cursor or any MCP client. 96 tools cover scenes, layers, effects, presets, displays, the clip deck, the timeline, recording and export. It listens on 127.0.0.1 only, with a bearer token, and five permission modes run from Read to Everything. Off by default. The stdio command needs Node.js LTS on the computer; the app itself does not.
OSC in and out — new
- Output: levels, a 16-band spectrum, analysis, drum hits, a tempo clock (BPM, beat, beat and bar phase, downbeat) and the show state go to one or more targets under
/cayadev. Bands travel in one bundle; hits and the clock carry an OSC time tag. - Input on a fixed address tree: scenes by name, layers, visualizer, background, palette, blackout, transitions, Auto VJ, MilkDrop presets, the clip deck, the timeline and every panel slider, in each slider's own range.
#bundleis applied as one packet, and time tags up to 30 s ahead are honoured. - OSCQuery serves the tree with types, ranges and current values, announced over mDNS, so a desk can discover it.
- Master opacity (
/show/opacity) fades the picture without touching your scenes.
The full address tree is in the README.
Timeline and Clip Deck, rebuilt (#636, #637)
- Timeline: an editor modelled on Ableton's Arrangement View — clock, tempo changes on the ruler, snap, loop, track mute/solo/lock, split, duplicate, copy and paste, box selection, 100-step undo.
- Clip Deck: several decks, trigger/toggle/gate launch modes, keyboard play, video, image, shader and action slots, a Performance View for a second screen, and recording fired slots to the timeline.
More to see
- 60 visualizer modes (10 new, among them Stereo Trails, which launches each frequency band from its place in the stereo image) and 43 backgrounds (12 new).
- 81 scene templates, including Music Video cards — cover, title and artist as one card, no grain, the same gap at every aspect ratio — and a Music Backdrop group: a calm, dimmed visualizer behind the track card.
- Auto VJ can cycle backgrounds and your own Studio background presets, or a custom mix of kinds.
- A floating window with opacity, aspect lock and click-through, to keep the visuals over your desktop.
- Logo, video and lyrics libraries; the lyrics library follows the playing track.
- Dynamic theme keeps a solid visualizer colour you chose.
Faster
- The visualizer no longer slows down over time as settings and Auto VJ history grow (#621), and moving a slider no longer stalls the app.
- MilkDrop equations take a third less time with identical results; a preset change no longer stalls the frame; large preset libraries stay light.
- Eight draw loops stopped allocating every frame. OpenRGB no longer reconnects on every settings change.
npm run benchgives a reproducible performance benchmark.
Reliability
- Updates: Library → Updates checks GitHub Releases and shows the notes. The Windows installer and the AppImage install in place only when the size and the SHA-256 match exactly. Off, notify (default) or automatic.
- Both audio channels reach the visuals (stereo width, correlation and the goniometer were fed mono before), and capture recovers by itself after sleep or a device change.
- Two copies at once are detected at start-up.
- Streaming overlay diagnostics: add
?debug=1to the overlay address. - Main-process errors no longer freeze the app in a modal box; every GPU surface recovers from a lost context; the display stays awake while a visualizer window is open.
- HEVC/H.265 videos (common from phones) need Settings → Application → Hardware Video Decoding.
Privacy and security
- The only network call the app makes on its own is the update check: one HTTPS request to
api.github.comfor the latest release, with no identifiers. Set updates to Off and there is none. - Everything else is off until you turn it on. OSC input listens on UDP
9000on every interface with no password, as OSC usually does; with it, OSCQuery answers on HTTP port17801(the address tree, scene names and the playing track) and announces itself over mDNS. OSC output sends to127.0.0.1unless you add targets. - Hardening in this release: stream clients no longer receive the access tokens; app windows stay on the app's own pages and links open in your browser; export paths are checked; MilkDrop function names resolve only from the engine's own table.
- Vulnerabilities can be reported privately from the repository's Security tab.
Every change, grouped by area: CHANGELOG.md · Measurements and reasoning: ROADMAP.md · Contributing: CONTRIBUTING.md