Äänilähteiden fysikaalinen mallintaminen uusin äänisynteesimetodi simuloi soittimen äänentuottomekanismia käyttö musiikillisissa äänissä: -jäljitellään olemassaolevia akustisia instrumentteja -mahdollistaa myös mielikuvituksellisten "soittimien äänittämisen joissakin instrumenteissa on saavutettu erittäin hyvä äänenlaatu (kieli- ja puhallinsoittimet) auttaa ymmärtämään soittimien toimintaa (mitkä piirteet äänessä ovat tärkeitä, mikä saa äänen kuullostamaan hyvältä) T.V. 22.8.2001 1/23 Historiaa musiikillisten äänten fysikaalisesta mallintamisesta -Pythagoras tutkiskeli jo 500 ekr. jousen värähtelyä 2/23
Malleissa usein kolme osaa: 1. heräte 2. resonaattori 3. säteilijä 3/23 Fysikaaliset mallit voidaan jakaa 5 kategoriaan 1. source-filter mallit (esim. puheenkoodauksessa käytössä) -tulkinnanvaraista, onko tämä fysikaalinen malli -joissakin instrumenteissa on mahdollista erottaa heräte ja suodatin -usein vuorovaikutus soittimessa on kuitenkin monimutkaisempi, esim. puhallinsoittimissa tarvitaan takaisinkytkentä resonaattorista 2. osittaisdifferentiaaliyhtälöiden numeerinen ratkaisu 3. värähtelevät massa-jousi verkot 4. modal synthesis 5. waveguide synthesis 4/23
Osittaisdifferentiaaliyhtälöiden numeerinen ratkaisu ensimmäinen yritys mallintaa musikaalista ääntä 1971 (Hiller and Ruiz), laskennallisesti kovin raskasjärjestelmä, edes nykyisilliä tietokoneilla ei pystyisi reaaliaikaisuuteen ratkaistaan järjestelmää kuvaavat aaltoyhtälöt rajallisessa määrässä pisteitä => differentiaaliyhtälöt, jotka kuvaavat järjestelmää koten hyvin voi kuvitella, dimensioiden kasvaessa tarvittavien pisteiden määrä kasvaa nopeasti => soveltuu parhaiten 1D-värähtelijöihin (voidaan toteuttaa reaaliajassa) esim. kitaran rungon mallintaminen ei onnistu. digital waveduideen liittyen on kehitetty "verkkoja" 2D-ja 3Dsysteemeille, jotka toteuttavat saman asian jos parametrit ovat oikein, saadaan erittäin tarkasta reaalimaailmaa vastaava systeemi=> parametrit vastaavat fysikaalisia parametria (jäykkyys, 5/23 vaimennus). Parametrit voidaan saada joko analysoimalla soitinta tai signaaleja. 6/23
Mallintaminen massa-jousi-systeemillä 1970-luvun lopulla ja 80-luvun alku yksinkertaisuuden vuoksi liike rajoitettu yhteen dimensioon (myöhemmin myös 2D ja 3D -jutskia) 7/23 Modal synthesis 1991 IRCAM, Pariisi Perustuu moodien (eri taajuuksien) mallintamiseen kullakin taajuudella on oma vaimennuskerroin sekä dimensiot. hyviä puolia: parametrit voidaan analysoida mille tahansa instrumentille tekemällä mittauksia (tarkka heräte ja mikrofoni), ja yksinkertaisille soittimille (jousi) myös analyyttisessa muodossa. 8/23
Digital waveguide tärkein fysikaalinen mallinnusmenetelmä idea: ideaaliselle 1D-värähtelijälle (homogeeninen väliaine, ei vaimenna) kaksi vastakkaisiin suuntiin menevää viivelinjaa vastaavat aaltoyhtälöitä digitaalisia malleja, jotka käyttäytyvät kuten fysikaaliset systeemit viivelinja + y(n,k) viivelinja 9/23 sopii erityisen hyvin 1D-resonaattorien mallintamiseen (värähtelevä jousi, akustinen putki, ohut putki). käytettiin ensin kaiunnan mallintamiseen (Smith 85) ja sen jälkeen puhaltimien ja jousisoittimien mallintamiseen (Smith 86) 10/23
Karplus-Strong model waveguiden edeltäjä, 1983 viivelinja+alipäästösuodatin (loop filter) viivelinja alustetaan valkoisella kohinalla toiminta vastaa kampasuodatinta => tietyt taajuudet vaimenevat hitaasti, signaalista tulee jaksollinen ja sillä on aistittava perustaajuus z -M loop filter output 11/23 jos suodattimen vahvistus on alle 1 kaikilla taajuuksilla, ääni vaimenee ja sammuu lopulta jos suodatin on jotain muuta kuin all-pass, eri taajuudet vaimenevat eri nopeuksilla perustaajuus riippuu viivelinjasta, f 0 = ------------------, missä 0.5 vastaa loop M + 0.5 filtterin viivettä. koska viivelinja voi olla vai kokonaislukuja pitkä, mitä tahansa perustaajuutta ei voida tuottaa (huono juttu!) f s Waveduige (taas) ensimmäinen waveguide model käytettiin klarinetin syntetisoinnissa (Smith 86) 12/23
kaksi yhtä "pitkää" viivelinjaa jotka kuvaavat aaltokomponenttien etenemistä molempiin suuntiin putkessa. Viivelinjan pituus vastaa suoraan klarinetin putken pituutta: f s l L = ------ (L=viive, l=putken toiminnallinen pituus, c=äänen nopeus) (taas c ongelmia kokonaislukuviiveestä). input excitation model z -L z -L reflection model output 13/23 heijastusmalli kuvaa heijastusta ja säteilyä putken päässä, sen ulostulosta otetaan siis myös klarinetin ulostulo. Herätemalli mallintaa kielen ja suukappaleen toimintaa (epälineaarinen). lisäyksiä myöhemmin: *soittajan huulten mallintaminen massa-jousi -värähtelijällä *reikien mallin lisääminen (samaa menetelmää käytetty mm. rummuissa) Näppäillyn kielen malli: heräte + output FD delay loop filter 14/23
-kolme osaa: 1. loop filter (eri taajuuksien erilainen vaimeneminen) 2. delay line 3. fractional delay filter (poistaa perustaajuuksien kvantisointiongelman) -toteutaan interpoloimalla (kolmannen tai neljännen asteen lagrange interpolointisuodatin on riittävä) tai all-pass-suodattimella -loop filter on yksinkertisimmillaan one-pole suodatin H( z) g 1 + a 1 = ---------------------- 1 + a 1 z 1 g=decay rate (0<g<1) a 1 =frequency dependent decay (-1<a 1 <0) 15/23 malli on itse asiassa korkean asteen IIR-suodatin parametrien estimointi: 1. äänitettyä kitaran soittoa kaiuttomassa tilassa 2. signaalin analyysi (esim. FFT) 3. parametrien estimointi 4. herätesignaalit joko -käänteissuodatuksella -tai poistamalla harmoniset komponentit äänitetyistä signaaleista +ekvalisointi 16/23
Soittimen rungon mallintaminen esim. akustinen kitara runko on myös kompleksinen värähtelevä järjestelmä: vaste vastaa n. 400 asteen IIR-suodatinta (aika hankala juttu) ratkaisu: oletetaan kielen ja rungon mallit lineaarisiksi ja vaihdetaan niiden järjestystä ja yhdistetään herätteeseen impulssi heräte string body E(z) S(z) B(z) output B(z) E(z) S(z) heräte S(z) 17/23 2D- ja 3D-waveguide-verkot laajentamalla tavallinen digital waveguide kaksi- tai kolmeulotteiseksi verkoksi pystytään mallintamaan monimutkaisempien otusten värähtelyjä esim. kalvot, lautaset, gongit, huoneakustiikka waveguide-tutkimus keskittyy herätteen ja värähtelen systeemin välisten epälilneaarisuuksien mallintamiseen muunlaisten resonaattorien mallintaminen (esim. kartio) säteilyn mallintaminen 18/23
2D-waveguiden yksi solu: z -1 z -1 z -1 z -1 z -1 z -1 z -1 z -1 19/23 Fysikaalisen mallinnuksen käyttö virtuaalisissa instrumenteissa on olemassa kaupallisia syntetisaattoreita, jotka perustuvat fysikaaliseen mallinnukseen (mm. Yamaha VL-1, Korg Prophecy) tulevaisuudessa mahdollistaa luonnollisemman äänenlaadun sekä tarkemman äänen kontrolloinnin mistä kontrollisignaalit? mahdollistaa sellaisen soittimen soittamisen jota ei ole olemassakaan antiikkisten soittimien äänen "restaurointi" mallintamalla soitin mallipohjainen musiikin koodaus: ei talleteta ääntä vaan fysikaalisen mallin parametrit sekä soittajan "soittamat" kontrolliparametrit virtuaalitodellisuus 20/23
Lähteet [1] V. Välimäki and T. Takala, "Virtual musical instruments-natural sound using physical models," Organised Sound, vol. 1, no. 2, pp. 75-86, Oct. 1996. [2] Tolonen T., Välimäki V. and Karjalainen M., Evaluation of Modern Sound Synthesis Methods, Report 48, HUT, Department of Electrical and Communications Engineering, Laboratory of Acoustics and Audio Signal Processing, Espoo, Mar 1998. Available at http://www.acoustics.hut.fi/~ttolonen/sound_synth_report.html [3] Välimäki V., Physics-based Sound Synthesis, HUT, Laboratory of Acoustics and Audio Signal Processing, lecture notes, /share/argh/klap/ HUT_ASP/asp-9-physical-modeling.pdf 21/23 Harjoitustehtävä Laajennetaan edellisen luennon (M. Vihola: Sound Synthesis Methods) harjoitustehtävän Karplus-Strong-algoritmia (s. 11) tuottamaan entistä paremmankuuloista ääntä. Algoritmia parannetaan käyttämällä parempaa loopfiltteriä sekä lisäämällä soittimien rungon vaikutus. 1. Vaihda keskiarvottavan loop filterin tilalle one-pole suodatin (s.15). Kokeile parametrien g ja a 1 vaikutusta ääneen. 2. Mallinna rungon vaikutusta LPC:n avulla. Analysoi pätkästä oikeaa kitarasignaalia (esim. /share/speechdat/klap/guitar/) LPC-kertoimet ja suodata syntetisoitu signaali niillä: a=lpc(alkup(indeksit),order);out=filter(1,a,y); Mistä kohtaa alkuperäistä signaalia LPC-kertoimet kannattaa analysoida? 22/23
Ainakin itse sain näillä konsteilla varsin aidon kuuloisen signaalin: /share/argh/tuomasv/synth_guitar.wav Palauta koodit ja kommentit löydetyistä toimista parametreistä osoitteeseen tuomasv@cs.tut.fi. Jos satut saamaan aikaan jännän kuuloisia ääniä niin tallenna ne ja pistä linkki maililla; niistä ei saa bonuspisteitä mutta hyvän mielen minulle. :) 23/23