VST Block Size
-
- KVRer
- Topic Starter
- 5 posts since 25 Feb, 2015
Does anyone know what the minimum sample block size is for the VST3 specification? (I understand it is 64 samples for VST2 -- correct me, please, if I'm wrong.)
-
- KVRian
- 1265 posts since 9 Sep, 2005 from Oulu, Finland
IIRC in VST2 it can be down to 0. Your plugin shouldn't assume much about the buffer lengths the host wants the plugin to process. (Except there's the call the host may make to tell about the maximum expected buffer length that is going to be used.) I would guess it works the same on VST3.
Is there a particular reason you are interested about this?
Is there a particular reason you are interested about this?
-
- KVRer
- Topic Starter
- 5 posts since 25 Feb, 2015
Xenakios
I mistakenly thought that VST2 was limited to 64 samples for blocks. Glad to learn that's not the case!
I have coded a plugin in Faust http://faust.grame.fr/, which was then wrapped as a VST. One-sample feedback delays are possible in Faust. But Faust has limited GUIs. So I thought I might use SynthEdit to re-code my VST.
I found out as I was using it, however, that SynthEdit is limited to feedback loops of 96 samples. From their help:
"Why feedback paths are not allowed-- This limitation is due to the way VST Plug-in's, and therefore SynthEdit, processes audio in blocks. ...( In) SynthEdit feedback is delayed by at least 1 block of samples. Therefore you cannot create a feedback path without introducing a delay of at least 96 samples in length. Because of this, true feedback is not possible."
Somehow I miss-read the above and thought the block limitation was VST's rather than that of SynthEdit.
My VST is a source-filter modelled, vocal tract. Each delay loop is one to two samples long. Without such short feedback loops the model breaks. I may even have to use the over-sampling fork of Faust to get what I need.
(Sorry for the delayed reply -- lot of colds going around here!)
Bob H.
I mistakenly thought that VST2 was limited to 64 samples for blocks. Glad to learn that's not the case!
I have coded a plugin in Faust http://faust.grame.fr/, which was then wrapped as a VST. One-sample feedback delays are possible in Faust. But Faust has limited GUIs. So I thought I might use SynthEdit to re-code my VST.
I found out as I was using it, however, that SynthEdit is limited to feedback loops of 96 samples. From their help:
"Why feedback paths are not allowed-- This limitation is due to the way VST Plug-in's, and therefore SynthEdit, processes audio in blocks. ...( In) SynthEdit feedback is delayed by at least 1 block of samples. Therefore you cannot create a feedback path without introducing a delay of at least 96 samples in length. Because of this, true feedback is not possible."
Somehow I miss-read the above and thought the block limitation was VST's rather than that of SynthEdit.
My VST is a source-filter modelled, vocal tract. Each delay loop is one to two samples long. Without such short feedback loops the model breaks. I may even have to use the over-sampling fork of Faust to get what I need.
(Sorry for the delayed reply -- lot of colds going around here!)
Bob H.
-
AdmiralQuality AdmiralQuality https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=83902
- Banned
- 6657 posts since 10 Oct, 2005 from Toronto, Canada
It can't be zero. (Or maybe it can, but then there's no block. It has to be one or more samples or there's no need for the host to call the process function at all.)
Other than that there is no minimum. It's dependent only on your audio hardware driver and/or host software's capabilities and their settings.
Oh and what you want to do is trivial. There's no good reason why SE couldn't have 1 sample feedback loops.
Other than that there is no minimum. It's dependent only on your audio hardware driver and/or host software's capabilities and their settings.
Oh and what you want to do is trivial. There's no good reason why SE couldn't have 1 sample feedback loops.
-
- KVRAF
- 3388 posts since 29 May, 2001 from New York, NY
Also, remember that the block size defines the *maximum* number of samples that the host will ask you to process at once.
So even with a block size of 64, it is perfectly ok (and it happens in practice) for the host to ask you to render 2 samples.
So even with a block size of 64, it is perfectly ok (and it happens in practice) for the host to ask you to render 2 samples.
- KVRian
- 1091 posts since 8 Feb, 2012 from South - Africa
Yeah, SE can't have 1sample delay in the *editor-view*, but that goes away with the SDK. There are ready-built delay modules, filters that would suit your purpose. The block processing comes in handy with a lot of things to save some CPU btw.seedpress wrote: Somehow I miss-read the above and thought the block limitation was VST's rather than that of SynthEdit.
Oversampling would be overkill(unless there are some nonlinear processes), rather use decent interpolation.seedpress wrote: My VST is a source-filter modelled, vocal tract. Each delay loop is one to two samples long. Without such short feedback loops the model breaks. I may even have to use the over-sampling fork of Faust to get what I need.
Bob H.
Regards
Andrew
-
- KVRian
- 1000 posts since 1 Dec, 2004
Synthedit just isn't really designed for tight feedback loops and physical models. To get a physical modeling plugin working in SynthEdit, I had to take the whole feedback loop and turn it into a plugin for synthedit (coded in C++ using synthedit's plugin SDK).seedpress wrote:Xenakios
I mistakenly thought that VST2 was limited to 64 samples for blocks. Glad to learn that's not the case!
I have coded a plugin in Faust http://faust.grame.fr/, which was then wrapped as a VST. One-sample feedback delays are possible in Faust. But Faust has limited GUIs. So I thought I might use SynthEdit to re-code my VST.
I found out as I was using it, however, that SynthEdit is limited to feedback loops of 96 samples. From their help:
"Why feedback paths are not allowed-- This limitation is due to the way VST Plug-in's, and therefore SynthEdit, processes audio in blocks. ...( In) SynthEdit feedback is delayed by at least 1 block of samples. Therefore you cannot create a feedback path without introducing a delay of at least 96 samples in length. Because of this, true feedback is not possible."
Somehow I miss-read the above and thought the block limitation was VST's rather than that of SynthEdit.
My VST is a source-filter modelled, vocal tract. Each delay loop is one to two samples long. Without such short feedback loops the model breaks. I may even have to use the over-sampling fork of Faust to get what I need.
(Sorry for the delayed reply -- lot of colds going around here!)
Bob H.