3 releases
new 0.1.2 | Nov 1, 2024 |
---|---|
0.1.1 | Oct 13, 2024 |
0.1.0 | Oct 9, 2024 |
#69 in Audio
439 downloads per month
19KB
473 lines
audio_painter
This program takes two audio files as input; a "target" and "paint". The target is split into small pieces, and the paint is searched for the closest matches to those pieces.
Usage
$ audio_painter -t <target> -p <paint>
This tool works best with very rhythmic targets; it will work reasonably well with a break, but if you are looking for something melodic you will either have to reduce the target chunk size to something tiny or provide an extremely long paint.
Additional options
-o
specify the path for the resulting .wav file (defaults to./out.wav
)-c
specify the size of the chunks that the target audio should be split into (defaults to 500 samples)-j
specify the number of samples the search head should jump by on each iteration (defaults to 200)-m
specify the mix between dry and wet audio when rendering the output (defaults to 0)-n
normalize the target and paint audio
Limitations
Dynamic chunk duration currently not implemented, meaning the chunks are all of uniform length. This means that some interesting audio elements will be truncated, potentially causing clicking and other audio artefacts.
There's currently only support for 16 bit wav files. I'll add support for more formats in due course.
Things that are coming
- Dynamic chunk duration
- Support for more wave formats
- Gradient descent searching
Dependencies
~4–12MB
~125K SLoC