• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: kAudioUnitProperty_PresentationLatency supported in LogicPro 7.2 and/or 8?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: kAudioUnitProperty_PresentationLatency supported in LogicPro 7.2 and/or 8?


  • Subject: Re: kAudioUnitProperty_PresentationLatency supported in LogicPro 7.2 and/or 8?
  • From: William Stewart <email@hidden>
  • Date: Tue, 13 Nov 2007 17:47:55 -0800

This property is the summation of the total latency from the output time of a sample for the AU until it is expected to be "presented" to the listener. So, this property is a sum of:

Additional effect processing latencies in the signal chain from the AU
Any additional mixing latencies in the host
Size of the I/O buffer
Safety offset of the driver
Presentation latency of the device

All of these should be deterministic, except that presentation latency of the device can be affected by what is on the other side of the I/O interface (or even the variability of processing, etc that the I/O interface may do)

GetCurrentTime is going to just return the current time of the CPU clock. Because an AU doesn't know the device it is going out too (or if it is even going out to a device), it has no way to associate that time with the audio I/O pathways it is involved in. Every call to an AU to render is rendering audio for "some time" in the future.

So yes, Render was not made "presentation latency" secs before the sample time. There's no constraint on when an AU is asked to render. The correct way to state this is that the audio your AU is being asked to produce will take "presentation latency" secs to actually be heard when it is in the signal chain.

Our thinking about defining this property was that the AU was being used in something like a R/T context - AULab is a good example, or other performance oriented hosts - as there the AU really is being used to render audio for the I/O cycle its currently rendering for.

For an app like Logic, which has a more complex scheduling model, the situation is not nearly so clear or as straight forward. I think the property could be utilised to work satisfactorily because Logic still does use a R/T type of model when you pair it down.

Of course, the property would be considered invalid if the "Is Offline" property value is set to true.

In the meantime, I think my suggestion about adding a parameter the user can tweak to adjust this is a perfectly reasonable solution. You should mark the parameter as Non Real Time (so it doesn't appear in automation lists) and possibly expert mode if you want to hide it from your average user.

Bill


On Nov 13, 2007, at 5:18 PM, I. K. wrote:

Presentation latency is relevant but its only one part of the timing
information needed to know the host time at the moment the first
sample hits the outs on transport play - If possible at all.

A particular sample will take 'presentation latency' seconds to appear
at the outputs but that doesnt mean, as an example, a call to
CAHostTimeBase::GetCurrentTime() during say, Render was made
'presentation latency' secs before the time the sample is out.
Hosts may issue render notifications in no particular order or timing.

The basic question is, from inside an AU, is it possible to calculate
the HostTime at the moment a sample is going to be out?
ideas are welcome.

Thanks again Bill.


On 11/13/07, William Stewart <email@hidden> wrote:
In lieu of the property being implemented, I'd suggest that you
provide a field for the user to set this (and start off with a
suggested value). This would be good in any case, as there are other
factors that might contribute to this number (when provided) being a
reasonable estimate, but not 100% reliable in all cases.

Bill

On Nov 12, 2007, at 6:32 PM, I. K. wrote:

The project I am working on requires acurate host time stamps of
events. These will be made OSC bundles and sent thru udp to control
OSC aware applications; SuperCollider3 among them.

So far, I have thought of using a digital audio track to send a one
sample impulse on transport play. The OSC server application
calculates a host time offset from the time it receives this impulse.
I dont like that. its hacky.


It would be great if the OSC Bundle was built with the correct timing
information from the start - in the AU.


any sugestions are welcome.

Thanks for your help Bill.

On 11/12/07, William Stewart <email@hidden> wrote:
This is on our to do list for AULab, but not yet done. I don't know
of
Logic's plans in this area. You are the first to really ask for this,
so perhaps there is enough reason now to look at supporting this
property.


Bill

On Nov 12, 2007, at 5:37 PM, I. K. wrote:

I searched the archives and found only a couple of references
regards
this without much more info than the documentation provided in the
header.


I have tested on several hosts and none seems to have it implemented
including AULab.


Perhaps AudioUnitProperties.h misses to mention its only
applicable to
output AudioUnits?

As a workaround, is there a way for an AU to get a reference to the
AUGraph it is connected to?
This way I could iterate thru the graph collecting latencies and
calculate a persentation latency for mine - based on buffersize, out
device safety buffer size, latency etc...


is there any other way?

tia,
I.


On 11/8/07, I. K. <email@hidden> wrote:
Hello all,
Does anyone know if kAudioUnitProperty_PresentationLatency is
supported in Logic Pro 7.2 and/or Logic Pro 8?

I would appreciate any hints if this property is not supported.
I am coding an AU Instrument so it is only the output presentation
latency I am interested in.


tia,

I.

_______________________________________________
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





_______________________________________________ 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
References: 
 >kAudioUnitProperty_PresentationLatency supported in LogicPro 7.2 and/or 8? (From: "I. K." <email@hidden>)
 >Re: kAudioUnitProperty_PresentationLatency supported in LogicPro 7.2 and/or 8? (From: "I. K." <email@hidden>)
 >Re: kAudioUnitProperty_PresentationLatency supported in LogicPro 7.2 and/or 8? (From: William Stewart <email@hidden>)
 >Re: kAudioUnitProperty_PresentationLatency supported in LogicPro 7.2 and/or 8? (From: "I. K." <email@hidden>)
 >Re: kAudioUnitProperty_PresentationLatency supported in LogicPro 7.2 and/or 8? (From: William Stewart <email@hidden>)
 >Re: kAudioUnitProperty_PresentationLatency supported in LogicPro 7.2 and/or 8? (From: "I. K." <email@hidden>)

  • Prev by Date: Re: kAudioUnitProperty_SupportedNumChannels on MusicDevice
  • Next by Date: FW: aggregate device bugs
  • Previous by thread: Re: kAudioUnitProperty_PresentationLatency supported in LogicPro 7.2 and/or 8?
  • Next by thread: Logic NFR
  • Index(es):
    • Date
    • Thread