Pedalboard: Spotify's GPL-3.0 Python audio library that releases the GIL and hosts VST3 and Audio Unit plugins
🎛 🔊 A Python library for audio.
At a glance
- What is it?
- spotify/pedalboard is a C++ and Python library for reading, writing and processing audio with built-in effects and third-party plugins. It is built on JUCE, ships platform wheels, and is licensed under GPL-3.0, which shapes who can embed it.
- Who is it for?
- Pedalboard suits Python developers who need studio-style effects and multi-format audio I/O in scripts, ML data augmentation or TensorFlow input pipelines, and who can accept a GPL-3.0 licence. It does not suit closed-source distribution without a licensing plan, or plugin work on Windows ARM and other unlisted platforms.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 5 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.
Star history
- spotify/pedalboard6,482 ★ · +179
| Repository | 2026-09-13 | 2026-11-13 |
|---|---|---|
| spotify/pedalboard | 6.3k | 6.5k |
179 Stars in the last 61 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
GPL-3.0 is the licence, so embedding it in closed-source software needs a plan
The repository is licensed under GPL-3.0, and the setup.py header repeats that it is licensed under the GNU Public License, Version 3.0. That is a copyleft licence. If you distribute software that incorporates Pedalboard, you need to consider whether the GPL obligations apply to your own code.
The library is built on JUCE, which is included in the repository as a submodule, and the repository also has NOTICE and vendors entries. The practical step before shipping a product is to read the LICENSE and NOTICE files and ask whoever signs off on licences. Using Pedalboard inside an internal script or a research pipeline raises fewer questions than redistributing it in an application you sell.
Wheels are tested on Python 3.10 to 3.15, but several wheel types skip the test run
The README states pedalboard is thoroughly tested with Python 3.10, 3.11, 3.12, 3.13, 3.14 and 3.15. The build configuration tells a more detailed story. The cibuildwheel test-skip setting excludes the manylinux wheels, because the manylinux container does not have a new enough glibc to run the tests after building, the musllinux wheels on aarch64, which take more than six hours to test, any pypy build, because TensorFlow is not pypy compatible, and the macOS universal2 arm64 wheels.
So a wheel existing is not proof that its test suite ran after build. If you deploy on aarch64 musl, for example on Alpine on ARM, treat the wheel as less verified than the x86_64 glibc one. The Alpine build is described in the configuration as experimental, because most VSTs require glibc and Alpine is not that useful for plugin hosting.
Platform support differs: Linux needs AVX and a modern glibc, Windows is amd64 only
On Linux, manylinux and musllinux wheels are built for x86_64 and aarch64, the x86_64 wheels require AVX support, and most Linux VSTs need a relatively modern installation with glibc above 2.27. On macOS, wheels exist for both Intel and Apple Silicon. On Windows, the wheels are for amd64 only, meaning x86-64 Intel and AMD.
The consequence is that a CPU without AVX cannot use the Linux x86_64 wheel, and a Windows machine on ARM is not among the listed platforms. Linux is described as tested heavily in production at Spotify, and the three platforms are tested automatically on GitHub with VSTs. macOS also gets manual testing with VSTs and Audio Units. The repository also has a COMPATIBILITY.md, and INSTALLATION.md is the guide the README gives to people new to Python.
Installation is one pip command, with platform wheels doing the heavy lifting
The package is on PyPI as platform wheels:
pip install pedalboardThe project states that audio file formats AIFF, FLAC, MP3, OGG and WAV are supported on all platforms with no dependencies, while AAC, AC3, WMA and other formats depend on the platform. Resampling of audio files and streams happens on the fly with O(1) memory usage. The only runtime requirement in requirements.txt is numpy. Building from source is heavier: the build system requires scikit-build-core and pybind11, and the Linux build installs libsndfile and X11 and other development headers, which is why prebuilt wheels are the practical route.
A Pedalboard is a list of plugins, and files are read in chunks
The quick start builds a board of effects and opens audio files like regular files:
from pedalboard import Pedalboard, Chorus, Reverb
from pedalboard.io import AudioFile
# Make a Pedalboard object, containing multiple audio plugins:
board = Pedalboard([Chorus(), Reverb(room_size=0.25)])
# Open an audio file for reading, just like a regular file:
with AudioFile('some-file.wav') as f:The example then opens an output file with the same sample rate and channel count and reads one second of audio at a time until the file is empty. The built-in effects are Chorus, Distortion, Phaser, Clipping, Compressor, Gain, Limiter, HighpassFilter, LadderFilter, LowpassFilter, Convolution, Delay, Reverb, PitchShift, GSMFullRateCompressor, MP3Compressor, Resample and Bitcrush. For details on how the reset parameter works, the README points to the documentation for Plugin.process.
Releasing the GIL is the real concurrency claim, and the speed figures are the project's own
Pedalboard releases Python's Global Interpreter Lock so multiple CPU cores can be used, and the README says there is no need for multiprocessing. Even on one thread, it states that audio is processed up to 300 times faster than pySoX for single transforms and 2 to 5 times faster than SoxBindings, and that files are read up to 4 times faster than librosa.load in many cases.
These are the project's own comparisons, with qualifiers like up to and in many cases, and no hardware is given in the text. Use them as a reason to benchmark, not as expected results. The thread-safety claim is the more useful one for pipelines that process many files at once, because it lets you use threads where you would otherwise pay for process startup. TensorFlow compatibility is tested, so the library can be used in tf.data pipelines.
VST3 and Audio Units load third-party plugins, with macOS-only Audio Unit support
Pedalboard can load VST3 instrument and effect plugins on macOS, Windows and Linux through pedalboard.load_plugin, and instrument and effect Audio Units on macOS only.
The limit is plugin availability. A plugin built only as an Audio Unit cannot be used on Windows or Linux, and a VST that depends on a particular glibc may not load on an older Linux. Since each plugin is third-party code, test the exact plugin on the exact OS you deploy to. The recent releases are v0.9.26 on 2026-10-07, v0.9.25 on 2026-09-09 and v0.9.24 on 2026-07-08, and the last push was on 2026-10-23. The 0.9 version series means the API is not marked 1.0.
Editorial conclusion
Pedalboard suits Python developers who need studio-style effects and multi-format audio I/O in scripts, ML data augmentation or TensorFlow input pipelines, and who can accept a GPL-3.0 licence. It does not suit closed-source distribution without a licensing plan, or plugin work on Windows ARM and other unlisted platforms. Before adopting it, confirm that the licence fits your product, check the wheel for your platform, and test the specific VST or Audio Unit you plan to load.
Frequently asked questions
What is Pedalboard?
Pedalboard is a Python library for audio from Spotify's Audio Intelligence Lab. It reads, writes, renders and adds effects to audio, and can load VST3 and Audio Unit plugins.
How do I install Pedalboard?
Run pip install pedalboard. It is distributed on PyPI as platform wheels, and the library is tested with Python 3.10 through 3.15.
How do I use Pedalboard?
Create a Pedalboard object with a list of effects such as Chorus and Reverb, open audio files with pedalboard.io.AudioFile, and read the audio in chunks to run through the board. Plugins can also be loaded with pedalboard.load_plugin.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/spotify-pedalboard)Star history chart for your README
[](https://hysenlabs.com/projects/spotify-pedalboard)Was this useful?