VST Block Size

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

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.)

Post

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?

Post

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.

Post

You can program a module for SE that should be able to include your delays. SE SDK

Post

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.

Post

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.

Post

seedpress wrote: Somehow I miss-read the above and thought the block limitation was VST's rather than that of SynthEdit.
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: 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.
Oversampling would be overkill(unless there are some nonlinear processes), rather use decent interpolation.

Regards
Andrew

Post

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.
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).

Post Reply

Return to “DSP and Plugin Development”