Mauro Graziani
Tecniche di Sintesi

Vers. 1.0.0

NB: questa trattazione è volutamente priva di riferimenti matematici. Chi è interessato alla matematica può consultare questa dispensa realizzata al CSC Un. di Padova da De Poli, Drioli e Avanzini (PDF) e questa del solo Avanzini per i modelli fisici (stesso formato).

Scarica tutte le patch per Max/MSP (zip file) cliccando qui.
NB: le patch sono state realizzate con Max/MSP 6.1. Per quanto possibile ho cercato di non utilizzare moduli specifici della Vers. 6 per assicurare la compatibilità con la Vers. 5

Il problema della sintesi

Questa serie di immagini ci introduce al problema fondamentale della sintesi.
Si tratta di questa breve nota di pianoforte (Re4) vista:
  1. come inviluppo, nella sua evoluzione temporale in ampiezza
  2. come forma d'onda non statica ma in evoluzione nel corso della nota
  3. (in basso) come fft istantanea che evidenzia le componenti armoniche e un po' di rumore
  4. come sonogramma che delinea le componenti e il variare della loro ampiezza nel tempo
  5. come spettrogramma in 3D evidenzia l'inviluppo delle singole armoniche
analisi d4

La figura mostra che anche una breve nota, che all'ascolto può sembrare relativamente statica, è in realtà un fenomeno molto complesso in costante evoluzione nel tempo secondo leggi fisiche.
Il problema fondamentale della sintesi è quindi quello di produrre, con mezzi matematici (algoritmi), una forma d'onda che esibisca questo livello di complessità. Non si tratta di riprodurre, pari pari, il fenomeno fisico, cosa che si può fare meglio tramite campionamento, bensì di creare un sistema in grado di generare un mondo sonoro complesso che sia nello stesso tempo interessante all'ascolto (il sistema percettivo è disturbato da suoni troppo semplici e fissi, che vengono semplicemente considerati "brutti" o "meccanici") nonché comprensibile e organizzabile dal punto di vista compositivo.

Negli strumenti musicali tradizionali il suono e' prodotto dalla vibrazione di parti meccaniche. Negli strumenti sintetici, la vibrazione è descritta da funzioni nel tempo, dette segnali, che esprimono la variazione nel tempo della pressione acustica.
Di conseguenza è necessario definire un algoritmo in grado di generare il suddetto segnale. Dagli inizi della computer music, la ricerca ha sviluppato parecchi tipi di algoritmi con caratteristiche differenti. Prima di passare a classificarli e descriverli è necessario definire le caratteristiche che fanno di una tecnica di sintesi un sistema di portata generale.

Perché produrre un suono via software non è così difficile. In realtà, si può dire che qualsiasi serie numerica che abbia un certo grado di variabilità nel tempo, se inviata a un DAC, genera un suono. Forse questo suono non sarà udibile, magari perché la variazione è troppo lenta e genera solo frequenze troppo basse per la percezione umana. Oppure l'opposto, se la frequenza di campionamento lo consente. Oppure, ancora, l'ampiezza dell'onda può essere al di sotto della soglia di percezione, ma, comunque, si tratta di un suono.
Per esempio, il rumore bianco è costituito da una serie di numeri casuali fra ±k, dove k è il massimo valore consentito dalla scheda audio (±32767 se a 16 bit; ±8388607 a 24 bit; etc.) ed è abbastanza elevato da essere una ampiezza udibile.
Quindi anche generando una serie di numeri a caso si ottiene un suono. L'oggetto noise~ di MSP, per esempio, fa proprio questo, assicurando anche una distribuzione uniforme (tutti i numeri hanno la stessa probabilità).
Tuttavia, con questa tecnica, non si va molto al di là del noise. Il modulo citato, infatti, produce unicamente del rumore bianco, senza offrire altre possibilità. L'algoritmo che utilizza può essere sicuramente considerato un algoritmo di sintesi, ma la sua portata è alquanto ristretta.
Un sistema di sintesi di portata generale, invece, dovrebbe essere:
In realtà, come accennato, la necessità di tutte queste caratteristiche deve essere stimata in base all'idea compositiva. Per esempio, per un compositore che accetta e cerca la casualità, il fatto che un sistema sia prevedibile e deterministico può essere visto anche come un ostacolo. Oppure un compositore che ragiona con una logica strettamente strumentale ha bisogno di una serie di sistemi, ognuno dei quali sia in grado di sintetizzare molto bene una certa tipologia sonora, mentre non gli interessa poter agire sulla timbrica.

Di seguito sono presentati alcuni fra i principali algoritmi di sintesi con riferimento ai criteri di scelta sopra esposti. E' tuttavia possibile procedere ad una classificazione degli algoritmi di sintesi basata sull'analisi della loro struttura. Si può infatti notare che la complessità della struttura ha forti riflessi sul controllo sia timbrico che espressivo di un algoritmo. Gli algoritmi definiti da una struttura semplice necessitano di un flusso di segnali di controllo molto articolato, in quanto caratterizzazione ed espressività timbrica devono essere garantiti proprio dai segnali di controllo. Invece gli algoritmi con complessità strutturale elevata garantiscono di base una buona caratterizzazione timbrica e una buona coerenza interna, consentendo quindi un controllo molto più semplificato.

Una prima classificazione

In base al tipo di modello con cui viene rappresentato il suono, gli algoritmi di sintesi possono essere suddivisi in due classi
Questa classificazione e i metodi di sintesi che ne derivano è rappresentata nello schema seguente

Modelli del Segnale

Tecniche Lineari

Prendono il nome dal fatto che, basandosi su operazioni di somma e differenza, a un aumento della complessità dell'algoritmo corrisponde un aumento proporzionale e lineare della complessità del suono prodotto. Ad esempio, se nell'additiva classica sovrappongo 5 sinusoidi otterrò un suono con 5 componenti; se ne sovrappongo 10 avrò un suono con 10 componenti.
Questo non accade con le tecniche non lineari. Nella modulazione di frequenza, per esempio, il passare da una a due modulanti provoca un aumento della complessità ben superiore al doppio.

Look-up Table Oscillator

Sintesi Additiva

Sintesi Sottrattiva

Sintesi Granulare

L'idea della sintesi granulare è di comporre un suono mediante piccolissimi frammenti sonori (grani di durata variabile intorno da 50 a 200/300 millisecondi) collegati l'uno all'altro e/o parzialmente sovrapposti fino a dare l'illusione di un suono continuo, come in un mosaico.
Questa tecnica richiede grandi risorse computazionali, ma assicura un vasto spettro sonoro con buoni risultati anche nella simulazione.
Max/MSP fornisce già un'ottima patch per la sintesi granulare in examples/sampling/granular.

Tecniche non-Lineari

Queste tecniche si ottengono essenzialmente mediante distorsione di un segnale da parte di un altro. Come tali non sono lineari perché il risultato sonoro non varia in proporzione alla complessità dei segnali coinvolti ma segue relazioni di altra natura. Per es. se nella modulazione di frequenza si aggiunge più di una modulante, il numero delle componenti non varia proporzionalmente, ma aumenta in misura esponenziale.
In tal modo, la comprensione del metodo è meno intuitiva, ma è possibile generare segnali con molte componenti armoniche o inarmoniche, con poche risorse, arrivando fino ai rumori a banda limitata.

Modulazione di Frequenza


Distorsione non lineare

In preparazione

Altre tecniche

L'inventiva umana non ha fine e sono stati sperimentati molti sistemi che vanno dai metodi statistici fino alle funzioni a due variabili. Solo pochi, però, hanno retto alla prova del mondo industriale da una parte e della ricerca compositiva dall'altra.
Alcuni modelli sono rimasti in quanto utili per sintetizzare particolari famiglie sonore. Fra questi il FOF (sintesi per formanti) utile per la sintesi di suoni vocalizzati.

Modelli della Sorgente

Modelli Fisici

Come già accennato, nella sintesi per modelli fisici si tenta di realizzare un modello matematico della sorgente che genera il suono, formalizzando l'intero processo. In tal modo si ottene un sistema i cui parametri di controllo quelli dello strumento musicale a cui si ispira: per la corda, la posizione del plettro o dell'arco la forza della pennata, le dimensioni della cassa; per uno strumento a fiato, la pressione del soffio, la rigidità dell'eventuale ancia, etc.
Il modello, quindi, si comporta come uno strumento esibendo un comportamento simile alla realtà con correlazione suono - parametri di controllo (per es. se aumenta la forza applicata aumenta anche il volume del suono e il numero delle componenti spettrali).
Il vantaggio è che il musicista ritrova un ambiente a lui familiare e può controllare il suono molto facilmente. Lo svantaggio è che un modello riproduce il sistema che rappresenta e non può essere utilizzato per produrre suoni inediti a meno di mettere mano alla sua programmazione.
Data la complessità di tali modelli, la cosa non risulta semplice e i compositori, anche con una certa preparazione, sono costretti a prenderli come scatole nere che esibiscono un comportamento conosciuto.
Attualmente esistono varie librerie di modelli fisici pilotabili anche via tastiera MIDI o MIDIFile e quindi facilmente utilizzabili da chiunque. Ricordiamo il Synthesis ToolKit (STK) di Cook e Scavone al CCRMA disponibile sia in versione Linux che Windows.
Per Max/MSP esiste Modalys che si scarica dal Forum IRCAM dietro iscrizione (non gratuita)

Nello sviluppo di modelli di sistemi acustici è utile individuare blocchi funzionalmente distinti, i quali possono venire studiati indipendentemente l'uno dall'altro e successivamente messi in interazione. Ad un primo livello di scomposizione si identificano due principali blocchi funzionali: l'eccitatore ed il risonatore.
Il risonatore è la parte dello strumento in cui la vibrazione ha effettivamente luogo, ed è correlato a caratteristiche sonore quali altezza ed inviluppo spettrale. L'eccitatore provoca ed eventualmente sostiene la vibrazione nel risonatore, immettendo energia nello strumento; da esso dipendono le proprietà di attacco del suono, fondamentali nell'identificazione del timbro.
Per fare qualche esempio, sono blocchi risonatori la corda nella chitarra, nel pianoforte, nel violino, o il tubo acustico nei legni e negli ottoni. Sono invece eccitatori il plettro nella chitarra, l'archetto nel violino, il martelletto nel pianoforte, l'ancia nel clarinetto.
Ciascuno dei due blocchi viene descritto da un sistema dinamico, tipicamente lineare per quanto riguarda il risonatore e non lineare per l'eccitatore. L'eccitatore può di solito essere rappresentato come costituito da corpi rigidi connessi tra loro attraverso degli ideali elementi concentrati (molle, elementi di attrito . . . ), eventualmente non lineari.
Dalla parte opposta, il risonatore viene tipicamente trattato come un corpo flessibile, in cui forze e materia sono distribuiti in uno spazio continuo; si parla allora di elementi distribuiti, corde o membrane nel caso meccanico, colonne d'aria nel caso fluidodinamico.

La ricerca è attualmente in corso. Questo esempio di strumento a corde pizzicate che esegue un brano piuttosto complesso, con accenti, legati e armonici, mostra la qualità della modellizzazione (il caso delle corde pizzicate può ormai dirsi risolto, mentre gli altri modelli sono in via di sviluppo).
Un software commerciale che utilizza in parte i modelli fisici è Pianoteq.