Music visualization using Milkdrop presets
Go to file
filifa 6f5f8b1818 move buffering stuff to root 2024-09-05 22:48:19 -05:00
cmd move buffering stuff to root 2024-09-05 22:48:19 -05:00
.gitignore initial commit 2024-08-19 21:53:48 -05:00
COPYING use cobra 2024-08-24 21:05:15 -05:00
README.md update readme 2024-09-04 21:55:33 -05:00
go.mod use cobra 2024-08-24 21:05:15 -05:00
go.sum use cobra 2024-08-24 21:05:15 -05:00
main.go use cobra 2024-08-24 21:05:15 -05:00

README.md

milkbucket

milkbucket is an audio visualizer. It uses Milkdrop preset files to generate visualizations from standard input.

Build

milkbucket depends on the projectM library. To run milkbucket, you'll need to install this library either by building it yourself, or installing one of the builds from here. (If you've never done this before, you'll want to download one of the "shared" artifacts for your system. Then, copy the contents of the artifact's include folder to /usr/local/include and the contents of the lib folder to /usr/local/lib.)

After installing projectM, build milkbucket with go build.

Usage

milkbucket reads a PCM stream from standard input to generate visualizations. If you have an audio file and a preset in mind, you can use ffmpeg to generate the PCM stream, then pipe to milkbucket, like so:

ffmpeg -i $audio -ar 44100 -f s16le - | ./milkbucket -p $preset

Note that you can pass in multiple presets with multiple -p flags, then use the arrow keys to cycle through the presets while running.

Note that neither of these commands (ffmpeg or milkbucket) will output any audio! If you want to hear the audio at the same time (and assuming your machine uses pipewire), run:

ffmpeg -i $audio -ar 44100 -f s16le - | tee >(pw-play --rate=44100 --format=s16 -) | ./milkbucket -p $preset

(If you don't use pipewire try using aplay instead of pw-play, or some other command for playing PCM streams.)

You can also generate a visualization from your system sound. Assuming pipewire again, and that you have audio coming from Firefox, run:

pw-record --target Firefox - | ./milkbucket -p $preset