Question about VST/VSTi

Hi there,

currently I have an AudioProcessorGraph which owns AudioProcessor plugins wrapped into VST DLL.
I want them to have different types as Generator, Effect, Display…

My problem is that I don’t know to make a VST Tone Generator which generates exactly X samples: as it is in graph, it takes input of it all along, and I cannot tell him to generate and send only 1 second of samples.
I am new in this kind of stuf, and I require some helps here.

Can you explain me how can I make a Generator/Effects/Display VST chain correctly ?

Best regards

I’ll try to make myself clear, expecting help as soon as possible…

Actually, I have an AudioDeviceManager using DirectSound, which has an AudioProcessorPlayer as callback, which has an AudioProcessorGraph which contains AudioProcessors.
So far, as dsound device is opened, a continuous stream is sent to Player which sent it to Graph, which sent it to all (?!) processors (even those which are not connected ^^’) with connected ones ordered in output stream manipulation.
So far, processor which manages my inputs is first of all and set first sample to 1 (Dirac generator). Stream passes through effect plugins, and ends into a graphical display which must represent sample variation in function of time.

My problems are:

  • I want that the sent stream contains only X samples
  • I want that plugins are called only when input is received

I need advices to make this work in an efficient way, and to know to make good generators.

I think that using an AudioProcessorGraph is not the best way, because of continuous input/output sent between it and its processor nodes. But I don’t know what kind of object I could use in place of it.

What I want (in an ideal world) is that:

  • my generator generates X samples
  • effect plugins manipulate them
  • graphical plugin displays them
  • they are sent to an audible output

I am opened to all proposition (for realizing this, for sure ^^)

I don’t understand your problem. If your generator only wants to produce X samples, then just make it emit X samples, followed by zeros… (??)

In fact, my problem is that I just want incoming input, no silent samples.

Example:

  • My tone generator emits 1 dirac set as 1.f, and 95999 .0f samples (1 sec@96kHz)
  • Samples passes through effects
  • Graph displays only 96000 samples

How can I make plugins stopped when they not receiving inputs ?
I tried with noTail() but that does not work.

In fact, what I want here is to get only my temporal window of interest in my Graph…

So just make your plugin pass-through any samples when it’s not active.

I am not so far advanced in VST stuff to understand this point, I started studying this two weeks ago.
Can you explain your trick ?