3 ms·
> It's the only plugin API that can actually guarantee sample-accuracy. Nothing about VST3 guarantees sample accurate automation, next to no plugins implement
by duped 4y ago
> It's the only plugin API that can actually guarantee sample-accuracy.
Nothing about VST3 guarantees sample accurate automation, next to no plugins implement it correctly, and users don't seem to care all that much about it.
It's actually hard to write the process loop correctly since VST3 doesn't hand you a list of events and sample offsets, it hands you a list of queues of events and sample offsets so you need to buffer internally and sort to avoid allocation in realtime.
In practice most plugins just dump all the parameter handling to the top of the process callback and ignore it. This is what JUCE does, for example.
- foxhill 4y ago> Nothing about VST3 guarantees sample accurate automation, next to no plugins implement it correctly, and users don't seem to care all that much about it. i’m not entirely sure what you mean here; > It's actually hard to write the process loop correctly i agree that it was a bit of leap from VST2, but i don’t think it’s hard you get a sequence of parameter values, and sample offsets at which they are true at, linear interpolation will find you the value of that parameter for a specific sample. given that the spec doesn’t allow for quadratic/cubic/parabolic interpolation between values, this is in fact sufficient for sample accuracy. > In practice most plugins just dump all the parameter handling to the top of the process callback and ignore it. This is what JUCE does, for example. yes, i seem to recall WDL-OL’s approach was to use the parameter value at the start of the process block for the entire block. it’s “mostly good enough” (and honestly it probably was). my school of thought at the time was “sample accurate means sample accurate”. i hadn’t yet learned that the perfect is the enemy of the good :)