Re: Slow growth of latency in AudioUnit render callbacks
Re: Slow growth of latency in AudioUnit render callbacks
- Subject: Re: Slow growth of latency in AudioUnit render callbacks
- From: Chris Jones <email@hidden>
- Date: Thu, 18 Apr 2019 20:53:14 +0100
Hey Matt
Interesting idea, although I would prefer to keep it all as an app if
possible. I know it's possible, because Rogue Amoeba's SoundSource 3 can do
it, but they've removed the feature from SS4 (hence why I'm experimenting
to see if I can make sure I don't lose the ability in the future!). The
Rogue Amoeba folk know a heck of a lot more about this than I do though :)
FWIW, the CAPlayThrough sample does have a varispeed node in the graph,
between the input and output nodes, which I think is supposed to compensate
for small drifts.
Cheers,
Chris
On Thu, 18 Apr 2019 at 19:33, Matt Ingalls <email@hidden> wrote:
> if i remember correctly, that sends audio from one device to another?
> and there’s no compensation in that code for clock drift?
>
> i would instead use an aggregate device (created in Audio MIDI Setup, or
> you can do it programmatically with a little pain)
> with both devices, enabling drift correction. then copy one to the other
> in the single i/o callback.
>
> -m
>
>
> > On Apr 18, 2019, at 1:40 AM, Chris Jones <email@hidden> wrote:
> >
> > Hey folks
> >
> > I'm experimenting with the old CAPlayThrough example code and I'm
> hitting a situation I don't understand yet.
> >
> > Over a period of about an hour on my 4GHz i7 iMac, the audio being
> played-through gets more and more delayed. Initial latency looks to be
> about 150ms and grows up to about 500ms at which point it decays into
> digital noise and then goes silent (the latter I believe being CoreAudio
> discarding my late data).
> >
> > Other than converting some of the C++ objects to ObjC, I don't think
> I've diverged significantly from the original code, but it's hard to
> compare the running performance because the CAPlayThrough sample doesn't
> really build anymore. I've been careful to avoid making ObjC method calls
> in the callbacks (there's one, but it's only called before data starts
> flowing) and data accessed from the ObjC objects is all done via ivars.
> >
> > I'm happy to post the code, if someone would like to have a look at it,
> or I'd be very grateful for some pointers on what I might be doing wrong.
> >
> > --
> > Cheers,
> >
> > Chris
> > _______________________________________________
> > 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
>
>
--
Cheers,
Chris
_______________________________________________
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