Music visualization using Milkdrop presets
Go to file
filifa ee984f7d72 handle no script being passed 2024-09-02 22:49:29 -05:00
cmd handle no script being passed 2024-09-02 22:49:29 -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 add program description 2024-09-02 21:03:17 -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 neither of these commands 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