What, exactly, is VST "offline" processing?
-
- KVRist
- 50 posts since 20 Apr, 2005
All of the VST plugins I have written to-date are "real time" plugs based on the examples from the VST SDK (AGain, ADelay, etc.).
When I run these plugs in Cubase or Wavelab they work in real time as the audio is playing. These plugins also work when the audio is mixed down or rendered, which is not in real time, what I would consider as "off line".
HOWEVER, the VST spec has a whole separate set of instructions, etc., for "off line processing".
I don't understand the difference between these two situations. What is the VST definition of "off line" used for?
When I run these plugs in Cubase or Wavelab they work in real time as the audio is playing. These plugins also work when the audio is mixed down or rendered, which is not in real time, what I would consider as "off line".
HOWEVER, the VST spec has a whole separate set of instructions, etc., for "off line processing".
I don't understand the difference between these two situations. What is the VST definition of "off line" used for?
- KVRAF
- 9590 posts since 17 Sep, 2002 from Gothenburg Sweden
I believe that Wavelab is the only host that implements offline processing. So i think very few people bother to implement it. I could be mistaken though.
-
- KVRian
- 1270 posts since 9 Sep, 2005 from Oulu, Finland
The offline VST API would make it possible for plug-ins to read and write audio (and other kinds of data like markers) in sophisticated ways. This is in contrast to the realtime way where the host program streams the audio into the plugin in a linear manner.
For example, if a plugin process would need to first analyze the audio data to optimize some aspect of the processing, the host would provide the offline plugin access to read the user selected audio data as fast as possible for the analysis stage. With normal VST the audio would have to be first played into the plugin from start to end, typically in realtime. (And thus wasting the user's time.)
-X
For example, if a plugin process would need to first analyze the audio data to optimize some aspect of the processing, the host would provide the offline plugin access to read the user selected audio data as fast as possible for the analysis stage. With normal VST the audio would have to be first played into the plugin from start to end, typically in realtime. (And thus wasting the user's time.)
-X
-
- KVRian
- 556 posts since 30 Aug, 2005
I use Wavelab. I'm not sure it accesses any special set of functions when rendering offline. Most hosts can export in a non-realtime mode, and this is more or less what Wavelab does when you render a VST effect. I dunno, maybe if a plugin specifically has offline-processing defined, Wavelab it will use it, but I think it generally just uses the code in ::process or ::processReplacing. At least that's what it has done with the plugins that I've written. I can't say I've really studied the spec, though...I believe that Wavelab is the only host that implements offline processing.
-
- KVRian
- 1270 posts since 9 Sep, 2005 from Oulu, Finland
Some earlier Steinberg VST SDK packages had an example offline VST-plugin that did some pretty trivial stuff like audio reversing and pitchshifting (by resampling). I compiled it and tried it in Wavelab, it got listed under a special main menu item "Offline", IIRC. It pretty much did what it was supposed to. In Cubase, the plugin outputted silence. So apparently even Steinberg themselves did not bother implementing it (VST offline API) in their flagship product line. (SX versions 2/3).
-X
-X
-
Music Engineer Music Engineer https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=15959
- KVRAF
- 4379 posts since 8 Mar, 2004 from Berlin, Germany
the point of offline-processing is, that you have the whole audio-file at once at your hands, can do whatever you want with it, and return a new audio-file to the host (possibly even of different length (->time-stretching)). time-reversal is a very simple, yet illustrative example of such a process. it simply cannot be done in real-time in any meaningful way.
edit: don't take the term "file" literally here - i'm talking about some piece of audio. a musician would probably call it "sample" - but this term is already occupied with a different meaning for us dsp-nerds
edit: don't take the term "file" literally here - i'm talking about some piece of audio. a musician would probably call it "sample" - but this term is already occupied with a different meaning for us dsp-nerds

