including "Under the hood, this is essentially just a Python wrapper around JUCE (https://juce.com), a comprehensive C++ library for building audio applications. We at Spotify needed a Python library that could load VSTs and process audio extremely quickly for machine learning research, but all of the popular solutions we found either shelled out to command line tools like sox/ffmpeg, or had non-thread-safe bindings to C libraries. Pedalboard was built for speed and stability first, but turned out to be useful in a lot of other contexts as well."
Sadly, although it supports realtime processing, it doesn't say anything about latency, which is a make-or-break quality for most realtime audio processing. Definitely feels like a batch processing library which has had realtime support bolted on. The VST support is extremely cool though!
The name "pedalboard" might not be the most fitting if latency is too high.
That said, it could still be very useful in a studio setting for post-production work.
What would be really exciting is a hardware device with all the standard plug-and-play inputs, capable of running Python... essentially a true open-source pedalboard for guitar enthusiasts.
If I was looking for a digital pedalboard device I'd want something that was extremely rugged, never had software issues or forced me to download updates, and booted up within about 10-15 seconds (that's how long the digital pedals on my actual pedalboard take to boot). It also needs a case with, at the very least, a couple of patch change switches and an on/off switch; but preferably a lot more.
The ruggedness and built-in controls are really important. I used to gig with a standard laptop + audio interface + multiple MIDI controllers. The external gear was a real hassle to set up, even with everything labelled with bright coloured tape so I could just match colour to colour while plugging it in. And eventually the laptop got knocked over and fell a couple of feet onto a wooden stage - and even that minor impact smashed the screen, which was glued in so I couldn't replace it. I also have a horror story about a machine rebooting to apply Windows updates in the middle of a gig and requiring the rest of the band to improvise until I was done! I don't really gig any more, but if I took it up again, I would switch to using as much hardware as I could.
But I really don't care about actual analog devices. I already have a decent few DSP-powered pedals on my pedalboard and I cannot tell the difference, other than the true analog ones are more noisy!
There is the MOD Dwarf, a Linux based pedal that is much as you describe. It has a pedal style case with three foot buttons, a few encoders and buttons and screen for changing parameters on the fly, but to fully configure it you use a laptop or tablet to connect to it and set up a patch.
I've used it before for realtime-uses (not production though where you'd need 100% guarantees for no drop-outs), latency has not been an issue. I think you essentially get the latency of the plugins you're using since this is a JUCE wrapper.
Ultimately it depends on how much work you do and how efficient an audio thread you built. pedalboard is not a library which does audio playback itself, it just effects buffers you give it.
I used python-sounddevice, which are bindings for PortAudio - if you don't use much CPU you can comfortably run plugins in realtime.
Obviously you're still beholden to the GIL in Python (until further notice) so if worse comes to worst you might experience the unlucky dropout.
I've been using pedalboard to manipulate voices for https://github.com/jason-kane/coh_npc_voices/ (TTS for game characters) and it is a very easy library to use/integrate. Kudos to the Spotify team.
including "Under the hood, this is essentially just a Python wrapper around JUCE (https://juce.com), a comprehensive C++ library for building audio applications. We at Spotify needed a Python library that could load VSTs and process audio extremely quickly for machine learning research, but all of the popular solutions we found either shelled out to command line tools like sox/ffmpeg, or had non-thread-safe bindings to C libraries. Pedalboard was built for speed and stability first, but turned out to be useful in a lot of other contexts as well."
reply