GithubHelp home page GithubHelp logo

amirblaese / drakify Goto Github PK

View Code? Open in Web Editor NEW
25.0 2.0 3.0 65.6 MB

๐Ÿ“ป The "slowed and reverbed" version of your favorite song is a click away.

Python 97.06% Jupyter Notebook 2.94%
dsp filters slowedandreverbed compression distortion

drakify's Introduction

๐Ÿ“ป DRAKIFY

The world's first slowed and reverb'ed algorithm implemented using basic scipy/numpy functions in Python. Written by Shayan Gheidi.

About

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)

Dependencies

This library uses a few basic python libraries: numpy, pylab, scipy(fftpack,signal) and soundfile.

pip install -r requirements.txt

In a nutshell?

!git clone https://github.com/amirblaese/drakify
cd drakify
from effects.drakify import drakify
drakify('MY_FAV_SONG.WAV')

Features

  • 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.

How to use?

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.

Details of functions

Inputwav

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.

Normalize

Normalizes the audio to 0 dB.

FFT_brickwall_<>

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.

Alt text

Filters (LPF, HPF, BP)

Quick and easy implementation of the scipy Butterworth IIR filters to process audio.

Alt text

Slow

Resample the audio to convert to higher or lower speed (default slows by 10%).

Convolution Reverb (NEW!)

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.

Compress (limit)

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.

Alt text

Distort

Arctan waveshaper.

Stereo/Mono

Converts mono(stereo) input to stereo(mono).

Snip

Cuts starting and ending point of audio file.

Mix

Mix two signals at desired ratio.

Drakify

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.

drakify's People

Contributors

amirblaese avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.