9.3. SINTEZA SUNETULUI


  În domeniul sunetului pe PC, există tehnologii care deja sunt depăşite, precum şi tehnologii care au fost implementate mai recent pe computere.

9.3.1. Sinteza FM

      Este una din primele metode care au ca produs final sunetul produs de un sintetizator electronic.
Îşi are începuturile în 1976 şi constă, în esenţă, în modificarea unui semnal sinusoidal cu ajutorul altui semnal sinusoidal. Evident, rezultatul iniţial suna artificial; mai târziu, tehnologia a fost îmbunătăţită, dar sunetul astfel produs tot fals sună.
      Sinteza FM se bazează pe folosirea funcţiilor Bessel şi vine cu un aparat matematic complex.
      În continuare, se va prezenta variantă simplificată a sintezei FM, pusă la punct de firma Korg, şi care constă în ponderarea dinamică a armonicilor care, însumate, vor da timbrul sunetului.
  Pentru generarea unui sunet este nevoie de următoarele date iniţiale:
 • numărul eşantioanelor generate pe o perioadă (Ko);
 • numărul armonicilor care intervin în timbrul sunetului respectiv (N);
 • intervalul de timp între două eşantioane succesive (T).
Aceste date sunt oferite de calculator procesorului DSP de pe placa de sunet. Valorile intermediare sunt calculate astfel:
• N = (20 kHz)/fo, unde fo este frecvenţa fundamentalei sunetului care se vrea generat. Pentru un N > 32, se ia N = 32.
• Ki = (20 kHz)/(ixfo), cu i = 1..N, iar pentru un K < 4, se ia K = 4.
• Ko = NxKi, pentru fiecare i = 1..N.
• dk = 1024 div Ko, pentru fiecare i = 1..N (incrementul care actualizează la fiecare pas pointer-ul care adresează tabela sinus).
Pentru generarea unui sunet, se procedează astfel.
1. Se încarcă din EPROM în memoria internă de date cele 1024 eşantioane ale unei perioade a funcţiei sinus.
2. În memoria externă de date, se încarcă ponderile armonicilor. Tabela de ponderi este organizată în zone de 32 de octeţi şi conţine atâtea zone câte schimbări de spectru au loc în timpul generării sunetului.
3. Se încarcă apoi valorile Ko, N, T şi dk. Incrementul dk este încărcat într-un registru index, cu care se va actualiza registrul care adresează tabela funcţiei sinus. Cu T este încărcat registrul de numărare al timer-ului integrat, care va genera o întrerupere la fiecare 5xT ns (ceasul fiind cel de 400 MHz). Rutina de servire a acestei întreruperi trimite eşantionul curent la convertorul DA.
4. După primirea datelor iniţiale, se trece la generarea sunetului. Un eşantion al semnalului se calculează cu relaţia:
Y[i]=sum (S[j][i] x A(i+B)),
pentru j = 1..1024, unde S[j][i] este eşantionul de ordin j din cadrul unei perioade a armonicei i, A(...) este tabela de ponderi, iar B este adresa de bază a zonei curente de 32 de octeţi. Pentru modificarea spectrului în timpul generării, se modifică valoarea lui B şi se trece la un alt segment de 32 de ponderi.
9.3.2 Sinteza wavetable

      Este o tehnologie care îşi are începuturile în 1984, fiind pusă la punct de firma Ensoniq Corp. Sinteza wavetable constă, în esenţă, în prelevarea de sunete de înaltă calitate de la instrumente acustice, sunete stocate sub numele de wavefiles, waveform files sau wavetables. Apoi, prin extrapolare, cartela sintetizează întreaga diversitate de sunete pe care respectivul instrument o poate genera.
  Extrapolarea are la bază următoarea idee: în cadrul timbrului eşantionului de sunet cules, există armonici care au o anumită ponderare faţă de valoarea fundamentalei, f0. În cazul generării unui sunet pe altă frecvenţă, f1, se ia din sunetul iniţial armonica de la f1 şi se consideră fundamentală, apoi se adaugă în jurul ei armonici ponderate, la fel ca în sunetul iniţial.
      Elementul de bază al sintezei wavetable este un generator static de unde, care foloseşte un tabel circular de valori secvenţiale ale undei, un acumulator de fază pentru generarea de adresă şi metode de interpolare între fişierele wavetable vecine.
În figura 9.4 este ilustrat mecanismul sintezei wavetable.



Fig. 9.4. Schema bloc a sintezei wavetable.

      Formele de undă rezidente în memorie utilizează mai multe fişiere wavetable, cu sunetul înregistrat pe o perioadă sau mai multe (kT), incluzând şi timpii de atac (attack), amortizare (decay), susţinere (sustain) şi descreştere (release), aşa cum se poate observa în figura 9.5.



Fig. 9.5. Intervalele semnificative din emisia unui sunet produs de un instrument.

      Timpul de atac (attack) este intervalul cuprins între momentul declanşării sunetului şi momentul în care anvelopa acestuia ajunge la maxim.
      Timpul de amortizare (decay) este intervalul în care anvelopa scade la nivelul dictat de parametrul susţinere.
      Timpul de susţinere (sustain) este intervalul în care instrumentul menţine sunetul emis la un nivel constant (nu este prezent la toate instrumentele).
      Timpul de descreştere (release) este intervalul în care, după încetarea emisiei sonore a instrumentului, anvelopa scade de la nivelul de susţinere la zero.
      Aceşti timpi sunt specifici fiecărui instrument în parte. Este evident că un sunet de pian, de chitară sau de percuţie va avea timpul de susţinere foarte mic, timpul de descreştere începând, practic, din momentul în care se termină timpul de atac.
      Deci, în memoria RAM a calculatorului se vor transfera fişiere care conţin sunete eşantionate, prelevate de la instrumente acustice, plus diferite informaţii care ţin de volum, balans, frecvenţă de răspuns, antialiere, supraeşantionare, precum şi de mixajul între canale. De asemenea, conţin informaţii privind full vibrato şi full tremolo (modulaţiile în frecvenţă şi, respectiv, în amplitudine).
      Pe durata unui sunet, apar următoarele momentele semnificative:

      Între start sound şi start loop, apare caracteristica de atac, iar între end loop şi end sound, caracteristica de descreştere.
      În cadrul buclei (loop), are loc sunetul propriu-zis, iar bucla durează cât timp este necesar pentru a acoperi durata sunetului. O asemenea buclă nu există în cazul sunetelor care nu au timp de susţinere.
      Alte facilităţi, precum efectele de reverb, phasing sau distors, sunt implementate în driver-e.

9.3.3 Sinteza substractivă (analogică)

      Sinteza substractivă este denumită adesea sinteză analogică, deoarece majoritatea sintetizatoarelor cu sinteză substractivă folosesc metode analogice pentru a genera sunetele.
      În forma cea mai simplă, sinteza substractivă se bazează pe schema bloc reprezentată în figura 9.6.



Fig. 9.6. Schema bloc a sintezei substractive.

      Oscilatorul este folosit pentru a genera un sunet, filtrul este folosit pentru a reţine o parte din spectrul armonic, iar amplificatorul este folosit pentru a controla amplitudinea sunetului în timp, cu scopul de a simula anvelopa amplitudinii unui instrument natural.
      Pe scurt, în cadrul sintezei substractive se porneşte de la un sunet, se filtrează părţile nedorite din spectrul de frecvenţe şi se controlează volumul în timp.

9.3.3.1. Oscilatorul

      Oscilatorul generează o formă de undă cu o anumită frecvenţă. Există multe tipuri de oscilatoare în cadrul unui sintetizator analogic. Oscilatorul principal este oscilatorul comandat de claviatură. Aceasta înseamnă că atunci când se apasă o clapă, oscilatorul generează formă de undă cu frecvenţa corespunzătoare.
      Exemplu. La apăsarea notei la’ – sub do-ul central – frecvenţa undei produse va fi de 440 Hz.
  Forma undei generate de oscilator determină timbrul, caracteristica sau strălucirea sunetului. În timp ce înălţimea este determinată de frecvenţa fundamentală, timbrul este format din multe alte frecvenţe (armonice), care dau instrumentului identitate. Fiecare tip de formă de undă (dreptunghiulară, dinte de fierăstrău, impuls, zgomot alb etc.) are armonice diverse.

9.3.3.2. Filtrul

      Filtrul este folosit pentru a îndepărta frecvenţe din spectrul formei de undă, alterând astfel timbrul. Se folosesc mai multe tipuri de filtre: filtru trece-jos (FTJ), filtru trece-bandă (FTB) şi filtru trece-sus (FTS), ale căror funcţii pondere (în domeniul timp) şi funcţii de transfer (în domeniul frecvenţă) sunt cunoscute.
      Parametrii filtrelor sunt: frecvenţa de tăiere (care determină banda de tăiere sau banda de trecere), frecvenţa de rezonanţă şi panta.
9.3.3.3. Amplificatorul

      Ultimul proces major în producerea unui sunet este volumul. Amplificatorul foloseşte o anvelopă pentru a controla amplitudinea sunetului în timp. Anvelopa este activată prin apăsarea clapelor claviaturii.
Generatorul de anvelopă are, de obicei, cei 4 parametri cunoscuţi (vezi paragraful 9.3.2): atac, amortizare, susţinere şi descreştere.

9.3.3.4. Modulaţia

      Modulaţia este folosită pentru a face sunetul mai expresiv. Anvelopa de volum a fost studiată în corelaţie cu etapele unui sunet, însă anvelopele pot fi folosite şi pentru a modula alţi parametrii. De exemplu, o anvelopă poate modula frecvenţa de tăiere a filtrului sau frecvenţa oscilatorului comandat de claviatură.
  Un semnal modulator uzual în cadrul sintetizatoarelor substractive este un LFO (Low Frequency Oscillator) – oscilator de joasă frecvenţă: 0,1...10 Hz. Formele de undă folosite sunt triunghiulară, dreptunghiulară, dinte de fierăstrău şi sinusoidală.
      Exemple.
                  1. LFO modulează frecvenţa oscilatorului comandat de claviatură, rezultând un vibrato (formă de undă sinusoidală sau triunghiulară), un tril (formă de undă dreptunghiulară, variaţie rapidă a înălţimii sunetului) sau o sirenă (formă de undă dinte de fierăstrău).
              2. LFO modulează frecvenţa de tăiere a filtrului, iar, dacă valoarea frecvenţei de rezonanţă este mare, se obţine efectul wah-wah.
              3. LFO modulează amplitudinea semnalului, forma de undă sinusoidală sau triunghiulară producând un tremolo (variaţii line ale amplitudinii).
              4. Velocitatea (viteza cu care sunt lovite clapele) poate modula amplitudinea semnalului, timpul de atac al anvelopei de amplitudine, frecvenţa de tăiere a filtrului, anvelopa filtrului etc.

9.3.3.5. Metode de îmbogăţire a spectrului armonic

  Multe sintetizatoare permit ca două sau multe oscilatoare să fie mixate. Forma de undă care rezultă este suma celor două forme de undă implicate. Spectrul noii forme de undă este, de asemenea, suma spectrelor armonicelor celor două forme de undă.
  O altă metodă de diversificare a timbrului (şi, totodată, de îmbogăţire a spectrului armonic) este oscillator sync. Această metodă foloseşte două oscilatoare, dintre care unul (master) îl resetează pe celălalt (slave) la fiecare nouă perioadă.
      Forma de undă a oscilatorului master este irelevantă, importantă fiind doar frecvenţa sa (vezi figura 9.7).
Fig. 9.7. Forma de undă sync din două variante de perechi de oscilatoare master-slave.

      Sync skew manipulează frecvenţa oscilatorului slave pe durata unei perioade a oscilatorului master. Efectul produs este frecvenţa crescută la sfârşitul fiecărei perioade, în cazul modulaţiei sync skew positive, şi la începutul fiecărei perioade, în cazul modulaţiei sync skew negative. Sync skew afectează şi formele de undă standard: dreptunghiulară (vezi figura 9.8) şi dinte de fierăstrău (vezi figura 9.9).
Fig. 9.8. Efectul skew (negativ şi pozitiv) aplicat formei de undă dreptunghiulare.

Fig. 9.9. Efectul skew (negativ şi pozitiv) aplicat formei de undă dinte de fierăstrău.

      Formant width este un parametru care controlează amplitudinea ciclurilor oscilatorului slave. Efectul produs este creşterea amplitudinii armonicelor (vezi figura 9.10).
Fig. 9.10. Formant width aplicat formelor de undă sync, dreptunghiulară şi dinte de fierăstrău.
Fig. 9.11. Skew şi formant width se pot folosi împreună, pentru a crea forme de undă noi (vezi figura 9.11).

      Ring modulation este similar modulaţiei FM, semnalele celor două oscilatoare fiind multiplicate. Ieşirea furnizează suma şi diferenţa dintre semnalele de intrare (vezi figura 9.12). Sunetele create au caracter metalic şi de clopot.
Fig. 9.12. Efectul ring modulation aplicat aceloraşi forme de undă.

      Toate aceste metode îmbogăţesc spectrul armonic al formelor de undă de bază. Unda urmează calea unui filtru, pentru a înlătura armonice nedorite. Filtrul este o unealtă de bază în cadrul sintetizatorului analogic.
După cum se observă din figura 9.13, diferite forme de undă sunt produse de oscilatoare diferite folosind metode diferite. Oscilatoarele, generatorul de zgomot şi ieşirile modulatoarelor în inel sunt mixate, iar ieşirea mixerului este servită filtrului.
Fig. 9.13. Generarea diferitelor forme de undă printr-un număr de 6 oscilatoare,care combină mai multe metode de îmbogăţire a spectrului armonic.

9.3.3.4. Sinteza cu ghiduri de undă

      Sinteza cu ghiduri de undă (sau prin modelarea fizică a instrumentelor) a fost introdusă în anii '90. A fost preluată din tehnologia de producere a muzicii electronice şi are la bază teoria ghidurilor de undă. Esenţa constă în crearea unor instrumente virtuale prin modularea unor parametri ai ecuaţiei undelor.
Cel mai simplu model de ghid de undă îl reprezintă fluierul (vezi figura 9.14): un tub rezonant deschis sau închis, cu o reţea de orificii pentru modificarea frecvenţei de rezonanţă şi o ancie (element vibrator).
Fig. 9.14. Fluierul ca model al tubului de rezonanţă deschis (stânga) şi închis (dreapta).

      Modelul matematic analog este o linie de întârziere bidirecţională, iar orificiile pot fi privite ca nişte reţele transversale care împart energia între diverse frecvenţe. Ancia poate fi implementată ca un oscilator neliniar. În loc să se calculeze variabilele fizice ale ecuaţiei undelor pentru fiecare sunet în parte şi pentru fiecare instrument (ceea ce ar fi o muncă sisifică), se rezolvă ecuaţia undelor pentru un caz particular, apoi aceste unde sunt simulate în modelul digital al instrumentului, obţinându-se în final, prin sumarea undelor, sunetul la ieşire.
      În cazul teoretic al mediului fără pierderi, simularea unei unde în mişcare se poate face cu ajutorul unei linii digitale de întârziere. În soft, o linie de întârziere poate fi implementată ca o secvenţă simplă de fetch şi store, cu un pointer actualizat pentru fiecare eşantion. În realitate, există dispersie şi pierderi dependente de frecvenţă, dar s-a descoperit că acestea pot fi grupate şi modelate punctual, deci, simularea tot printr-o linie fără pierderi se va face. Rezultatul net este o scădere de aproximativ 1.000 de ori a puterii de calcul necesare pentru algoritmii de sinteză, faţă de rezolvarea directă a ecuaţiei undelor.
      Un amănunt interesant, care face această tehnologie atractivă, este noţiunea de microfon virtual. O familie întreagă de instrumente (de exemplu, instrumentele cu corzi) poate fi simulată printr-unul singur, numit metainstrument. Caracteristicile fiecărui instrument din familia respectivă pot fi create prin simpla deplasare a unui microfon virtual în diferite locaţii ale metainstrumentului.
      Printre tendinţele actuale, mai există tehnici de sinteză a sunetului utilizând modulaţia de fază (Phase Modulation) şi reţele neurale, dar şi sinteza aditivă sau sinteza software (Software Synthesis) etc.

9.3.5. Sinteza MIDI

      Standardul general MIDI a fost lansat în 1991, pentru implementarea pe diferitele staţii de lucru. Conform specificaţiei MIDI, fluxul de date este bidirecţional, la fiecare octet adăugându-se un bit de start şi unul de stop.
      Este un protocol hardware şi software care permite ca anumite instrumente muzicale să poată intercomunica. Evenimentele vehiculate pe magistrala MIDI pot fi înregistrate ca fişiere de tip MIDI, pentru modificări sau execuţii ulterioare. Multe plăci de sunet actuale sunt prevăzute cu interfaţă MIDI. Cele care nu sunt, pot, în schimb, să interpreteze fişiere MIDI utilizând propriile resurse. Din punct de vedere hardware, fiecare unitate MIDI este prevăzută cu trei tipuri de semnale, care sunt utilizate pentru interconectarea de tip serial (lanţ sau secvenţă MIDI):
                  • MIDI in: conectorul prin care unitatea MIDI recepţionează toate informaţiile;
                  • MIDI out: conectorul prin care unitatea transmite spre exterior informaţia produsă;
                  • MIDI through: conectorul prin care unitatea retransmite înapoi spre exterior tot ceea ce găseşte pe linia MIDI in.
      Câţiva dintre termenii utilizaţi frecvent în standardul MIDI sunt:
                  • sintetizator (synthesizer): generator de sunet (cu acuitatea, intensitatea şi nuanţa tonului variabile);
                  • secvenţiator MIDI (sequencer): unitate fizică sau program care implementează standardul MIDI, putând să memoreze şi să modifice datele muzicale codificate MIDI;
                  • tastatura MIDI: produce intensitatea sunetului şi dă efecte speciale;
                  • pista (track): unitate logică utilizată pentru organizarea înregistrărilor;
                  • canal (channel): utilizat pentru separarea informaţiei pe magistrala MIDI (există minimum 16 canale MIDI pe o magistrală);
                  • voce MIDI (voice): element din sintetizator care produce sunetul, la rezultatul final putând contribui mai multe voci independente.
      Cele mai multe mesaje MIDI (care pot fi generate de un controler MIDI – instrument sau MIDI sequencer) sunt de tip channel messages. Acestea constau dintr-un octet de stare (status byte) şi unul sau doi octeţi de date. Status byte include 4 biţi cu adresa canalului (unul din cele disponibile). Primul octet de date indică clapa care a fost apăsată, iar cel de-al doilea controlează volumul.
      Generatoarele de sunet pot avea 16, 24, 48, 64 de voci sau chiar mai multe, vocea aici însemnând un sunet la un moment dat. Ansamblul sunetelor care pot fi produse simultan formează un timbru (patches, programs, algorithms). Standardul general MIDI specifică tipurile de timbruri şi încorporează funcţiile de pe Roland General Synthesizer. Astfel, sunt necesare minimum 128 timbruri pentru instrumentele acustice şi, de exemplu, 46 tipuri de percuţie.