Sure, but automation is performed into the GUI thread, so there isn't sample-accurate timing in that data. And usually it's smoothed into some kind of envelope by the host rather than being a sample-for-sample, or frame-for-frame (either video or audio, take your pick!) stream of discreet values, evenly spaced in time.Borogove wrote:Unless, of course, they're matching the block size to the actual varying number of samples between recorded automation events.AdmiralQuality wrote:Right. But if they're daring to change block size, are they also checking the deltaFrames of the pending events to make sure that they don't overshoot the next block? (Not that that's technically illegal, but I bet you'll cause a bunch of instruments to break if you do that in a host.)Borogove wrote:Variable block size is, like, the least wacko behavior in any host. That's why it's a parameter to process/processReplacing() instead of a parameter to resume().AdmiralQuality wrote:there are hosts that do other wacko (you might even say "fruity") things like changing the sampleFrames size in successive calls to processReplacing.
Also, block size often has audible artifacts in many plug-ins. (In particular, the update rate for automation.) So to change it on the fly is, in my opinion, not a great idea.
This is part of why I like the idea of 1 sample buffers. I'd also like to see no conceptual difference between automation and an audio signal. Then you could, say, build modular synths and effects out of plug-ins from different developers.
Maybe someday.

