Bepillantás a digitális zenetárolás világába

Fekete Ádám    2021. October 01.    Hozzászólás    18

Hogy a zene élőben a legcsodásabb, ahhoz nem fér kétség! Mégis az emberiség életében viszonylag régóta megjelent annak az igénye, hogy valahogy megőrizzük az egyszer már lejátszott dallamokat, és visszahallgathassuk őket később. Ez a mai szemmel nézve egy triviálisan egyszerű feladatnak tűnik... De hogyan is működik valójában? Miként tárolódnak kedvenc dallamaink a számítógépeken? A zene világnapja alkalmából fedezzük hát fel a zenetárolás nehézségeit, problémáit, lehetőségeit!

Mi a hang?

Ahhoz, hogy elkezdhessük utazásunkat a zenék világába, előszöris meg kell értenünk, hogy hogyan működnek a hangok. Fizikai szemmel nézve minden hang amit hallunk, tulajdonképpen egy mechanikai rezgés, amely a minket körülvevő különféle rugalmas közegeken (a mindennapokban általában levegőn) keresztül hullámként terjed, így éri el a fülünket, vagy mikrofonunkat. Ahhoz tehát, hogy a hangot valamilyen formában le tudjuk rögzíteni, tulajdonképpen ezt a hullámot kell valahogyan eltárolnunk egy adathordozón.

Ez akár könnyűnek is tűnhetne, elvégre emlékezhetünk fizika óráról, hogy egy hullámot könnyedén megörökíthetünk, ha lejegyezzük a legfontosabb tulajdonságait. Ez a módszer tökéletesen működik egészen addig, ameddig csak egy darab szabályos szinuszhullámról van szó. A probléma azonban ennél egy kicsit bonyolultabb... Ez a módszer tökéletesen működik addig, ameddig csak egy egyszerű hangunk van. Egyszerű hangnak nevezzük azokat a hangokat, amiknek a hullámfüggvénye csak egy darab szép szabályos szinuszhullámból áll. A valóságban azonban ezek a fajta hangok elképzelhetetlenül ritkák.

Egy zenei hang ezzel szemben több egyszerű hangból áll, rendszerint egy alaphangból, és annak felhangjaiból. Ezen felhangok frekvenciáját (rezgésszámát) az alaphang egész számú többszörösei adják meg, melyek erőssége rendszerint eltérő az alaphangétól. Így ha minden hullámunkat együttesen tekintjük, rájöhetünk, hogy jóval többről van itt szó, mint egy egyszerű szinuszhullámról. Ráadásul egyszerre több hang is megszólalhat egy zenében, akár különféle hangerővel, hangszínnel, így az előbbi elgondolásunk immáron teljesen kudarcot vallott. Bármennyire is tűnt jó ötletnek a hang rezgési attribútumok formájában való tárolása, a valóságban ez nem megoldható. Hát akkor hogyan tovább? Noss, erre több lehetséges irány is van. De haladjunk szépen sorban...

Analóg hangrögzítés

A legrégebbi megoldások hangok rögzítésére az analóg irányból közelítették meg a dolgokat. Ez egy egész evidens megoldás, elvégre így elvben végtelen pontossággal képezhetjük le a hanghullámot, nem kell aggódni a minőségromlás miatt. Minőségromlás persze így is van, de ez általában magából az eszközből ered, nem a tárolás elvéből. A legegyszerűbb és legrégebbi analóg tároló eszköz a fonográf volt, amely a hangok tárolására egy viaszhengert használt. A megoldás egyszerű: hangrögzítéskor magát a hanghullámot belekarcoljuk a viaszhenger felszínébe, kialakítva benne egy apró vájatot, amely hol mélyebb, hol sekélyebb. Ezzel tulajdonképpen magát a hullámformát örökítjük meg lekicsinyítve a felületen.

Azonos elven működik a lemezjátszó is, pusztán a hordozómédium alakja más. Immáron henger helyett egy korongon található meg csigavonalban ugyanaz a vájat, amely leképezi a hullámformát. Ezen technológiák hatalmas előnye, hogy a lejátszásuk nem igényel semmilyen bonyolult eszközt! A lejátszáshoz használt apró tűt tulajdonképpen közvetlenül ráköthetjük a hangszórónk membránjára, és meg is volnánk. Helyezzük a tűt a lemezre, forgassuk meg, és máris gyönyörködhetünk a zenénkben.

Bár a rögzítés nem vájatok segítségével történik, ennek ellenére analóg megoldásokat használ egyébként a magnókazetta is. A különbség pusztán az, hogy itt a hullámot mágnesesen képezzük le a magnószalagon. Persze ezen analóg technológiáknak a maguk előnyei mellett mind megvannak a hátrányaik is. Egy jó minőségű analóg felvétel minőségét digitális módszerekkel sosem érhetjük utol. Viszont éppen ezért, mivel minden apró részlet megjelenik a lemezen, az ilyen médiumok rendkívül óvatos bánásmódot igényelnek ahhoz, hogy ne veszítsenek a minőségükből, hiszen akár egy egészen apró karc, szemcse, stb. is megváltoztathatja a lerögzített hullámformát, ezáltal máris megváltozik egy kicist a hang - és még ha az apróbb változásokat nem is feltétlen érzékeljük azonnal, ennek ellenére a minőség minden ilyesmi behatástól romlik.

WAV - hullámleképezés digitálisan

A digitális hangtárolásra alapvetően több lehetséges módszer van, a fentebbi analóg megoldásokhoz a legközelebb azonban a hullámok digitális leképezése áll - erre szolgál a WAV fájlformátum például. Ahhoz azonban, hogy megértsük a WAV fájlok működését, először át kell gondolnunk, hogy miként tudjuk egyáltalán lejegyezni ezeket a hangokat. Előszöris fontos megjegyezni, hogy a digitális tárolás az analóggal szemben veszteséges. Ez tehát azt jelenti, hogy a hangunk egy része elveszik. Oké, de miből is adódik ez a veszteség? Noss, a hanghullámok tárolásának legegyszerűbb módja, ha bizonyos időintervallumonként megnézzük, hogy éppen milyen állapotban van a hullám, ezt az állapotot leírjuk egy számmal, majd ezt megismételjük újra és újra és újra. Kicsit olyan ez, mint ha a fonográf hengerén lévő vájat mélységét jegyeznénk fel újra és újra, ezzel digitálisan megörökítve a hangunkat. Nézzük meg ezt a gyakorlatban. 

grafikon 1

Itt láthatunk egy hanghullámot az idő függvényében. A vízszintes tengelyen láthatjuk az eltelt időt, függőlegesen pedig a hullám kilengését. Ahhoz, hogy elvégezhessük az átalakítást, először meg kell határoznunk, hogy milyen pontosan szeretnénk rögzíteni az információkat. 

Mintavételi gyakoriság (sample rate): Ez a mérőszám az egyik legfontosabb a hangok digitalizálásának minősége tekintetében, ez mutatja meg, hogy milyen gyakran veszünk mintát a hullámunkról. Első körben a szemléletesség kedvéért vegyünk tizedmásodpercenként mintát a narancssárga hanghullámról. A tizedmásodperceket a zöld vonások jelölik az ábrán, ezek fognak segíteni nekünk a tájékozódásban.

Felbontás: Milyen pontosan vizsgáljuk a hullám kilengését, mi hozzá a skála? Ez az ábra jelenleg -10-től 10-ig van skálázva, tekintsük tehát most ezt az alapunknak.

Most nézzük meg, hol találkoznak a zöld vonalak a narancssárga hanghullámunkkal. Az első zöld vonalnál a narancssárga hullám 0 értéket vett fel. A következő zöld vonalnál ez az érték már plusz 8. A harmadiknál -8, a negyediknél +1, stb. A hangfájlunk első másodperce tehát: 0; 8; -8; 1; 6; -7; 2; 4; -4; 2; 1 Ezek a számok fogják leírni magát a tényleges hanghullámunkat amivel dolgozunk. Sikeresen letároltuk tehát a hangunkat! A mintavételezési sebességünk (sample rate) 10Hz, hiszen egy másodperc alatt 10 alkalommal vizsgáltuk meg a hullámunkat, a felbontásunk pedig 21 lehetséges érték (mivel ennyi egész szám van -10-től +10-ig). Akkor most jók is vagyunk, nemde? Noss... Nem egészen. Nézzük meg, hogy mit alkottunk. Ábrázoljuk a pontjainkat, kössük őket össze, és hasonlítsuk össze az előző hullámunkkal.

grafikon 2

Mit gondolsz, hasonlít? Vagy nem egészen? Úgy fest, hogy van itt baj rendesen. A csodaszép kék cikk-cakkunkak nem sok köze van az eredeti, csodaszép hanghullámhoz. Ez persze egy elég szélsőséges ábra, azonban jól mutatja, hogy hol lapul a minőségromlás a digitális hangtárolásban. Amikor nekiestünk ennek az egész átalakítósdinak, akkor első körben megválasztottunk két fontos értéket: a mintavételezési sebességet, valamint a felbontást. Mindkettő elég alacsony lett ráadásul. Ha alacsony a felbontásunk, nem fogjuk tudni elég pontosan megmondani a hullám kilengését az egyes pontokban. Míg ha a mintavételezési sebességet hagyjuk alacsonyan, akkor nem lesz elég adatpontunk ahhoz, hogy szépen kirajzolódjanak a hullámok, és a kisebb köztes hullámok akár teljesen elveszhetnek.

Ezek a problémák minimalizálhatóak, ha jól választjuk meg a digitalizálásunk beállításait. Válasszunk olyan mintavételezési sebességet, ami biztosan elég magas ahhoz, hogy a legmagasabb hangokat is gond nélkül leképezhessük, és válasszunk olyan felbontást, amivel - ésszerű keretek között - nem veszítünk sok információt. Az, hogy milyen beállításokat érdemes használnunk, nagyban függnek attól is, hogy milyen hanggal dolgozunk. Ha egy beszédet szeretnénk eltárolni, és a lényeg csak annyi, hogy érthető maradjon, nyugodtan használhatunk gyengébb beállításokat is, de ha a cél a jó minőségű zene megőrzése, akkor fel a csillagokig bátran azokkal a beállításokkal! A mindennapokban a 10 Hz helyett inkább a 44 100 Hz, vagy 96 000 Hz magasságában szoktunk gondolkodni ha zenékről van szó.

A felbontást a digitális hangtárolás esetén általában bitekben, vagy bájtokban szokták megadni (ezt gyakran bitmélységnek is nevezzük, avagy bit depth), azaz azt adjuk meg, hogy a számítógépek által használt kettes számrendszerű számok használatával hány "számjegynyi" helyet tartunk fenn egy adott értékenk. Az általunk használt "21 érték" felbontás valamivel több, mint 4 bit, azaz fél bájtos felbontás lenne ezen mérési módszer szerint. Általában a valóságban ehelyett 16 bites (2 bájt, avagy 65536 különféle érték), 24 bites (3 bájt, avagy 16777216 különféle érték), vagy nagyritkán esetleg 32 bites (4 bájt, avagy 4294967296 különféle érték) felbontást használunk.

Természetesen manapság erőteljesen kimentek már a divatból a mono hangok. A legtöbb zene amit rögzítünk vagy letöltünk, sztereó, azaz két különböző hanghullámot tartalmaz a két fülünk számára. De innentől ez már csak egy aprócska lépés tovább, elvégre ahol jut hely pár bájtnyi számnak, ott akad hely még néhánynak is, így hát simán belebiggyeszthetünk egynél jóval több csatornányi hangsávot is egy fájlba! Persze a mérete arányosan nőni fog. Szerencsére a felbontás, a bitmélység, valamint a mintavételi gyakoriság mind benne van az elkészült WAV fájlunkban, így ezeket nem kell nekünk beállítanunk lejátszáskor, a program magától rá fog jönni, és helyesen játssza le a hangunkat.

Egy apró dolgot érdemes még megjegyeznünk a témával kapcsolatban, ez pedig a bitráta kérdése. Manapság gyakran előfordul, hogy a felbontás, és a mintavételi gyakoriság helyett egy jelzővel, a bitrátával jellemezzük a digitalizált zenék minőségét. A bitráta azt mutatja meg, hogy mekkora helyet foglal 1 másodperc az általunk digitalizált zenékből. Ezt szerencsére könnyen kiszámolhatjuk - és így hamar rá is jöhetünk, hogy miért nem olyan népszerű ez a formátum.

Maradjunk átlagosak. Tegyük fel, hogy van egy sztereó zenénk, 44 100 Hz-es mintavételi sebességgel, 16 bites felbontással. Ez tehát azt jelenti, hogy egy csatorna egy adatpontja 16 bit. Két csatornánk van, hiszen sztereó, így egy adatpont összesen 32 bit. És van belőle másodpercenként bő 44 ezer. Ez tehát egy másodperc alatt 1 411 200 bitet, azaz 176 400 bájtot, azaz több, mint 170 kilobájtot jelent. Ez tehát a bitrátánk, az 1411200 bit per másodperc. Innen könnyen kiszámolhatjuk, hogy ez kb. egy megabájt minden 7 másodpercben, tehát egy 3 perces zene letárolása több mint 25 megabájt. Hupsz! Hát, az nem kevés. Na nézzünk körül, hogy hogyan lehetne ezt csökkenteni. (azért lehetőleg ne hagyatkozzunk csak a bitrátára, inkább kutassuk ki a fájlunk pontos paramétereit)

MIDI - avagy kotta a számítógépnek

Midi fájlok... kicsik, sok esetben egészen hasonlítanak az eredeti zenére, de azért úgy valahogy nem az igazi. Talán így jellemezhetnénk őket, és ez mind-mind jogos. A midi fájlok egy viszonylag kompakt módjai a hangszeres zene tárolásának, azonban van bennük egy kis trükk: nincsenek benne hangok. Pontosítsunk: hangok vannak benne, csak a hullámok maguk hiányoznak. A MIDI valójában kicsit közelebb áll az "írjuk le a hullámok tulajdonságait" ötlethez, mint a valódi zenetároláshoz, ugyanis hanghullámok helyett valójában egy számítógép számára készült kottaként funkcionál. Maga a fájl a hanghullámok helyett azt tárolja le, hogy melyik időpillanatban milyen hangszer melyik hangjának kell megszólalnia. Ezeknek a hangoknak persze lehet azért néhány további tulajdonsága, hogy kicsit valósághűbb legyen, de mindezekkel együtt is inkább hasonlít kottára, mint valódi zenetárolásra.

A számítógép amikor lejátszik egy midifájlt, mélyen benyúl a zsebébe, és előveszi belőle azokat az előre felvett hangokat, amik ott lapulnak a rendszerben, vagy éppen a lejátszóprogramban, majd a leírt instrukciók alapján összerakja belőlük azt a hangzást, ami a fájlban le van írva. Mivel nem kell hatalmas hullámtömegeket tárolni, a fájlmérete verhetetlenül kicsi, azonban a korlátok is elég szorosak, túl sok testreszabásra nincs lehetőségünk. Valódi beszédhang nincs, egyedi hangszerek sem igazán, pusztán csak az alap hangszerek hangjai - noha elég sok van ám belőlük! Persze ennek a formátumnak is megvannak a maga hasznai és felhasználási területei, de ebbe a cikkbe inkább mint érdekesség került be. Mivel az adottságai ennyire mások, többnyire más formátumokból nem is tudunk MIDIbe konvertálni - elvégre értelme sem igazán lenne.

Tipp! A MIDI a gépek kottája, nem az embereké. Ha kottaszerkesztő programmal dolgozol, a fájljaidat semmiképp se ebbe a formátumba mentsd, mert bár a MIDI fájlok valamelyest visszaalakíthatók kottává, sok speciálisabb dolog teljesen elveszik belőlük. Ments inkább MusicXML-be, vagy a kottaszerkesztőd saját formátumába.

MP3, OGG, ... - tömörítsünk!

Térjünk vissza az ésszerűség területére, és zárjuk a cikkünket valami olyannal, ami hasznos. A mindennapjainkban az MP3 és az OGG a két talán legelterjettebb fájlformátum hangok tárolására, legyen szó akár zenékről, akár hangefektekről, és mindkettőnek ugyanaz a nagy előnye van a WAV fájlokkal szemben: kisebbek, mivel tömörítve tárolják a hanghullámainkat. Fontos megjegyezni, hogy mind az MP3, mind pedig az OGG veszteséges tömörítések, azaz még a WAV-hoz képest is rontunk egy kicsit a fájlok minőségén.

Tudtad? A veszteséges tömörítések mindenütt jelen vannak az életünkben. A legtöbb videóformátum is veszteségesen tömörít, ahogy szeretett JPG képformátumunk is veszteséges tömörítést használ. Ameddig a veszteség olyan kicsi, hogy emberi érzékszervekkel alig érezzük, cserébe a méretcsökkenés viszonylag nagy, addig általában szívesen hozzuk meg ezt az áldozatot. (Persze nem minden tömörítés veszteséges, képek esetén pl. a másik népszerű formátum a PNG veszteségmentes)

Ez a minőségromlás azonban megfelelő beállítások mentén elhanyagolható. Hogy pontosan mennyit vagyunk hajlandóak feláldozni, azt mindkét esetben magunk állíthatjuk be, tulajdonképpen meghozhatjuk a döntést, hogy mennyire fontos számunkra a tárhely, vagy mennyire a minőség. Ez a döntés akár egyénfüggő is lehet, elvégre nem mindenki azonos mértékben érzékeny ezekre a különbségekre. Persze ezek a formátumok mára nagyon magas szintre fejlődtek, képesek például akár arra is, hogy egy adott hangfájlon belül a különböző szakaszoknak más legyen a mintavételezési gyakorisága, attól függően, hogy az adott helyen épp mi az indokolt. Ezen trükkök segítségével nagyon sokat csökkenthetünk a fájlok méretén, így bárhová gond nélkül magunkkal hordozhatjuk a kedvenc zenéinket, nem kell különösebben aggódnunk a tárterület miatt.

A két formátumot nehéz volna összehasonlítani. Jelenleg talán kijelenthetjük, hogy az MP3 valamivel népszerűbb, elterjedtebb, és szélesebb körben támogatott, azonban azonos fájlméret mellett az OGG elvben egy hajszállal jobb minőséget tud produkálni, és elég jó úton halad afelé, hogy ismertségben is behozza hátrányát, egyre több cég ismeri fel a benne rejlő potenciált, így nyugodt szívvel jelenthetjük ki, hogy igazából bármelyik alkalmas lehet arra, hogy jövőtálló módon őrizzük meg a zenéinket, hanganyagainkat, hogy a jövő évi zene világnapján is újra meghallgathassuk őket!

Hogy ha pedig a zenetároláson kívül más területe is vonz az informatikának, vagy elkélne egy kis segítség a reál tárgyakkal, akkor keress bátran az adatlapomon található elérhetőségeimen, még vannak szabad időpontok idénre. ;-)

Tetszik? Oszd meg ismerőseiddel is!

regisztrálj magántanár fiókot