COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 12-13-2016, 09:04 AM   #1
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default iPlug and sample-exact automation

Since VST3 offers sample-exact automation, how would I go about implementing this using WDL/iPlug, say for a simple gain plugin for starters ?

Looking at "IPLUGVST3.cpp" (I'´m using WDL-OL) I see in the implementation of IPlugVST3:: process() the following comment:

Quote:
//it is possible to get a finer resolution of control here by retrieving more values (points) from the queue
//for now we just grab the last one
so it seems sample-exact automation is currently not supported and this would be the place to start, right ? (modifying IPlugVST3.cpp).

Anyone by chance has example code or hints to share how to do this ?
nofish is offline   Reply With Quote
Old 12-16-2016, 06:18 AM   #2
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default

Anyone please ?
nofish is offline   Reply With Quote
Old 12-16-2016, 07:48 AM   #3
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

Quote:
Originally Posted by nofish View Post
so it seems sample-exact automation is currently not supported and this would be the place to start, right ? (modifying IPlugVST3.cpp).
Seems about right. I think you will also have to change the IPlug base class so that your plugin subclass can get the automation data from the VST3 wrapper. (And ensure other plugin format builds don't depend on that automation data being around. Or pass some bogus automation data for VST2 etc...)

Just as a side note, I wonder how many VST3 plugin customers have thought they will get the VST3 "sample accurate" automation and the plugin has been developed with JUCE or IPlug which do not support that...
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.

Last edited by Xenakios; 12-16-2016 at 07:59 AM.
Xenakios is offline   Reply With Quote
Old 12-16-2016, 08:21 AM   #4
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default

Thanks Xen.

I figured that much.
Have you looked into this closer by chance ?

I can modify the VST3 wrapper class to get the IParamValueQueue* (which as I understood contains the automation data) in my plugin subclass no problem I guess.

But then what ?
How do I work with this ? i.e. apply the contained data per sample ?

Every example I found in the net so far (even Steinberg's own examples in the VST3 SDK) only catch the last value per block.
nofish is offline   Reply With Quote
Old 12-17-2016, 02:59 AM   #5
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

I assume the IParamValueQueue struct/class has a sample offset, so you can check when a parameter change should happen (just like with MIDI messages in IPlug).
Tale is online now   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 01:57 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.