Zpr´ava k semestr´aln´ı pr´aci k pˇredmˇetu B2M31SYN – Synt´eza audio sign´al˚ u Luk´ aˇ s Krauz
[email protected]
´ Ukol 1 • Motivace Hlavn´ım c´ılem t´eto u ´lohy bylo vytvoˇrit za pomoci MIDI souboru, obsahuj´ıc´ı noty a stopy k jednotliv´ ym n´astroj˚ um, druhou symfonickou b´aseˇ n Vltava z cyklu M´a vlast od skladatele Bedˇricha Smetany. Veˇsker´e hudebn´ı n´astroje bylo nutn´e vytvoˇrit pouˇzit´ım synt´ezy proveden´e v prostˇred´ı MATLAB. • Proveden´ ı Typy n´astroj˚ u vyskytuj´ıc´ı se ve v´ yˇse jmenovan´e skladbˇe jsou vyps´any zde: Viola, Violin, Violoncello, Kontrabas, Trubka,Francouzsk´ y roh, Tuba, Fl´etna, Hoboj, Klarinet, Fagot, Harfa, Tymp´any, Triangl. Jednotliv´e n´astroje byly vytvoˇreny pomoc´ı r˚ uzn´ ych synt´ez.
– Nejv´ıce v t´eto pr´aci byla pouˇzita formantov´a synt´eza, a to u n´astroj˚ u viola, violoncello, violin, kontrabas, roh, tuba, fagot. Formantov´a synt´eza vyuˇz´ıv´a znalosti formant˚ u, neboli maxim ve frekvenˇcn´ım spektru sloˇzen´ ych t´on˚ u. Ty vznikaj´ı za pomoci rezonance uvnitˇr hudebn´ıho n´astroje. D´ıky znalost´ı um´ıstˇen´ı a ˇs´ıˇrek p´asma pro jednotliv´e formanty u kaˇzd´eho hudebn´ıho n´astroje, je moˇzn´e tyto formanty vytvoˇrit za pomoci rezonanˇcn´ıch ˇc´ıslicov´ ych filtr˚ u, do kter´ ych je na vstupu pˇriveden pˇr´ısluˇsn´ y vstupn´ı sign´al odpov´ıdaj´ıc´ı dan´emu n´astroji (sinus, pulzy, obd´eln´ıkov´ y pr˚ ubˇeh, pilov´ y pr˚ ubˇeh). Na vyfiltrovan´ y sign´al, na kter´ y byl aplikov´an urˇcit´ y poˇcet filtr˚ u podle poˇctu formant˚ u, byla pouˇzita odpov´ıdaj´ıc´ı ob´alka sign´alu pro dan´ y n´astroj. Zde bylo d˚ uleˇzit´e rozliˇsit zda n´astroj uveden´ y v MIDI souboru hraje ve smyˇccov´e sekci nebo v pizzicato sekci. Na smyˇcce byla pouˇzita ob´alka ADSR odpov´ıdaj´ıc´ı hˇre smyˇccem, na pizzicato jsme vyuˇzili exponenci´alnˇe klesaj´ıc´ı ob´alku, simuluj´ıc´ı drnknut´ı struny. N´aslednˇe byl sign´al normalizov´an a posl´an na v´ ystup pˇr´ısluˇsn´e funkce volan´e v MIDItoolboxu (viz d´ale). – Dalˇs´ı ˇcasto pouˇz´ıvanou synt´ezou byla synt´eza tvarovac´ı, vytvoˇrena u Klarinetu, Fl´etny, Hoboje a Trubky. Zde se vyuˇzilo vytvarovan´ı vstupn´ıho sign´alu neline´arn´ı
ˇ pˇrenosovou funkc´ı vytvoˇren´e pomoc´ı Cebyˇ sevov´ ych polynom˚ u odpov´ıdaj´ıc´ı n´asleduj´ıc´ımu vyj´adˇren´ı pro jednotliv´e polynomy [1] T0 (x) = 1,
(1)
T1 (x) = x,
(2)
Tn+1 (x) = 2xT (x) − Tn−1 (x) .
(3)
Pˇri znalosti amplitudov´eho spektra urˇcit´eho n´astroje a poˇctu harmonick´ ych odˇ pov´ıdaj´ıc´ı stupni Cebyˇsevova polynomu, je generov´an sign´al s urˇcit´ ym specifick´ ym frekvenˇcn´ım obsahem odpov´ıdaj´ıc´ı dan´emu n´astroji. N´aslednˇe byla na takto tvarovan´ y sign´al aplikov´ana ADSR ob´alka, sign´al byl znormalizov´an a odesl´an na v´ ystup funkce. – Pˇri vytv´aˇren´ı n´astroj˚ u tymp´any a triangl byla vyuˇzita aditivn´ı synt´eza. Zde se pro n´astroj vyuˇz´ıv´a jednotliv´ ych oscil´ator˚ u odpov´ıdaj´ıc´ı harmonick´ ym sloˇzk´am n´astroje a jejich amplitud´am, kter´e byly zjiˇstˇeny z amplitudov´eho spektra, n´aslednˇe seˇcteny a vyn´asobeny odpov´ıdaj´ıc´ı ob´alkou, zde klesaj´ıc´ı exponenci´alou. Jedn´a se o podobn´ y princip jako u tvarovac´ı synt´ezy s t´ım rozd´ılem, ˇze zde se vyuˇz´ıv´a v´ıce oscil´ator˚ uk vytvoˇren´ı chtˇen´eho sign´alu. – Posledn´ı n´astroj, harfa, byl vytvoˇrena Karplus-Strongov´ ym algoritmem. Zde je znovu vyuˇzit´a filtrace pro vytvoˇren´ı fyzik´aln´ıho modelov´an´ı drknut´ı struny odpov´ıdaj´ıc´ı harfˇe. Filtr pracuje na principu nˇekolikan´asobn´eho zpoˇzdˇen´ı, a tak´e je zde aplikov´an filtr klouzav´ ych pr˚ umˇer˚ u. Buzen´ı je zajiˇstˇeno Gaussovsk´ ym b´ıl´ ym ˇsumem.[2] Vˇsechny vytvoˇren´e n´astroje byly vloˇzeny do funkc´ı v postˇred´ı MATLAB, kter´e byly n´aslednˇe vol´any ve funkci synth.m um´ıstˇen´e v MIDI-toolboxu. Zde bylo jednotliv´ ym n´astroj˚ um pˇriˇrazeno urˇcit´e ˇc´ıslo odpov´ıdaj´ıc´ı dan´emu n´astroji a tak´e kan´al, urˇcuj´ıc´ı rozliˇsen´ı n´astroj˚ u, kter´e se ve skladbˇe podle MIDI souboru vyskytovaly. Ve funkci synth.m byly jednotliv´e n´astroje vol´any podle zm´ınˇen´eho ˇc´ısla a kan´alu s pˇriˇrazen´ım urˇcit´ ych parametr˚ u, uloˇzen´e v MIDI skladbˇe, zastupuj´ıc´ı frekvenci noty, trv´an´ı noty, vzorkovac´ı frekvenci a velikosti amplitudy pro dan´ y t´on. Z n´aslednˇe vytvoˇren´e kompozice pomoc´ı MIDI-toolboxu, byla v hlavn´ım souboru main.m vytvoˇrena a normalizov´ana skladba ve tvaru .wav souboru. Jeˇstˇe pˇredt´ım byl aplikov´an konvoluˇcn´ı reverb, vyuˇz´ıvaj´ıc´ı impulzn´ı odezvy velk´e haly [3], a p˚ uvodn´ıho sign´alu pˇri n´asoben´ı ve frekvenˇcn´ı oblasti, coˇz odpov´ıd´a konvoluci v oblasti ˇcasov´e y[n] =
k X
x[n]h[k − n]
(4)
n=0
y[n] = IFFT{FFT{x[n]} · FFT{h[n]}},
(5)
a n´asledn´e pˇreveden´ı zpˇet do ˇcasov´e dom´eny (5). Pro pˇrechod do i zpˇet z frekvenˇcn´ı oblasti byl pouˇzit algoritmus rychl´e Fourierovy transformace. Z d˚ uvodu obrovsk´eho v´ ypoˇcetn´ıho v´ ykonu pro tak dlouhou skladbu jako je Vltava, bylo pˇristoupeno k cyklick´e konvoluci OLA
(overlap and add) [4], pracuj´ıc´ı s rozsegmentov´an´ım sign´alu obecn´ ym oknem a n´asledn´ ym seˇcten´ım pˇresah˚ u. Tento proces by mˇel odpov´ıdat bˇeˇzn´e line´arn´ı konvoluci (4) v ˇcasov´e oblasti [5]. Vytvoˇren´a skladba tak z´ıskala dozvukov´ y efekt, bl´ızk´ y hˇre v koncertn´ı s´ıni.
´ Ukol 2 • Motivace Vytvoˇren´ı tˇrech okt´av durov´e stupnice pro v´ yˇse uveden´e n´astroje, pouˇzit´e ve skladbˇe Vltava. • Proveden´ ı Funkce stupnice.m vol´a postupnˇe funkce vˇsech n´astroj˚ u, kter´ ym pˇriˇrazuje parametry o frekvenci dan´e noty, d´elce noty a vzorkovac´ı frekvenci.
´ Ukol 3 - samostatnˇ e zvolen´ y • Motivace Pouˇzit´ı r˚ uzn´ ych typ˚ u synt´ez stejn´eho n´astroje v jedn´e skladbˇe v´aˇzn´e hudby. • Proveden´ ı V tomto u ´kolu jsme znovu vyuˇzili moˇznost´ı MIDI-toolboxu a pro nalezenou skladbu od skladatele Francise Poulence s n´azvem Sonata for two clarinets [6], respektive zkr´acen´ y u ´sek t´eto son´aty, jsme ˇctyˇrmi r˚ uzn´ ymi zp˚ usoby synt´ez vytvoˇrili klarinet a postupnˇe tyto synt´ezy ve skladbˇe vystˇr´ıdali. Nejprve bylo zapotˇreb´ı upravit MIDI soubor taky aby v´ yˇse zm´ınˇen´ y postup byl provediteln´ y. Pomoc´ı freeware MIDI editoru Sekaiju jsme pˇridali 2 stopy pro dalˇs´ı synt´ezy klarinetu a upravily stopy tak, aby se ve skladbˇe kaˇzd´a stopa plynule vystˇr´ıdala a mohli jsme tak vytvoˇrit u ´pln´ y pr˚ ubˇeh skladby. Stejn´ ym zp˚ usobem jako u skladby Vltava v u ´kolu 1 jsme kaˇzd´e stopˇe ve funkci synth.m pˇriˇradili jednu synt´ezu klarinetu a oˇsetˇrili pˇr´ıpad, kdy z nezn´am´eho d˚ uvodu MIDI soubor pˇriˇrazoval jedn´e stopˇe n´astroj fl´etny m´ısto klarinetu. Funkc´ım n´astroj˚ u byly znovu pˇriˇrazov´any parametry frekvence not, d´elky not, vzorkovac´ı frekvence a amplitudy. Na v´ ysledn´ y sign´al byl opˇet pˇred uloˇzen´ım do .wav souboru aplikov´an konvoluˇcn´ı reverb. Opˇetovnˇe jsme zde pouˇzili cyklickou konvoluci OLA, popisovanou v´ yˇse, kv˚ uli zjednoduˇsen´ı v´ ypoˇcetn´ı n´aroˇcnosti. Zmˇenˇena byla vˇsak impulzn´ı odezva, tentokr´at z´ıskan´a z mal´e jeskynˇe [3], kter´a d´av´a skladbˇe jin´ y efekt dozvuku. D´ale jsou pops´any zvolen´e typy synt´ez. – Prvn´ım typem byla v´ yˇse pops´ana aditivn´ı neboli souˇctov´a synt´eza, kdy jsme zjistili amplitudy harmonick´ ych v amplitudov´em spektru n´astroje, vytvoˇrili oscil´atory s tˇemito parametry a ty d´ale seˇcetli a dostali pr˚ ubˇeh chtˇen´eho sign´alu n´astroje. N´aslednˇe byla aplikov´ana typick´a ob´alka pro klarinet a zvuk n´astroje byl znormov´an. ˇ – Druh´ ym typem byla znovu jiˇz uvedena tvarovac´ı synt´eza vyuˇz´ıvaj´ıc´ı Cebyˇ sevovy polynomy, uveden´e v u ´kolu 1.
– Tˇret´ım typem byla synt´eza klarinetu za pomoc´ı formant˚ u. Takt´eˇz jiˇz pops´ana v´ yˇse. – Posledn´ı typ synt´ezy pouˇzit´e v tomto bodˇe byla synt´eza modulaˇcn´ı. f (t) = sin((2fc t) + mi sin(2fm t))
(6)
Zde se vyuˇz´ıv´a pˇredpisu pro Frekvenˇcn´ı modulaci (6), kdy nosn´a (carrier) fc vlna je modulov´ana jinou vlnou o r˚ uzn´e frekvenci fm . Takto vytvoˇren´ y sign´al m´a chtˇen´a frekvenˇcn´ı p´asma naˇseho n´astroje a n´aslednˇe je pˇren´asoben sign´alovou ob´alkou. D˚ uleˇzit´ ym parametry pro tvarov´an´ı sign´alu jsou pomˇer frekvenc´ı nosn´e a modulaˇcn´ı vlny, modulaˇcn´ı index mi a vstupn´ı tvar sign´alu (sin, cos, pila, obd´eln´ık)[7].
Z´ avˇ er V prvn´ım u ´kolu bylo pops´ano jak´ ym zp˚ usobem byl splnˇen u ´kol syntetizace hudebn´ıch n´astroj˚ u obsaˇzen´ ych v MIDI souboru k symfonick´e b´asni Vltava. Vyuˇzity zde pro n´astroje byly synt´ezy formantov´a, souˇctov´a, tvarovac´ı, a Karpus-Strong˚ uv algoritmus. N´aslednˇe za pouˇzit´ı cyklick´e konvolce OLA byl vytvoˇren efekt dozvuku pro koncertn´ı halu. V druh´em u ´kolu bylo kr´atce pops´ano vytvoˇren´ı durov´e stupnice s pouˇzit´ ymi n´astroji z prvn´ıho u ´kolu. Ve tˇret´ım u ´kolu byl pops´an postup vytvoˇren´ı samostatn´e pr´ace r˚ uzn´ ych synt´ez jednoho n´astroje ve stejn´e skladbˇe od autora Francise Poulence. D´ale byly pops´any jednotliv´e synt´ezy i postup u ´pravy MIDI souboru pro moˇznost zpracov´an´ı t´eto u ´lohy.
Reference ˇ sevovy polynomy. Praha: Cesk´ ˇ e vysok´e uˇcen´ı technick´e v Praze, 2000. [1] J. Lipouch, Cebyˇ [Online]. K dispozici z: http://www-troja.fjfi.cvut.cz/ limpouch/numet/aprox/node16.html ˇ ´ [2] R. Cmejla a P. Sovka, Uvod do ˇc´ıslicov´eho zpracov´an´ı sign´al˚ u, vyd. 1. ed. Praha: Vydavaˇ telstv´ı CVUT, 2005. [3] [Online]. K dispozici z: http://www.voxengo.com/impulses/ [4] J. Kalpuch, Diplomov´a pr´ace: Potlaˇcov´an´ı akustick´eho echa a ˇsumu prostˇred´ı v mobiln´ım ˇ e vysok´e uˇcen´ı technick´e v Praze, 2012. telefonu. Praha: Cesk´ [5] R. Berka, F. Rund, L. Husn´ık, a A. J. Sporka, Multim´edia I. technick´e v Praze, 2016.
ˇ e vysok´e uˇcen´ı Praha: Cesk´
[6] [Online]. K dispozici z: http://www.clarinetinstitute.com/clarinet-midi-files.html ˇ [7] J. Dobeˇs a V. Zalud, Modern´ı radiotechnika, 1st ed. 2006.
Praha: BEN - technick´a literatura,