Re: re-sent: Help: why kAudioUnitSubType_TimePitch can't set ASBD??
Re: re-sent: Help: why kAudioUnitSubType_TimePitch can't set ASBD??
- Subject: Re: re-sent: Help: why kAudioUnitSubType_TimePitch can't set ASBD??
- From: William Stewart <email@hidden>
- Date: Tue, 14 Aug 2007 12:09:03 -0700
A format converter is an AU type that has a more relaxed semantic
around the relationship between input and output formats. There are
various and different types (what we call sub-types) of the aufc type
that Apple ships (and 3rd party developers can and do as well):
(1) Deferred renderer
- it calls for input on a different thread than it is called for
output. It can also "chunk up" the input pulls to a larger size than
it is being asked to produce output for
(2) AUConverter
- transforms between many different PCM formats (int/float,
interleaved/deinterleaved, sample rate)
(3) Merger and Splitter
- merges (or splits) input(s) to output(s)
(4) Varispeed
- varies the play rate (and pitch) of audio - 2X speed (double
pitch), 0.5X speed (half pitch), etc.
(5) AUTimePitch
- independent control of both play rate and pitch.
So, The first confusion is between a component type: 'aufc' and a
particular instance of that type 'conv' in the case of the
AUConverter audio unit.
You can host converter units in host apps, but with some
restrictions. So, in AU Lab, it will look for converter units on
tracks that have a File Player as their source unit. It uses the fact
(as with generator types as well), that the unit publishes a view as
a signal to determine that the unit is "UI friendly". For instance,
both the varispeed and time pitch units can be useful in a host app
where the user can use these AUs' UI to change the rate for instance.
However, other aufc units (and generators as well) are only
interesting from a "programmer" point of view. For instance, an
AUConverter can be used to transform ints to floats, but of its own
it doesn't really have any parameters that make sense for a user to
manipulate... The ScheduledSlicePlayer is another example - great
from a programming point of view, but not much good for a user
without a custom UI (and the file player is the version we provide
with a UI that makes this useful)
The other confusion is one of requirements for supporting formats.
The only format that we require all audio units to support is the
canonical sample type (Float32) where the channels are de-interleaved.
The AUConverter supports more than this - that is its main job. The
output units that Apple ships (generic as well as the device ones)
also support the same feature set as AUConverter (primarily because
they have to interface to devices that may have streams with
interleaved channels and may change their sample rate outside of the
control of the application).
Hope that clears up the confusion
Bill
On 14/08/2007, at 11:23 AM, David M. Cotter wrote:
if kAudioUnitSubType_TimePitch is considered a
kAudioUnitType_FormatConverter, then why can I not set it's in or out
AudioStreamBasicDescription? Seems I must put a plain vanilla
kAudioUnitSubType_AUConverter both in front of and behind it in
order to use it? (since my audio chain uses a slightly different
format than what TimePitch apparently requires?
is this expected? if so, why is it categorized as a format converter?
---------------------
ps: the reason i am resending this is i've sent it twice already
and it did not seem to go thru?
_______________________________________________
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
--
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
________________________________________________________________________
__
_______________________________________________
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