Hello everyone,
This will be my first post on the list as well :) My name is Christian Blomert and i'm an iOS developer from Berlin - currently taking my first few steps on audio programming. Talking about audio discontinuity in absence of streaming & packet loss - discontinuity caused by drastic changes in signal: how would one go and detect these discontinuities programmatically? How big of a difference in signal is enough to speak of a discontinuity? In what ways would the change in signal be different from a beat or other instant changes in energy?
Would it be feasible to do the error concealment on the master output by analyzing and repairing the signal? - rather than adding a concealment method to each 'source' of the clicks - e.G. Cues, looppoints, mutes etc?
Cheers in advance for any pointers! Chris On Aug 11, 2012, at 12:36 PM, Michael Tyson wrote: Hi Yoann,
It sounds to me like you're not padding your incoming audio stream with silence when you miss a packet. If you're just feeding the audio queue each audio packet as it enters the system, then when you lose a packet in transit (say, of 5 ms), then unless you insert 5ms of silence where the packet should have been, your audio stream is going to advance by 5ms, growing out of sync.
You also need to be aware of issues with discontinuity if you're going for decent-sounding audio in the presence of packet loss. If you merely insert silence in place of lost packets, you'll get an audible click at the start and end of that region. There are various techniques to mitigate this problem (the area is called 'error concealment').
Speaking generally, where you have the option to do so it's best to use an existing, tried-and-true implementation, rather than writing your own from scratch, especially if you're not familiar with audio programming. (Says the guy who just finished writing his own implementation. D'oh.)
Best of luck, Michael
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
|