There are probably many possible designs here and I don't know what any given host does internally, but you can certainly use fixed buffers on the audio graph level and then just split them into smaller chunks (eg. for time-info with song jumps and automation accuracy) when you actually call into a given plugin. If some plugin needs fixed buffers, then you just skip such splits (and lose the benefits). I basically fail to see any great difficulty here.camsr wrote: Thu Jan 14, 2021 5:09 am Within the Directed Acyclic Graph (had to look that up), there are differences in block sizes being fed into plugins. But the dependency node should always be the largest and latest minimum buffer?? Like, if one plugin down the chain required 256 samples fixed input buffer, it's dependencies could be given multiple smaller blocks to process, for whatever reasons.
On variable buffer sizes in vst 2 and 3 and other host idiosynchrasies
- KVRAF
- 8496 posts since 12 Feb, 2006 from Helsinki, Finland
- KVRAF
- 1752 posts since 2 Jul, 2018
The buffers should be split up in a way that it makes sense e.g. when a noteOn command is set.
As long as no automation and no new midi commands are used on the block it does not make sense to split up the buffers into tiny pieces. Instead the biggest possible size or at least a reasonable size should be used.
As long as no automation and no new midi commands are used on the block it does not make sense to split up the buffers into tiny pieces. Instead the biggest possible size or at least a reasonable size should be used.
https://www.tone2.com
Our award-winning synthesizers offer true high-end sound quality.
Our award-winning synthesizers offer true high-end sound quality.
- KVRAF
- 2473 posts since 25 Sep, 2014 from Specific Northwest
Note on/off comes with a delay compensation, so there's really no need there. The only place I can maybe see a need is on a loop, but the host can just as easily wrap the end with the beginning as it can split the buffer. So, I'm really not sure of any case where a different buffer size is a convenience vs a necessity.
I started on Logic 5 with a PowerBook G4 550Mhz. I now have a MacBook Air M1 and it's ~165x faster! So, why is my music not proportionally better? 
-
- KVRAF
- 7579 posts since 17 Feb, 2005
There's instances where plugins will communicate across mixer channels, effectively side-stepping the host's audio graph. I think this was done for support in hosts which do not allow arbitrary audio channel routings. This could also be a buffering challenge.
- KVRAF
- 8496 posts since 12 Feb, 2006 from Helsinki, Finland
If you're running some sort of a sequencer (or really even a synced LFO) in a plugin, then not getting the correct time-info when there's a loop-point or a tempo-change is less than ideal.syntonica wrote: Fri Jan 15, 2021 4:19 pm Note on/off comes with a delay compensation, so there's really no need there. The only place I can maybe see a need is on a loop, but the host can just as easily wrap the end with the beginning as it can split the buffer. So, I'm really not sure of any case where a different buffer size is a convenience vs a necessity.
- KVRAF
- 2473 posts since 25 Sep, 2014 from Specific Northwest
Tempo change: that might be a good reason. Thanks!
I started on Logic 5 with a PowerBook G4 550Mhz. I now have a MacBook Air M1 and it's ~165x faster! So, why is my music not proportionally better? 
