spotify / pedalboard

🎛 🔊 A Python library for audio.

Home Page:https://spotify.github.io/pedalboard

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

External VST3s not affecting live audio

pl4sma2389 opened this issue · comments

I'm playing around with the (relatively) new live audio processing functionality, but I'm finding that it only works with the embedded plugins.

Using the following code to pass audio from a media player hooked to "CABLE Output (VB-Audio Virtual Cable)" does output sound to the selected output device, but it does not affect it at all.

...
plg_haas = load_plugin("./VST3s/kHs Haas.vst3")
...
with AudioStream(
    input_device_name="CABLE Output (VB-Audio Virtual Cable)",
    output_device_name="Speakers (Realtek(R) Audio)"
) as stream:
    filters = Pedalboard([plg_haas])
    stream.plugins.append(filters)
    input("Press enter to stop streaming...")

Using a built in effect, like Reverb, does affect the audio.

with AudioStream(
    input_device_name="CABLE Output (VB-Audio Virtual Cable)",
    output_device_name="Speakers (Realtek(R) Audio)"
) as stream:
    filters = Pedalboard([Reverb()])
    stream.plugins.append(filters)
    input("Press enter to stop streaming...")

I've tried the following plugins, and none of them work:

Sennheiser AMBEO Orbit.vst3
kHs Haas.vst3
kHs Filter.vst3
ValhallaSupermassive.vst3

Did I miss something in the documentation about arbitrary VST3 plugins not being supported for live audio, or is this a bug?

I also have this issue on an m2 MacBook Air running macOS 13.6.1. I've tried an in-house VST3 plugin as well as kHs Distortion.vst3 and RoughRider.vst3. Another issue I get is Python hangs after pressing enter to stop streaming and has to be force quit. I also tried with AudioUnits, and they work great.

from pedalboard import Pedalboard, load_plugin
from pedalboard.io import AudioStream

with AudioStream(
  input_device_name="MacBook Air Microphone",
  output_device_name="External Headphones",
  buffer_size=64
) as stream:
  # Audio is now streaming through this pedalboard and out of your speakers!
  stream.plugins = Pedalboard([load_plugin("/Library/Audio/Plug-Ins/VST3/RoughRider.vst3")])
  input("Press enter to stop streaming...")

Hello, is there any news on this issue ? I still have the bug

Hello, is there any news on this issue ? I still have the bug

Please see #274 (comment)

This issue has been resolved as part of #278 (comment), and VST3 plugins should now work as expected in AudioStream objects in Pedalboard v0.8.8 or later. If you find any specific plugins that fail to render live audio in AudioStream objects, please open a new issue.