Orgonasípok hangjának jelmodell alapú szintézise
Bevezetés
Zenész - és talán villamosmérnök - körökben ismert, hogy
manapság a szintetizátorok, a digitális hangszerek az ún. PCM hangszintézist
használják akusztikus hangszerek hangjának visszaadására. Ennek az eljárásnak a
lényege az, hogy a modellezendő hangszer hangját digitálisan rögzítik,
periódusosságát kihasználva tömörítik ("loop-olják"), majd szükség esetén a
tárolt hangmintát újra megszólaltatják. Ez a fajta modellezés elméletileg
tökéletesen visszaadja a hangszer felvett hangját, a hang tárolása miatt azonban
ez a módszer nem támogatja a hangszer nemdeterminisztikus paramétereinek
leírását és visszaadását (zaj, véletlen jelenségek, modulációk).
Erre a problémára tökéletes megoldást adna a hangszer fizikai
modellje, amely nem a hangszer hangját tárolja, hanem magának a hangszernek a
paramétereit (méret, hossz, anyag, stb.). A hangszer működését
differenciálegyenletekkel leírva, a paraméterek segítségével a fizikai rendszer
válasza, a hang kiszámolható. A módszer problémája az, hogy nagyon nehéz
megtalálni azt a modellt, amely kielégítően pontos, ugyanakkor gazdaságosan
megvalósítható.
A jelmodell
Kompromisszumot jelenthet a számításigény és a hangminőség
között a jelmodell alapú szintézis, amely a hangszer hangjának - mind
determinisztikus, mind pedig sztochasztikus - tulajdonságait vizsgálja és az
ezen vizsgálatokból nyert paraméterek segítségével modellezi a hangot.
Mivel a hangszerek többsége - és így az orgona is - közel
periodikus hangot generál, a modellezés során a periodikus jelek diszkrét idejű
modelljéből indultunk ki.
Más megközelítésben a kutatás elsődleges kérdése az volt, hogy
vajon lehetséges-e a klasszikus, Fourier-sorfejtésen alapuló (ún.
additív) szintézis felhasználásával, illetve annak megfelelő kiegészítésével
(modulációk, zajgenerátokok, szűrők) jó minőségű zenei hangot generálni.
A vizsgálatok során végül a szintézis generátor-részét egy
speciális zajgenerátorral egészítettük ki, az egyes generátorok eltérő berezgési
és lecsengési paramétereit pedig burkológenerátorokkal modelleztük. Ezt
szemlélteti a következő ábra is. Itt a hangszert n harmonikus
komponenssel modellezzük, mindegyikre alkalmazunk egy független burkolót
(hi,k), hozzáadjuk a sztochasztikus komponenst, majd a kapott
síp hangját elhelyezzük a virtuális térben (pozícionálás, zengetés).
1. ábra: a jelmodell alkalmazása
hangszermodellezésre
Analízis
Az orgonasípok hangjának jelmodell-paramétereit igazi orgonákon végzett
mérések feldolgozásával állítottuk be. Több orgonát is megmértünk, és az
elemzések kiértékelése során így be tudtuk állítani, hogy melyek azok a
hangparaméterek, amelyeket gondosan, illetve melyek azok, amelyeket kevésbé
gondosan kell megvalósítani.
2. ábra: a mért orgonák
A paraméterek feldolgozásával sikerült mind a determinisztikus, mind pedig a
nemdeterminisztikus jelenségeket is jellemezni. Az orgonasípoknál a harmonikus
komponensek mellett főként a levegő keltette zaj analízisére helyeztük a fő
hangsúlyt. A teljes analízisfolyamat látható a következő ábrán.
3. ábra: felvett hangok analízise
Szintézis
A mért adatok alapján a jelmodell alapú szintézist
többféleképpen is megvalósítottuk. Elsőként egy Motorola 56001-es processzorra
készült egy program, a nagy számítási igény miatt később áttértünk az
ADSP2181-es processzorra. Erőforrás-korlátozás nélküli implementáció is készült
a Matlab program felhasználásával, ez utóbbi nem valós időben működik, cserébe
viszont tetszőleges MIDI-fájl átalakítható vele WAVE-fájllá.
A szintézis blokkvázlata látható a következő ábrán.
4. ábra: orgonahang szintézis
Eredmények
A modell használhatóságát - a mellékelt hanganyagokon túl - két
ábrával szeretnénk szemléltetni. Mind a kettő Matlab segítségével készült, az
egyik egy síp és modellje spektrumát hasonlítja össze, a másik pedig a berezgési
tranzieseket (a harmonikusok burkológörbéit).
5. ábra: eredeti és szintetizált spektrum
6. ábra: eredeti és szintetizált tranziensek
Demonstrációs anyagok
A következő linkeken néhány példát találunk, amelyeken
hallhatunk egy eredeti templomi orgonafelvételt, néhány, Matlab segítségével
készített szimulációs anyagot, valamint DSP-n valós időben lejátszott
korál-részletet is. A fájlok mp3 formátumúak.
- J. S. Bach: Ich
ruf zu Dir korál (részlet)
Matlab szimuláció, 5 regiszter. (Mérete:
495 kb, hossza: 30 másodperc)
- J. S. Bach: Ach,
was soll ich, Sünder, machen korál (részlet)
Eredeti felvétel a
naszályi templomban, 1 regiszter. (Mérete: 513 kb, hossza: 32 másodperc)
- J. S. Bach: Ach,
was soll ich, Sünder, machen korál (részlet)
Matlab szimuláció, 1
regiszter. (Mérete: 512 kb, hossza: 32 másodperc)
- J. S. Bach: F-dúr
kétszólamú invenció (részlet)
ADSP2181 DSP, valós időben, 1
regiszter. (Mérete: 676 kb, hossza: 42 másodperc)
- J. S. Bach: Ich
ruf zu Dir korál (teljes)
Matlab szimuláció, 5 regiszter. (Mérete:
2.7 Mb, hossza: 2 perc 50 másodperc)
Ajánlott publikációk:
Hasznos linkek:
Digitális orgonákat gyártó cégek
További információ: Márkus János, Bank
Balázs
|