Re: Audio Engine Design question
Re: Audio Engine Design question
- Subject: Re: Audio Engine Design question
- From: "B.J. Buchalter" <email@hidden>
- Date: Fri, 20 Sep 2002 10:21:33 -0400
- Resent-date: Fri, 20 Sep 2002 10:33:41 -0400
- Resent-from: "B.J. Buchalter" <email@hidden>
- Resent-message-id: <B9B0A72D.D44%email@hidden>
- Resent-to: CoreAudio API <email@hidden>
>
A: 1 input stream with 16 channels
>
>
B: 1 input stream with 12 channels
>
1 input stream with 2 channels (coaxial)
>
1 input stream with 2 channels (optical)
>
>
C: 6 input streams with 2 channels
>
1 input stream with 2 channels (coaxial)
>
1 input stream with 2 channels (optical)
>
>
D: 12 input streams with 1 channel
>
1 input stream with 2 channels (coaxial)
>
1 input stream with 2 channels (optical)
>
>
E: Other
>
>
>
1 input stream with 12 channels works fine in Ableton Live but
>
crashes SoundStudio and Amadeus. Maybe it's safer not to have more
>
than 2 channels per streams. On the other hand, I've seen one audio
>
driver do that....
>
>
For the moment I use solution B but I am tempted to go for solution
>
C, but what bothers me is that the Audio MIDI Setup displays
>
information only for the first stream, so the user might think the
>
device has got only one stereo input :-/
C and D have the benefit that smart clients can tell CA which streams they
are using and the overhead goes down if they are not using all the streams.
The Apple line on this is that the device should present based upon its
underlying DMA buffer structure. In your case (as a FireWire guy), there
really is no underlying DMA buffer, so you can make it be whatever you want.
But Every possible structure will eventually show up as various
manufacturers build their drivers. CA compliant client apps MUST deal with
all the structures. It is not really that hard -- the only one that is
especially easy is the 1-stream/1-channel case. All of the interleaved
streams are basically the same thing with different strides and it is pretty
straight forward to code in the general case. If a client crashes or refuses
to use a device because of its buffer structure, it is broken and needs to
be fixed.
So, you should probably use what works best for your device -- because all
of those early CA apps that did not get it right are going to have to be
revised to get it right anyway.
Best regards,
B.J. Buchalter
Metric Halo
M/S 601 - Building 8
Castle Point Campus
Castle Point, NY 12511-0601 USA
tel +1 845 831-8600
fax +1 603 250-2451
If you haven't heard ChannelStrip yet, you don't know what you're missing!
Check out SpectraFoo, ChannelStrip and Mobile I/O at
http://www.mhlabs.com/
Download a 12 day demo from <
http://www.mhlabs.com/demo/>
_______________________________________________
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.