Re: AU diagnostics?
Re: AU diagnostics?
- Subject: Re: AU diagnostics?
- From: "Angus F. Hewlett" <email@hidden>
- Date: Tue, 25 Feb 2003 11:12:44 +0000
Thanks Bill - I eventually figured it out by looking at how the downstream
audiounit (the Pan example, in this case) was connecting. Thank [deity of
choice] for open source!
Regards,
Angus.
At 06:28 PM 2/24/2003 -0800, you wrote:
>
I see your problem...
>
>
An AudioStreamBasicDescription is an ABSTRACT or META representation of
>
the format...
>
>
So, firstly you describe how many channels in your stream:
>
mChannelsPerFrame = nChannels
>
>
OK - so far we're consistent..
>
>
The following fields describe ONE of the buffers that are contained in
>
the AudioBufferList (regardless of how many actual buffers or channels
>
(the two are equivalent in this case) in that list:
>
>
mFramesPerPacket = 1
>
mBitsPerChannel = 32 (because it is Float32 data)
>
mBytesPerFrame = 4 //ie. sizeof(Float32)
>
mBytesPerPacket = 4
>
>
ie. Each Buffer in the list has PCM data which has 1 frame per packet,
>
each channel (of which there is 1 only in each buffer) is 32bits deep,
>
There is (BY DEFINITION) 1 PCM frame of data in a PCM "packet", thus
>
there are 4 bytes per frame and 4 bytes per packet (so bytesPerPacket =
>
mFramesPerPacket * mBytesPerFrame)
>
>
Have a look in PublicUtilities/CAAudioStreamBasicDescription
>
>
That has a couple of calls to set one of these up (including a call
>
which will take a number of channels and construct this for you)
>
>
So - what you are getting from the Emagic SDK is wrong.
>
>
Bill
>
>
On Friday, February 21, 2003, at 06:41 AM, Angus F. Hewlett wrote:
>
>
> OK, I've tracked it down somewhat... the reason render() never gets
>
> called
>
> is that AUGraphInitialize is failing with error code
>
> -10868(kAudioUnitErr_FormatNotSupported). The AUGraph reports this
>
> error
>
> after calling GetStreamFormat via the dispatcher.
>
>
>
> My GetStreamFormat code (courtesy of Emagic) looks like this:-
>
>
>
>
>
> //
>
> -----------------------------------------------------------------------
>
> ------
>
> const CAStreamBasicDescription&
>
> CVST2AUPlugin::GetStreamFormat(AudioUnitScope iScope, AudioUnitElement)
>
> {
>
> static CAStreamBasicDescription sDesc;
>
> sDesc.mSampleRate = m_r64Samplerate;
>
> sDesc.mFormatID = kAudioFormatLinearPCM;
>
> sDesc.mFormatFlags = (kAudioFormatFlagsNativeFloatPacked |
>
> kAudioFormatFlagIsNonInterleaved);
>
> sDesc.mBytesPerPacket = m_lFramesPerSlice*4;
>
> sDesc.mFramesPerPacket = m_lFramesPerSlice;
>
> sDesc.mBytesPerFrame = 4;
>
> sDesc.mChannelsPerFrame =
>
> (iScope==kAudioUnitScope_Input?s_pcInfo.NumInputs():s_pcInfo.NumOutputs
>
> ());
>
> sDesc.mBitsPerChannel = 32;
>
>
>
> return sDesc;
>
> }
>
>
>
> m_r64Samplerate is initialized to 44100, and m_lFramesPerSlice to 1024.
>
> NumOutputs is 2, NumInputs most likely 0 (is that a problem? Should
>
> even a
>
> synth AU declare 2 inputs?)
>
>
>
> Regards,
>
> Angus.
>
>
>
>
>
>
>
>
>
> At 04:27 PM 2/20/2003 -0800, Bill Stewart wrote:
>
>> You can run AudioUnitHosting (in the CoreAudio SDK) in a mode where
>
>> synths will be loaded and MIDI input is received from the first MIDI
>
>> Endpoint in the system - its a bit "grungy" (technical term) - but it
>
>> does work and is a good way to validate synths
>
>>
>
>> Bill
>
>>
>
>> On Wednesday, February 19, 2003, at 06:04 AM, Angus F. Hewlett wrote:
>
>>
>
>>> At 02:56 PM 2/19/2003 +0100, you wrote:
>
>>>> Hmm,
>
>>>>
>
>>>> my problems have been somewhat similar when I started...
>
>>>>
>
>>>> I can't recall the solution, but do you return true on
>
>>>> yoursynth::StreamFormatWritable(...) ?
>
>>>
>
>>> Yes.
>
>>>
>
>>>> Does Render() not even get called once?
>
>>>
>
>>> Not even once in Rax or Synthtest... but works fine in LAP6
>
>>> prerelease.
>
>>>
>
>>>
>
>>> =======================================================
>
>>> Angus F. Hewlett, Technical Director
>
>>> FXpansion Audio UK Ltd - http://www.fxpansion.com
>
>>> =======================================================
>
>>> _______________________________________________
>
>>> 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.
>
>>>
>
>>>
>
>> --
>
>> mailto:email@hidden
>
>> tel: +1 408 974 4056
>
>>
>
>> ______________________________________________________________________
>
>> __
>
>> __
>
>> "Much human ingenuity has gone into finding the ultimate Before.
>
>> The current state of knowledge can be summarized thus:
>
>> In the beginning, there was nothing, which exploded" - Terry Pratchett
>
>> ______________________________________________________________________
>
>> __
>
>> __
>
>> _______________________________________________
>
>> 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.
>
>>
>
> =======================================================
>
> Angus F. Hewlett, Technical Director
>
> FXpansion Audio UK Ltd - http://www.fxpansion.com
>
> =======================================================
>
> _______________________________________________
>
> 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.
>
>
>
>
>
--
>
mailto:email@hidden
>
tel: +1 408 974 4056
>
>
________________________________________________________________________
>
__
>
"Much human ingenuity has gone into finding the ultimate Before.
>
The current state of knowledge can be summarized thus:
>
In the beginning, there was nothing, which exploded" - Terry Pratchett
>
________________________________________________________________________
>
__
>
>
=======================================================
Angus F. Hewlett, Technical Director
FXpansion Audio UK Ltd -
http://www.fxpansion.com
=======================================================
_______________________________________________
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.