Audio – IP interface bord
Embed heeft een Audio over IP interface board ontwikkeld. Hierbij is Embed verschillende uitdagingen tegengekomen. Deze uitdagingen is Embed aangegaan, met een protype als resultaat.
Het Audio over IP interface board
Embed had de taak om een grote hoeveelheid remote inputs en outputs interfacen over IP. Het moest audio af kunnen spelen. Verder was de wens dat verschillende apparaten (tot 25) in staat zijn om simultaan audio te streamen. In een dergelijke setting komt 100mbit Ethernet goed van pas. 100mbit Ethernet biedt namelijk meer dan genoeg bandbreedte voor deze taak. Als een setup heeft Embed PureData gebruikt om audio van een PC naar de apparaten te streamen. PureData stuurt de ruwe audio met behulp van UDP-pakketten met een sample rate van 44100Hz naar het apparaat. De weergave werd gedaan op een PIC32 die op 80Mhz liep.
Buffer moest audio afspelen
De eerste uitdaging die Embed bij dit project tegenkwam, was dat de buffer in staat moest zijn om audio af te spelen, terwijl hij op hetzelfde moment audio ontvangt. De buffer moest groot genoeg zijn om jitter in de binnenkomende datapakketten te hanteren.
Klok correspondeerde niet met de afspeelklok
De tweede uitdaging die Embed tegenkwam, was dat de PC’s weergave klok (44100Hz) niet correspondeert met de afspeelklok van het apparaat. Dit zorgt voor overschrijdingen van de buffer van het apparaat als de PC’s klok sneller is. Aan de andere kant zorgt dit voor een te lege buffer als de klok van de PC langzamer is dan de afspeelklok van het apparaat. Zowel een te lege buffer als overschrijdingen van de buffer leiden tot storingen in het geluid dat afgespeeld wordt.
Dynamische sampling routine
Deze uitdagingen is Embed aangegaan, door een dynamische resampling routine in het apparaat toe te voegen. Als de buffer te vol raakt, worden sommige samples weggegooid. In feite wordt de sample rate van het inkomende signaal verlaagd. Als de buffer leegraakt worden samples toegevoegd door het gebruik van interpolatie. Het effect van deze oplossing is dat de bemonsteringsfrequentie van het inkomende signaal vergroot wordt. Om dynamisch resampling goed te laten werken, moet de sample rate van de binnenkomende data geschat worden. De firmware houdt een sample rate schatting aan, die hij verhoogt als de buffer volloopt tot een bepaalde grens. De schatting wordt verlaagd wanneer de buffer een laag ‘waterpeil’ bereikt.
Hoorbare aanpassingen
Het was voor de engineers van Embed interessant om te luisteren naar de effecten van verschillende waterpeil niveaus en geschatte adaption rates. Sommige instellingen zorgden ervoor dat de sample rate schatting meer dan 5Hz oscilleerde. Dit konden de engineers duidelijk horen wanneer een sinusgolf afgespeeld werd! Met het kiezen van de juiste waarden heeft Embed een heel stabiel afspeelalgoritme bereikt; zonder hoorbare artifacts.