Hangkártyák programozása retro 23.

9. Mesterséges hangzás kialakítása a gyakorlatban

  1. A kialakítandó hangzásnak megfelelő terem, illetve hangtér kiválasztása. Ilyenkor ügyelni kell a hangforrás (egy vagy több hangszóró) és a mikrofon, illetve mikrofonok, vagy műfej elhelyezésére. Ugyanis a kialakítandó hangzás attól is függ nagymértékben, hogy hova képzeljük a hallgató személyt, illetve pl. a zenekart.
  2. A programok és hangminták telepítése a lemezmellékletről történik, alapesetben a Program Files\Spiller\Diplomamunka könyvtárba. Ezen belül az ASF könyvtárban található maga a mesterséges hangzást kialakító program, melynek az Artificial Sound Field (Mesterséges hangtér) fantázianevet adtam. A Program Files\Spiller\Diplomamunka\CppDLL alkönyvtárban az ASF program által használt Fourier transzformációs és konvolúciós függvényeket tartalmazó DLL C++ kódja található. A Program Files\Spiller\Diplomamunka\Test könyvtár tartalmazza mindazon programokat, amelyekkel a hangkártya programozása során foglalkoztunk, illetve itt található a legfontosabb program: Rec.exe, amely az impulzusválasz tesztet végrehajtja. A Program Files\Spiller\Diplomamunka\Samples könyvtárba történik a hangminták telepítése. Ezen belül négy alkönyvtár található: Others: egyéb vizsgálódásra alkalmas hangminták, Responses: különböző hangterek impulzusválaszai, Studio: stúdió minőségű, vagy rendkívül kicsi „teremhangot” tartalmazó felvételek, Results: a stúdiófelvételek és az impulzusválaszok konvolúciójaként létrehozott, az adott hangtérnek megfelelő hangzással rendelkező hangminta eredmények.
  3. Ha mindent megfelelően elrendeztünk, jöhet a teszt. Miután megtettük a programbeli szükséges beállításokat is, a dolgunk csupán annyi, hogy a DOS parancssorába begépeljük a felvevő program nevét és paraméterét, amely nem lesz más, mint a felvétel eredményének mentési útvonala. Például Rec C:\dokumnetumok\test.sam.
  4. Ellenőrzés képen vissza is játszhatjuk a felvétel eredményét, hasonló módon, mint ahogy a felvétel történt: Play C:\dokumnetumok\test.sam. A Scroll.pas nevű Pascal programmal meg is tekinthetjük a felvétel időfüggvényét. Ez azonban nem paraméteresen működik, így futtatásához szükségünk van valamilyen keretrendszerre.
  5. Ha minden rendben, akkor elindíthatjuk az ASF programot, s nekiláthatunk függvényeink elemzésének, illetve a mesterséges hangzás létrehozásának.
  6. Miután elmentettük a konvolúció eredményét, azt visszahallgathatjuk a 3. pontban bemutatott módon.

Az ASF program használatának ismertetése:

  1. A File menüpont Open Impulse Response parancsával nyithatjuk meg az impulzusválasz teszt eredmény-függvényét. A megjelenő párbeszédablakból kiválaszthatjuk a keresett hangmintát. Természetesen akármilyen hangmintát kiválaszthatunk vizsgálat céljából, de ha értelmes eredményt kívánunk elérni a konvolúcióval, célszerű itt az impulzusválaszt megnyitni. Megnyitást követően a függvény grafikusan is megjelenik az ablakban, amelynek időfüggvénye a gördítősáv segítségével vizsgálható.
  2. A függvényen önmagában is végezhetünk transzformációkat, de ügyeljünk arra, hogy a konvolúció előtt mindig eredeti állapotba állítsuk vissza. A Tools menüpont Fast Fourier Transform almenüjéből két pont választható: Normal és Inverse. Közvetlenül a hangminta megnyitását követően az Inverse lesz kipipálva, ami azt jelzi, nincs transzformált állapotban a függvényünk. Ha rákattintunk a Normal-ra, megkapjuk a függvény gyors Fourier transzformáltját, amely grafikusan is látható lesz, s amely az időfüggvényhez hasonlatosan görgetéssel vizsgálható. Természetesen kattintáskor a Normal kipipált állapotba kerül, jelezve, hogy a függvényünk transzformált állapotban van. Ha az Inverse pontra kattintunk, megtörténik a visszatranszformálás.
  3. A második függvényünk esetében is ugyanúgy kell eljárni, mint az első esetében, csupán annyi a különbség, hogy azt a File Open Sample menüpontjával nyithatjuk meg. A két beolvasott függvény, illetve a majdani eredmény között az ablak alsó részén elhelyezkedő gombok segítségével lehet váltani.
  4. Az Options Log of NFFT paranccsal adhatjuk meg, hogy hány alappontra kívánjuk elvégezni a transzformációt. Ha például 10-et választunk, akkor az alappontok száma: 1024, mivel a listából az alpontok számának kettesalapú logaritmusát kell kiválasztani.
  5. A legfontosabb parancs a Tools menü Convolution with the help of FFT pontja, amely magát a konvolúciót végzi. Elvégzése után három függvényt vizsgálhatunk. Természetesen az eredmény spektrumát is megnézhetjük, majd az eredeti állapotába visszaállítva elmenthetjük a File\Save Result As menüponttal.

Érdemes néhány vizsgálatot is elvégezni a telepített hangminták segítségével. A telepítést követően a Program Files\Spiller\Diplomamunka\Samples\Studio könyvtár hangmintái között található egy stúdió felvétel 2cd.sam néven, amely egy részlet a The Music of Ireland című CD válogatásról. Ezt a hangmintát fogjuk szoftveresen más és más hangzással ellátni.

Első lépésben nyissuk meg az impulzusválaszok közül a dist68.sam nevű hangmintát. Ez egy viszonylag kicsi, 2,2m x 3m x 2,2m-es, néhány bútordarabbal berendezett szobában készült. A hangforrás és a mikrofon egymással szemben helyezkedett el, 68 cm távolságra. Ha ezt konvolúciós viszonyba hozzuk a stúdió felvételünkkel és elmentjük annak eredményét, akkor hangmintát kapunk, amely úgy szól, mintha az eredeti felvételt a szobában a mikrofontól 68 cm távolságban vettük volna fel. Az eredmény függvény egyébként megtalálható a Program Files\Spiller\Diplomamunka\Samples\Results könyvtárban 2cd68.sam néven, amelyet összehasonlítva az eredetivel lényeges különbséget fogunk tapasztalni. További vizsgálatokat érdemes elvégezni a dist102.sam, dist136.sam és a dist200.sam impulzusválaszokkal, amelyek az említett szobában készültek különböző távolságokban.

Eddig csak olyan eseteket vizsgáltunk, amikor az első hanghullámok közvetlenül érték a mikrofont. Most hasonlítsuk össze a 2cd200.sam és a 2cd220.sam hangmintákat. Ugyanabban a szobában történt a felvétel különböző távolságban, azonban a második esetben a hangforrást és a mikrofont egymásnak ellenkező irányba fordítottuk, úgy hogy az utóbbi egy sarokban helyezkedett el. A két hangmintát meghallgatva meglepődötten tapasztalhatjuk, hogy a nagyobb távolságban végrehajtott teszt „erősebb” hangzást produkál. Erre a hangforrás és a mikrofon elhelyezése ad magyarázatot: a szoba sarka felerősítette a nem közvetlenül érkező hanghullámokat.

Miután megvizsgáltuk, hogy a távolság illetve a hangforrás és a mikrofon helyiségen belüli pozíciója miként befolyásolja a hangzást, nézzük meg, hogy különböző akusztikai terek milyen különbségeket okoznak összességében. Az eredmény függvényeink között található 2cdb2.sam, 2cdr2.sam és 2cdg.sam, amelyek közül az első egy fürdőszoba, a második egy nagyobb szoba és a harmadik egy garázs hangzását adja vissza A legmarkánsabb az összes közül talán a fürdőszoba, amely igen nagy utózengési idővel rendelkezik a rendkívül nagy csempe és tükörfelületnek köszönhetően.

Végül nézzük meg a mesterséges visszhang kialakításának lehetőségeit. Itt ahelyett, hogy egy valódi visszhangot produkáló hangteret kerestem volna, csaláshoz folyamodtam. Ugyanúgy jártam el az impulzusválasz tesztnél, mint bármilyen más terem esetében, csupán annyi volt a különbség, hogy több impulzust generáltam egymás után, attól függően, hogy milyen időkéséssel akartam létrehozni a visszhangot, illetve egyszeres, vagy többszörös visszhangot akartam-e. Ha például a tihanyi visszhangot szeretném modellezni, akkor egymás után két impulzust kell generálni, mivel egyszeres visszhangról van szó. Természetesen az első nem lehet olyan „magas”, mint a másik, mivel számolnunk kell bizonyos energiaveszteséggel. A hangnak kb. 1000 m-t kell megtennie, ami 340 m/s-os sebesség mellet 2,94 s-ot jelent, esetünkben hangmintára átszámítva: 129654. Azonban a rendszer is rendelkezik bizonyos időkéséssel, így 129654-nél kisseb kell, hogy legyen a két impulzus távolsága. Az eredményt visszahallgatva egyértelmű, hogy az nem tökéletes, mert rendkívüli módon zeng. Ennek az oka az, hogy nem szabadtérben hajtottuk végre az impulzusválasz tesztet, hanem egy teremben, így annak az utózengése megmaradt a hangmintán. Ez azonban jó példa lehet arra, hogy miként lehet különböző termek hangzásait „összekeverni”. A gyakorlatban is sokszor találkozunk olyan esettel, amikor van egy visszhangosított termünk, amelynek nem megfelelő az utózengése, ugyanakkor szeretnénk a termenek a visszhang tulajdonságát megőrizni. Ilyenkor nincs mit tennünk, mint a megfelelő utózengésű teremben mesterségesen létrehozni a visszhangot és az így keletkező válaszfüggvénnyel konvolúciós szűrést végezni a stúdió felvételen. A 3.4. pontban említett, nem kívánatos teremvisszhangok kiküszöbölése is lehetséges hasonló módszerrel.

Egyszeres visszhanggal rendelkező termet modellez 2cdecho2.sam. Szintén egyszeres visszhangra mutat példát vecho3.sam, a különbség annyi, hogy itt egy rövid mondat hangzik el. A vfecho.sam  a csörgővisszhangot igyekszik bemutatni, amely a többszörös visszhang egy speciális fajtája. Végül pedig a tihanyi visszhang időkésését utánzó hangállományt érdemes megvizsgálni: vtihany.sam.

Látható tehát, hogy ahelyett, hogy az adott akusztikai térben vettük volna fel a teljes hanganyagot elég volt csupán az impulzusválasz tesztet elvégezni, majd annak eredményét tárolni, ezáltal időt spórolva és lehetővé téve az újboli felhasználáhatóságot. Magyarán nem kell mindig az adott hangversenytermbe, vagy templomba rohanni, hogy a teljes zeneművet ott vegyük fel az adott hangzás elérése érdekében, ha ezt megtehetjük otthon, vagy a stúdióban egy számítógép segítségével.

Végül eljutottunk odáig, hogy magát a tesztet sem a valóságos helyen hajtottuk végre, hanem modelleztük annak valamilyen tulajdonságát.

Irodalomjegyzék

[1]  Tarnóczy Tamás: Hangnyomás, hangosság, zajosság, Akadémia Kiadó, Budapest, 1984

[2]  Tarnóczy Tamás: Teremakusztika I-II. kötet, Akadémia Kiadó, Budapest, 1986

[3]  Peter M. Ridge – David M. Golden – Ivan Luk – Scott E. Sindorf: Sound Blaster: The Official Book, Panem – McGraw-Hill, Berkeley, California, 1994

[4]  László József: Hangkártya programozása Pascal és Assembly nyelven, Computer Books, Budapest, 1999

[5]  Bajusz – Bors – Csibra – Horváth: A PC-k hangja, COM-WARE, Budapest, 1995

[6]  Székely Vladimír: Képkorrekció, hanganalízis, térszámítás PC-n (Gyors Fourier transzformációs módszerek), Computer Books, Budapest, 1994

[7]  Gyimesi László: Digitális jelfeldolgozás, SZIF-UNIVERSITAS Kft., 1999

[8]  Giczy Gergő: Hanghatár, CHIP magazin, XII. évf., 1. szám, 92-96. oldal

[9]  Köhler Zsolt: Hangoskodás, Computer Panoráma, XI. évf., 6. szám, 40-47. oldal

[10]        Szittya Ottó: Digitális és analóg technika, LSI Oktató Központ, Budapest 1999

[11]        Markó Imre: PC-k konfigurálása és installálása (A hardver), LSI Oktató Központ, Budapest 1999

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s