Currently working on running pedalboard in CircleCI. This one is setup to instantiate a MacOS image with M1 hardware.
I am running into loading plugin issues.
This issue is not reproducible in my local Mac Machine or in Circle CI running on a Mac machine (running server) which we physically own.
Fortunately, CircleCI allows the option to SSH into the virtual machine while active. So I am able to SSH and run the steps manually for debugging.
After two solid days of debugging and experimenting I have not found a solution or workaround. I was hoping I could get some support here.
Pre-requisite
SSH into the VM.
Create a virtual environment
python3 -m venv venv
Activate it
source venv/bin/activate
Upgrade pip
pip install --upgrade pip
Install Pedalboard
pip install pedalboard
Run Python
python3
Code:
Type "help", "copyright", "credits" or "license" for more information.
>>> from pedalboard import load_plugin
>>> vst = load_plugin("/Library/Audio/Plug-Ins/VST3/cool_plugin.vst3")
Using "~/Library/Audio/Plug-Ins/VST3/cool_plugin.vst3" also failed to load. Yes, I copied the plug-in before attempting.
Error:
File "<stdin>", line 1, in <module>
File "/Users/distiller/.pyenv/versions/3.11.5/lib/python3.11/site-packages/pedalboard/_pedalboard.py", line 781, in load_plugin
raise ImportError(
ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
VST3Plugin: Unable to load plugin /Library/Audio/Plug-Ins/VST3/Auto-Tune Pro.vst3: unsupported plugin format or load failure.
AudioUnitPlugin: Unable to load plugin /Library/Audio/Plug-Ins/VST3/Auto-Tune Pro.vst3: unsupported plugin format or load failure. macOS requires plugin files to be moved to /Library/Audio/Plug-Ins/Components/ or ~/Library/Audio/Plug-Ins/Components/ before loading.
What I have tried so far:
Running in my local Mac Machine (M3 chip), I am able to successfully run the code without problems.
Tried in different version of python3:
3.8
3.9
3.10
3.11
Issue reproducible in all.
Setup CircleCI to run with another Mac Machine we physically own as a server.
We are able to load the plugin, no problems.
Interesting Debugging Observations
When running from the terminal in a machine where issue is NOT reproducible, I noticed that from pedalboard import load_plugin call took longer to load (about 5 to 10 seconds)
I believe Pedalboard in the background is generating some cached python files for loading VST3.
Namely: VST3Plugin.py
This is generated off pedalboard_native.cpython-311-darwin.so
When running in my local Mac Machine in Pycharm I can easily find this file
closing issue, turns out desired VST3 plugin is unable to run in a virtual machine by design as it enforces the license on the machine but it's missing.
Not pedalboard related.
Overview
Pre-requisite
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install pedalboard
python3
Code:
Using
"~/Library/Audio/Plug-Ins/VST3/cool_plugin.vst3"
also failed to load. Yes, I copied the plug-in before attempting.Error:
What I have tried so far:
Interesting Debugging Observations
from pedalboard import load_plugin
call took longer to load (about 5 to 10 seconds)VST3Plugin.py
pedalboard_native.cpython-311-darwin.so
~/Library/Caches/JetBrains/PyCharmCE2023.2/python_stubs/486492554/pedalboard_native/VST3Plugin.py
Thanks in advance for the support