This container image will enable you to run a simple VST host (Carla), where you can load Win32/Win64 VST plugins, You can monitor the audio output on your host machine default audio device through Pulseaudio tcp sink.
Audio recording within the container can be achieved with some additional tools installed.
This Pulseaudio-oriented setup was the simplest way to get sound from the container on MacOS for me.
The dockerfile is based on the similar works of Jess Frazelle for PulseAudio support and Scott Hardy for X session support.
- Docker
- XQuartz
- Pulseaudio (available on Homebrew)
Step 1. Build the image
docker build pulse-carlawine -t deviant-syndrome/pulse-carlawine:latest
Step 2. Setup X forwarding
To get the X forwarding from container, which would act as a thin client of sorts. We will be using XQuartz for MacOS. From the XQuartz preferences, in the security tab, make sure Allow connections from network clients is enabled. Restart XQuartz. Then:
xhost +localhost
Run pulseaudio sink on host machine:
pulseaudio --load=module-native-protocol-tcp --exit-idle-time=-1 --daemon
Run docker container:
docker run -it -e DISPLAY=host.docker.internal:0 -e PULSE_SERVER=docker.for.mac.localhost -v ~/.config/pulse:/home/pulseaudio/.config/pulse --entrypoint /bin/bash --ipc=host --rm deviant-syndrome/pulse-carlawine:latest
Copy your DLLs to container's filesystem. Alternatively you can download a Windows-based VST plugin installed and run it in container under Wine. Then run Carla from the container.
carla
Go to carla's prefrences and enable experimental features. After that you will be able to drag and drop your VST DLL to Carla's rack.