Closed monomadic closed 7 years ago
Appveyor seems to be failing because of a server problem, but the code should pass.
Thanks for the example, looks great. I'll test and merge this tomorrow afternoon when I get some time
This is awesome! I've been meaning to learn this library + rust and you've made it much more accessible.
I only made a very simple example here, there's only a small attack filter on the sound so it pops on release. I can fix that, but I risk drastically increasing the complexity of the example the more I add, and I figured this was about implementing an instrument with the api and not DSP code, so I left it here.
Are there other examples you guys would like to see?
Feel free to add more examples, this is a good one as it's very simple. Ideally it should only illustrate how to make a minimal instrument rather than a fully featured synth.
Exactly, I stopped at the point that it wasn't explaining the API any more. I'm thinking preset save/load? Btw @overdrivenpotato how do I get in contact with you?
One thing about this code, currently the instrument uses the process function, but technically instruments that don't care about input buffers and overwrite the buffer completely (almost all instruments) should use processReplacing - but I don't think this is exposed in the API.
http://teragonaudio.com/article/How-to-make-your-own-VST-host.html
In the VST SDK 2.4, processReplacing() became the new standard call. You may have to add in support to your host for the old style of process() plugins, though there aren’t so many plugins out there which still do this.
http://bass.radio42.com/help/html/29c47d2d-fbc5-90e8-3b97-507cce63e012.htm
process
Accumulating process mode delegate method (deprecated in VST 2.4, use processReplacing instead).
The process
and process_f64
methods are called by processReplacing
and processDoubleReplacing
respectively. This library doesn't do anything with calls to the old process
function.
If you want to keep in touch, you can add me on discord: sofa#1029
or email me: marko@mijalkovic.ca
Just a basic analog sine wave synth, as an example of how to do vst instruments with this library.