Mauro Graziani
Tecniche di Sintesi

Sottrattiva

Descrizione

Una delle prime tecniche ad apparire sia nella ricerca che nei sintetizzatori commerciali analogici (il famoso Mini-Moog), la sintesi sottrattiva si basa sull'idea di partire da una forma d'onda molto ricca di armonici (dente di sega con tutti gli armonici ad ampiezza esponenzialmente calante; impulso con tutti gli armonici ad ampiezza uguale) o di componenti inarmoniche (rumore bianco o colorato),  per poi rimodellarne le ampiezze mediante un banco di filtri. Lo schema è il seguente
schema
dove Generator è l'onda o rumore di partenza e Filter è uno o più filtri. L'effetto che si produce è il seguente
filtro
Può sembrare strano produrre armoniche per poi cancellarle, ma bisogna ricordare che le onde a banda non limitata (quadra, triangolare, dente di sega, impulso) sono facilissime da produrre anche per via analogica.
I filtri, invece, richiedono risorse di calcolo maggiori, ma ormai accessibili anche a macchine di media potenza.

Caratteristiche

Vantaggi

Facilità di comprensione e implementazione
Il che si traduce in semplicità di controllo e facilità d'uso.
Segnale variabile nel tempo
Grazie ai filtri. Occorre però ricordare che nella sottrattiva non si creano componenti, quindi queste ultime devono essere già presenti nel segnale di partenza.
Velocità di calcolo Buona velocità di calcolo se non si utilizzano reti di filtri troppo complesse
Semplice generazione di suoni con formanti fissi
Molti suoni reali sono caratterizzati da formanti fissi (praticamente tutti gli strumenti con cassa armonica fra cui, vi ricordo, la voce umana).
Con altre tecniche di sintesi è possibile crearli, ma non è così semplice. Con la sottrattiva, invece, basta aggiungere alcuni filtri di banda (vedi esempio più sotto).

Proprio grazie a queste caratteristiche, usando la sottrattiva sono stati costruiti dei sistemi di sintesi indirizzati a specifiche sonorità come la predizione lineare (per la sintesi del parlato) o il classic vocoder (per quest'ultimo c'è una bella patch nella cartella di Max/MSP examples/effects/classic-vocoder-folder).

Limiti

Tipologia spettrale limitata
La tipologia spettrale è strettamente legata al segnale di partenza. Non si possono creare nuove componenti e anche la selezione su quelle presenti è grossolana, a meno di non ricorrere a filtri basati su FFT, che però richiedono risorse di calcolo maggiori.
Correlazione fra le componenti
La correlazione fra le componenti è quella del segnale di partenza che, essendo, in genere, un table lookup, soffre delle stesse limitazioni per quanto riguarda tremoli, vibrati e deviazioni fra le componenti che risultano impossibili da applicare (ovviamente si può partire da un suono generato in additiva, ma allora si perdono i vantaggi della sottrattiva)

Implementazione

In Max/MSP

Patch: semplice_sottrattiva
Una sottrattiva semplice che implementa lo schema descritto sopra (segnale → filtro → output) aggiungendo un inviluppo di ampiezza e un secondo inviluppo indipendente che pilota il filtro.
Nella figura sotto si vede la patch di base, con spiegazione sotto.
semplice sottrattiva patch
In questa patch abbiamo un segnale di partenza con inviluppo di ampiezza (in alto). Il segnale è selezionabile via menu a tendina fra una serie di onde ricche di armonici. L'inviluppo si disegna in grafica specificando punti collegati con interpolazione lineare (i punti si spostano con il mouse; un click in un punto vuoto crea un nuovo punto; shift-click su un punto lo elimina)

Il segnale entra in un filtro del secondo ordine il cui tipo viene scelto da un elenco (è biquad~ in MSP).
Si devono poi specificare i parametri del fltro:
Il filtro è pilotato da un secondo inviluppo che agisce sulla frequenza di taglio, spostandola della quantità specificata in deviazione (in Hz).

Cliccando la tastiera virtuale si generano delle note (in splendida monofonia) di durata specificata sopra la tastiera (in msec). Si può attivare anche un portamento (in msec).
Patch: formanti_2.maxpat

Questa patch mostra come sia facile creare formanti in sottrattiva (e incidentalmente come sia possibile aumentare l'ordine di un filtro mettendone due in serie).
Il modulo fffb~ di MSP crea un banco di filtri passa-banda. Qui ne vengono definiti 5 a cui vengono passate, con appositi messaggi, le frequenze centrali, le larghezze di banda e le ampiezze per creare dei suoni con 5 formanti fissi.
Alcuni preset sono già memorizzati. Facendo varie note e guardando lo spettro si vede (oltre a sentire) come quest'ultimo cambi perché i formanti sono fissi e quindi le parziali che vengono attenuate o amplificate cambino in base alla nota. Ciò nonostante la qualità sonora è sempre la stessa. Per es. il primo preset assomiglia a una A e resta sempre tale anche se lo spettro effettivamente cambia.

esempio look-up

Patch: analog_synth_2.maxpat
Questa patch simula (in parte) un sintetizzatore analogico vecchio stile: 2 oscillatori → filtro → amplificatore + 2 LFO, ADSR, sample & hold (S&H) e tastiera (in questo caso MIDI) collegabili a tutto.
È abbastanza divertente, ma l'utilizzo è più complesso rispetto alle altre, più che altro perché è necessario conoscere l'organizzazione dei vecchi synth analogici per procedere per via intuitiva.
Per iniziare è bene sapere che:
analog synth