(toiminnot)

hwechtla-tl: Latenssiongelma: viime muutokset

Äänien tuottamisessa sampledatana on tällainen ongelma: äänidataa pitää aina olla saatavilla, kun sitä tarvitaan, muuten ääni katkeaa - mutta jos äänidataa tekee hirmuisesti etukäteen, äänien muutoksiin tulee hirmuinen latenssi. Hmm.

En ole kunnolla tullut ajatelleeksi tätä aikaisemmin, koska olen yleensä tehnyt ääniohjelmointia vain ympäristöissä, joissa ääni voidaan tuottaa synkronisesti, ts. äänestä myös tiedetään etukäteen, millainen se tulee olemaan. Siihen ei tule muutoksia viime hetkellä. Latenssiongelman hienoin ratkaisu olisi periaatteessa se, että äänidatan voisi tehdä valmiiksi, mutta ylikirjoittaa, jos se muuttuu. Tämä on kuitenkin varsin vaikeaa ja monimutkaista, ja lisäksi Unix-ympäristössä on vaikea tietää, mikä kohta äänestä on paraikaa soimassa.

Ehkä pitää vain yksinkertaisesti tehdä kompromissi: jos äänisynteesisoftan voi tavallisessa pöytäkoneessa arvella saavan prosessoriaikaa vähintään 100 kertaa sekunnissa, voinee 44.1 KHz sampleratella puskuroida suunnilleen 400 samplea. Joo. Valitettavasti tuollaiset ~10ms viipeet ovat selvästi ihmiskorvan kuultavissa, mutta parempi sekin kuin ei mitään.

[kategoria: ohjelmointi]


(viimeksi muutettu 27.06.2005 15:41)