Core Audio a neve a macOS és az iOS digitális hang infrastruktúrájának: annak a szoftveres keretrendszernek, amely az alkalmazások audió szükségleteinek kezelésére született meg. A mély, hardver közeli szoftveres réteg, a Core Audio teszi lehetővé, hogy a macOS és az iOS rendszerek kiemelkedő audió teljesítményt nyújtsanak igen alacsony késési idők mellett.
A macOS és iOS operációs rendszerben a Core Audio a teljesség igénye nélkül a következő alapvető funkciókat látja el: hangfelvétel, visszajátszás, hangeffektusok, formátumok közti átalakítás (kovertálás), hang alapú adatfolyamok kezelése (stream). A Core Audio hozzáfér a bemeneti és kimeneti hangeszközökhöz, beépített hangszínszabályzókat biztosít az alkalmazások széles köre számára, és optimalizálja a hanggal kapcsolatos rendszerműveleteket az akkumulátor idő javítására. A macOS rendszerben ezen kívül a MIDI, az audió jelfeldolgozás és a szoftveres szintetizálás feladatai is a Core Audio feladatkörébe tartoznak. A fejlesztők számára önálló alkalmazásokat éppúgy lehetőség van Core Audio alapra alkotni, mint más alkalmazások által használható bővítményeket.
A Core Audio a C és az Objective-C programnyelvek használatával alkotott rendszer kiegészítő, amely így egyszerre rugalmas, hiszen elterjedt, népszerű programnyelveket támogat, miközben a jelátviteli rendszer mélyén helyezkedik el, így a késése minimális. Előnye, hogy a fejlesztőknek nem szükséges bonyolult hardveres programozást alkalmazniuk ahhoz, hogy minimalizálják a hangfeldolgozás terén oly kritikus késési időket.
A hangtechnika felépítése
A macOS rendszer hangtechnikai felépítése a következőképpen néz ki: a hardverhez meghajtóprogramok kapcsolódnak, amelyekre az I/O Kit (bemeneti-kimeneti csomag) épül. A Core Audio szolgáltatások az efölötti Core MIDI és Hardware Abstraction Layer (HAL) felületekre épülnek. A Hardware Abstraction Layer (HAL) funkciója az, hogy a szoftverek rajta keresztül egy kiszámítható és következetes interfészt kapjanak a hardverekkel való párbeszédhez. A HAL szerepe, hogy egyszerűsítse a szinkronizálást és szabályozza a késést és időzítést.
Az Apple arra a célra, hogy a bemeneti hangot a macOS rendszer feldolgozza, egy úgynevezett AUHAL egységet kínál. Ez a bővítmény biztosítja, hogy a szoftveres réteg közvetlenül kapcsolatba kerüljön a Harware Abstraction Layer felülettel, és rajta keresztül a hardverekkel. (Az iOS rendszereken az AUHAL unit neve AURemoteIO unit.)
A Mac rendszereken a Hardware Abstraction Layer felületére épülnek a következő Core Audio funkciók: Audio Queue szolgáltatások, rendszerhangok, Core Audio óra, OpenAL, hang alapú adatfolyam sugárzása (stream), Audio Units (Core Audio bővítmények), lejátszó, konvertáló és kódoló szolgáltatások, hang szintetizáló szolgáltatások.
A macOS operációs rendszer hangfeldolgozásának alapja a 32-bites lebegőpontos lineáris PCM formátum (linear pulse-code-modulated format). A digitális hangrögzítés ebben a tömörítetlen formátumban rögzíti a hangot két paraméter használatával: a hangjel adott időben mérhető mennyiségét bizonyos időközönként ellenőrzi, és számszerűsíti. A mérési időközöket nevezzük mintavételezési értéknek (sample rate), amelyet Herzben fejezünk ki. Az a paraméter, hogy a mintavételt milyen részletességű adattömbben írjuk le, jelenti a bitmélységet. A CD-k például 44.100 Herzes 16-bites hangfelvételek. A Mac azonban régóta támogatást nyújt a nagy felbontású hangokkal való munkához, sőt, a Logic Pro alkalmazásban kimondottan a 24-bites mélység a standard, míg a rendszer képes arra, hogy 96.000 Herzes vagy 192.000 Hz-es mintavételezéssel rögzítsen hangot. Ez természetesen sokkal jobb minőségű, az analóg felvételek természetes áramlásához sokkal közelebb álló felvétel.
Az ilyen módon rögzített lineáris PCM formátumú hangfelvételt az Audio Converter Services nevű Core Audio elem fordítja le az alkalmazások számára megfelelő formátummá, illetve alakítja át kisebb méretű, könnyedén visszajátszható, elterjedt irattá, mint az AAC vagy az Apple Lossless formátum.
Audio Units
A macOS Core Audio alapú szoftveres bővítményei az úgynevezett Audio Unit bővítmények. Ezek a rendszer által biztosított vagy külső fejlesztésű kiegészítők egyesével vagy csoportosan, párhuzamosan is használhatóak, és képesek beépülni olyan alkalmazásokba, mint a GarageBand és a Logic Pro.
Az Audio Unit bővítményeknek több fajtája létezik: gyakori előfordulásuk, hogy valamilyen effektust adnak hozzá a hanghoz (effect unit), és digitális jelfeldolgozást végeznek (DSP, digital signal processing); léteznek kimondottan hangot alkotó szoftveres szintetizátorok (instrument unit), amely általában MIDI forrásból hoz létre egy létező hangszert utánozó vagy teljesen szoftveres, analóg hangszeren meg nem szólaltatható hangot; léteznek olyan egységek, amelyek jel forrásként működnek (generator unit), és valamilyen adatból továbbítanak hangképzéshez alapot szolgáltató jelet (például egy táncos mozgásából, vagy egy hálózati adatfolyamból, stb.); többféle külső hang kiegészítő használ bemeneti és kimeneti bővítményeket (I/O Unit) a működése során; léteznek formátum átalakító egységek (converter unit), valamint keverő egységek (mixer unit), térhangzást létrehozó (panner unit) kiegészítők.
A macOS rendszerben mindannyian találkozhatunk az Audio Units rendszer működésével, amikor az iTunes programban hangszínszabályzót aktiválunk (EQ): ez is egy példája az Audio Unit bővítményeknek.
Rendszerszintű MIDI támogatás
A Core MIDI a Core Audio rendszer része, amely kimondottan a MIDI protokoll kezelésére lett megalkotva. Az alkalmazások rajta keresztül kommunikálnak a MIDI eszközökkel, ez a szolgáltatás továbbítja a hardverekből érkező MIDI jelet annak érdekében, hogy az az alkalmazásokban feldolgozásra kerüljön és funkciókat lásson el - például hangszert szólaltasson meg.
A Core MIDI a rendszer számára kvázi virtuálisan megjeleníti a MIDI eszközöket, illetőleg virtuális MIDI kábel kapcsolatokat épít fel (MIDI In, MIDI Out, MIDI Thru), miközben alacsony késésű tényleges bemeneti és kimeneti opciókat kínál. A Core Audio keretrendszer segítségével mélyebb hardveres programozási ismeretek nélkül alkotható MIDI alapú eszközökhöz szánt zenei alkalmazás vagy bővítmény, amely a hardver szintű alacsony késésekkel képes üzemelni.
A Core Audio nyújtotta szolgáltatások jóvoltából a fejlesztők összetett, kis késésű és sok funkcióval rendelkező szoftvereket és bővítményeket képesek kínálni a macOS alapú kreatív zenei felhasználók, hangmérnökök és zenei oktatók számára.
Forrás: developer.apple.com
Keresés a lap tartalmában a Google motorja segítségével: