View Single Post
Old 02-04-2012, 08:16 AM   #3
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

it turns out this is really f*cking complicated.

Previously i had a channel io of "0-2 0-8". I changed to "0-2 0-4" which is working a bit better (i.e passing enough of auval's tests for Logic & Reaper to open it). I think this is indicating a few problems here:

1) need to support the kAudioUnitProperty_SupportedChannelLayoutTags and kAudioUnitProperty_AudioChannelLayout properties to specify pairs of stereo buses

2) need to attach the remaining scratch buffers for channels > 2

3) need to synchronise the buffers coming from IPlugAU::RenderProc(). IPlugAU::RenderProc() gets called once for each output bus, which are stereo pairs, except for in Live, where you have one bus with four/eight channels ( I think this is incorrect on Ableton's part).

This means that in Logic and Reaper _this->ProcessBuffers((AudioSampleType) 0, nFrames); is getting called twice (in my "0-2 0-4" config) and causing glitchy output, since ProcessDoubleReplacing() is getting called twice for each block.
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote