Hey, I was interested if Elixir can be used to develop VST plugins in some way?
From what I found on google there isn’t much info about this, and I’m not sure if Elixir in general can be compiled into DLL files, but am I missing something? Thanks
Hey, I was interested if Elixir can be used to develop VST plugins in some way?
From what I found on google there isn’t much info about this, and I’m not sure if Elixir in general can be compiled into DLL files, but am I missing something? Thanks
No, you cannot compile Elixir or Erlang to a DLL.
I’ve written a VST myself (an impulse response plugin to make audio sound as if it was recorded in my shower) using JUCE, and from what I understand you maybe could be able to use Elixir for the UI component state if you could hack it together. However I would assume that the BEAM cannot meet the performance requirements for the actual DSP portions. The processing window is extremely small. iirc you are suggested not even to call to malloc or allocate any objects, just twiddle pre-allocated arrays.
One experiment that I did want to try was coordination between two VSTs or two remote DAWs. My vision was that the VSTs would each have a thread that acted as a C node, with a main running Erlang node that held most of the state and acted as a message router. Never got around to it though.
In the past, I’ve used an intermediate DLL wrapper with languages that can’t generate DLLs directly (e.g. Java, Mirah, JRuby), see opaz-plugdk/plugins at master · thbar/opaz-plugdk · GitHub.
For example, jVSTWrapper (https://jvstwrapper.sourceforge.net) works for Java / JVM languages.
By creating a C++/Rust wrapper that “embeds” Elixir in a way or another, you could potentially build VST plugins in Elixir.