• ofrzeta 4 hours ago

    Related discussion with comments by the author: https://news.ycombinator.com/item?id=28458930

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

    • camtarn 6 hours ago

      GitHub: https://github.com/spotify/pedalboard

      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!

      • timlod 2 hours ago

        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.

        • nicoloren 6 hours ago

          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.

          • Archit3ch 5 hours ago

            So... a standard PC/Mac with an audio interface? ;)

            No, what would be really exciting is a Digitally-Controlled Analog device, like the FreqTube FT1. Then python would control actual switches.

            • camtarn 4 hours ago

              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!

              • lambda 4 hours ago

                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.

                • camtarn 2 hours ago

                  That's a lovely little bit of hardware, and it's not actually that expensive too! Great recommendation, thank you.

                  • anton-c 27 minutes ago

                    Seems better than the absolutely crazy custom one I made myself when I was like 22

                    https://m.youtube.com/watch?v=dJG5IMOVYmI

                    Also just normal computer footpedals that were like 34.99 worked great for controlling the software if there's extra things u still need to assign

        • westurner 28 minutes ago

          BespokeSynth is also built on JUCE.

          BespokeSynth supports VST3, AudioUnit, LV2,: https://github.com/BespokeSynth/BespokeSynth/issues/1614

          One day, I found a number of open source patch bay implementations. They may be useful for building a GUI with pedalboard:

          - https://github.com/Houston4444/HoustonPatchbay :

          > [HoustonPatchBay is] a patchbay for JACK used by RaySession and Patchance, usable by other python Qt5 softwares.

          - RaySession: https://github.com/Houston4444/RaySession is a patchbay for JACK

          - Patchance: https://github.com/Houston4444/Patchance is JACK patchbay gui w/ ALSA MIDI support

          > It is a direct alternative to Catia or Patchage

          - org.pipewire.helvum: https://gitlab.freedesktop.org/pipewire/helvum https://flathub.org/apps/org.pipewire.Helvum :

          > Helvum is a GTK-based patchbay for pipewire, inspired by the JACK tool catia.

          - easyeffects: https://github.com/wwmm/easyeffects ; pipewire + GStreamer -> just pipewire