Automatic beat-mixing of music files in Python, using AudioOwl ๐
Jump to:
Mix two WAV files -
import mixingbear
mixingbear.mix('track01.wav', 'track02.wav', 'output.wav')Tested on Python 3.6 or later
โ ๏ธ AudioOwl needs ffmpeg to be installed on your machine. The easiest way to install ffmpeg (at least on a Mac) is using homebrew. See instructions here.
The latest stable release is available on PyPI.
Install it using the following command -
$ pip install mixingbearSaves a mixed WAV file locally to output_file_path
Supported keyword arguments for audioowl.get_waveform():
top_file- Path to a WAV file you want to mix ontobottom_file. e.g.top_file=wav_file.wavbottom_file- Path to a WAV file you want to mixtop_fileonto. e.g.bottom_file=wav_file.wavoutput_file_path- Path for the mixed output WAV file you want to mixoutput_file_pathonto. e.g.bottom_file=output.wavmix_mode[optional, default == 'random'] - String:random- MixingBear will find the best mixing points, and will mix the tracks starting on a random one out of them.first- MixingBear will find the best mixing points, and will mix the tracks on the first one.
sr[optional, default == 22050] - Integer. Sample rate.offset[optional, default == 880, equal to ~20 milliseconds on a track with 44100 sample rate] - Integer. Number of samples to use as padding on beats, to choose sync points. e.g. With offset=880, beats will be considered as 'matching' is they are positioned away from each other in 880 samples or less.trim_silence[optional, default == False] - Boolean. If True, MixingBear will trim leading silence ontop_file.
