https://github.com/IkeC/Milkwave/
Milkwave is:
- Milkwave Visualizer: A feature-enhanced version of MilkDrop2 visualizer
- Milkwave Remote: A standalone window to do things like sending messages (either directly by typing or from a script file), load and change presets, send common key combinations using buttons and more
Click here to get the latest version.
Visualizer Features
- Display current track information and artwork from Spotify, YouTube or other media sources playing on your PC
- Change preset on track change
- Set window transparency, borderless, and clickthrough ("watermark mode")
- Use cursor keys for media playback control
- 40 shader-based presets created for Milkwave
- Over 5000 presets from skilled artists (more presets here)
- Improved window handling, input methods and stability
- Use independently or in combination with Milkwave Remote
Remote Features
- Customizable interface - show only what you need
- Tabbed interface with hideable top and bottom panel
- Send common key combinations using buttons
- Set audio device (in- or output) without restarting Visualizer
- Amplify virtual audio signal
- Game controller and video mixing support
- Remote control
- Run and control DX9 and DX12 Visualizer instances
- Control multiple Visualizer instances running locally or over the Network
- Send commands to multiple Visualizers at the same time
- Preset tagging
- Tag your presets with any number of words of your choice
- Dynamic buttons for your most used tags
- Load preset lists based on tags
- Saved in human-readable json file for easy sharing or backup
- Messaging
- Send text to Visualizer windows
- Display multiple messages at once
- Set color, font size, position and other parameters
- Move text around using start and end coordinates
- Save parameter definitions as named styles for quick access
- Send messages, parameters, presets and other commands automatically from a script file at configurable intervals based on BPM setting (see script-default.txt)
- Input mixing
- Mix Spout senders or webcam input with Visualizer output
- Toggle layer order and blend with luma key and/or opacity
- Wave manipulation
- Clear current preset and start with a plain wave
- Set wave type, zoom, warp, rotation etc. in the running preset
- Quicksave manipulated presets to a new file
- MIDI automation
- Assign up to 50 actions to your MIDI controller
- Select/change presets, send messages, trigger sprites, start external programs etc.
- Trigger command chains from script
- Settings
- Change internal time, FPS and frame counters to slow down or speed up some presets
- Adjust "Intensity", "Shift" and "Version" live for supported presets (eg. Milkwaves shader presets)
- Shift color output (Hue, Saturation, Brightness) live for all presets
- Test preset audio reactions with simulated levels from audio-test.txt
- Control Spout output behaviour
- Adjust render quality to improve performance and/or pixellize output
- Quick access to configuration files
- Font manipulation
- Customize display of song information, preset name and notifications
- Change and preview font face, style and size instantly
- Shader code conversion
- Convert GLSL shader code to HLSL
- Preview converted code in the Visualizer instantly
- Load shader definitions from Shadertoy files
There are many tooltips explaining all features when you hover over the form elements. Clicking the "Autoplay" button on the Message tab will run the default script file, demonstrating many Milkwave features.
If you have any questions, don't be afraid to ask for support!
History
The original MilkDrop2 WinAmp plugin created by Ryan Geiss was turned into a Windows standalone application by Maxim Volskiy as BeatDrop. Milkwave originally started as a fork of the BeatDrop-Music-Visualizer BeatDrop fork.
For a more detailed explanation of all features, please read the Manual.
For a chronological list of Milkwave releases and features, read the Changes.
System Requirements
- Windows 10 or later
- DirectX 9 or higher - compatible GPU
- DirectX End-User Legacy Runtimes
- Microsoft .NET Desktop Runtime 8 (for Remote)
Support
Money has never been the thriving factor to put so many hours into Milkwave development, but to build upon and continue the open-source spirit of the original MilkDrop implementations and the creative work of the many preset authors. Following this tradition, there will always be a single version for everyone that includes all features Milkwave has to offer.
However, if you're satisfied with the additions we made within Milkwave and you want to support our work, you may do so using Ko-fi or PayPal. You'll be listed as a supporter within the next program release unless you don't want to.
Many thanks to Shane, Tures1955, hatecubed and catchpen for supporting the development of Milkwave. ❤️
We may add new features or fix bugs if you speak up, so don't be shy to open an issue or join my Discord!
Acknowledgements
Many thanks to:
- Ryan Geiss - MilkDrop2
- Maxim Volskiy - BeatDrop
- oO-MrC-Oo - XBMC plugin
- Casey Langen - milkdrop2-musikcube
- Matthew van Eerde - loopback-capture
- projectM - projectm-eval
- Incubo_ - BeatDrop-Music-Visualizer
- podenthusiast - Milkwave Logo
- Shane - MDropDX12
- and all the preset authors!
If you believe you or someone else should be mentioned here, please let me know.
License
Milkwave Remote is licensed under the Attribution-NonCommercial 4.0 International License, meaning you may not use the material for commercial purposes. See LICENSE.txt for details.
Milkwave Visualizer (as a BeatDrop fork) is licensed under the 3-Clause BSD License with the exception of where otherwise noted. See LICENSE.txt for details.
Although the original Matthew van Eerde's loopback-capture project didn't explicitly state the license, the author has been kind enough to provide a license clarification here. All changes in this repository to the original Matthew's code are published either under the terms of BSD license or the license provided by original author.
Public use of MilkDrop Presets
The presets themselves are not covered by either of these licenses, they either have their own license or none (in most cases). None of the presets in Milkwave should have a restrictive license preventing you from using them in public. All preset filenames from shaders I converted have the original author's name in them, with the full original source mentioned in the preset file itself.
So, my pragmatic and common sense approach would be: Always keep in mind that you are using the artistic work of someone else. Respect the original authors work by showing the preset filename (at least briefly), and you should be fine. If in doubt, always ask the creator of the piece you use.
Milkwave and AI
Everything in Milkwave was hand-coded until 2025, building on the work by many different authors. Since then, different LLM models have been used to implement, analyze and refine some of the more recent features and iron out bugs. However, none of this means that any of it is just vibe-coded: All presets, features and releases are manually tested and refined with the experience of a senior software architect.
Hopefully you'll recognize this gives you both of both worlds - a feature-rich experience combined with the quality, love and care of hand-crafted software. AI is a powerful tool, but any tool is just as good as the one using it properly to its strengths and weaknesses.
Top comments (0)