| Idő | Téma |
|---|---|
| 0–5 | Bevezetés: hallgassunk meg egy húrt |
| 5–10 | Miért fizikai modellezés? |
| 10–15 | A húr: hullám fut oda-vissza |
| 15–20 | A késleltetővonal: a hullám útja |
| 20–25 | A zaj a pengetés |
| 25–30 | A visszacsatolás: a kör |
| 30–35 | Az átlagolás: miért tompul a hang |
| 35–40 | Lecsengés: mennyi ideig szól? |
| 40–45 | Hangolás: a fél minta |
| 45–50 | Szünet |
| 50–55 | Élő demó: játszunk a csúszkákkal |
| 55–60 | Pengetési pozíció: hol pengetünk? |
| 60–65 | Dinamika: halkan és hangosan pengetni |
| 65–70 | Az EKS: mindegyik szűrő egy fizikai tulajdonság |
| 70–75 | Dob-változat: a véletlen a hangszerben |
| 75–80 | A kód: nem kell programozni tudni |
| 80–85 | Korlátok és tovább |
| 85–90 | Összefoglalás és házi feladat |
Ma azt nézzük meg, hogyan lehet a számítógépben egy gitárhúrt „megépíteni”, nem hangmintából, hanem úgy, hogy a húr működését utánozzuk. Egyetlen egyszerű ötlet lesz az egész óra: egy kör, amiben egy zajcsomag kering, és minden körben kicsit megváltozik.
Nem kell semmilyen számolást tudnotok. Amit a végén értenetek kell: mi kering, mi változtatja meg, és mit hallunk ebből.
Kétféleképpen lehet gitárhangot csinálni. Az egyik: felveszem a gitárt, és lejátszom (ez a hangminta). A másik: nem a hangot, hanem a gitárt építem meg a gépben, és azt pengetem meg. Az utóbbit hívjuk fizikai modellezésnek.
Mit nyerünk vele? Ha a húrt szimulálom, akkor a húr tulajdonságait állíthatom: hosszabbá tehetem, megfeszíthetem, máshol pengethetem. A hangminta ezt nem tudja, ott csak egy rögzített felvételem van.
Amikor megpengetek egy húrt, a pengetés helyén egy kis „dudor” keletkezik, és ez a dudor elindul a húr két vége felé. A végén visszaverődik, visszafut, megint visszaverődik, és így tovább, másodpercenként több százszor.
A hangmagasságot az dönti el, hogy mennyi idő alatt ér vissza a dudor ugyanoda. Rövidebb húr: gyorsabb oda-vissza út, magasabb hang. Feszesebb húr: gyorsabban futnak a dudorok, magasabb hang. Nehezebb húr: lassabb, mélyebb hang. Ez az egyetlen fizikai törvény, amit ma tudnunk kell.
Egy dolgot még megjegyzünk: a húr egyszerre több módon rezeg. Az egész húr, a fele, a harmada külön-külön is. Ezeket hívjuk felharmonikusoknak, és ezektől lesz a hang „színe”.
A számítógépben nincs húr, de tudunk „várakozni”. Képzeljetek el egy futószalagot, amin számok haladnak. Ha a szalag hosszú, a szám sokáig utazik, mire a végére ér. Ezt hívjuk késleltetővonalnak. A húrban futó dudor útja nálunk egy ilyen szalag.
A szalag hossza mintában van megadva. A számítógép másodpercenként 44 100 mintát dolgoz fel. Ha a szalag 102 mintás, akkor egy körhöz 102 mintányi idő kell, tehát 44 100 osztva 102, ez kb. 432 kör másodpercenként, vagyis 432 Hz-es hang. Hosszabb szalag, mélyebb hang.
Mivel kell megindítani a kört? A szalagot feltöltjük véletlen számokkal, vagyis zajjal. A zaj olyan, mint a fehér fény: minden frekvencia benne van. Ez a húr „megpengetése”: minden lehetséges rezgést belelökünk, és a kör majd kiválasztja, melyik marad meg.
Ezért van az, hogy minden pengetés kicsit más: mindig másik zajt használunk.
Most jön az egész trükk. A szalag végéről kijövő számokat visszatesszük az elejére, és mehetnek újra. Így a zajcsomag körbe-körbe jár. Mivel minden kör ugyanolyan hosszú, a jel ismétlődik, és a füled ezt az ismétlődést hangmagasságként érzékeli.
Négy lépés az egész: 1) zajjal töltjük fel a szalagot, 2) kivesszük a végéről a számot, ez a hang, 3) egy kicsit megváltoztatva visszatesszük az elejére, 4) ismételjük.
Amit a játékban csináltunk, az az átlagolás, és pontosan ez az algoritmus lelke. Az átlagolás elsimítja a szélsőségeket, ugyanúgy, ahogy egy elmosott fénykép elveszti az éles részleteket.
A gyors, „tüskés” rezgések, vagyis a magas hangok nagyon sokat veszítenek az átlagolásból, a lassú, mély rezgések alig. Ezért halnak el a magas felharmonikusok hamarabb, és ezért lesz a hang egyre tompább. Ez pont olyan, mint egy valódi húron, ahol a magas rezgések gyorsabban fáradnak el.
A hang nem szólhat örökké. Minden körben egy kicsit halkabbá tesszük a jelet egy g nevű számmal: ha g kisebb, mint 1, akkor minden kör után halkabb a hang.
Hogy mennyi ideig szól, azt T60-nal mérjük: ennyi idő alatt lesz a hang olyan halk, hogy már majdnem semmi, az eredeti ezredrésze. Három szabály: g kisebb, mint 1, a hang lecseng; g egyenlő 1, soha nem cseng le; g nagyobb, mint 1, a hang egyre hangosabb, végül szétdurran. Az utóbbit soha ne csináljátok hangszóróval, halkítsatok le!
Van egy apró csapda. A szűrő, ami átlagol, maga is elvesz egy kis időt, pontosan fél minta időt. Ha erről megfeledkezünk, a húr kicsit mélyebb lesz, mint kellene. Magas hangoknál ez már hallatszik, mint egy kicsit hangolatlan gitár.
A megoldás: a szalag hosszát fél mintával rövidebbre vesszük. Mivel a szalag hossza ritkán egész szám (például 101,58), a két minta közti értéket ki kell találnunk, ezt hívjuk törtrészes késleltetésnek.
Szünet 5 percre. A szünet előtt kérdezd meg: mi a három dolog, ami egy húrt „megcsinál” nálunk? Jó válasz: zaj (pengetés), kör (késleltetés és visszacsatolás), átlagolás (csillapítás).
Most mindenki kipróbálhatja. Négy csúszka van: frekvencia (magasság), csillapítás (tompaság), T60 (hossz), és két másik, amit mindjárt megnézünk. Kérem, hogy hármasával próbáljatok ki egy hangot: a cél egy „üveghang”, egy „dob”, és egy „fémhúr”.
Figyeljétek meg a spektrumot: a rózsaszín oszlopok a felharmonikusok. Mélyebb hangnál sok, sűrű oszlop van, magasnál kevesebb.
Gitárosok tudják: ha a húr közepén pengetek, lágyabb, „üregesebb” hang jön, ha a híd közelében, élesebb, orrhangúbb. Miért? Ha a húr közepén pengetek, a felharmonikusok fele, azok, amelyeknek épp ott csomópontjuk van, nem tudnak beindulni.
Az algoritmusban ez úgy néz ki, hogy a zajból kivonjuk annak egy késleltetett másolatát. Az így kapott „fésűszerű” zaj bizonyos felharmonikusokat eleve nem tartalmaz.
Ha egy gitárost halkan pengetsz, a hang nemcsak halkabb, hanem lágyabb is, kevesebb magas összetevő van benne. Ezt is egy egyszerű szűrővel utánozzuk a zajon.
Ez a „Dinamika” csúszka: alacsony értéknél lágy, magasnál fényes a hang. Ez az a pont, ahol a modell tényleg hangszerré válik: a játékos mozdulata (erő) átalakul hangszínné.
A két úttörő, Karplus és Strong, 1983-ban egy igazán egyszerű kört talált ki. Ugyanabban az évben Jaffe és Smith kiegészítették, és ebből lett az EKS, vagyis a kiterjesztett változat. Ez olyan, mintha a húr minden tulajdonságát külön gombbal állíthatnánk.
Egy gomb a pengetés irányáért, egy a pengetés helyéért, egy az erőért, egy a lecsengésért, egy a pontos hangolásért, egy a húr merevségéért. Amit ma megnéztünk, az mind ezek közül való.
Van egy furcsa trükk: ha az átlagoláskor véletlenszerűen előjelet cserélünk, a húr dobbá válik. Nincs többé tiszta hangmagasság, hanem zajos, ütős hang. Ugyanaz a kör, csak kis véletlenséggel.
Ha mindig megfordítjuk az előjelet, a hang egy oktávval lejjebb kerül. Ez azt mutatja, mennyire kicsi változtatások is nagyon más hangot adnak.
Most megnézzük, hogyan néz ki ez SuperCollider-ben és Max-ben. Nem kell megérteni a sorokat, csak megmutatom, hogy ugyanaz a négy lépés benne van: zaj, kör, átlagolás, lecsengés.
Keressétek meg a kommentekben a szavakat: „gerjesztés”, „késleltetés”, „szűrő”, „visszacsatolás”. Ezek pontosan azok a szavak, amiket ma tanultunk.
Ez az egyszerű modell sokat tud, de nem mindent. Nincs benne a gitár teste, ami a hangot formálja, és nincsenek benne a szomszéd húrok, amik együtt rezegnek. A merev húr (mint a zongoráé) másképp viselkedik, a felharmonikusai kicsit magasabbra kerülnek.
A következő órákon ezeket a bővítéseket vesszük sorra: hangszertest, merev húr, vonós hangszerek.
Összefoglalva: a hang egy zajcsomag, ami körbe-körbe jár egy késleltetővonalban. A szalag hossza adja a hangmagasságot, az átlagolás adja a tompulást, a g adja a lecsengést. A fizikai tulajdonságokhoz külön szűrők tartoznak.
Házi feladat: a demóban hozzatok létre három különböző hangot (üveg, dob, fémhúr), és írjátok le egy-egy mondatban, melyik beállításokat mire használtátok.