Tämä seminaariesitelmä sisältää katsauksen audioformaatteihin. Tarkoituksena on aikaansaada mahdollisimman hyvä kuva siitä, millaisia lähinnä tietokoneaudioformaatteja on olemassa, sekä tutustua niiden rakenteeseen.
Motivaationa kirjoitelmalleni on ollut oma kiinnostukseni aiheeseen. Lisäksi olen halunnut koota yhteen mahdollisimman paljon muutoin niin hajanaisen aiheryhmän tietoa. Seminaarikirjoitelmaksi tämä saattoi hieman venyä. Ajattelisin kuitenkin tämän olevan hyvänä pohjana 'peruskäsikirjaksi' itselleni, jota on mahdollista tarpeen vaatiessa aikojen saatossa täydentää. Erääksi valitettavaksi seikaksi muodostui myös ajan loppuminen, joten myöhemmin esille tulleita mahdollisia varteenotettavia tietolähteitä jäi tutkimatta.
Seminaariesitelmäni pyrkii antamaan mahdollisimman laajan kuvan audioformaattien ja -käsittelytapojen alueelta.Tieto on koostettu useista eri tietolähteistä. Aihepiiristä ei ole helposti löydettävissä erillistä kirjallisuutta, vaan aihepiiriä koskevaa tietoa on sisällytettynä muihin yhteyksiin, josta olennaisimpia audioformaatteja koskevia asioita on koottu tähän kirjoitelmaan.
Kirjoitelmassa esiintyy paljon asioita, jotka voidaan ajatella soveltuvan useampaankin asiayhteyteen. Viittausten määrä olisi kasvanut niin suureksi, etten tämän vuoksi ole niitä käyttänyt, vaan lukijalla on mahdollisuus itse ottaa asiasta selvää kulloinkin kyseessä olevan asiasanan yhteydestä. Lisäksi liitteet sisältävät osviittaa useisiin kohtiin (mainittu erikseen ao. kohdassa).
MIDIä (Musical Instrument Digital Interface) en käsittele kirjoitelmassani ollenkaan, sillä se jää toimintaperiaatteeltaan ja asiasisällöltään hieman aihepiirin ulkopuolelle. Sitä kuitenkin sivutaan muutamien formaattien yhteydessä. MIDI-ääni on viestejä esimerkiksi sähköisten soittimien (syntetisaattorit) ja tietokoneiden välillä. Se siis sisältää vain tietoa siitä, miten toiminta suoritetaan, eikä lainkaan yksittäistä signaalitietoa. MIDI on kuitenkin massiivinen järjestelmä, josta on saatavilla paljon tietoa niin kirjallisuudessa kuin tietoverkossakin. Lisätietolähteenä voin mainita esimerkiksi Musiikki internetissä -kirjoitelmani (Jan-Markus Holm, http://www.jyu.fi/~hojakr/Intermus.html, kevät 1997), jossa käsitellään mm. MIDIn yleisiä piirteitä.
Kirjoitelman aluksi käydään läpi ääneen liittyviä yleisiä seikkoja ja sen elektroniseen käsittelyyn liittyviä perusperiaatteita, sekä signaalinkulkua ja -käsittelyä. Luvussa 3 tarkastellaan äänen digitaaliseen muokkaukseen sisältyviä perustapahtumia ja yleisesti tietokoneella tapahtuvassa äänenkäsittelyssä huomioonotettavia tekijöitä. Tämän jälkeen siirrytään digitaalisen äänen ja koodauksen perusteisiin, josta päästään sujuvasti äänen koodauksen ja kompressointimenetelmien tarkastelemiseen.
Luvussa 6 tullaan kirjoitelman varsinaiseen pääteemaan, eli audion koodaus- ja tallennusmuotoihin, joita voidaan kutsua myös tallennusstandardeiksi tai audioformaateiksi. Sokeriksi pohjalle olen ottanut luvussa 7 esille tapauksia reaaliaikaisen tiedonsiirron digitaaliaudioprotokollista.
Ääniaaltoja on mahdollista muokata ja käsitellä. Luonnollisessa ympäristössä ihminen voi työntää pumpulitupot korviinsa ja näin vaimentaa tulevia ääniaaltoja. Megafonilla ääntä voidaan vahvistaa ja eri instrumenteilla saatu ääni on suora tulos fysikaalisista ilmiöistä, kuten kielen tai ilmapatsaan värähtely. Koska ääni on oikeastaan ilmanpaineen vaihtelua ilmassa, voidaan se muuttaa esimerkiksi jännitevaihteluiksi. ([El, 1994],[Ba, 1985], [Bu, 1993], [Fda, 1997], [Ko, 1993]).
Elektroninen media tarjoaa mitä suurimpia mahdollisuuksia äänen muokkaamiseen. Elektronisessa muodossa ääntä voidaan mm. suodattaa, muuttaa sen aika-arvoja, kääntää takaperin, vertailla toiseen informaatioon, lajitella, kasvattaa tai pienentää intensiteettiä ja säröttää. Digitaalista informaatiota voidaan prosessoida eri prosessointilaitteilla, kuten esimerkiksi sekvenssereillä (music sequencers) ja kovalevyäänittimillä (direct-to-disk audio recorders).
Eräs elektronisen signaalin muokkaamisen perusparametreista on amplitudin (äänenvoimakkuus) muokkaaminen. Tämä tapahtuu linjavahvistimien avulla. Lisäksi ohjelmasignaalia on mahdollista muokata lukemattomilla muilla tavoilla. Tätä varten on suotimia (filters), jotka toimivat eri medioita yhdistävinä prosessoreina. Nämä siis nimensäkin mukaisesti valikoivat tarvittavan informaation, äänen tapauksessa halutut taajuudet. Suotimia ovat muun muassa sulkusuotimet (cut-off filters), yli- ja alipäästösuotimet (high-and low-pass filters), sekä kaistansuotimet (band-pass filters).
Signaalia voidaan myös tuottaa ja syntetisoida elektronisesti. Tästä voi olla joskus hyötyäkin. Esimerkiksi edullinenkin systeemi voi tuottaa laaja-alaisemman äänen kuin yksikään mekaaninen instrumentti tai luonnollinen äänilähde. Elektronisia signaaleja tuottava komponentti on nimeltään oskillaattori (oscillator), joka on nimetty muodostamiensa oskilloivien aaltojen mukaan. Monimuotoisemmat signaalit muodostetaan modulaatiotekniikalla. Siinä signaaliin vaikutetaan toisen aallon tiedossa olevilla parametreillä (taajuus, amplitudi, pulssinleveys). Syntetisaattoripiirien äänenprosessointi perustuu pitkälti juuri tähän.
Äänenkäsittely tietokoneessa on aina digitaalista. Ääni voi olla peräisin useasta eri äänilähteestä, jotka voidaan yhdistää tietokoneessa. Mikrofonin tai muun äänilähteen välityksellä saadun analogisen audiosignaalin sisäänlukemiseksi tarvitaan esimerkiksi äänikortti. Digitaalisessa aaltomuodossa tallennettuun ääneen voidaan ajatella olevan kuin äänilähteestä tulevien ääniaaltojen kuvan. Tallennus ja toisto tapahtuvat tietokoneen äänijärjestelmän toimiessa digitaalisen ääninauhurin tapaan. Ääniaallot, puhe, musiikki tai hälyäänet, muuttuvat mikrofonissa sähköiseksi, analogiseksi värähtelyksi, joka johdetaan tietokoneen äänijärjestelmän analogia/digitaalimuuntimeen. Malli signaalin kulusta on esitetty kuvassa 1.
Ääni digitoidaan tietokoneeseen liitetyllä A/D-muuntimella (Analog/Digital Converter). Tämä on mikropiiri, jolla värähtelystä (aalloista) otetaan näytteitä tasavälein (ts. aalto 'katkaistaan') ja otetaan siitä 'poikkileikkaus', joka kertoo aallon korkeuden (amplitudin) katkaisuhetkellä. Tämä tieto tallennetaan numeerisessa muodossa. Äänen digitoinnissa vallitsevat yleiset digitoinnin pelisäännöt: näytteenottotaajuus vaikuttaa äänen taajuuskaistaan eli äänen kirkkauteen. A/D-muunnoksen tasojen määrä (kvantisointi) määrää digitoidun äänen dynamiikan eli hiljaisten ja voimakkaiden äänien suhteen. Molemmat vaikuttavat digitoidun äänen sisältämään tiedon määrään ja siten myös näin saatavan tiedoston kokoon. Kun näytteitä otetaan riittävän tiheästi, esimerkiksi 22000 kertaa sekunnissa, niistä muodostuu varsin hyvä kuva alkuperäisestä ääniaallosta.
Kuva 1. A/D- ja D/A-muunnoksen informaatio analogisen ja digitaalisen signaalin välillä.
Seuraavassa pieni katsaus digitaalisen audion kehityshistoriaan:
A/D- ja D/A -muuntimet (Analog-To-Digital and Digital-To-Analog Converter, ADC and DAC) ovat laitteita, jotka saattavat audiosignaalin tietokoneella käsiteltävään muotoon ja siitä takaisin. Nämä ovat siis erillisiä muunninpiirejä, jotka voivat sijaita esimerkiksi tietokoneeseen liitettävässä äänikortissa. ([Ba, 1985]).
A/D-muunnin vastaanottaa analogisen jännitepulssin ja muuntaa sen diskreettien lukujen sarjoiksi prosessissa, jota voidaan kutsua digitoinniksi (digitizing) tai näytteistykseksi (sämpläykseksi, sampling). D/A-muunnin taas kääntää diskreetin sarjan jatkuvaksi analogiseksi jännitteeksi. Näitä piirejä käytetään joko erikseen tai yhdessä useissa eri digitaalisen median laitteissa.
A/D-muuntimen ulostulosignaali on nykyisin usein 8- tai 16-bittinen digitaalinen 'sana', joka sisältää analogisen jännitesignaalinäytteen amplitudin.
Digitaaliset suotimet voidaan jaotella kahteen pääluokkaan: äärelliseen impulssivasteeseen (Finite Impulse Response FIR) ja äärettömään impulssivasteeseen (Infinite Impulse Response, IIR) perustuviin. IIR-suodin on samanlainen analogisen kanssa siinä, että impulssi vaimenee eksponentiaalisesti ajan suhteen katoamatta koskaan kuitenkaan täysin. Yleisen digitaalisen suotimen lohkokaavio on esitetty kuvassa 2.
Analoginen signaali muunnetaan näytteistetyksi dataksi digitaalista suodatusta varten. Yleinen Nyquistin teoria näytteistyksestä kertoo sen, että näytetaajuuden tulee olla ainakin kaksinkertainen korkeimpaan sisääntulosignaalin perustaajuuskaistaan verrattuna prosessoituakseen virheettömästi. Tavallisesti käytetään analogista alipäästösuodinta (Low-pass filter) signaalin esiprosessoimiseksi niin, ettei A/D-muuntimelle pääse kuin suuruudeltaan korkeintaan puolet näytteistystaajuudesta olevia signaaleja.
Kuva 2. Tyypillinen digitaalisen suotimen lohkokaavio.
Näytteistys- ja pidätyspiirin (Sample-and-hold circuit) tarkoituksena on varmistaa, ettei A/D-muuntimelle tulevan signaalin jännite muutu aikana, jonka analogisesta digitaaliseksi tapahtuvan muunnos vaatii.
Jokaisen näytteistysvaiheen lopuksi digitaalisuodin tuottaa 8- tai 16-bittisen 'sanan' D/A-muuntimelle, joka muodostaa analogisen amplituditiedon digitaalisesta merkistöstä riippuen. Joskus voidaan käyttää alipäästösuodinta signaalia pehmentävänä jälkiprosessointisuotimena eliminoimaan signaalissa mahdollisesti tapahtuneita virheitä.
Analoginen signaali näytteistetään ja pidätetään (pidätyspiiri) useasti analogisesta digitaaliseksi tapahtuvan muunnoksen aikana. Sisääntuleva analoginen signaalinäytteistetään muunnoskierroksessa ensimmäisenä. Näytteistysvaiheen lopussa kapasitori (kuva 3) puretaan valmistauduttaessa vastaanottamaan uusi sisääntuleva näyte.
Kuva 3. Näytteistys- ja pidätyspiiri näytteistystaajuudella 1/T Hz.
Kuva 4 esittää 8-bittisen riittävän approksimaation
A/D-muuntimelle (ADC). Tämän tyyppinen konvertteri vaatii kahdeksan
kellobittiä muunnoksen suorittamiseksi sisääntulosignaalista
huolimatta. Pääsääntöisesti tällaisella muuntimella
on tarpeeksi suuri konversionopeus. Muunnos alkaa aloituspulssilla ja päättyy
kahdeksan kellokierrosta myöhemmin. Sisääntulosignaali pysyy
vakiona koko muunnosprosessin ajan, kunnes se kulkee näytteistys-
ja pidätyspiirin kautta.
Kuva 4. A/D-muunnin
A/D-muunnin löytää sisääntulevalle jännitesignaalille V(in) 'digitaalisten sanojen' maksimin, joka tämän perusteella asettaa vertaimen (comparator) ulostulojännitteen V(c) nollaksi. N-bittiselle konvertterille tämän voi suorittaa N:nä askeleena. Aluksi kaikki kahdeksan bittiä on asetettu nollaksi. Ensimmäisen askelen aikana 'kaikkein tärkein bitti' MSB (Most Significant Bit) nostetaan jännitteeseen (+5V). Jos V(c) on silti nolla, on ensimmäinen askel suoritettu ja kuudes bitti nostetaan toisen kierroksen alussa. Jos V(c) on ollut nostettuna ensimmäisellä askeleella on MSB laskettu takaisin alas nollaksi ja kuudes bitti nostettu toisen kierroksen alussa. Prosessia jatketaan niin kauan että kaikki kahdeksan bittiä on asetettu.
Kuvan 3 jännitteen V(-) vertaimen negatiivinen sisääntulo voidaan ajatella kahdeksan binaarisen jännitteen lineaarisena summana kaavan
V(-)=1/2{V(7)+1/2[V(6)]+1/4[V(5)]+1/8[V(4)]+1/16[V(3)]+1/32[V(2)]+1/64[V(1)]+1/128[V(0)]}
mukaisesti, jossa V(7) on MSB ja V(0) LSB (Least Significant Bit). Porrasmainen vastusverkosto on oikeastaan D/A-muunnin, joka uusii analogisen jännitteen lähimpänä oikeaa olevan bittijärjestyksen tarkistamiseksi sisääntulojännitteen ja uusitun jännitteen välillä. Maksimaalinen muunnosnopeus riippuu vertaimen tarvitsemasta ajasta ja vaihtomuutosten asettumisen vaatimasta ajasta. Jännitteen ja virran vastineet vertaimessa vaikuttavat vertauspisteeseen ja näin ollen koko A/D-muuntimen tarkkuuteen. Muunnoksen ollessa ohitse on digitaalisen ulostulon tarkkuus ±½ LSB.
D/A-muunnos on kuvailtu jo aikaisemmin muunninapproksimaation esittelyssä luvussa 2.2.3. Kuva 5 osoittaa D/A-muuntimen (DAC) perustuvan vastusportaistoon. Muunnosprosessi on hyvin nopea, sillä se riippuu ensisijaisesti yksinkertaisen operaatiovahvistimen asettumisajasta. Binäärijännite D/A sisääntulossa täytyy olla tarkkaan verrattu tietyille korkeille ja matalille tasoille täsmällisen analogisen signaalin uudelleenmuodostumiseksi.
Kuva 5. D/A-muunnin.
Ääntä voidaan tietokoneessa käyttää tietyssä määrin myös analogisessa muodossa. Se käsittää äänen, joka tulee ulkoisesta lähteestä, eikä sitä ole tallennettu tietokoneeseen digitaalisessa muodossa käsiteltäväksi. Ulkoisesta lähteestä tulevaa ääntä voi kuitenkin ohjata tietokoneen avulla. Tärkein ulkoinen äänilähde on usein kuitenkin CD-asemassa oleva CD-äänilevy. Ulkoisena äänilähteenä voi olla myös puhelin, jolloin multimediatekniikka mahdollistaa tietokoneen käytön esimerkiksi puhelinvastaajana, tai erilaiset puhelinpalvelinsovellukset. Lisäksi on mahdollista liittää tietokoneeseen radio- tai televisioviritinkortti ja saada lähetyksistä tuleva ääni tietokoneen käytettäväksi.
Seuraavassa perehdytään äänen laatuun vaikuttaviin tekijöihin. Se, miten hyvin tallennettu (ylipäätään tietokoneella prosessoitu) ääni toistettaessa vastaa alkuperäistä, riippuu siitä, miten tarkka kuva siitä on tallennettu. Tähän vaikuttaa ennen kaikkea kaksi tekijää: näytteistystiheys ja näytekoko. Kuvassa 6 on esitetty Windows-sovelluksella muokattu ääninäyte. ([Ko, 1993], [Bu, 1993], [AFF1, 1995]).
Kuva 6. Esimerkki näytteistetystä äänestä wav-muodossa eräällä editorilla kuvattuna.
Näytteistystaajuus (sampling rate) tarkoittaa sitä, kuinka tiheästi näytteitä on otettu. Näytteistystaajuus ilmoitetaan taajuutena, kiloherzeinä (tai herzeinä eli n kertaa sekunnissa), joka tarkoittaa näytteiden määrää sekunnissa (samples/sec). Mitä tiheämmin näytteitä otetaan, sitä suurempi kiloherziluku ilmoittaa näytteistystiheyden, ja sitä parempi on saadun äänen laatu. Koska näytteitä otetaan ajan mukaan etenevistä aalloista, näytteistystiheys määrää, miten korkeat äänet tallentuvat ja toistuvat. ADC ottaa tilannekuvan eli näytteen (sample) analogisen signaalin tasosta tietyllä ajanhetkellä. Näytteistystaajuus ilmoittaa, kuinka usein analoginen signaali digitoidaan.
Äänen korkeus riippuu sen värähtelytaajuudesta. Jos näytteitä otetaan esimerkiksi 11 000 kertaa sekunnissa eli näytteistystiheys on 11 kHz, mutta äänen taajuus on vaikka 15 kHz eli 15 000 värähdystä sekunnissa, ei kaikista värähdyksistä saada lainkaan näytettä. Jos äänen taajuus on 11 kHz, saadaan kustakin ääniaallosta vain yksi näyte, joka ei riitä. Vasta kun kustakin aallosta saadaan kaksi näytettä (suurin piirtein pohjalta ja huipulta, positiivinen ja negatiivinen amplitudin taso), muodostuu niistä suurin piirtein oikea kuva. Siksi 11 kHz:n näytteistystaajuudella toistuvat hyvin vain 5,5 kHz:ä matalammat äänet. Hyvään toistoon vaaditaan kuitenkin useampia näytteitä kustakin aallosta. Nyquistin teoreeman mukaan tietyntaajuisen äänen toistumiseen vaaditaan siksi vähintään kaksinkertainen, ja korkealaatuiseen nelinkertainen näytteistystaajuus. Näytteistystaajuudet esitetään aina kanavakohtaisesti laskettuina, joten esimerkiksi äänitettäessä stereodataa 8000 näytettä sekunnissa, on näytteitä oikeastaan 16000 sekuntia kohden.
44,1 kHz | CD-äänilevyn standardi |
22,1 kHz | keskiaaltoradion taso |
11,025 kHz | puheen tallennus, hyvän puhelinlinjan taso |
5,5 kHz | vastaa huonon puhelinlinjan tasoa |
Taulukko 1. PCM-standardin näytteistystaajuudet.
Tietyt näytteistystaajuudet ovat monestakin syystä suositumpia
kuin toiset. Toiset tallennuslaitteet ovat rajattuja tietylle alueelle
ja taas tietyt toistolaitteet tukevat suoraan niitä. Tavallisimpien
taajuuksien suosio voidaan selittää yksinkertaisemmin myös
kellotaajuutta jakavilla piireillä.
Näytettä sekunnissa | Kuvaus |
5500 | Neljäsosa Macin näytteistystaajuudesta (tavataan harvoin). |
7333 | Kolmasosa Macin näytteistystaajuudesta (tavataan harvoin). |
8000 | Puhelinstandardi yhdessä u-law (ja a-law) -enkoodauksen kanssa. Jotkut systeemit käyttävät hieman eri taajuutta. Esim. NeXT-työasema käyttää taajuutta 8012.8210513 eli samaa, jota myös Telco CODECit käyttävät. |
11 k | Joko neljäsosa CD:n (11025) tai puolet Macin näytekoosta (kenties yleisin Macin koko). |
16000 | Käytetään mm. G.722-kompressointistandardissa. |
18.9 k | CD-ROM/XA -standardi. |
22 k | joko puolet CD:n näytekoosta (22050) tai Macin näytekoko. Taso on tarkalleen 22254.545454545454, mutta yleensä lyhennetään 22000:een. |
32000 | Käytetään digitaaliradiossa, NICAMissa (Nearly Instantaneous Compandable Audio Matrix [IBA/BREMA/BBC]), sekä monessa muussa TV-työskentelyssä. Myös pitkäsoittoinen DAT ja HDTV. |
37.8 k | CD-ROM/XA -standardi (korkeampi laatu). |
44056 | Tämä oudompi taajuus on ammattimaisten audiolaitteiden käytössä (mm. eri tyyppinen näytteiden sovittaminen medioiden kesken). |
44100 | CD:n näytekoko. (Myös DAT äänittäessä digitaalisesti CD:ltä käyttää tätä). |
48000 | DAT-nauhurin näytteistystaajuus. |
Taulukko 2. Esimerkkitaulukko näytteistystasoista.
Äänen laatuun vaikuttaa systeemin erottelukyky (resolution). Mitä suurempi määrä signaalin tasoa kuvaavaa dataa on, sitä hienompi on kuvattavan signaalin tarkkuus. Signaalin resoluutiolla eli erottelukyvyllä tarkoitetaan siis sitä, millainen määrä bittejä on varattu kuvaamaan signaalin kunkin pisteen amplitudia. Mitä suurempi bittiresoluutio on, sitä suurempi määrä diskreettejä amplitudiarvoja voidaan esittää. Esimerkiksi normaalille audio-CD:lle on standardoitu 16 bitin resoluutio, jolloin jokaisen audiosignaalin pisteen amplitudiarvo voidaan esittää 65536 eri arvolla. Vastaavasti 8-bittisessä audiossa on vain 256 eri amplituditasoa.
Erottelukyvyn bittien lukumäärä määrää myös signaalin dynamiikan, jolloin jokainen bitti vastaa 6 dB. Täten 8-bittinen audio antaa 48 dB:n dynamiikan (kasettidekki), 12-bittinen 72 dB:n (avokelanauhuri), ja 16-bittinen 96 dB:n dynamiikan (lähellä ihmiskorvan dynamiikkaa).
Kvantisointia (quantization) esiintyy silloin, kun lähdesignaalin arvot sijoittuvat erottelukyvyn mahdollistavien arvojen väliin. ADCn tapauksessa analoginen arvo pyöristetään eli kvantisoidaan lähimpään tarjolla olevaan digitaaliarvoon. Kvantisointi siis tuottaa eräänlaisen porrasefektin, joka voidaan havaita pienenä luonnottomuutena DACsta ulostulevassa signaalissa. Audion tapauksessa tämä voidaan havaita hieman rakeisena tai suhisevana äänenä. Kvantisoinnista aiheutuvat haittavaikutukset siis pienenevät resoluution kasvaessa.
Kvantisoinnissa täytyy aina ottaa huomioon virheiden mahdollisuus, joskin ne ovat hyvin pieniä. Suuriamplitudisella signaalilla on hyvin pieni korrelaatio signaalin ja virheen välillä. Virhe on siis erittäin satunnaista ja ilmenee analogisen valkoisen kohinan tapaan. Matalatasoisilla signaaleilla virheiden muoto signaalin suhteen muuttuu ja se ilmenee signaalissa säröytymisenä (distortion). Korrelointia voidaan poistaa lisäämällä analogista signaalia, värinää (dither), ensisijaisesti lineaariseen A/D-muuntimeen. Tästä hyödytään siinä, että kvantisoinnin virheet satunnaistuvat. Tällöin värinä ei peitä häiriöitä, vaan poistaa ne.
Värinäsignaalin lisäys siis minimoi säröytymisen. Se tarjoaa myös mahdollisuuden enkoodata amplitudeja pienemmiksi kuin 'vähäpätöisimmän bitin tekniikassa' (esim. luku 2.2.3.). Tällaisia tekniikoita ovat mm. pulssinleveysmodulaatio (pulse width modulation) ja keskiarvoistus (averaging). Värinä vaikuttaa ääneen digitointisysteemissä nostamalla äänentasoa hieman.
Äänentason vuodot yli normaalitasosta ilmenevät suhisevina ääninä. Tätä kutsutaan äänen rakeutumiseksi (granulation noise).
Aaltomuotoisena tallennetun äänen vaatima tila T (tavuina) voidaan laskea kaavalla:
T=(K*F*B*t)/8
jossa
Kaavasta voidaan nähdä tiedostokoon nopea kasvu pyrittäessä korkealaatuiseen ääneen. Esimerkiksi 10 sekunnin CD-tasoinen stereoääni vaatii 1.7 Mt tallennustilaa, mutta 8-bittinen, 11 kHz:n monoääni vain 110 kt.
Tallentamisen ja toistamisen tarkkuus riippuu käytettävän tietokoneen äänijärjestelmän ominaisuuksista. Äänikortteja (A/D- ja D/A-muuntimia) on sekä 8- että 16-bittisinä. 8-bittinen äänikortti käsittelee vain 8-bittistä ääntä, mutta 16-bittisellä on mahdollista sekä 8- että 16-bittinen käsittely. Äänen lopullinen laatu riippuu luonnollisesti tallennustason lisäksi monista eri tekijöistä, kuten alkuperäisen äänen tasosta, tietokoneen äänijärjestelmän ominaisuuksista (kohinasuhde, häiriöttömyys) ja toistolaitteistosta (vahvistin, kaiutin, kuulokkeet) sekä kuunteluympäristöstä (melu). Äänen tallennustasoa määriteltäessä on siksi otettava huomioon äänijärjestelmän kokonaisuus ja arvioitava, millaisessa tilanteessa ja millaisin välinein ääntä tullaan tarvitsemaan.
Tietokonepohjaiset digitaaliaudiotuotteet käyttävät hyväkseen muunnintekniikkaa, jossa ADC digitoi audion ja DAC muuntaa numeerisen informaation takaisin analogiseen muotoon. Laitteistovaatimuksissa ja digitaalisen esityksen muodoissa on eroja yksinkertaisten audiodigitoijien (audio digitizers) ja kovalevyäänityssysteemien (hard disk recording systems) välillä. ([Bu, 1993], [Ida, 1996]).
Digitaalitekniikalla pystytään koodaamaan lähes virheettömästi koko äänikaista, mutta sen laadukas toteuttaminen vaatii suuren bittinopeuden. Studiokäytössä yleisessä DAT-järjestelmässä (Digital Audio Tape) käytetään 48 kHz:n näytteenottotaajuutta sekä lineaarisesti 16 bitillä kvantisoitua PCM-signaalia (Pulse Code Modulation). Perinteisillä koodausmetodeilla päästään noin puoleen tämän vaatimasta tilasta, jolloin saavutettu hyöty on vasta liian pieni.
Seuraavassa muutamia esimerkkejä myös muista digitaalisista äänilähteistä. CD (Compact Disk) sisältää 16-bittistä, PCM-moduloitua, 44.1 kHz:stä signaalia. DCC (Digital Compact Cassette) on 16-18-bittistä, kompressoitua (PASC) signaalia. MD (MiniDisc) myös 16-bittistä kompressoitua (ATRAC) signaalia. DSR (Digital Satellite Radio) on 16:sta 14:ään bittiin kompanderoitua (companding, kompressori-ekspanderi) signaalia.
Ominaisuuksina digitaalisella audiosignaalilla edellisiin on 32, 44.1 ja 48 kHz:n näytteistystaajuudet ja vähintään 16-bittinen pituus, sekä dynamiikka-alue, joka on laajempi kuin 96 dB. Vaatimuksina lähinnä ovat 18-bittinen A/D-muunnin ja vähintään 16-bittinen signaaliprosessori.
Koodausmenetelmiä käsitellään enemmän luvussa 5 ja koodausstandardeja luvussa 6.
Audiodigitoijassa on yleensä suhteellisen halpa ADC-systeemi muuntamassa balansoimattomasta sisääntulolinjasta saatavaa signaalia audioaalloista näytteistettyyn muotoon. Laatu on usein 8-bittistä näytteistystaajuuksilla 22 kHz:stä alaspäin aina 11 kHz:iin (jopa alemmas). DAC on samaa tasoa.
Laitteistoissa voi olla usein sisäänrakennettuja ominaisuuksia (kaiuttimia, (puhe)mikrofoneja). Esimerkiksi Macintoshin sisäänrakennettu audiojärjestelmä on 8-bittinen 22 kHz:n taajuudella. Tuotteet, kuten MacRecorder ja sisäänrakennettu mikrofoni ovat hyvä esimerkki edullisesta systeemistä.
Audion digitoinnin piirissä on suurena taipumuksena standardoida pääasiassa vain muutama näytteistystaajuus, tiedostoformaattien eroista huolimatta. Näitä ovat 8000 Hz:n 8-bittinen u-law mono, 22050 Hz:n 8-bittinen merkitsemätön mono ja stereo, sekä 44100 Hz:n, 16-bittinen merkitty mono ja stereo.
Laitteistojen kehitys menee eteenpäin huimaa vauhtia ja aina tehokkaampia laitteistoja ja lisäosia (äänikortit ym.) tulee markkinoille. Taulukossa 3 on kuitenkin listattuna suuntaa-antavaa laitteistotietoa äänenkäsittelyn näkökulmasta. On otettava huomioon se, että taulukkoon on merkitty laitetiedot ilman erillisosia. Laitteille on olemassa suuri määrä erillistä 'hardwarea' mm. äänityksiin ja digitointiin. Laitteet tarvitsevat luonnollisestikin erilliset ohjelmistot. ([AFF1, 1995]).
Laite | Bittejä | Maksimi näyt.taajuus | Kanavien määrä (output) |
Acorn Archimedes | ~u-law | ~180k | 8 (stereo) |
Amiga | 8 | vaihteleva 15k - 29k (max.) | 4 (stereo) |
Apple IIGS | 8 | 32k | 16 (stereo) |
Apple Macintosh (kaikki) | 8 | 22.05k | 1 |
Apple Macintosh (uudet) | 16 | 64k | 4 (128) |
Atari ST | 8 | 22k | 1 |
Atari STE, TT | 8 | 50k | 2 |
Atari Falcon 030 | 16 | 50k | 8 (stereo) |
DEC 3000 | u-law | 8k | 1 |
DEC 5000/20-25 | u-law | 8k | 1 |
HP9000/705, 710, 425e | u, a-law, 16 | 8k | 1 |
HP9000/715, 725, 735 | u, a-law, 16 | 48k | 1 (stereo) |
HP9000/755 | u, a-law, 16 | 48k | 1 (stereo) |
NCD MCX terminal | u, a, 8, 16 | 52k | 1 (stereo) |
NeXT (perus) | u-law, 8, 16 | 44.1k | 1 (stereo) |
PC/soundblaster pro | 8 | 22.05k / 44.1k | 1 (stereo) |
PC/soundblaster 16 | 16 | 44.1k | 1 (stereo) |
PC/pas | 8 | 44.1k / 88.2k | 1 (stereo) |
PC/pas-16 | 16 | 44.1k / 88.2k | 1 (stereo) |
PC/turtle beach multisound | 16 | 44.1k | 1 (stereo) |
PC/roland rap-10 | 16 | 44.1k | 1 (stereo) |
PC/gravis ultrasound | 8/16 | 44.1k | 14-32 (stereo) |
SGI (Silicon Graphics) Indigo | 8, 16 (Motorola 24-bit DSP) | 48k | 4 (stereo) |
SGI Indigo2,Indy | 8, 16 (Motorola 24-bit DSP) | 48k | 16 (stereo) |
Sony NWS-3xxx | u, a, 8, 16 | 8-37.8k | 1 (stereo) |
Sony NWS-5xxx | u, a, 8, 16 | 8-48k | 1 (stereo) |
Sun Sparc | u-law | 8k | 1 |
Sun Sparcst. 10 | u-law, 8, 16 | 48k | 1 (stereo) |
Tandy 1000/*L* | 8 | 44k | 1 |
Tandy 2500 | 8 | 44k | 1 |
VAXstation 4000 | u-law | 8k | 1 |
Taulukko 3. Laitteistokohtaista esimerkkitietoa bittimääristä, näytetaajuuksista ja kanavamääristä.
PC-tietokoneiden uusin aluevaltaus musiikkistudioissa ovat kovalevyäänittimet (Hard Disk Recorder). Järjestelmä korvaa perinteisen analogisen moniraitanauhurin digitaalisella systeemillä. Kovalevyäänityksessä analoginen tulosignaali muunnetaan digitaaliseksi AD-muuntimella ja tallennetaan (yleensä SCSI-liitäntäiselle) kovalevylle. Toistossa tiedosto luetaan levyltä ja muunnetaan jälleen analogiseksi.
Äänen laatu on samaa tasoa kuin CD:ssä tai DATissa ja editointimahdollisuudet ovat suuret. Ääntä pääsee käsittelemään jopa tuhannesosasekunnin tarkkuudella.
Kovalevyäänittimiä on pääasiallisesti kahta tyyppiä: tietokoneen sisälle asennettavalla lisäkortilla toimivat ja ulkoiset, tietokoneesta riippumattomat, järjestelmät. Tässä esitelmässä keskitytään ainoastaan tietokoneeseen asennettaviin systeemeihin.
Sisäiset järjestelmät (esim. DigiDesign Session 8) käyttävät PC:n sisälle asennettavaa lisäkorttia, joka sisältää järjestelmän tarvitsemat AD-muuntimet ja ohjauselektroniikan. Tietokoneeseen asennettava ohjelmisto ohjaa kortin toimintaa. Etuna perinteiseen analoginauhuriin ja ulkopuoliseen digitaaliäänittimeen tarjoaa sisäinen kovalevyäänitin tutun käyttöliittymän ja toiminnan integroitumisen yhdelle koneelle.
Useimmat kovalevyäänittimet ovat 8-raitaisia. Kotikäyttöön on myös neliraitaversioita, esim. Turtle Beachilta. Turtle käyttää äänen tallennukseen ja toistoon tietokoneen omia kovalevyjä (myös AT/IDE-liitäntäisiä). Kovalevyäänitysten laitteistojen tekniikka edistyy huimaa vauhtia.
Ilmoitettu raitamäärä kovalevyäänittimissä ei kuitenkaan kerro koko totuutta. Useimmissa laitteissa hyödynnetään ns. non-destruktiivista editointia. Tämä tarkoittaa sitä, että jokainen yksittäinen äänitys joka laitteella tehdään, varaa levyltä oman tilansa. Vaikka sama kohta kappaleesta äänitetään samalle raidalle uudestaan, ei edellinen otto tuhoudu, vaan se on tarpeen vaatiessa palautettavissa. Näin käyttäjä voi tallettaa käytettävissä olevasta levytilasta riippuen suuren määrän 'virtuaaliraitoja', joista voidaan valita ne, joita lopulta käytetään.
Toinen raitamäärään vaikuttava seikka on tehdä ns. downmix. Downmixissä useampi raita yhdistetään miksaamalla yhdeksi ja tallennetaan tulos uudelle raidalle. Näin nämä kaksi ensimmäistä raitaa vapautuvat uudelleen käytettäviksi. Sama onnistuu tietenkin myös analogilaitteissa, mutta digitaaliäänityksessä ei kohina lisäänny raitojen yhdistämisestä, joten summaamista voidaan tehdä huomattavasti laajemmassa mittakaavassa kuin analoginauhureissa.
Tavanomaisen audiosignaalin talteenotto ja säilytys sellaisenaan vaatii resursseja. Niinpä on tehty kokeiluja muistitilan pienentämiseksi. On esimerkiksi kokeiltu jättää hiljaisia tai muita ihmisen kuulemattomia hetkiä tallentamatta, poistaa usein toistuvia komponentteja tai muuttaa koodausta. Voidaan esimerkiksi tallentaa kahden näytteistetyn arvon erotus varsinaisten arvojen sijaan. Tämä vie vähemmän tilaa, sillä aalto ei juurikaan muutu näytteiden välillä. Edellä mainitut toimenpiteet perustuvat ns. säästö- eli reduktiokoodaukseen. ([Coas, 1996], [Wab, 1997]).
Lisäksi hyödynnetään kuulokynnystä, joka on äänentaso, jolla ihminen pystyy kuulemaan tietyntaajuisen äänen. Ihmisen kuulokynnys on parhaimmillaan 4kHz:n taajuudella. Se on erittäin alhainen (~0 dB) 1-5 kHz:n taajuusalueella, jolla alueella kuulokynnyksestä ei ole hyötyä äänenkoodauksessa. Mutta koska korkeammilla äänillä (>16kHz) kuulokynnys nousee jyrkästi, käytetään koodausta näille alueille.
Edellisten lisäksi voidaan vielä mainita kriittinen kaista. Ihmiskorva analysoi kuulemaansa ääntä siten, että tietyn kriittisen kaistan sisälle osuvat taajuudet analysoidaan yhtenä kokonaisuutena. Tämä johtuu pelkästään ihmiskorvan fyysisistä ominaisuuksista. Esimerkiksi MPEG-koodauksessa signaali jaetaan lineaarisesti taajuuskaistoihin. Tällöin saadaan tilanne, jossa yksittäisen kaistan leveys saadaan pidettyä ihmiskorvan kriittisen kaistan edellyttämissä rajoissa.
Koodauksesta ja kompressoinnista huomattavasti enemmän luvussa 6 audioformaattien yhteydessä.
Hyvää, ellei erinomaista, audiokoodausta saadaan erilaisilla taajuuspainoitetuilla koodereilla (frequency domain coders). Tällaisia ovat mm. alikaistakoodaus (subband coding, SBC) ja mukautuva muunnoskoodaus (adaptive transform coding, ATC). Kooderien erot riippuvat lähinnä äänen spektrikomponenttien määrästä, kvantisointistrategioista ja tapahtuvien koodausvirheiden peittämisestä. ([Coas, 1996]).
Taajuuspainotetussa koodauksessa lähetettävän tiedon määrää vähennetään muokkaamalla alkuperäisestä signaalista lyhyempimuotoista äänispektritietoa. Lisäksi käytetään hyväksi korvan peitto-ominaisuuksia. Taajuuspainotetut kooderit tarjoavat suoran menetelmän taajuuskomponenttien häiriöiden muotoilemiseksi ja vaimentamiseksi niin, ettei niitä tarvitse lähettää.
Alkuperäisen signaalin spektri on jaettu taajuuskaistoihin. Jokainen taajuuskomponentti on kvantisoitu erikseen. Kutakin taajuuskomponenttia kohti käytetty bittien määrä vaihtelee. Mitä olennaisempi ja tärkeämpi komponentti on kyseessä, sitä hienommin se kvantisoidaan, ts. käytetään enemmän bittejä. Lähdesignaalin dynaamisen bittien sijoittelun kontrollointia varten tarvitaan eräänlainen spektrivaippa. Tämä tarkoittaa siis sitä, että bittien sijoitteluinformaatiota tulee lähettää jatkuvasti dekoodaajalle rinnakkaisinformaationa toiminnan tehokkuuden vuoksi.
Ratkaiseva merkitys taajuuspohjaisessa audiosignaalin koodauksessa on esikaikujen (pre-echoes) esiintymisellä. Esimerkiksi, kun hiljaista kohtaa seuraa jokin perkussioääni samassa koodausalueessa (coding block), on mahdollisuutena verrattaen suuri hetkellinen kvantisointivirhe. Esikaiuista voi tulla hyvin selvästi kuuluvia, varsinkin virheherkillä alhaisilla bittimäärillä.
Esikaiut voidaan peittää aikapohjaisella esipeitto-efektillä (pre-masking). Ne voidaan välttää käyttämällä lyhyempiä koodausalueita. Kuitenkin rinnakkaisinformaation siirtoon tarvitaan suurempi bittimäärä, jos alueet ovat liian lyhyitä.
Lähdesignaali syötetään analysoivaan suodinsarjaan (analysis filter bank). Se sisältää M -kappaletta kaistansuotimia taajuudellisesti rinnakkain niin, että sarja alikaistasignaaleja voidaan lisätä yhdistellen niitä halutulla tavalla ja näin tuottaa alkuperäinen signaali tai sitä lähellä oleva.
Jokaisen suotimen ulostuloa on häivytetty määrällä M, joka on siis summa alkuperäiseen sig-naaliin verrattavista alikaistasignaaleista. Jokaisen suotimen signaali on kvantisoitu erikseen.
Vastaanottopuolella jokaisen alikaistan näytteistystaajuutta lisätään vastaamaan alkuperäistä signaalia. Tämä toteutetaan lisäämällä signaaliin tarpeellinen määrä nollanäytteitä. Synteesisuodinsarjan (synthesis filter bank) kaistaulostuloissa voi ilmetä laajentunutta, interpoloitunutta alikaistasignaalia. Jos systeemissä on 'täydelliset' jälleenmuokkaussuotimet, on summasignaali vastaava kuin kvantisoimaton lähdesignaali.
Esimerkkejä alikaistakoodauksesta ovat ISO/MPEG -Audiokoodauksen tasot I ja II sekä Presicion Adaptive Subband Coding (PASC), jota käytetään DCC:ssä.
Sarja sisääntulevia näytteitä muutetaan lineaarisesti erikseen sarjaksi muunnoskertoimia. Tämän jälkeen nämä kertoimet kvantisoidaan ja lähetetään digitaalisessa muodossa dekoodaajalle. Siellä käänteiset muuntimet kartoittavat signaalin takaisin aikapohjaiseksi.
Tyypillisimpiä muunnoksia ovat diskreetti Fourier-muunnos (DFT) tai diskreetti kosinimuunnos (DCT) laskettuina FFT:n (Fast Fourier Transform) periaatteella. Diskreetit muunnokset voidaan esittää suodinsarjoina. Kaistojen impulssivasteiden lopullisia pituuksia voidaan kutsua lohkojen raja-efektiksi (block boundary effect). ATC-kooderit käyttävät modifoitua DCT:tä (MDCT). Siinä käytetään päällekäisiä analyysilohkoja, jotka voivat olennaisesti muuttaa näitä efektejä.
Nämä muunnokset täyttävät tehokkaasti heikosti näytteistetyn muunnosperäisen suodinsarjan. Niissä ei ilmene lohkojen rajaefektejä ja niillä on korkeampi muuntokoodaushyöty kuin DCT:llä. Lisäksi niiden perusfunktioilla on paremmat taajuusvasteet.
Esimerkkejä muunnoskoodauksesta ovat mm. Dolby AC-2 -koodaus ja AT&T:n perceptual audio coder (PAC).
Hybridikoodaus on yhdistelmä diskreetistä muunnoksesta ja suodinpankkien käytöstä. Erilaisia taajuusresoluutioita voidaan järjestää eri taajuuksille joustavasti käyttämällä suodinpankkien 'rypästä' ja lineaarista MDCT-muunnosta (hybrid filterbank). MDCT-muunnos jakaa jokaisen alikaistasekvenssin myöhemmin taajuussisältöiseksi saavuttaakseen korkeataajuisen resoluution. Tästä esimerkkinä on mm. Sonyn Adaptive transform acoustic coding (ATRAC), joka on käytössä MiniDiscissä ja MPEG-1:n layer III:ssa.
Epämääräisyydet ja asiaankuulumattomuudet voidaan poistaa useilla tavoilla saaden näin kokonaisbittimäärää pienemmäksi. Näitä ovat kanavienvälinen riippuvuus ja kanavienvälinen peittoefekti. Lisäksi stereo-kuulumattomat komponentit monikanavasignaalissa, jotka eivät edesauta äänilähteiden paikantamisessa, saattavat tulla tunnistetuiksi ja uudelleenmuokatuiksi monofonisessa muodossa. Esimerkkeinä tästä mm. MPEG-2:n monikanavakoodaus ja Dolby AC-3 -koodaus.
Parempi stereoesityksen binauraalisen (molemmin korvin kuultavan) kuvan aistimuksen ymmärtäminen johtaa uusiin koodausratkaisuihin. Useita hankkeita on jo valmisteilla korkeatasoisen koodauksen suorittamiseksi alhaisilla bittitasoilla (MPEG-2 ja MPEG-4). Myös digitaalisen surround-järjestelmän alueella on odotettavissa lisätoimia. Matkapuhelinverkoissa koodereiden ei tule toimia vain alhaisilla bittitasoilla, vaan myös pysyä vakaana purskevirheiden ja pakettihäviöiden alueilla. Tätä varten kehitellään virheidenpiilotustekniikoita.
Signaalin koodausta jokaista arvoa tallentamatta kutsutaan kompressoinniksi (compression, pakkaus). Kompressoinnista on eri valmistajien ja kehittelyryhmien omia malleja ja ne ovat vahvasti kehitystyön alla jatkuvasti. ([Af, 1997], [Coas, 1996], [Bu, 1993]).
Aluksi bittimäärän pienentäminen oli vaatimatonta. Ensiaskelia kompressoinnin maailmaan tarjoilivat muun muassa seuraavat tekniikat. Hetkellinen yhdistely (instantaneous companding) muuntaa tasaisen 11-bittisen PCM:n epäsäännölliseksi PCM-esitykseksi (u-law, a-law). Eri muotoja lohkoyhdistelystä (block companding) ovat järjestelmät kuten DSR ja NICAM. Mukautuvaa differentiaalista PCM:ää (ADPCM) käytetään mm. CD-I -järjestelmissä.
Audiodata on yllättävän hankalaa pakattavaksi tehokkaasti. 8-bittiselle datalle oli suhteellisen onnistunut Huffmanin enkoodausmalli, joka perustuu hyvien näytteiden välisiin 'deltoihin'. 16-bittisen datan pakkausmenetelmien kehittämiseen ovat yhtiöt, kuten Sony ja Philips, käyttäneet miljoonia dollareita. Philipsin luonnos aiheesta on PASC.
Audiodatan kompressointitapoja on useita, ja on syytä ottaa huomioon jokaisen hyvät ja huonot puolet. On otettava huomioon myös se, että jokaista äänitiedostoa (eri formaateissa) voi olla useita eri mahdollisuuksia enkoodata. Esimerkiksi AIFF-tiedostot voidaan purkaa (uncompress) ja pakata MACElla tai kompressoida vaikka ADPCM/IMAlla.
Kuvataan seuraavaksi hieman yleisimpiä kompressointimenetelmiä, niiden vahvuuksia ja heikkouksia. On huomioitavaa, että kaikki menetelmät ovat todellisuudessa häviöllisiä eli ne kompressoivat näytteistyksen laadun kustannuksella.
Julkiset äänenpakkausstandardit saavat yhä suurempaa suosiota. Näitä ovat mm. CCITT G.721 (32 kbit/s ADPCM (Adaptive Delta Pulse Code Modulation)) ja G.723 (24 ja 40 kbit/s ADPCM). Esimerkiksi Sun Microsystems on asettanut lähdekoodinsa liitteenä näihin algoritmeihin (kuten G.711, joka määrittelee u-lawin ja a-lawin).
MACEn pakkaus ja purku ovat äärimmäisen nopeita, mutta näytteistyksen laatu heikkenee aika paljon. MACEn nopeudesta on osoituksena mm. se, ettei esimerkiksi QuickTime-elokuvan ääniraidan (MACE-kompressoitu) dekoodaaminen tietokoneella lisää merkittävästi tietokoneen kuormaa. MACE-koodaus kuuluu pääsääntöisesti Macintosh-maailmaan, sillä muut järjestelmät eivät käsittele MACEa helposti. MACE tukee vain 8-bittistä äänidataa. Kompressiosuhteet ovat 3:1 ja 6:1. Huonosta yhteensopivuudesta ja alhaisesta näytteistyksestä johtuen en pitäisi MACEa kovin varteenotettavana vaihtoehtona.
IMA/ADPCM -systeemi on hyvä vaihtoehto MACEn ja MPEGin välissä. IMA tarjoaa varteenotettavan nopean koodauksen ja purun sekä laskee näytteen tasoa vain hieman. IMA-standardin pakkaussuhde 16-bittiselle äänelle on 4:1 (8-bittistä ei tueta).
MPEG (Motion Picture Experts Group) on kehittänyt standardeja käsittämään yhdistettyä audio-visuaalista tiedonsiirtoa. Standardi tunnetaan lyhenteellä MPEG. Audiossa MPEG noudattaa psykoakustiikan perusperiaatteita, eli ottaa huomioon sen, kuinka aivot tulkitsevat äänen laadullisia seikkoja ja mitä taajuusalueita korva aistii herkimmin. MPEG-standardi vaatii myös suorituskykyä laitteistolta. MPEGistä lisää luvussa 6.
U-Law on nopea 2:1 -pakkausmenetelmä16-bittiselle Sun Microsystemsin käyttämälle audiolle. Tällä kompressointimenetelmällä on on kenties suurin yhteensopivuustuki audiokompressointimenetelmien kentässä. Koodausstandardeja esitellään tarkemmin luvussa 6.
Kautta historian lähestulkoon joka laitteistolla on ollut oma tiedostotyyppinsä audiodataa varten. Toiset niistä ovat enemmän tai vähemmän yhteensopivia, mutta yleensä kaikki tiedostoformaatit ovat muunnettavissa toiseksi, tosin joskus informaatiota hukkaavasti. ([Af, 1997], [Ko, 1993], [AFF1, 1995], [AFF2, 1995], [Ja, 1997], [Pa, 1996], [Fr, 1997], [Da, 1995]).
Digitaalisen audion tallennusstandardeja käsittelevät sekä yksityiset että julkiset organisaatiot. Aktiivisesti tällä alueella toimivia organisaatioita ovat mm.
Äänen tiedostoformaatit ovat laitteen muihin piirteisiin verrattuna oma, erillinen osa-alueensa. Tiedostotyypit voidaan jakaa kahteen eri kategoriaan. Itsekuvailevat (self-describing) tiedostotyypeissä laiteparametrit ja koodaus ovat määriteltyinä jonkinlaisena erillisenä otsakkeena, 'headerina'. 'Raa'oissa' formaateissa laiteparametrit ja koodaus ovat yhdistettyinä. Itsemäärittelevät formaatit muodostavat oman 'koodausperheensä', jossa otsakekentät ilmaisevat tapauskohtaisen käyttötarkoituksen, toisin kuin otsakkeettomat formaatit, jotka eivät salli parametrivariaatioita.
Otsakekentät sisältävät näytteistys(laite)parametrejä ja muuta informaatiota (kuten äänen kuvaus ja copyright-tietoa). Useimmat headerit alkavat nk. maagisella luvulla (magic number) (kts. luku 6.4.2.), joka on jokaiselle formaatille ominainen luku. Jotkut formaatit eivät välttämättä määrittele mitään otsakekentässä, vaan ne muodostuvat osioista, joissa itsessään on sisällä osiot koodausinformaatiosta. Datan koodaus määrää sen, millä tavoin näytteet tallennetaan (esim. ovatko ne merkittyjä, merkitsemättömiä, tavuina vai lyhyinä kokonaislukuina). Myös kanavien lomittaminen on tietynlaista koodausta.
Tässä luvussa perehdytään varsinaisesti audioformaatteihin. Standardit ja formaatit on käsitelty tyyppikohtaisesti. Jokaisen kohdalle on kerätty niihin liittyvää olennaista, ja ylipäätään saatavilla olevaa, tietoa. Luvussa sijaitsevat sulassa sovussa nekin formaatit, jotka voitaisiin yleisesti ryhmitellä vaikka koodaukseksi, kompressoinniksi tai normaaleiksi tiedostoiksi. Kuitenkin useista niistä löytyy yhtymäkohtia toisiinsa.
Joidenkin formaattien kohdalla on esitelty myös koodausmetodeita ja (tieto)rakenteita. Karkeana yleistyksenä voitaisiin sanoa niiden olevan samankaltaisia useiden muidenkin formaattien kohdalla, joten kirjoitettuja pätkiä kannattaa ajatella tukirunkoina myös muille tapauksille.
MPEG (Moving Pictures Experts Group) (tiedostotarkentimina mm. .mp2, .mp3) on ISOn (International Standard Organization), eli kansainvälisen standardoimisliiton komitea, joka kehittää liikkuvan kuvan ja audion pakkaamisen standardeja. Tämä alati laajeneva komitea on perustettu vuonna 1988 ja edustajia on 20 maasta.
MPEG/audio on geneerinen äänen kompressiostandardi. Useista vokaalimalleihin perustuvista puheelle optimoiduista koodausmenetelmistä poiketen se kompressoi signaalia olettamatta mitään itse lähteen luonteesta. MPEG/audio koodaa kaiken, minkä ihmiskorva voi kuulla. Standardissa on useita kompressiomoodeja. MPEG/audion bittijonoon voidaan lisäksi kohdistaa satunnaishakuja ja suorittaa nopeutettua kelausta.
MPEG-komitea, kuten muutkin standardoimiskomiteat, luo standardeja versioittain.
Tämän vuoksi myös MPEG on nimennyt standardinsa numeroimalla
ne taulukon 4 osoittamalla tavalla.
MPEG-1 | Coding of Moving Pictures and Associated Audio for Digital Storage Media at up to about 1.5 Mbit/s (valmistui 10/92) |
MPEG-2 | Generic Coding of Moving Pictures and Associated Audio (valmistui 11/94) |
MPEG-3 | Suunniteltiin HDTV-sovelluksiin, mutta on nyttemmin sisällytetty MPEG-2:een. Ei siis enää olemassa. |
MPEG-4 | Very Low Bitrate Audio-Visual Coding (MPEG-komitean päätehtävä nyt, kehitellään vielä, mutta periaattelliset speksit valmistuivat 1995) |
Taulukko 4. MPEG-standardit
MPEG-1 ja -2 ovat täysin valmiita standardeja, joita useimmat äänen
ja/tai kuvan pakkausta tarvitsevat sovellukset käyttävät.
Molemmat standardit koostuvat taulukossa 5 esitellystä neljästä
pääosasta.
System | Määrittelee audio- ja videosignaalin synkronoinnin ja multipleksauksen |
Video | Määrittelee videosignaalin kompression |
Audio | Määrittelee audiosignaalin kompression |
Testaus | Määrittelee koodekin bittivuon ominaisuudet ja dekoodausprosessin |
Taulukko 5. MPEG-standardien pääosat
MPEG-1 ISO/IEC JTC1/SC29 WG11 (tunnetaan myös nimellä Moving Pictures Expert Group) on ensimmäinen, muttei suinkaan vähäpätöisin standardi. Se sai kansainvälisen standardin aseman lokakuussa 1992. Siinä on viisi osaa, joista neljä on MPEG-1:lle ja MPEG-2:lle yhteisiä. Viides osa on ohjelmistosimulaatio, joka on raportti kolmen ensimmäisen osan teknisestä ohjelmistorakenteesta. Näytteenottotaajuudet MPEG-1:ssä ovat 32, 44.1 ja 48 kHz.
Kompressoitu bittijono voi tukea yhtä tai kahta äänikanavaa jollakin neljästä vaihtoehdosta:
MPEG-1:llä on ennalta määrätyt bittinopeudet. Kompressoidulla bittijonolla voi olla useita ennalta määrättyjä kiinteitä nopeuksia välillä 32...224 kbit/s per kanava. Kompressiotasoja MPEG-1:llä on kolme erilaista.
Lisää standardin yksityiskohdista löytyy seuraavasta julkaisusta:[ISO/IEC 11172-3:1993 Information technology -- Coding of moving pictures and associated audio for digital storage media up to about 1,5 Mbit/s -- Part 3: Audio].
MPEG-2 ITU ja ISO/IEC JTC1/SC29 WG11 on MPEG-1:n seuraaja ja valmistui marraskuussa 1994. Tämän standardin tarkoitus ei siis ole korvata MPEG-1:stä, vaan täydentää sitä. Tästä syystä MPEG-2:n yhdeksästä osasta viisi ensimmäistä ovat lähes samoja kuin MPEG-1:ssä.
MPEG-2:ssa on monikanava-äänituki. Se tukee viittä hifi-audiokanavaa. Nämä ovat pääkanavat (vasen & oikea etu), keskikanava, sekä takakanavat (niinsanotut surround-kanavat). Lisäksi on optionaalinen pienitaajuuksinen lisäkanava, joka on tarkoitettu subwoofer-informaatiolle eli alhaisimmille taajuuksille. Tämä kanava on nimetty LFE:ksi (Low Frequency Enhancement).
Standardissa on myös lisäys seitsemän itsenäisen kanavan järjestelmälle, jolloin saadaan lisää sovelluksia standardin piiriin. Tämän lisäyksen pääkäyttökohteena on kuitenkin monikieliaudiodatan tallennus.
MPEG-2 ja MPEG-1 on toteutettu keskenään yhteensopiviksi. Eteenpäin yhteensopivuuden mukaisesti MPEG-2:n pitää hyväksyä kaikki MPEG-1:n näytteenottotaajuudet ja bittinopeudet. Taaksepäin yhteensopivana MPEG-1:n koodekki osaa avata MPEG-2:lla tehdyn koodauksen. Matrixing-laskentametodilla surround-informaatio lasketaan mukaan downmix-koodauksessa, jossa MPEG- 1:n dekooderilla koodataan auki MPEG-2:sen monikanavaista informaatiota. MPEG-2:ssa on myös pienempiä näytteenottonopeuksia.
Standardi sisältää 32, 22.1 ja 48 kHz näytteenottonopeuksien lisäksi näiden puolinopeudet (16, 22.05 ja 24 kHz).
Bittijonot ovat alhaisemmin kompressoituja. Standardi sisältää lisäksi matalia nopeuksiin 8 kbit/s saakka kompressoituja bittinopeuksia.
Lisäinformaatiota lähteessä [ISO/IEC DIS 13818-3/ITU H.222 Information technology -- Coding of moving pictures and associated audio information -- Part 3: Audio].
MPEG-1 ja MPEG-2 -standardien Audio-osa (numero 3) määrittelee MPEG-audiokoodauksen perusrakenteen, joka koostuu kolmesta kerroksesta. Näitä kutsutaan myös kolmeksi algoritmiksi, layeriksi, joka terminä on yleisesti käytössä monissa kielissä, ja on näin joissakin yhteyksissä käytetympi nimi kuin kerros. Layerit ovat tehokkuusjärjestyksessä Layer 3:n ollessa tehokkain ja Layer 1:n taasen yksinkertaisin.
MPEG-koodauksen perustana on MUSICAM-koodaus. Tämä on algoritmi, joka kehitettiin ennen MPEG-standardeja. Algoritmi oli siinä määrin hyvin tehty, että se otettiin käyttöön MPEGssä. MUSICAMista tehtiin yksinkertaistettu versio, joka lanseerattiin käyttöön Layer 1:ssä. Huonona puolena MPEG-1:ssä on se, että se tarvitsee varsin suuren bittinopeuden, eikä siis pakkaa audio-dataa tehokkaasti.
MPEG-koodauksen perusrakenteen ensimmäisessä vaiheessa PCM-audiosignaali jaetaan alikaistoihin, kunhan se ensin muutetaan taajuusjakoiseksi käyttämällä suodinpankkia. Seuraavassa vaiheessa muodostetaan psykoakustinen malli, jossa käytetään apuna nopeaa Fourier-muunnosta (FFT, Fast Fourier Transform). Psykoakustinen malli laskee tehotasot ja määrittelee näitten avulla peittoäänten tehon.
MPEG-purkaja on huomattavasti yksinkertaisempi kuin kooderi, sillä sen ei tarvitse muodostaa mitään malleja, eikä suorittaa ylimääräisiä laskutoimituksia. Dekooderi ainoastaan purkaa paketit, rakentaa kvantisoidun spektrin ja muuntaa taajuusjakoisen koodin aikatasoon.
MPEG-audiokoodaus on jaoteltu kolmeen kerrokseen, eli jo aiemmin mainittuihin kolmeen kerrokseen. Kooderin rakenne monimutkaistuu huomattavasti siirryttäessä Layer 2:sta kolmanteen. Tämä on suora seuraus siitä, että pakkauskertoimet suurenevat huomattavasti juuri tällä askeleella. Kaikilla kerroksilla on samat perustoiminnot, joissa kooderi analysoi datan, muodostaa mallin ja koodaa datan.
Koodauksessa syntyy paketteja, jotka sisältävät eri määrän audiosignaalin näytteitä kerroksesta riippuen. Ensimmäisen kerroksen paketissa on 384 näytettä, sekä 2. ja 3. kerroksilla on 1152 näytettä yhdessä paketissa. Tässä on siis huomattava ero. Jokaisen paketin alussa on 32 bittinen otsikko- eli header-kenttä. Otsikkokenttä pitää huolta synkronoinnista ja sekä kuljettaa koodausparametrit.
Layer-1:stä käytetään pääasiassa DCC-kaseteissa (Digital Compact Cassette). Järjestelmässä käytetään maksimibittitasoa, eli 192 kbit/s/kanava.
Layer-2 on eräänlainen kompromissimalli. Se sijoittuu kahden enemmän käytetyn layerin väliin, eikä sille tehtyjä sovelluksia ole paljoa.
MPEGin layer 3 on ehdotonta eliittiä audiokoodausmaailmassa tällä hetkellä. Sen perusominaisuuksiin kuuluu laadukas äänenlaatu tiiviistä pakkauksesta huolimatta. Pakkaussuhde on 1/12 alkuperäisestä, jolloin saadaan CD-tasoista ääntä ilman havaittavaa äänenlaadun heikkenemistä. Tästä voidaan laskea, kuinka mainio tilankäyttö systeemillä on. Layer 3 on määritelty sekä MPEG-1:ssä että MPEG-2:ssa.
Layer 3 soveltuu korkean äänenlaatunsa puolesta kaikenlaiseen
musiikin tallennukseen ja kohtalaisen alhaisten bittinopeuksiensa vuoksi
myös audiodatan siirtoon. Esimerkkeinä voitaneen mainita korkealaatuinen
stereoääni ISDN-linjan läpi. Tällä on useita käyttötarkoituksia,
kuten äänen radiotyylinen lähettäminen alhaisen bittinopeuden
omaavien satelliittikanavien kautta, äänen siirto tietokoneverkoissa
(kuten Internetissä), lähinnä musiikin tallennus huomattavan
pieneen tilaan, korkealaatuisen puheen siirto (käyttöä esimerkiksi
uutisraportoinnissa) ja DVD-levy.
Äänen laatu | Kaistanleveys (kHz) | Mono/stereo | Siirtonopeus (kbps) | Pakkaussuhde |
puhelin | 2.5 | mono | 8 | 96:1 |
LA-puhelin | 4.5 | mono | 16 | 48:1 |
AM-radio | 7.5 | mono | 32 | 24:1 |
FM-radio | 11 | stereo | 56...64 | 26...24:1 |
lähes CD | 15 | stereo | 96 | 16:1 |
CD | >15 | stereo | 112...128 | 14...12:1 |
Taulukko 6. Vertailutaulukko eri lähteiden mukaan
PC-koneisiin on suunniteltu ohjelmistoja, joilla voidaan koodata ja purkaa
Layer 3 -dataa, sekä soittaa mp3-musiikkia (Layer 3 –musiikin maailmanlaajuinen
nimitys) reaaliajassa. Real-Time-Player eli reaaliaikainen toistosovellus
on ollut vaikea kehittää, mutta innostus mp3:a kohtaan on suurta
ja markkinoille tulee jatkuvasti uusia sovelluksia käyttöön.
Näitä ovat mm. Audioactive, Winplay ja MuseArc sekä Xing-Technologyn
StreamWorks, joka on eräs nykysovelluksia ajatellen kenties varteenotettavin.
MPEG-4 on uusin stardointivaiheessa oleva komitean projekti, joka on tarkoitettu erittäin matalia bittitaajuuksia tarvitseville järjestelmille. Suurin muutos on interaktiivisuus. Vastaanottaja voi kesken tiedonsiirron esimerkiksi muokata bittinopeutta ja/tai muuttaa stereo-signaali mono-signaaliksi, jolloin bittinopeus kasvaa.
Audio-osan perustavoitteena on multimedia-sovellukset, kuten video/internet-puhelimet. MPEG-4 -audiokoodaus jaetaan synteettiseen ja luonnolliseen koodaukseen. Standardi tukee erilaisia audioformaatteja, kuten näytteenottotaajuutta, amplitudiresoluutiota, kvantisoinnin luonnetta sekä kanavien lukumäärää. Synteettinen audio on tulevaisuuden alaa ja MPEG-4:ssä on määriteltynä mm. synteettinen puhedata ja 3D-kuuleminen.
Progressive Networkin RealAudio (tiedostotarkennin .ra) teknologia mahdollistaa RealAudion player- ja server-ohjelmien välisen interaktiivisen linkityksen, jonka avulla voidaan toteuttaa äänilähetyksiä koko Internet-verkkoon.
Lähetyspäässä tarvittaan palvelinohjelmisto, joka soveltuu laajamittaiseen verkossa tapahtuvaan lähetystoimintaan. Lähetystoimintaan tarvitaan oma kotisivu ja kiinteä liittymä Internet-verkkoon. RealAudio Server -ohjelmisto on yhteensopiva minkä tahansa MIME-koodia tukevan palvelinohjelman kanssa, joita ovat esimerkiksi Netscapen Netsite ja Macin HTTPD.
Riippuen äänen pakkaustiheydestä yksittäisen kanavan kaistanleveyden pitää olla 10 - 22 kb sekunnissa. RealAudio-ohjelmisto vaatii keskimäärin 2MB kiintolevytilaa. Riippuen pakkaustiheydestä RealAudio-formaatissa olevat tiedostot vaativat keskimäärin 1.1-2.4kb jokaista äänisekuntia koh-den. Näinollen esimerkiksi yhden tunnin pituinen lähetys vaatii levytilaa 3.6MB:stä 8 MB:aan.
RealAudio encoder on ohjelma, jolla voidaan muuntaa eri ääniformaatissa olevia tiedostoja (wav, au, pcm...) RealAudio-formaattiin. Koodattu RealAudio-materiaali voidaan soittaa Internetissä reaaliaikaisesti, käyttämällä asianmukaisia ohjelmia (player ja server). Koodaus voidaan suorittaa kahden vaihtoehtoisen algoritmin mukaisesti. RealAudio 14.4 -algoritmi mahdollistaa monofonisen AM- tasoisen äänen, joka vaatii vähintään 14.4Kbps modeemiyhteyden Internetiin. 28.8 -algoritmi mahdollistaa lähes FM-tasoisen äänen ja vaatii vähintään kaksi kertaa nopeamman yhteyden. RealAudio -encoder on suunniteltu toimimaan Windows 95 ja Windows NT -ympäristöissä sekä Macintoshissa.
14.4-algoritmissa tarvitaan vapaata levytilaa 1K jokaista koodattavaa sekuntia kohti. 28.8- algoritmi vaatii vastaavasti 1.8K vapaata levytilaa sekuntia kohti. "LIVE" -koodaus edellyttää vähintään Pentium-tasoisen suorittimen ja enemmän keskusmuistia.
AIFF (Audio Interchange File Format) (tiedostotarkentimet .aif, .iff, .aff) on Apple Computer Inc.:n kehittämä standardi. Se on kehitetty audioinformaation siirron yhteensovittamiseksi eri tietokonejärjestelmien välillä, tallentamaan mahdollisimman hyvälaatuista ääntä (digitaalisia audionäytteitä) ja instrumentti-informaatiota. Tämän laajennus AIFC tai AIFF-C tukee kompressointia. Molemmat formaatit ovat vahvasti myös SGI:n (Silicon Graphics) suosiossa.
Standardi on yhdenmukaistettu Electronic Artsin kehittämän standardin EA-IFF-85 Standard for Interchange Format Files kanssa. Tämä rakentuu palasista seuraavalla tavalla. Yleinen osa (Common Chunk) pitää sisällään määritteet kanavien määrästä, näytteiden määrästä, näytekoon ja näytteistystaajuuden (näytteiden määrä sekunnissa). Äänidataosa (Sound Data Chunk) taas määrää näytteen kehykset. Jokainen kehys sisältää 1-6 kanavaa. Mono- ja stereoääni, sekä kolmi-, neli-, viisi- ja kuusikanavainen surround-ääni ovat tuotettavissa. Varioitu näytekoko (1 ja 32 bitin välillä) on paketoitu erikokoisina 8-bittisinä tavuina. Merkkiosaa (Marker Chunk) voidaan käyttää identifioimaan äänitieto-osien synkronointipisteet. MIDI- ja instrumenttiosa voidaan luokitella osaksi yleistä informaatiota. Sovellusosa (Application Specific Chunk) mahdollistaa tiettyä sovellusyhteensopivuutta koskevan perustiedon lisäämisen. EA-IFF-85:n tekstiosa (Text Chunk) mahdollistaa kommentoinnin. Siihen voidaan sisällyttää mm. nimi, tekijä ja tekijänoikeustiedot ja äänitystiedot.
AIFF on kenties paras audioformaattivaihtoehto sovellusyhteensopivuutta ajatellen. Se tukee 16-bittistä, 44 kHz:n stereoääntä, mutta tämä ei koske välttämättä kaikkia AIFF:ää tukevia sovelluksia. Kuten aiemmin todettiin AIFF tukee myös polyfonista ääntä, eli ääntä useammalla kuin kahdella kanavalla.
AIFF-C tai AIFC on pakattua AIFF-tietoa. Kompressointivaihtoehdoista AIFF-tiedostomuodon kanssa voi käyttää MACEa ja ADPCM/IMAa.
MACE-pakatut tiedostot ovat harvinaisia. Koodaus ja purku ovat nopeita, mutta laatu on huono verrattuna ADPCM/IMA- tai MPEG-pakkaukseen. MacIntoshin Sound manager hallitsee MACE-purkamisen automaattisesti. Todennäköisesti myös erillisiä MACE-työkaluja on olemassa, mutta esimerkiksi AIFC-MACE -soittimia ei ole tiedossa.
Useat nykyiset ohjelmat tukevat ADPCM/IMA-pakattuja AIFF-tiedostoja. Windowsille tällaisia sovellusohjelmia on esimerkiksi Goldwave. MacIntoshille riittää mikä tahansa normaali AIFF-soitinsovellus (esim. SoundApp tai SoundManager) mahdollisine 'työkalulaatikkoon' (toolbox) lisättävine ADPCM/IMA-tukineen.
AIFF-ohjelmia ovat mm. seuraavat:
Ammattimaisia sovelluksia ovat mm. Passport Designin Alchemy ja Digidesignin Sound Designer, sekä äänen editointiohjelmista mm. SoundEdit 16 ja OSC:n Deck II.
Lisätietoa standardista on dokumentoituna lähteessä. [Apple Computer Inc, Audio Interchange File Format (AIFF): A Standard for Samples Sound Files, Version 1.2.] Lisäksi AIFF-C spesifikaatio on saatavilla FTP:llä osoitteesta ftp://ftp.sgi.com/sgi/aiff-c.9.26.91.ps.Z.
Liitteessä 1 on lista ja kuvaukset AIFC:n määrittelemistä funktioista.
Unix/NeXT audio -muotoa (tiedostotarkennin .au tai .snd) olevissa tiedostoissa voidaan käyttää u-Law, A-Law tai lineaarista PCM-tallennusta. Tätä tiedostoformaattia käsitteleviä apuohjelmia on Windowsille ja DOSille. Tiedostomuotoa voidaan joissakin tapauksissa lukea myös raakamuodossa. Normaali tilanne on juuri itsekuvaileva (header) formaatti, jota tässä luvussa tullaan käsittelemään. Lisäksi snd-tiedostoja on myös Mac/PC-formaateissa otsakekentittöminä (headerless), joten sekoittamisen mahdollisuus on olemassa (SOX-tyyppi on NxTS).
NeXT-ääniohjelmisto määrittelee SNDSoundStruct -tallennusrakenteen äänen esittämiseksi. Tallennusrakenne kertoo äänitiedoston, Mach-O -äänisegmenttiformaatit ja äänen tyyppitiedot. Sitä käytetään myös kuvailemaan ääntä 'Interface Builderille'. Tavallisimmat äänenmuokkausoperaatiot, kuten toisto, äänitys ja leikkaa-liimaa -operaatiot, on esitetty helpoiten ääniobjektissa. Useissa tapauksissa äänen muokkaussovellus tarvitsee tietoa SNDSoundStruct -arkkitehtuurista. Jos äänidataa halutaan tarkastella tai muokata tarkemmin, täytyy tietorakenteesta olla perillä.
SNDSoundStruct sisältää otsikkotiedon (header), äänen attribuutteja kuvailevaa informaatiota ja ääntä vastaavan datan. Määrittelyn rakenne näyttää seuraavalta (sound/soundstruct.h):
Magic on maaginen luku joka identifioi struktuurin SNDSoundStructiksi. Se sisältää myös muun tietyksi äänidataksi tekevän identifiointitiedon.
Aikaisemmin mainittiin SNDSoundStructin sisältävän otsakekentän, jota seuraa äänidata. Todellisuudessa talletusrakenne sisältää vain otsakekentän, kun data on kokonaan erillinen osa, kuitenkin jatkuen heti talletusrakenteen jälkeen. dataLocationia käytetään osoittamaan data. Yleensä luku on tavutieto talletusrakenteen alusta äänidatan ensimmäiseen tavuun. Tässä tapauksessa data tulee välittömästi talletusrakenteen jälkeen, joten dataLocation voidaan ajatella myös otsakekentän kokona. Toinen dataLocationin käyttötapa on määrittää osoite paikantamaan data, jos se ei seuraa välittömästi talletusrakennetta. Tätä kuvaillaan luvussa 6.4.3. Formaattikoodit.
dataSize, dataFormat, samplingRate ja channelCount -kentät kuvailevat
äänitiedon. dataSize on koko tavuina (ei sisällä SNDSoundStructia).
dataFormat on koodi, joka identifioi äänen tyypin. Näytteistetyille
äänille tämä on kvantisointitieto. Tieto voi olla myös
ohjeet DSP:lle äänen syntetisoimiseksi. samplingRate kertoo näytteistystaajuuden
(näytteistetty äänidata). Laitteisto tukee kolmea taulukossa
7 esitettyä näytteistystaajuutta (ilmoitettu integer-lukuina).
Vakio | Näytteistystaajuus (näytettä sekunnissa) | Huom. |
SND_RATE_CODEC | 8012.821 | (CODEC input) |
SND_RATE_LOW | 22050.0 | (low sampling rate output) |
SND_RATE_HIGH | 44100.0 | (high sampling rate output) |
Taulukko 7. SNDSoundStructin kolme näytteistystaajuutta
channelCount kertoo näytteistetyn äänen kanavien lukumäärän.
info on NULL-loppuinen merkkijono, johon voi sisällyttää äänen kuvauksen tekstimuodossa. Infon koko asetetaan talletusrakenteen luonnissa, eikä sitä voi sen jälkeen muuttaa. Tämän tulee olla vähintään neljän tavun mittainen (jos käytössä).
Äänen formaatti esitetään positiivisina 32-bittisinä
kokonaislukuina (integer). NeXT varaa luvut väliltä 0-255. Oman
formaatinkin voi määritellä luvuilla, jotka ovat suurempia
kuin 255. Suurin osa NeXTin määrittelemistä formaateista
kuvaavat näytteistetyn äänen amplitudikvantisointia, kuten
taulukosta 8 on havaittavissa. Formaattikooditaulukko on lähteen alkuperäisessä
asussa. Muutamia puutteita koodien selityksissä on havaittavissa.
Value | Code | Format |
0 | SND_FORMAT_UNSPECIFIED | unspecified format |
1 | SND_FORMAT_MULAW_8 | 8-bit mu-law samples |
2 | SND_FORMAT_LINEAR_8 | 8-bit linear samples |
3 | SND_FORMAT_LINEAR_16 | 16-bit linear samples |
4 | SND_FORMAT_LINEAR_24 | 24-bit linear samples |
5 | SND_FORMAT_LINEAR_32 | 32-bit linear samples |
6 | SND_FORMAT_FLOAT | floating-point samples |
7 | SND_FORMAT_DOUBLE | double-precision float samples |
8 | SND_FORMAT_INDIRECT | fragmented sampled data |
9 | SND_FORMAT_NESTED | ? |
10 | SND_FORMAT_DSP_CORE | DSP program |
11 | SND_FORMAT_DSP_DATA_8 | 8-bit fixed-point samples |
12 | SND_FORMAT_DSP_DATA_16 | 16-bit fixed-point samples |
13 | SND_FORMAT_DSP_DATA_24 | 24-bit fixed-point samples |
14 | SND_FORMAT_DSP_DATA_32 | 32-bit fixed-point samples |
15 | ? | ? |
16 | SND_FORMAT_DISPLAY | non-audio display data |
17 | SND_FORMAT_MULAW_SQUELCH | ? |
18 | SND_FORMAT_EMPHASIZED | 16-bit linear with emphasis |
19 | SND_FORMAT_COMPRESSED | 16-bit linear with compression |
20 | SND_FORMAT_COMPRESSED_EMPHASIZED | A combination of the two above |
21 | SND_FORMAT_DSP_COMMANDS | Music Kit DSP commands |
22 | SND_FORMAT_DSP_COMMANDS_SAMPLES | ? (Some new ones supported by Sun) |
23 | SND_FORMAT_ADPCM_G721 | |
24 | SND_FORMAT_ADPCM_G722 | |
25 | SND_FORMAT_ADPCM_G723_3 | |
26 | SND_FORMAT_ADPCM_G723_5 | |
27 | SND_FORMAT_ALAW_8 |
Taulukko 8. Formaattikoodit.
Useimmat em. formaateista määrittelevät erikokoista ja -tyyppistä
näytteistettyä tietoa. Seuraavassa joistakin tarkempia tietoja:
Äänitieto tallennetaan yleensä peräkkäisiin muistilohkoihin. Kuitenkin editoitaessa näytteistettyä äänidataa (leikkaus, liittäminen), data saattaa tulla epäjatkuvaksi tai paloitelluksi. Jokaiselle dataosalle on annettu oma SNDSoundStruct -otsakekenttä, jolloin jokaisesta osasesta tulee näin erillinen SNDSoundStruct -rakenne. Näiden uusien rakenteiden osoitteet on koottu jatkuvaksi, NULL-päätteiseksi lohkoksi. Alkuperäisen SNDSoundStructin dataLocation-kenttä on asetettu uuden lohkon osoitteeksi samalla kun alkuperäinen formaatti, näytteistystaajuus ja kanavien lukumäärä on kopioitu uusiin SNDSoundStructeihin.
Pilkkoutuminen sallii suuren määrän liikkuvaa dataa sillä aikaa, kun ääntä editoidaan. Pilkkoutuneen äänen toisto on suoraa, sillä koskaan ei tarvitse tietää, onko ääni paloiteltuna vai ei. Kuitenkin todella vahvasti pilkkoutuneen äänen toisto on aavistuksen heikompaa kuin jatkuvan. C-funktiota SNDCompactSamples() voidaan käyttää liittämään pilkkoutunut äänidata.
Näytteistetty äänidata on luonnollisesti pilkkoutumatonta. Juuri äänitetty, äänitiedostosta saatu ääni tai 'Mach-O'-segmentti eivät ole pilkkoutunutta. Ainoastaan näytteistysdatasta voi tulla pilkkoutunutta.
Taulukossa 9 on esitettynä NeXT sndfilen otsakekentän osat.
0 | 1 | 2 | 3 | ||
0 | 0x2e | 0x73 | 0x6e | 0x64 | 'magic' |
4 | dataLocation | ||||
8 | dataSize | ||||
12 | dataFormat (enum) | ||||
16 | samplingRate (int) | ||||
20 | channelCount | ||||
24 | info |
Taulukko 9. NeXT sndfilen header.
NeXT:n yleisimmät kombinaatiot on esitetty taulukossa 10.
Näytetaajuus | Kanavien lkm. | Dataformaatti | ||
Puhetiedosto | 8012 | 1 | 1 | 8-bittinen mu-Law |
Järjestelmä-ääni | 22050 | 2 | 3 | 16-bittinen lineaarinen |
CD-taso | 44100 | 2 | 3 | 16-bittinen lineaarinen |
Taulukko 10. NeXT-järjestelmän kombinaatiot.
IFF/8SVX:llä tarkoitetaan Amigan äänitiedostoa (*.iff). IFF-tiedoston ensimmäiset 12 tavua on käytetty erottamaan Amigan kuva (FORM-ILBM), Amigan ääninäyte (FORM-8SVX), tai jokin muu yhdenmukainen IFF-spesifikaatioinen tiedosto.
IFF FORMit löytyvät myös EA-IFF-85 -dokumentaatiosta, jossa ovat eriteltyinä spesifikaatiot mm. grafiikalle, äänelle ja muokatulle tekstille. IFF/8SVX mahdollistaa amplitudin korkeuskäyrien hahmottamisen (iskun, vaimenemisen, jne.). Kompressio on valinnainen.
Huomionarvoinen seikka on CD-I -järjestelmän käyttämä standardiformaatti, joka on myös IFF-formaatti, mutta tosin ainoastaan reaaliaikamuodossa.
Seuraavassa tiedosto-otteessa on esimerkkinä FutureSound-audiotiedosto, jossa on 15000 näytettä 10.000KHz:n taajuudella. Tiedosto on 15048 tavun mittainen. Määrittelystä löytyy tietoa taajuudesta, kanavista sekä instrumenttitietoa.
0000: 464F524D 00003AC0 38535658 56484452 FORM..:.8SVXVHDR F O R M 15040 8 S V X V H D R
0010: 00000014 00003A98 00000000 00000000 ......:......... 20 15000 0 0
0020: 27100100 00010000 424F4459 00003A98 '.......BODY..:. 10000 1 0 1.0 B O D Y 15000
0000000..03 = "FORM", identifies this as an IFF format file.
FORM+00..03 (ULONG) = number of bytes that follow. (Unsigned long int.)
FORM+03..07 = "8SVX", identifies this as an 8-bit sampled voice.
????+00..03 = "VHDR", Voice8Header, describes the parameters for the BODY.
VHDR+00..03 (ULONG) = number of bytes to follow.
VHDR+04..07 (ULONG) = samples in the high octave 1-shot part.
VHDR+08..0B (ULONG) = samples in the high octave repeat part.
VHDR+0C..0F (ULONG) = samples per cycle in high octave (if repeating), else 0.
VHDR+10..11 (UWORD) = samples per second. (Unsigned 16-bit quantity.)
VHDR+12 (UBYTE) = number of octaves of waveforms in sample.
VHDR+13 (UBYTE) = data compression (0=none, 1=Fibonacci-delta encoding).
VHDR+14..17 (FIXED) = volume. (The number 65536 means 1.0 or full volume.)
????+00..03 = "BODY", identifies the start of the audio data.
BODY+00..03 (ULONG) = number of bytes to follow.
BODY+04..NNNNN = Data, signed bytes, from -128 to +127.
0030: 04030201 02030303 04050605 05060605
0040: 06080806 07060505 04020202 01FF0000
0050: 00000000 FF00FFFF FFFEFDFD FDFEFFFF
0060: FDFDFF00 00FFFFFF 00000000 00FFFF00
0070: 00000000 00FF0000 00FFFEFF 00000000
0080: 00010000 000101FF FF0000FE FEFFFFFE
0090: FDFDFEFD FDFFFFFC FDFEFDFD FEFFFEFE
00A0: FFFEFEFE FEFEFEFF FFFFFEFF 00FFFF01
"BODY":sta ei voida tehdä oletusta sen alkavan 48 tavun
jälkeen. Kuten "VHDR", palaset nimeltä "NAME",
"AUTH", "ANNO" tai "(c)" voivat kuulua mukaan
ja voivat esiintyä missä järjestyksessä tahansa.
ADPCM (Adaptive Differential Pulse Code Modulation) käsittää audiosignaalin digitointia alueilla 16, 24, 32 ja 40 kbit/s.
ITU:n suositus G.726 sisältää pääpiirteet 64 kbit/s a-law ja u-law PCM-kanavamuunnokselle alueilla 40, 32, 24 tai 16 kbit/s. Muunnos on lisätty PCM-bittivirtaan käyttäen ADPCM muunnoskoodausta. Pääsovellus kanaville 24 ja 16 kbit/s on kanavien kantoääni (carrying voice) DCME:ssä (Digital Circuit Multiplication Equipment). Ensisijainen sovellus kanavalle 40 kbit/s on kantaa modeemisignaalia DCME:ssä, varsinkin modeemeille yli 4800 kbit/s.
Standardin peruskäyttökohteet ovat korkeiden nopeuksien digitaalisissa telekommunikaatiosysteemeissä.
Lisätietoa standardin yksityiskohdista on saatavilla osoitteesta International Telecommunications Union (ITU), Place des Nations, CH-1211 Geneva 20, Switzerland.
Standardin yksityiskohtia löytyy myös seuraavista julkaisuista: ([G.726a, 1991], [G.726A, 1995], [G.726III/G.727II, 1995], [G.727a, 1991] ja [G.727A, 1995]).
Applen audion kompressointi- ja ekspandiontijärjestelmä. Päästandardi on ACE, joka Macintosheille tunnetaan kirjainyhdistelmällä MACE. Tämä häviöllinen systeemi pyrkii ennustamaan aallon kulkua seuraavaan näytteeseen.
Microsoftin ADPCM (Adaptive Delta Pulse Code Modulation) (tiedostotarkentimet .wav, .pcm) on tiivistysmuoto, jota käytetään mm. CD-I -järjestelmässä videoäänenä. Tiivistyssuhde on noin 1:2-1:8, mutta tiivistys ei ole hävikitön. 16-bittinen ääni tallentuu tässä 4-bittiseksi. Äänikortit, joissa on digitaalinen signaaliprosessori (DSP), voivat tiivistää äänen samalla hetkellä.
IMA/DVA ADPCM (tiedostotarkentimet .wav, .pcm) tiivistää äänen eri algoritmiä käyttäen kuin Microsoftin ADPCM perusmenetelmän ollessa sama. Tämä menetelmä mahdollistaa myös 16-bittisen äänen tiivistyksen 3-bittiseksi, mutta sen toistamiseen kykenevät vain harvat ääniohjaimet. Menetelmä on alunperin kehitetty videotallennukseen.
CELP (Code Excited Linear Prediction) on digitaalisten lähetysten puheenkoodaussysteemi. Se toimii samanlaisella mallinnuksella kuin LPC (luku 6.13.). Systeemi laskee alkuperäisen puheen ja synteettisen mallin välillä tapahtuneet virheet ja lähettää sekä malliparametrit että hyvin tiivistetyn esityksen virhetiedoista. Pakattu esitys on kooderien ja purkajien käytössä olevan 'koodikirjan' 'sisällysluettelo', josta nimitys 'Code Excited'. CELP-kooderi tekee LPC:hen verrattuna enemmän työtä, mutta myös tulos on laadukkaampi. Esimerkiksi FIPS-1016 CELP on laadultaan samaa tasoa kuin 32 kbit/s ADPCM, mutta käyttää vain 4.8 kb/s (samoin LPC).
CELPin takana on US Department of Commerce ja standardin yksityiskohtia löytyy standardista ([Fs1]).
Lisätietoa osoitteesta US National Technical Information Service (NTIS), U.S. Department of Commerce, 5285 Port Royal Road, Springfield, VA 22161, U.S.A. (Phone: +1 703 487 4650).
GSM (Global System for Mobile Communication) on puheen digitaalinen enkoodaussysteemi matkapuhelinten satelliittivälityksessä. Organisaatio järjestelmän takana on ETSI ja tietoa standardista löytyy ([IE]).
GSM on euroopassa ja nykyisin monin paikoin muuallakin käytössä oleva puheen koodausjärjestelmä. GSM06-10 kompressoi 160 13-bittistä näytettä 260 bittiin (33 tavuun), 1650 tavua/s (8000 näytettä/s).
Lisätietoa systeemistä saa osoitteesta ETSI, F-06921 Sophia Antipolis Cedex, France (+33 92 94 42 57).
LD-CELP (Low Delay Code Excited Linear Prediction) on avoimien järjestelmien digitaalisten lähetysten puheenkoodaussysteemi. Järjestelmän takana oleva organisaatio on ITU ja standardin yksityiskohtaista tietoa löytyy ([G.728a, 1992]).
Järjestelmä on ITUn standardi käytettäväksi matalaviiveisenä versiona CELPistä. Se digitoi 4kHz:n puhetta nopeudella 16 kb/s.
Lisätietoa standardista saa osoitteesta International Telecommunications Union (ITU), Place des Nations, CH-1211 Geneva 20, Switzerland.
LPC-kooderi (Linear Prediction Coder (Enhanced)) on puheen digitoinnin analyyttinen malli. Se sovittaa puheen yksinkertaiseen, analyyttiseen muotoon (traktaatti). Tämän jälkeen se erottaa puheen kokonaan pois ja toimittaa parametrit parhaiten sopivassa muodossa. LPC-purkaja käyttää näitä parametreja muodostamaan synteettistä puhetta. Puhe on ymmärrettävää, mutta kuulostaa konemaiselta.
Systeemin takana ovat yhteistyössä US DoD ja NATO. Tietoja standardista löytyy lähteestä ([FIPS]). Myös US DoD Federal Standard 1015.
Lisätietoa standardista saa osoitteesta GSA Federal Supply Service Bureau, Specification Section, Suite 8100, 470 E. L'Enfant Place S.W., Washington, DC 20407, U.S.A. (Phone +1 202 755 0325).
ODA ACA (Open Document Architecture Audio Content Architecture) sallii audioinformaation sisällyttämisen ODAlla koodattuihin dokumentteihin. Standardi on määritelty standardissa ISO/IEC JTC1/SC18 WG3 ja yksityiskohdat standardista löytyvät lähteestä ([T.419, 1995]).
ODA-standardin osa 9 sallii ääniviestien tai muun audiosisällön liittämisen ODA-dokumentteihin. Äänitiedostot voidaan koodata käyttämällä ITU-standardeja G.711 (A-law & U-law PCM), G.722 (SB-ADPCM), G.726/7 (ADPCM) ja J41/2 (käytetään korkealaatuiselle 384kb/s signaaleille), standardeja ISO MPEG-1 ja MPEG-2, standardeja GSM 06-10 ja ANSI S4, sekä AES3.
ODA-audiotiedostot on aina vaihdettavissa toisiksi prosessoitaviksi formaateiksi. Monikanava-audiodataa voidaan toimittaa lisättynä loogisilla attribuuteilla, kuten kontrollin rajauksella ja tarkoituksenmukaisilla kestoilla, sekä ulkoisilla attribuuteilla, kuten kontrolloinnin supistamisella ja taajuusvaippakäyrillä (frequency envelope). Taajuusvaippakäyrä käyttää 33:a ISO 266:1975:ssa määriteltyä näytteistystaajuutta kontrolloidakseen kaventamistasoa kaikkien äänien sovittamiseksi.
Käyttö on rajoitettu. Lisätietoa on saatavilla ITUsta, ISOsta tai kansallisesta standardointiorganisaatiosta.
PCM (Pulse Code Modulation) on analogisen äänen muunnos esimerkiksi digitaalista puhelinliikennettä varten. Taustaorganisaatio on ITU ja standardin yksityiskohdat löytyvät lähteestä ([G.711, 1990]).
PCM:ää käytetään analogisten signaalien, kuten puheen ja musiikin, digitoinnissa. Sitä on käytetty alunperin pääasiassa digitaalisten verkkojen lähetyksissä. ITUn suositus G.711 sisältää kansainvälisesti hyväksytyn metodin PCM:n käyttämiseksi äänisignaalien digitoimiseen 64kb/s-tasoiselle (4kHz) audiosignaalille.
PCM:ää on kahta formaattia: A-law (Eurooppa) ja u-law (USA). Bittien lukumäärän spesifiointi u-law:lle on jokseenkin hankalaa näytteiden ollessa logaritmisesti koodattuja 8 bittiin, mutta niiden dynaaminen säde kuitenkin on lineaarista 12-bittistä dataa.
Kuten kaikessa digitaaliaudiossa, ADCt, DACt, bittiresoluutio ja näytteistystaajuudet, kaikki seikat esiintyvät myös digitaaliäänittimissä. Tähän liittyen kiinnostaa myös se, kuinka audio itse asiassa sijoittuu 'digitaalinauhalle'. Yleisin koodaustekniikka on PCM. Se konvertoi bittivirran ketjuksi kapeita suorakulmaisia pulssiaaltoja, jotka edustavat bittiarvoja. Tämä virta pulsseja kirjoitetaan kohteeseen. Toistettaessa prosessi on käänteinen ja pulssit konvertoidaan takaisin bittiarvoiksi.
Digitaalinen informaatio kirjoitetaan yleensä kohteeseen 'ylikorostetusti' niin, että informaatiosta on aina olemassa 'varmuuskopio' virheiden varalle. Tämän prosessin varustamiseksi data on usein limitetty nauhalle samankaltaisella pyörivän kuvapään tekniikalla kuin videonauhureissa. Tämä limitysprosessi poistaa mahdollisuuden käsineditointiin.
Lisätietoa standardista on saatavilla osoitteesta International Telecommunications Union (ITU), Place des Nations, CH-1211 Geneva 20, Switzerland.
SB-ADPCM (Sub-Band Adaptive Differential Pulse Code Modulation) kattaa puheen koodauksen ISDN-linjoilla yli 64kb/s toimituksissa. Taustaorganisaationa on ITU ja standardin yksityiskohdat löytyvät lähteestä ([G.722, 1990]).
SB-ADPCM kuvailee, kuinka laadultaan keskinkertaisen audiosignaalin tulisi olla koodattu käyttämällä varianttia ADPCM:ää yli 64kb/s:n lähetyksissä Integrated Service Digital Network (ISDN) -linjoilla. Standardia käytetään signaaleille taajuuksilla 7kHz:iin saakka.
ISDN:n esiintyminen on vielä vähäistä, mutta siellä missä ISDN on käytössä, on SB-ADPCM standardimetodi puheen digitoinnissa.
Lisätietoa standardista on saatavilla osoitteesta International Telecommunications Union (ITU), Place des Nations, CH-1211 Geneva 20, Switzerland.
SMDL (Standard Music Description Language) on eräänlainen yleisyhteys musiikin, merkintäjärjestelmien (scores) ja kriittisen musiikkianalyysin välillä. Taustalla on standardi ISO/IEC JTC1/SC18 WG8 ja standardin yksityiskohdat ovat lähteessä ([ISO10743]).
Standardi käytää Hypermedia/Time-based Structuring Language (HyTime) -formaattia yhdistämään musiikin, merkintäjärjestelmät ja musiikin selitykset. Yksittäisten komponenttien (esim. synkronointiyksityiskohdat, esitysmetodit) suhteet tallennetaan käyttämällä Standard Generalized Markup Languagea (SGML).
SMDL perustuu neljään alueeseen (domain): loogiseen alueeseen, ele/liikealueeseen, visuaaliseen alueeseen ja analyyttiseen alueeseen. Musiikin työ (musical work) rakentuu tietystä määrästä musiikkisegmenttejä. Jokaisen työn voi liittää johonkin työluokkaan ja siihen voi sisältyä informaatiota asianomaisesta ja tallennuslähteestä.
Loogisen alueen työ esitetään yksittäisinä cantus-komponentteina, joista jokainen on oman aikajanansa kanssa virtuaalisessa ajassa ilmaistuna. Cantuksella voi olla useita säikeitä, sanoituksia, tai 'tahtipuikkoja' ajan kontrolloimiseksi ja 'tahtipuikkoja' (sound modification statements) toimimaan yhteistyössä sen kanssa. Kuormitus ja korkeustaso on kontrolloitavissa ja synkronoitavissa.
Loogisessa alueessa määritelty musiikki voidaan linkittää HyTime standardilinkityksellä merkintätavaksi visuaaliseen alueeseen, esitystavan kontrollin spesifikointiin elealueeseen, ja yksittäisiksi analysoitaviksi komponenteiksi analyyttiseen alueeseen. Eri cantusten linkittämiseksi voidaan käyttää 'teemoja'.
Standardin lisätietoja on saatavilla ISOsta tai kansallisista standardointiorganisaatioista.
Tämä äänikoodausstandardi perustuu 4800 bps kiihdytettyyn lineaariseen äänikooderiin (CELP 3.2). Julkaisuja aiheesta ovat mm. "Details to Assist in Implementation of Federal Standard 1016 CELP", sekä virallinen "Federal Standard 1016, Telecommunications: Analog to Digital Conversion of Radio Voice by 4,800 bit/second Code Excited Linear Prediction (CELP)".
Toinen rinnasteinen systeemi saman otsikon alle on US DoD's Federal Standard 1015/ NATO STANAG 4198. Se perustuu 2400 bps lineaariseen ennustuskoodaukseen (LPC-10) ja se uudelleenjulkaistiin standardina Federal Information Processing Standards Publication 137 (FIPS Pub 137).
Macintoshin äänitiedostot ovat SND-tiedostoja (*.snd). Resurssina se on samantyyppinen kuin esimerkiksi Microsoft Windowsin WAV-formaatti. Macintosh-snd -tiedostolla on alussaan alkutiedot (header) kuten AIFF:ssä ja WAVissa, mutta ne ovat muutoin samantyyppistä äänitietoa. Tiedostot ovat merkitsemätöntä tyyppiä (unsigned).
MIME on Internet-standardi, jossa on määritelty audiodatan siirtämistä koskevaa koodaustietoa, sekä laite- ja ohjelmatietoa. Tämä on laajoja mittasuhteita saava formaatti, ja määrittelee oikeastaan eräänlaisen jälkiäänitetyn perusaudion, 8-bittisen u-lawin näytteistettynä 8000 näytettä/sekunnissa.
Creative Labsin SoundBlaster VOC (*.voc) on DOS-ympäristössä (esim. peleissä) yleisin aaltomuotoisen äänen formaatti. Se on aina 8-bittinen ja tiedoston pituus on rajoitettu (16 minuuttia). Useat muutkin äänikortit Sound Blasterin lisäksi tukevat sitä ja se voidaan tarvittaessa muuntaa WAV-muotoon.
Seuraavassa esitettynä esimerkki VOC-tiedostoformaatista (tavut heksamuodossa). Se sisältää otsakekenttäosan (tavut 00-19) ja sarjoja datalohkoista (tavut 1A+).
HEADER:
=======
byte # Description
------ ------------------------------------------
00-12 "Creative Voice File"
13 1A (eof to abort printing of file)
14-15 Offset of first datablock in .voc file (std 1A 00 in Intel Notation)
16-17 Version number (minor,major) (VOC-HDR puts 0A 01)
18-19 2's Comp of Ver. # + 1234h (VOC-HDR puts 29 11)
- ---------------------------------------------------------------
DATA BLOCK: ===========
Data Block: TYPE(1-byte), SIZE(3-bytes), INFO(0+ bytes)
NOTE: Terminator Block is an exception -- it has only the
TYPE byte. TYPE Description Size (3-byte int) Info
---- ----------- ----------------- -----------------------
00 Terminator (NONE) (NONE)
01 Sound data 2+length of data *
02 Sound continue length of data Voice Data
03 Silence 3 **
04 Marker 2 Marker# (2 bytes)
05 ASCII length of string null terminated string
06 Repeat 2 Count# (2 bytes)
07 End repeat 0 (NONE)
08 Extended 4 ***
*Sound Info Format: **Silence Info Format:
--------------------- ----------------------------
00 Sample Rate 00-01 Length of silence - 1
01 Compression Type 02 Sample Rate
02+ Voice Data
***Extended Info Format:
---------------------
00-01 Time Constant: Mono: 65536 - (256000000/sample_rate)
Stereo: 65536 - (25600000/(2*sample_rate))
02 Pack
03 Mode: 0 = mono
1 = stereo
Marker# -- Driver keeps the most recent marker in a status byte
Count# -- Number of repetitions + 1
Count# may be 1 to FFFE for 0 - FFFD repetitions
or FFFF for endless repetitions
Sample Rate -- SR byte = 256-(1000000/sample_rate)
Length of silence -- in units of sampling cycle
Compression Type -- of voice data
8-bits = 0
4-bits = 1
2.6-bits = 2
2-bits = 3
Multi DAC = 3+(# of channels)
Raaka PCM (SAM, Signed Raw Format, *.sam) sisältää pelkän äänitiedon ilman lisätietoja tai tiivistystä. Näytteet on tallennettu etumerkillisinä (signed) 7-bittisinä.
Muutamia vanhoja header-esimerkkejä on esitetty liitteessä 4.
Microsoftin Waveform, WAV (tiedostotarkennin .wav) on Windowsin aaltomuotoisen äänen perusformaatti ja tässä ympäristössä yleisimmin käytetty. Se tukee kaikkia näytteistystaajuuksia, 8- ja 16-bittistä näytekokoa sekä mono- ja stereokanavia. WAV-tiedostot ovat RIFF (Resource Interchange File Format) -tyyppisiä, eli nämä määritykset tallentuvat osaksi tiedostoja niin, että ääniajuri osaa toistaa ne oikeassa muodossa. RIFF-muodossa tiedostoihin voidaan tallentaa myös paljon muuta tietoa, mm. kappaleen nimi ja esittäjä. Käytetty tallennustekniikka on Microsoft PCM.
CCITT u-Law (myy-) ja A-Law tiivistysmuodot tiivistävät 16-bittisen äänen 8-bittiseksi. Tulos vastaa laadultaan suunnilleen 12-bittistä ja on parempi kuin ADPCM. Tiivistys tapahtuu muuttamalla lineaariset numeroarvot logaritmisiksi. Muunnoksen lähdekoodi u-Law -muunnoksissa toimitetaan osina nk. SOX-paketteja, jotka ovat helposti otettavissa erilleen muiden sovellusten käyttöön. Virallinen määrittely on CCITT-standardi G.711.
Samankaltainen u-Lawin kanssa on toinen enkoodausmenetelmä, A-Law. Tämä on käytössä eurooppalaisena puhelinstandardina. UNIX-työasemille tuki on heikompi.
u-Law on muotoa
y={[sgn(m)/ln(1+u)]*ln(1+(u|m/mp|))} , kun |m/mp| <= 1.
a-Law on muotoa
y={[A/(1+lnA)][m/mp]} , kun |m/mp| <= 1/A
tai
y={sgn(m)/(1+lnA)*[1+lnA*|m/mp|]} , kun 1/A <= |m/mp| <= 1
u:lle käytetään arvoja 100 ja 255, A:lle 87.6, mp on piikkitiedon arvo (Peak message) ja m on kvantisointiarvo (kaavat yksinkertaistuvat, jos asetetaan x=m/mp ja sgn(x)=sgn(m), jolloin -1<=x<=1). Muunnos u-Lawista A-Lawiin on järjetöntä, jos muunnoksessa esiintyy kvantisointivirheitä.
8-bittisen u-Lawin resoluutio (erottelukyky) on samaa suuruusluokkaa kuin 12-bittisellä lineaarisella ja vastaavasti 12-bittisellä u-Lawilla sama kuin 16-bittisellä lineaarisella koodauksella. Vertailua on tarkasteltu taulukossa 11.
Laite/Koodaus | Maksimitason resoluutio | Alemman tason resoluutio | Käyttötarkoitus |
8-bittinen lineaarinen | 8 | 8 | |
8-bittinen u-Law | 6 | 12 | Käytetään digitaalipuhelimissa |
12-bittinen lineaarinen | 12 | 12 | |
12-bittinen u-Law | 10 | 16 | Käytetään DAT:ssa |
16-bittinen lineaarinen | 16 | 16 |
Taulukko 11. u-law vertailu.
Lisätietoa on saatavissa lähteistä ([La], [TSC]).
AVR (Audio Visual Research) on Macintosh-ympäristössä käytössä oleva, usein kaupalliseen toimintaan liittyvä tiedostoformaatti. Tällä formaatilla on 128 tavun mittainen otsakekenttä, josta esimerkki seuraavassa:
char magic[4]="2BIT";
char name[8]; /* null-padded sample name */
short mono; /* 0 = mono, 0xffff = stereo */
short rez; /* 8 = 8 bit, 16 = 16 bit */
short sign; /* 0 = unsigned, 0xffff = signed */
short loop; /* 0 = no loop, 0xffff = looping sample */
short midi; /* 0xffff = no MIDI note assigned, 0xffXX = single key note assignment, 0xLLHH = key split, low/hi note */
long rate; /* sample frequency in hertz */
long size; /* sample length in bytes or words (see rez) */
long lbeg; /* offset to start of loop in bytes or words. set to zero if unused. */
long lend; /* offset to end of loop in bytes or words. set to sample length if unused. */
short res1; /* Reserved, MIDI keyboard split */
short res2; /* Reserved, sample compression */
short res3; /* Reserved */
char ext[20]; /* Additional filename space, used if (name[7] != 0) */
char user[64]; /* User defined. Typically ASCII message. */
MOD-tiedostot tulivat kuuluisiksi Amigan äänitiedostoina ja siirtyivät sieltä muihinkin järjestelmiin. MIDI-tiedostojen lailla MODit (ja johdannaiset, kuten S3M, 669 ja MADx) varastoivat musiikkitietoa. Taasen toisin kuin MIDI, MODit ja niiden sukulaiset eivät varastoi ainoastaan nuottitietoa, vaan myös digitoidut näytteet instrumenteista. Toisin kuin kunnollinen MIDI-toisto tarvitsee wavetable-äänikortin PC:ssä tai QuickTimen Macintoshissa, jokainen kone saa aikaan hyvätasoista MOD-musiikkia kohtalaisella 8-bittisellä äänikortilla. Kuitenkin MODien sisältäessä myös digitoituja näytteitä, on ne huomattavasti tiedostokooltaan MIDI-tiedostoja suurempia.
MOD-tiedostot ovat musiikkitiedostoja, jotka sisältävät kaksi osaa: digitoitujen näytteiden pankin ja kuvailevaa sekvenssointitietoa siitä, milloin ja miten soittaa näytteitä. Joustavan systeeminsä ja tarjolla olevien MOD-tiedostojen määrän, sekä täten suunnattoman suuren suosionsa, ansiosta MOD-player -sovelluksia on tarjolla useimmille laitesysteemeille.
MOD-tiedostojen näytteet ovat 'raakoja', 8-bittisiä, merkittyjä ja otsakekentättömiä, lineaarista digitaalista dataa. Siinä voi olla jopa 31 erilaista näytettä, joista jokainen voi olla pituudeltaan jopa 128K (yleensä pienempiä, luokkaa 10K-60K). Vanhempi MOD-formaatti salli vain 15 näytettä, mutta näitä ei ole enää juurikaan liikkeellä. MOD-sämpleille ei ole varsinaista standardinäytteistystaajuutta.
MOD-tiedostojen informaatio alkaa neljällä raidalla informaatiota siitä, mitkä, milloin, kuinka pitkään ja millä taajuudella näytteet tulee esittää. Tämä tarkoittaa sitä, että tiedostossa voi olla 31:n eri digitoidun instrumentin soundit. Näistä neljän äänen yhdenaikainen toistaminen on mahdollista. Tämä mahdollistaa laajan skaalan orkestraatiomahdollisuuksia aina puhe-, laulu- ja omien instrumenttien näytteitä myöten, toki laitteistosta ja ohjelmistosta riippuen. Omien näytteiden käyttömahdollisuus instrumenttina onkin omalta osaltaan syynä MODien suosioon.
Edellämainittu 15 instrumentin MOD on muutoin samanlainen kuin 31 instrumentin, mutta muutama eroavaisuus formaateista löytyy:
MOD-ohjelmistoa eri laitteistoille, kuten
ProTracker-formaattiesimerkki on nähtävissä liitteessä 3.
Sample Vision on laitekohtainen äänimuoto (tiedostotarkennin .smp). Se on yleensä ammattimuusikoiden käyttämä ohjelma näytteiden lähettämiseen ja vastaanottamiseen PC-koneeseen MIDI-liitännän kautta. Järjestelmässä on mahdollista muokata useita parametreja (kuten luuppikohtia, korkeutta, aikakompressiota ja näytetaajuutta). 'Sämplerit'(erillisiä soitinmoduleja), joita järjestelmä tukee, ovat mm. AKAI (S700, X700, S900, S950, S612, S1000/ 1100), Casio (FZ1, FZ10M, FZ20M), Ensoniq (EPS, EPS16, ASR10, Mirage), Emu (Emax, EmaxII), Korg (DSS1, DSM1, T workstation), Oberheim DPX-1, Peavey DPM-3, Roland (S10, MKS100, S220, S50, S330, S550), Sequential Circuits Prophet 2000/2002, Sample Dump Standard devices ja Yamaha TX16W.
smp-formaatti eriteltynä näyttää seuraavalta:
Offset Size Description
000 18 'SOUND SAMPLE DATA ' ASCII FILE ID
0018 04 '2.1 ' ASCII FILE VERSION
0022 60 USER COMMENTS 60 ASCII CHARACTERS
0082 30 SAMPLE NAME LEFT JUSTIFIED 30 ASCII CHARACTERS
0112 04 SAMPLE SIZE SAMPLE DATA COUNT IN WORDS
0116 ?? SAMPLE DATA 1 WORD PER SAMPLE, LEAST SIGNIFICANT BYTE FIRST, LSW FIRST; SIGNED 16 BIT INTEGERS
?? 02(DW) RESERVED
?? 04(DD) LOOP 1 START USE SAMPLE COUNT NOT BYTE COUNT
?? 04(DD) LOOP 1 END
?? 01(DB) LOOP 1 TYPE 0=LOOP OFF,1=FORWARD,2=FORWARD/BACKWARD
?? 02(DW) LOOP 1 COUNT TIMES TO EXECUTE LOOP BEFORE NEXT LOOP
THERE ARE SEVEN MORE IDENTICAL LOOP STRUCTURES FOR A TOTAL OF 8
?? 10 MARKER 1 NAME ASCII MARKER NAME
?? 04(DD) MARKER 1 POSITION FFFF MEANS UNUSED
THER ARE SEVEN MORE IDENTICAL MARKER STRUCTURES FOR A TOTAL OF 8
?? 01(DB) MIDI UNITY PLAYBACK NOTE MIDI NOTE TO PLAY THE SAMPLE AT ITS ORIGINAL PITCH
?? 04(DD) SAMPLE RATE IN HERTZ
?? 04(DD) SMPTE OFFSET IN SUBFRAMES
?? 04(DD) CYCLE SIZE SAMPLE COUNT IN ONE CYCLE OF THE SAMPLED SOUND. -1 IF UNKNOWN
(DD) 4 BYTES, LS BYTE FIRST, LS WORD FIRST
(DW) 2 BYTES, LS BYTE FIRST
(DB) 1 BYTE
Käytännön kokeet ovat havainnollistaneet, että Sample Vision kirjoittaa tiedostoon vain seitsemän 'luuppistruktuuria' (silmukkarakennetta) kahdeksan väitetyn sijaan.
Tandyn .snd-tiedostot tulevat Sound.pdm:ltä, joka on ohjelma DeskMate-ympäristön yksityisessä hallinnassa. Ne ovat käytettävissä Music.pdm:ssä, joka kehittää musiikkimoduleita (.sng-tiedosto). DeskMate-ääni ja -musiikki vaatii Tandyn äänipiirin. Ohjelmistoihin, jotka kääntävät RIFF WAVE:n tai muun 8-bittisen PCM formaatin .snd-muotoon, kuuluu mm. Conv2snd-niminen ohjelma (Kenneth Udut). Uudemmat ohjelman versiot tulevat Snd2wav:n kera, joka muuttaa snd:n RIFF WAVEksi. On syytä huomioida, että myös NeXTillä ja Mac/PC:llä on omat snd-formaattinsa.
DeskMaten snd-tiedostoja on kahden tyyppisiä: äänitiedostoja ja instrumenttitiedostoja. Molemmat sisältävät 8-bittisiä merkitsemättömiä PCM-näytteitä.
Äänitiedostot ovat yksinkertaisempia. Nämä ovat sekalainen valikoima näytetiedostoja, joissa on kiinteänmittainen otsakekenttä sisältäen äänen nimen, äänitystaajuuden ja äänen pituuden. Äänet voivat olla äänitettyjä 5500 Hz:n, 11kHz:n tai 22kHz:n taajuudella.
Instrumenttitiedostot sisältävät Music.pdm:n käyttämiä näytteitä sekä taajuus- ja 'luuppitietoa' edustamassa instrumenttia. Instrumenttitiedostoissa on valmistauduttu iskuihin (attack), vaimennuksiin (sustain) ja 'häivennyksiin' (decay) useammilla näytteillä, jotka sisältävät eri liitetaajuuksia ollakseen Music.pdm:n käytössä mallintamaan soittimia eri taajuuksilla. Yhteen instrumenttitiedostoon voidaan sisällyttää 16 eri nuottia (16:lla eri näytteellä). Tiedostot on aina tallennettu 11kHz:llä. Sekä ääni- että instrumenttitiedostoja on myös mahdollista kompressoida.
DeskMaten snd-tiedoston otsikkokenttä muodostuu 16-tavusta aiemmin mainittua informaatiota, jonka jälkeen tulee yksi tai useampia 28-tavun nuottitallenteita. Näyteinformaatio, joka voi olla kompressoitua, seuraa otsakekenttää. Tiedosto-ote Deskmate snd-tiedostosta on nähtävissä liitteessä 6.
Tämän formaatin SOX (Sound Exchange) -tyyppi on Sd2f. Se on muokattavissa mm. SoundHack -ohjelmalla. Sovellusohjelmia tietokonejärjestelmille on saatavissa mm. Macintoshille SoundHack.
AVI-äänimuoto (*.avi) on videoiden ääniraita, joka voidaan erottaa erikseen muokattavaksi ja tallennettavaksi.
Dialogic ADPCM on laitekohtainen äänimuoto (tiedostotarkennin .vox). Sovellusohjelmia on olemassa.
Edellä on mainittu tärkeimmät ja pitkäaikaisimmat äänen tiedostoformaatit ja koodausjärjestelmät. Näiden lisäksi on olemassa suuri joukko muita, harvinaisempia, erikoisempia laite- tai sovelluskohtaisia, audioformaatteja. Näitä on listattuna seuraavassa.
Näiden lisäksi on suuri määrä eri ohjelmavalmistajien sovellusten määräämiä projektiformaatteja sovellusohjelmilta, kuten mm. Cakewalk ja Sound Forge (mm. .wrk, .mff, .rmi, .bun, .sds, .sfr, .dig, .sd, .). Nämä sisältävät sovelluksen omaa tietoa. Näitä formaatteja ei tarkastella tässä esitelmässä.
Kuva 7. Esimerkki erään korkeatasoisen äänenmuokkausohjelman näytteestä.
Audiotyöskentelyn sovellusohjelmia on olemassa tänä päivänä paljon. Osa on 'vanhoja hyviä' ja osa uudempia, moninaisemmilla 'lisäherkuilla' varustettuja. Sovellusohjelmia on esiteltyinä erikseen joidenkin audioformaattien kohdalla luvussa 6. Useat sovellukset ovat hyvin laaja-alaisia, ts. pystyvät käsittelemään useamman eri valmistajan formaatteja.
Liitteessä 2 on esimerkkinä informaatiota Antexin sovelluksesta NuWave Digital Audio Editor for Compressed Files.
Toisinaan digitaalinen audioinformaatio tulee siirtää laitteiden välillä reaaliajassa. Yleisimmin vastaantulevat tiedonsiirtoprotokollat (esim. multimediatuotteet) ovat AES/EBU, SDIF-2 ja S/PDIF.
AES/EBU on Audio Engineering Societyn ja European Broadcast Unionin kehittämä. Se on yleisin käytössä oleva järjestelmä ammattimaisissa digitaaliaudiosysteemeissä. Se on 2-kanavainen RS-422 liittymä käyttäen balansoituja linjoja ja joko XLR- tai D-sub -liittimiä.
SDIF-2 (Sony Digital Interface Format) on kehitetty videonauhapohjaisiin PCM-äänityslaitteisiin. Systeemi käyttää 75-ohmisia balansoituja linjoja BNC-liittimillä.
S/PDIF (Sony/Philips Digital Interface Format) kehitettiin yhteistyössä Sonyn ja Philipsin kesken. Keskeisintä on, että se on balansoimaton versio AES/EBU -protokollasta käyttäen joko RCA- tai kuituoptisia liitäntöjä. S/PDIFia käytetään mm. DAT-nauhureissa, CD-soittimissa ja F1-koodaajissa (DATin edeltäjä, videostandardin tyyppinen järjestelmä) digitaalisin liitännöin.
Tässä seminaarityössä on pyritty tuomaan esille mahdollisimman laaja katsaus digitaalisen äänen tuottamiseen ja sen tallentamiseen tietotekniikkaympäristössä ja sitä hieman sivuavissa järjestelmissä. Erillisistä osa-alueista on varmasti olemassa hyvinkin tarkkaa erikoistietoa, mutta tähän kirjoitelmaan on kerätty lähinnä pääseikkoja mahdollisimman monesta eri tapauksesta.
Kirjoitelma on tästä vielä laajennettavissa huomattavasti varsinkin tekniikan huiman kehitysvauhdin vuoksi. On selvää, ettei kirjoitelmaan ole välttämättä saatu viimeisintä tietoa, mutta edustettuna on mahdollisimman laaja otanta mahdollisimman uudesta tiedosta.
[Ba, 1985] Bartee Thomas C.,"Digital computer fundamentals", Sixth edition, McGraw-Hill book company, 1985
[Bu, 1993] Burger Jeff, "The Desktop Multimedia Bible", Addison-Wesley Publishing Company, 1993
[Da, 1995] Davis Pan, "A Tutorial on MPEG/Audio Compression", IEEE Multimedia, 1995.
[El, 1994] Ellis Michael G., Sr., "Electronic filter analysis and synthesis", Artech house inc., 1994
[Ko, 1993] Koski Arto & Oesch Klaus, "PC-multimedia", Kustannusosakeyhtiö Otava, 1993
[St, 1997] Stroud's Index of 32-bit Apps by Category, http://papa.indstate.edu:8888/ CWSApps/ inx32.html, 1997.
[Str, 1997] Stroud's Reviews for Audio Apps, http://cws.avalon.nf.ca/32audio-reviews.html, 1997.
[Fr, 1997] Frequently Asked Questions about MPEG Audio Layer-3, http://www.iis.fhg.de/departs/ amm/ layer3/sw/index.html, 1997.
[Pa, 1996] Partanen Antti, "MPEG", Seminaariesitelmä 1996, TKK.
[An, 1997] Antex Electronics, "Audio Interchange Formats and Standards", http://www.antex.com/ audioformats.html, 1997.
[SV, 1996] Strategic Visions, Katsaus audio- ja videosovelluksin verkossa, http://www.nettiradio.fi/ test/ digi/ audvid.htm, 1996.
[Coas, 1996] Coding of audio signals, http://www.cs.tut.fi/~ypsilon/80545/CodingOfAS.html, 1996.
[Ida, 1996] Introduction to digital audio, http://www.cs.tut.fi/ ~ypsilon/80545/ IntroductionToDigital Audio.html, 1996.
[SM, 1996] 13.3 Standard Module aifc, http://python.via.ecp.fr/doc/lib/node150.html, 1996.
[Fda, 1997] Fundamentals of digital audio, http://www.cs.tut.fi/~ypsilon/ 80545/ FundamentalsOfDA.html, 1997.
[AFF1, 1995] Audio File Formats (part 1 of 2), http://www.cs.ruu.nl/wais/html/na-dir/audio-fmts/ part1.html, 1995.
[AFF2, 1995] Audio File Formats (part 2 of 2), http://www.cs.ruu.nl/wais/html/na-dir/audio-fmts/ part2.html, 1995.
[Ja, 1997] Jalonen Marko, "Radio Internetissä", Internet-kurssin harjoitustyö, 1997.
[Ant, 1997] Antex - Software And Audio Development Kits, http://www.antex.com/software.html, 1997.
[Wab, 1997] Wideband audio coding, http://www.cs.tut.fi/~ypsilon/80545/WBACoding.html, 1997.
[Af, 1997] The Cross-Platform Page: Audio Formats, http://www.mcad.edu/guests/ericb/ xplat.aud.html, 1997.
[G.726a, 1991] G.726 [Julkaistu huhtikuussa 1991 korvaamaan G.721 ja G.723] 40, 32, 24, 16 kbit/s adaptive differential pulse code modulation (ADPCM).
[G.726A, 1995] G.726 A [Kesäkuu 1995] Extensions of Recommendation G.726 on 40, 32, 24, 16 kbit/s adaptive differential pulse code modulation for use with uniform-quantized input and output.
[G.726III/G.727II, 1995] G.726 III/G.727 II [Toukokuu 1995] Appendix III/II to Recommendation G.726/G.727 - Comparison of ADPCM algorithms.
[G.727a, 1991] G.727 [Toukokuu 1991] 5-, 4-, 3- and 2-bits/sample embedded adaptive differential pulse code modulation (ADPCM).
[G.727A, 1995] G.727 A [Kesäkuu 1995] Extensions of Recommendation G.727 on 5-, 4-, 3- and 2-bits/sample embedded adaptive differential pulse code modulation for use with uniform-quantized input and output.
[Fs1] Federal Standard 1016, Telecommunications: Analog to Digital Conversion of Radio Voice by 4,800 bit/ second Code Excited Linear Prediction (CELP).
[IE] I-ETS 300 036 European digitial cellular communications system (phase 1): Full rate speech transcoding (GSM 06-10).
[G.728a, 1992] G.728 [Julk. joulukuussa 1992] Coding of speech at 16 kbit/s using low-delay code excited linear prediction.
[FIPS] US Federal Information Processing Standard 137/NATO-STANAG-4198 2400 bps linear prediction coder (LPC-10).
[T.419] ITU-T Recommendation T.419 (1995) | ISO/IEC 8613-9 (DIS) Information technology -- Open Document Architecture (ODA) and interchange format -- Audio content architectures.
[G.711, 1990] G.711 [Book Fasc. III.4: julkaistu kesäkuussa 1990] Pulse code modulation (PCM) of voice frequencies.
[G.722, 1990] G.722 [Blue Book Fasc. III.4: published June 1990] 7 kHz audio-coding within 64 kbit/s.
[ISO10743] ISO/IEC DIS 10743 Information technology -- Document processing and related communications -- Standard Music Description Language (SMDL).
[La] Modern Digital and Analog Communication Systems, B.P.Lathi., 2nd ed. ISBN 0-03-027933- X.
[TSC] Transmission Systems for Communications, Fifth Edition, Bell Telephone Laboratories, Incorporated.
Liite 1. AIFC:n määrittelemiä funktioita.
Module aifc defines the following function:
open(file, mode) Open an AIFF or AIFF-C file and return an object instance with methods that are described below. The argument file is either a string naming a file or a file object. The mode is either the string 'r' when the file must be opened for reading, or 'w' when the file must be opened for writing. When used for writing, the file object should be seekable, unless you know ahead of time how many samples you are going to write in total and use writeframesraw() and setnframes().
Objects returned by aifc.open() when a file is opened for reading have the following methods:
getnchannels() Return the number of audio channels (1 for mono, 2 for stereo).
getsampwidth() Return the size in bytes of individual samples.
getframerate() Return the sampling rate (number of audio frames per second).
getnframes() Return the number of audio frames in the file.
getcomptype() Return a four-character string describing the type of compression used in the audio file. For AIFF files, the returned value is 'NONE'.
getcompname() Return a human-readable description of the type of compression used in the audio file. For AIFF files, the returned value is 'not compressed'.
getparams() Return a tuple consisting of all of the above values in the above order.
getmarkers() Return a list of markers in the audio file. A marker consists of a tuple of three elements. The first is the mark ID (an integer), the second is the mark position in frames from the beginning of the data (an integer), the third is the name of the mark (a string).
getmark(id) Return the tuple as described in getmarkers for the mark with the given id.
readframes(nframes) Read and return the next nframes frames from the audio file. The returned data is a string containing for each frame the uncompressed samples of all channels.
rewind() Rewind the read pointer. The next readframes will start from the beginning.
setpos(pos) Seek to the specified frame number.
tell() Return the current frame number.
close() Close the AIFF file. After calling this method, the object can no longer be used.
Objects returned by aifc.open() when a file is opened for writing have all the above methods, except for readframes and setpos. In addition the following methods exist. The get methods can only be called after the corresponding set methods have been called. Before the first writeframes or writeframesraw, all parameters except for the number of frames must be filled in.
aiff() Create an AIFF file. The default is that an AIFF-C file is created, unless the name of the file ends in '.aiff' in which case the default is an AIFF file.
aifc() Create an AIFF-C file. The default is that an AIFF-C file is created, unless the name of the file ends in '.aiff' in which case the default is an AIFF file.
setnchannels(nchannels) Specify the number of channels in the audio file.
setsampwidth(width) Specify the size in bytes of audio samples.
setframerate(rate) Specify the sampling frequency in frames per second.
setnframes(nframes) Specify the number of frames that are to be written to the audio file. If this parameter is not set, or not set correctly, the file needs to support seeking.
setcomptype(type, name) Specify the compression type. If not specified, the audio data will not be compressed. In AIFF files, compression is not possible. The name parameter should be a human-readable description of the compression type, the type parameter should be a four-character string. Currently the following compression types are supported: NONE, ULAW, ALAW, G722.
setparams(nchannels, sampwidth, framerate, comptype, compname) Set all the above parameters at once. The argument is a tuple consisting of the various parameters. This means that it is possible to use the result of a getparams call as argument to setparams.
setmark(id, pos, name) Add a mark with the given id (larger than 0), and the given name at the given position. This method can be called at any time before close.
tell() Return the current write position in the output file. Useful in combination with setmark.
writeframes(data) Write data to the output file. This method can only be called after the audio file parameters have been set.
writeframesraw(data) Like writeframes, except that the header of the audio file is not updated.
close() Close the AIFF file. The header of the file is updated to reflect the actual size of the audio data. After calling this method, the object can no longer be used.
Liite 2. Esimerkki Antexin NuWave Digital Audio Editorista.
Antex NuWave Digital Audio Editor for Compressed Files
When it comes to editing digital audio data two things are important. First is compatibility. With NuWAVE you are assured of compatibility of virtually any Windows audio file format - including several compressed file formats. The second is speed. NuWAVE was designed with simplicity and efficiency in mind. Because you can edit in real-time, you will find NuWAVE to be one of the easiest and fastest editors available. Edit Compressed Audio Files With NuWave Take advantage of editing in more efficient compressed file formats such as Dolby AC-2, MPEG Layer I&II, MS-ADPCM. Edit these fileslike any other. File format is completely transparent to NuWAVE and the user. NuWAVE allows you to avoid conversion delays and results in no generation loss.
Why edit compressed audio files? More and more broadcast facilities, multimedia developers, and interactive/on-line applications are using compressed files. Compressed files maximize audio and video quality at a limited bandwidth, demand less from a computer's CPU and take up less disk space than non-compressed files. The ability to edit these files is more efficient and allows editing of multiple formats within a single editor.
What is non-destructive editing? Non-destructive editing is a process that records all edits in an Edit Decision List (EDL). The actual audio files/clips are never altered. The EDL actually contains a list of all audio files to be used with information on when the file will play, how much of the clip to play, and all other characteristics of the file as directed by the NuWAVE editor.
Edit 8 and 16-Bit PCM .WAV Formats Virtually all Windows digital audio files formats (.WAV) files are fully editable with NuWAVE.
True Audio Scrubbing NuWAVE allows true reel-rocking type performance for fast and precise edit point location.
Non-Destructive EDL Based Digital Audio Editing NuWAVE never alters the original audio file. Instead it creates an edit decision list which instructs the editor how to compose and playback the edited version. This speeds the editing process plus it means your library of audio clips remains intact. You can use the same clip in a multitude of files. In addition, standalone composite files can also be created from the EDL.
Four-Track Real-time Operation Simultaneous, independent operation of two stereo (four mono) audio tracks is provided. (Compatible digital audio adapters are required to take advantage of this feature). All mixing, gain adjustments, and fades (in/out) are accomplished in real-time. This is possible due to the advanced capability of DSP-based Antex digital audio adapters. You never have to wait.
Intuitive Drag-and-Drop Interface NuWAVE is extremely simple to use. Editing is easily accomplished by dragging file "regions" and dropping them into place. Standard Windows features including Cut, Copy and Paste are fully supported.
Audio Region: Waveform Mode View and edit files in Waveform view. Cropping audio regions is as simple as dragging the region's handles while holding SHIFT down.
Audio Region: Gain Mode View and edit a region's gain contour by clicking on the region while holding the SHIFT key and then dragging the fade-in, fade-out and gain adjustment handles.
Recommended Hardware Requirements 486DX-33 or above 8 MB RAM Microsoft Windows 3.1 At least 10 MB of hard disk space available Microsoft Windows compatible audio card
Liite 3. ProTrackerin formaattiesimerkki