The world's first slowed and reverb'ed algorithm implemented using basic scipy/numpy functions in Python. Written by Shayan Gheidi.
An easy-to-use audio effect library featuring high quality effects and unique presets.
Getting your favorite song "slowed and reverbed" is as simple as
drakify('songname.wav')
Listen to "drakify_example.wav" for before and after versions showing my Drakify algorithm. (The song is my 2017 remix to Steve James - Renaissance)
This library uses a few basic python libraries: numpy, pylab, scipy(fftpack,signal) and soundfile.
pip install -r requirements.txt
!git clone https://github.com/amirblaese/drakify
cd drakify
from effects.drakify import drakify
drakify('MY_FAV_SONG.WAV')
- Filters
- Lowpass, highpass, bandpass IIR filters (Butterworth)
- FFT brickwall filters
- Speed up and down
- Convolution reverb
- Delay
- Dynamic range compression
- Limiter
- Distortion (numerous shapes)
- Stereo conversion
- Mono conversion
- Waveform viewing
- Waveform snipping
- Mixing
- Normalization
- Fun and unique presets designed
for real world purposes
.
Generally, using a function is as simple as inputting the filename into the function as a string along with relevant parameters, such as the number of poles in the filter, or threshold and timing for dynamic range compression. For many functions, I have defined default values that, to me, sound good. This way you won't get caught up in details.
The functions, by default, will process and render the file to a new <.wav> file with an appended string. The next section will document the details of the functions. The fine details of each function can be found in the documentation strings.
Reads in the audio file and determines if the source is mono or stereo. Returns decoded array in bits and dB, sample rate, number of channels, and length of input in samples.
Normalizes the audio to 0 dB.
A series of FFT filters meant for brickwall highpass or lowpass or band reject filters. Sometimes you just really want that one frequency to be gone and not just attenuated. These generally do not sound good.
Quick and easy implementation of the scipy Butterworth IIR filters to process audio.
Resample the audio to convert to higher or lower speed (default slows by 10%).
Convolution reverb implementation, much faster than the previous iteration and sounds like real reverb. You can use your own impulse response file if you wish.
Dynamic range compressor. Contains almost all standard settings of compressors (threshold, ratio, attack, release, makeup). Currently only uses a hard knee and does not calculate makeup gain automatically. Also performs gain smoothing algorithm. Beware of low attack times that may cause distortion. Limit applies compression at high ratio.
Arctan waveshaper.
Converts mono(stereo) input to stereo(mono).
Cuts starting and ending point of audio file.
Mix two signals at desired ratio.
The main goal behind this project was to convert music into a "slowed and reverbed" type songs that may be found on Youtube as remixes. This function emulates this using presets of above effects.