Bill and Bernd, thank you! It looks indeed like a bug in Logic 8 to me.
Bernd, I tried something similar to what you are suggesting, like
comparing the pointer to the audio data in the ABLs that I get from
the side chain and the main input (ie sideChainAbl->mBuffer[0].mData
!= inputAbl->mBuffer[0].mData). They appear to be different so there's
no telling if the sidechain is connected or not. I did not use
GetChannelData(), however, I might give this a try, even though I'm
not sure what difference it would make (it should point to the same
data, right?).
I am curious - how do you know the two pointers have to be the same in
Logic if the sidechain is not connected? Ie. what is the logic behind
this - is this just something you discovered empirically or is this
documented somewhere? Is it guaranteed to work? I mean, Logic could as
well use some pre-set buffer containing silence for an unconnected
sidechain, couldn't it?
Thanks again,
--th