View Single Post
Old 07-12-2009, 05:53 AM   #66
drew
Mobile
 
drew's Avatar
 
Join Date: Jan 2006
Location: London & São Paulo. Hardcore commercial REAPERite
Posts: 1,669
Default

It seems the block of BASE64-encoded VST data keeps the pin details at a constant place.

From what I can tell, there are a bunch of little endians from byte 9 as follows:
number of inputs channels the plug accepts = 4 bytes (eg. "02 00 00 00")
mapping for each input = 8 bytes per input (eg. "01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00")
number of outputs channels the plug gives = 4 bytes (eg. "04 00 00 00")
mapping for each output = 8 bytes per output (eg. "01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00")

That would be the mapping for a plug with 2 in, 4 out

What's beyond that I really don't know, but the length shouldn't change for a particular plugin.

The 8 byte mapping block obviously shows there is a hard-coded 64 channel limit.

If you wanted to add and immediately channel map a plug I guess you'd need to add it some other way (not with the State calls) then edit the data it creates.

Using WDL's base64decode & encode routines you should be able to change the pin mappings directly in the block of plugin data - BUT no guarantee that REAPER will realise immediately I guess.
__________________
Proudly using REAPER exclusively for...
* Media and event music composition & production, sound design + auto-processing at Qsonics.com
* Broadcast branding, promos, education & training and narration voice-overs at DrewWhite.com

Last edited by drew; 07-12-2009 at 05:56 AM.
drew is offline   Reply With Quote