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,646
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 professional music production at Qsonics.com and recording broadcast and narrative voiceovers at DrewWhite.com.

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