Created by: ShehabSunny
What is this Python project?
pedalboard
is a Python library for working with audio: reading, writing, adding effects, and more. It supports most popular audio file formats and a number of common audio effects out of the box, and also allows the use of VST3® and Audio Unit formats for third-party plugins.
pedalboard
was built by Spotify's Audio Intelligence Lab to enable using studio-quality audio effects from within Python and TensorFlow. Internally at Spotify, pedalboard
is used for data augmentation to improve machine learning models. pedalboard also helps in the process of content creation, making it possible to add effects to audio without using a Digital Audio Workstation.
Features (Copied from original project description)
- Built-in audio I/O utilities (pedalboard.io)
- Support for reading and writing AIFF, FLAC, MP3, OGG, and WAV files on all platforms with no dependencies
- Additional support for reading AAC, AC3, WMA, and other formats depending on platform
- Support for on-the-fly resampling of audio files and streams with
O(1)
memory usage
- Built-in support for a number of basic audio transformations, including:
- Guitar-style effects:
Chorus
,Distortion
,Phaser
,Clipping
- Loudness and dynamic range effects:
Compressor
,Gain
,Limiter
- Equalizers and filters:
HighpassFilter
,LadderFilter
,LowpassFilter
- Spatial effects:
Convolution
,Delay
,Reverb
- Pitch effects:
PitchShift
- Lossy compression:
GSMFullRateCompressor
,MP3Compressor
- Quality reduction:
Resample
,Bitcrush
- Guitar-style effects:
- Supports VST3® plugins on macOS, Windows, and Linux (pedalboard.load_plugin)
- Supports Audio Units on macOS
- Strong thread-safety, memory usage, and speed guarantees
- Releases Python's Global Interpreter Lock (GIL) to allow use of multiple CPU cores
- No need to use
multiprocessing
!
- No need to use
- Even when only using one thread:
- Processes audio up to 300x faster than pySoX for single transforms, and 2-5x faster than SoxBindings (via iCorv)
- Reads audio files up to 4x faster than librosa.load (in many cases)
- Releases Python's Global Interpreter Lock (GIL) to allow use of multiple CPU cores
- Tested compatibility with TensorFlow - can be used in
tf.data
pipelines!
What's the difference between this Python project and similar ones?
Enumerate comparisons.
- Simple API.
- Extremely fast.
- Supports different kinds of audio files.
- Strong thread-safety, and memory usage.
- Built-in audio transformations.
- Type hints.
--
Anyone who agrees with this pull request could submit an Approve review to it.