Re: Channels and frames
Re: Channels and frames
- Subject: Re: Channels and frames
- From: "john smith" <email@hidden>
- Date: Fri, 04 Nov 2005 11:19:42 +0100
Urs,
Wow, that actually made sense. I was starting to feel like almost eveyone
was speaking Cantonese around here ;)
So, in your case you'd just do this in your constructor derived from
AUEffectBase:
CreateElements();
Inputs().SetNumberOfElements(2);
Great! Precise and to the point, me like!
D: I believe my client wants different GUI depending on whether bus 1 is
connected or not. That would required Initialize(...) to be called before
the GUI (or "view") is created. Is there any guarantee about that?
No, there's no guarantee. An AU can be Uninitialized and Initialized again
while the GUI is up and running (you can do this in AULab). This scared me,
too, when I did my first steps, but actually it's not such a big problem.
Nah, not a big problem, just annoying like... Oh well... Thanks for the good
info about the listener.
One word about Kernels (because you brought it up in a previous mail)...
Kernels are a matter of convenience for simple AUs that support n:n channel
configurations. The developer can set up a Kernel and doesn't need to
bother with much of the specifics of the whole AU world. Pretty much
everything is done for him in the default behaviour of the base classes.
But this requires that a plugin concept can be squeezed into the simplicity
of the Kernel concept...
... now, what many developers do in order to meet more complex concepts
(i.e. where such a trivial task as Panning from left channel to right
channel is involved) is to neglect the concept of Kernels and override
Great, so kernels are an undocumented way to make processing more
complicated, and it doesn't always work. I think I'll stay away from those.
AUEffectBase::ProcessBufferLists(AudioUnitRenderActionFlags& ioActionFlags,
const AudioBufferList& inBuffer, AudioBufferList& outBuffer, UInt32
iFrames)
This is pretty much equicalent to VST's ProcessReplacing() method. In your
case, you'd get the normal N:M Buffers for Bus0 and then you'd check if
there's some input on Bus1 and if so, pull that an process as desired.
Hope this helps,
Definitely. I think the only point I'm not too sure about is how to check
for input on Bus1. If I have, say, a stereo->stereo plugin, will the 3rd
(and maybe 4th) buffer be the bus1 input? (i.e. 1st and 2nd inputs are bus0
input).
Thanks,
Michael Olsen
;) Urs
(And I hope I got the facts correct after a long absence from the list ;-)
Thanks,
Michael Olsen
In reading this thread, I am wondering if I have been correct in my
assumption
that an input bus and output bus are independent from each other. In
other
words, I'm thinking that Bus 0 is not a bus having both input and output,
but
that the first input bus happens to be named "Bus 0" and the first output
bus
happens to be named "Bus 0" but they are actually not connected
automatically.
Channel configurations like {{1,1}, {1,2}, {2,2}} are not referring to
specific busses at all. The first number in any pair refers
independently to
the input busses, and the second number in any pair refers to the output
busses. There is no assumed correlation between input bus 1 and output
bus 1,
or input bus 0 and output bus 0, etc.
I'm not sure if thinking of input and output busses as independent
entities
helps anyone else in their understanding, but it sure works for me.
P.S. to Michael: these are mostly great questions. Not seeming stupid at
all.
CoreAudio terminology and code can be tough to master at first.
Brian Willoughby
Begin forwarded message:
From: john smith <email@hidden>
To: email@hidden
Date: Thu, 03 Nov 2005 21:55:15 +0100
Cc: email@hidden
Subject: Re: Channels and frames
William,
sorry for these questions that probably seem stupid, but I really have
trouble understanding what you're saying. It's almost like we're not
speaking the same language.
_________________________________________________________________
Don't just search. Find. Check out the new MSN Search!
http://search.msn.click-url.com/go/onm00200636ave/direct/01/
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_________________________________________________________________
Don't just search. Find. Check out the new MSN Search!
http://search.msn.click-url.com/go/onm00200636ave/direct/01/
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden