Re: Logic not responding to Audio Engine Changes?
Re: Logic not responding to Audio Engine Changes?
- Subject: Re: Logic not responding to Audio Engine Changes?
- From: BlazeAudio Developer <email@hidden>
- Date: Fri, 25 Aug 2006 11:43:16 +0530
Hi Jeff,
Thank you for the quick response!
At 03:26 AM 8/25/2006, Jeff Moore wrote:
On Aug 24, 2006, at 5:26 AM,
BlazeAudio Developer wrote:
We have an Audio driver, which
can change configuration at run-time
based on a number of events, including changes in SR, clock
sources,
switch settings on the external hardware, etc.!
Specifically, as a result of these changes, AudioStreams are
removed, and added.
Nothing unusual about this.
That's what I thought, but wanted to make sure!
It seems like even
after we've removed some Audio Streams, Logic Pro
7 (on PPC) keeps on using them!
However, on Intel machines, Logic seems to recognize the change,
and
uses the proper streams.
How are you determining this?
By default, the driver creates 2 Input Audio Streams and 2 Output Audio
Streams. Each has 8 channels.
All streams are: Linear PCM, 32bit(wide and deep), signed int,
big-endian, mixable.
When Logic starts, it effectively shows 16 channels for input and 16 for
output.
Due to one of the changes, we remove all the streams, and again create 4
streams - 2 input, 2 output. But this time, the channel count is as
follows:
Input 1: 8 channels
Input 2: 4 channels
Output 1: 8 channels
Output 2: 4 channels
When this happens, if HALLab is running in the background, it correctly
detects this, and displays the updated streams (including proper channel
counts, and new stream IDs).
However, Logic continues to show 16 channels for input and 16 for output
(on PPC - this has been tested on both G4 and G5 machines, I can provide
more specs if you think that would help!).
Not only that, we still get clipOutputSamples and convertInputSamples
calls in our driver with the old Stream objects!!!
Here's the sequence
we use:
To remove the streams, we do the following:
pauseAudioEngine()
beginConfigurationChange()
detachAudoiStreams()
And to add them back:
addStream() (multiple)
completeConfigurationChange()
resumeAudioEngine()
That seems like the right set of things to do, but the devil is in
the
details, mostly of what the new streams look like compared to the
old
streams.
Please see above. In one case, the channel count has changed on two of
the streams.
Also, right after
the resumeAudioEngine, the performAudioEngineStart () is called, and
after that the next call into convertInputSamples () comes with a stream
that was detached! And of course, Logic does
not use the new streams.
If we close and restart Logic, everything works fine.
At the same time, other programs, such as Nuendo and Cubase
recognize the stream changes and function normally.
Is there something that we are doing inappropriately?
My guess is that you are likely doing something that isn't quite
right, but it's tough to say what with the information at hand. Can
you go into more detail about what the streams you are creating
look
like as well as general information about the system version and
CPU
you are using to test?
OS 10.4.7, Mac Mini, PPC G4 1.42 GHz, 512MB RAM.
I've given details about the stream/channel counts above. Please let me
know if you need more information.
Thanks.
Devendra.
_______________________________________________
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