(1) T = A1 * sin(f) + A2
* sin(2f) + A3 * sin(3f) + A4 * sin(4f) +
... + An * sin(nf)
S = T * G(k)
Facilità di comprensione e
implementazione |
Il che si traduce in
semplicità di controllo e facilità d'uso. |
Segnale complesso |
Con un singolo oscillatore è possibile
generare un segnale composto da un numero elevato di
armoniche |
Velocità di calcolo | Un singolo look-up oscillator
con inviluppo utilizza pochissime risorse dal punto di vista
del calcolo. Per leggere la tabella sono sufficienti una somma e un and logico (per questo la lunghezza della tabella, di solito, è una potenza di 2) a cui si aggiunge una moltiplicazione per l'inviluppo di ampiezza. Quest'ultimo può essere di vari tipi, ma, in linea di massima, ogni campione richiede solo una somma o moltiplicazione e un test. Inoltre, in alcuni sistemi (e.g. Csound), l'inviluppo viaggia a frequenza più lenta. |
Spettro fisso |
Il limite principale di questo tipo di
sintesi è che lo spettro è fisso: non può variare nel corso
della nota, mentre nei suoni reali questo avviene quasi
sempre ed è sensibile soprattutto in quelli a evoluzione
libera. Non può nemmeno cambiare fra un nota e la successiva, a meno che non si predispongano più tabelle con forme d'onda diverse. |
Massima correlazione fra le
componenti |
La correlazione fra le
componenti è massima, ovvero, ogni variazione di ampiezza o
frequenza (e.g. il vibrato) si ripercuote in egual
percentuale e in modo sincrono su tutte le componenti.
Se diminuisco l'ampiezza di 6 dB, tutte le componenti e
tutte insieme caleranno di 6 dB. Se applico un
vibrato, tutte vibreranno insieme e il vibrato avrà
esattamente la stessa escursione in termini di intervallo. Una correlazione del genere in natura non si dà. Ci sono sempre piccole deviazioni che, per quanto lievi, vengono registrate dal nostro sistema percettivo e concorrono a creare una sensazione di realtà. Al contrario, un suono in cui la correlazione fra le componenti è massima, viene percepito come meccanico e artificiale. |
Impossibilità di variare lo
spettro in funzione dell'ampiezza |
Nei suoni reali, il contenuto
spettrale varia in base all'ampiezza, cioè alla dinamica. In
uno strumento, una nota eseguita fff avrà più
armonici della stessa nota eseguita ppp. Inoltre, nell'attacco dei suoni reali, le componenti non arrivano tutte insieme, così come, nel rilascio, non se vanno insieme. |
Impossibilità di variare lo spettro in
funzione della frequenza |
Nei suoni reali, il contenuto spettrale varia
in base alla frequenza fondamentale. Con un qualsiasi
strumento acustico, è facile accorgersi che una nota alta
contiene meno armonici rispetto a una nota bassa (se
eseguite a dinamiche simili). Ovviamente, si possono definire varie forme d'onda con diverso contenuto spettrale e programmare un meccanismo che seleziona la più adatta in base alla fondamentale, ma in questo caso il cambiamento avviene a gradini e può risultare sensibile (a meno di non interpolare fra forme d'onda diverse). |
Limitazioni causate dal foldover |
Diretta conseguenza di quanto visto visto
sopra è il fatto che, a partire da una certa frequenza
fondamentale, le componenti più alte generano
inevitabilmente foldover. Per esempio, con SR = 44100, la 10ma armonica eguaglia la frequenza di Nyquist a 2205 Hz, che corrisponde, all'incirca, al penultimo Do del pianoforte. La 20ma armonica lo eguaglia a 1102.5. Quindi, volendo evitare il foldover, ogni funzione audio ha una sua frequenza massima di utilizzo pari a N/k, con N = SR/2 (frequenza di Nyquist) e k = numero d'ordine della componente più alta presente in tabella. Ne consegue che, volendo utilizzare una fondamentale maggiore di questo valore, si è costretti a cambiare funzione audio. |
Impossibilità di creare componenti
inarmoniche o "quasi armoniche" |
Visto che l'onda audio viene generata
mediante la scansione ciclica di una tabella memorizzata,
senza altri interventi, è chiaro che la suddetta onda è forzatamente
periodica. Di conseguenza è impossibile generare componenti inarmoniche. Anche se la tabella venisse riempita di numeri casuali, la ciclicità del meccanismo di lettura genererebbe inevitabilmente una forma d'onda periodica. Esistono, tuttavia, alcuni "trucchi" per creare suoni che, pur essendo composti da armonici, sembrano inarmonici (vedi oltre), ma c'è un altro problema. Anche nei suoni con componenti armoniche, spesso la frequenza delle armoniche non è esattamente un multiplo della fondamentale, come la teoria vorrebbe. Ci sono piccolissime deviazioni, inferiori alla JND (just noticeable difference), che non vengono percepite come tali, ma creano un sottile gioco di battimenti che rendono il suono non meccanico, come invece viene spesso percepito un suono fisso come quello creato dalla look-up table. Chiaramente, un po' di riverberazione a valle aiuta. |
table Amp1 Amp2 Amp3 Amp ... Ampncalcola una tabella come somma di componenti sinusoidali armoniche, ovvero aventi una comune fondamentale nella prima componente.
2000 1000 500 250 125genera una funzione composta da 5 componenti armoniche, con la prima, di frequenza f, ad ampiezza massima; la seconda, di frequenza 2f, con ampiezza pari a 1/2 della prima; la terza, di frequenza 3f, con ampiezza pari a metà della seconda, cioè 1/4 della prima; la quarta, di frequenza 4f, con ampiezza pari a metà della terza, cioè 1/8 della prima; la quinta, di frequenza 5f, con ampiezza pari a metà della quarta, cioè 1/16 della prima.
2000 1000 500 250 125sono perfettamente equivalenti. I numeri, infatti, esprimono il rapporto di ampiezza fra le componenti.
1000 500 250 125 62.5
1 0.5 0.25 0.125 0.0625