Re: Connecting AU's without an AUGraph
Re: Connecting AU's without an AUGraph
- Subject: Re: Connecting AU's without an AUGraph
- From: Kurt Revis <email@hidden>
- Date: Thu, 19 Sep 2002 12:03:06 -0700
On Thursday, September 19, 2002, at 10:54 AM, Luke Bellandi wrote:
Try thinking of as if the function is saying
1) pre-render: "I will call you to work on the following data. Make
preparations you need to."
2) render: "I am calling you to work on the following data.
Render
it."
3) post-render: "I have finished working with the following data, and
here
are the results. Do any clean-up you need to." (since AudioBufferList
*ioData will have the post-process data in it)
Oh I see, when you say input proc, you mean a render function, but one
that
isn't concerned with the data it gets (i.e., it's not *processing*
ioData,
it's *writing into* it.
Right. I mean an input callback that's been set on an AU via
kAudioUnitProperty_SetRenderCallback. I guess I was taking the words
"render function" to mean the function that got called inside the AU's
implementation, which was not what you meant.
Anyway, it's not the typedef that bothers me. It's the fact that the
comments for all 3 uses, plus calling AudioUnitRender(), are all mixed
together in the header and in the new documentation (au_render.html).
And the most important use--providing audio to the AU--is barely
mentioned, whereas the less important/more advanced pre- and
post-render notifications get a lot of space.
(The documentation for kAudioUnitProperty_SetRenderCallback in
au_properties.html says that the callback will be provided buffers to
fill in. Why isn't this mentioned with everything else in
au_render.html?)
All of this stuff can be teased apart, but it takes a while, and it
doesn't have to be so hard. I'd like to see something like this
(except much better):
"So you want to provide audio data to an AU. We call this a 'render
function'. Use SetAudioUnitProperty with
kAudioUnitProperty_SetRenderCallback to tell the AU to call your
function when it needs audio data.
When you implement your render function, here's what the arguments will
be. Ignore the value of ioActionFlags. You will be given a buffer of
data to fill in."
Repeat for the other 2 cases.
Maybe someone should write a book on CoreAudio :)
--
Kurt Revis
email@hidden
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.