Sintesi Wavetable e Wave Sequences con Yamaha Montage e MODX
I synth Yamaha Montage e MODX, come
noto, dispongono dei motori di sintesi FMX e AWM2
basati rispettivamente sulla modulazione di
frequenza e la lettura ed elaborazione di
campionamenti. Grazie alla varietà e alla
complessità dei parametri di sintesi e di
modulazione, è possibile programmare anche sonorità
tipiche di altre tecniche di sintesi.
Tanto per citare due semplici esempi, basta pensare
alla possibilità di utilizzare una performance con
due elementi AWM2 leggermente detunati e con forme
d’onda Ramp e SAW (P5 Saw UP e P5 Saw Down, tra le
waveform presets) riuscendo così a simulare la PWM
di una onda quadra. L’altro esempio “classico” è
quello di una Performance con 4 parts FMX tutte con
algoritmo 1: ottiene una sintesi additiva a 32
parziali, polifonia 32 voci con 32 inviluppi
distinti a 4 stadi ciascuno per ogni parziale.
In questo articolo cercherò di descrivere come avere
con il Montage (e MODX) sonorità analoghe a quelle che si
ottengono con oscillatori che leggono Wavetable o
Wave Sequences, utilizzando una o più parti AWM2.
Descriverò 4 possibili “percorsi” di sintesi che,
naturalmente possono essere utilizzati anche in
layer o split tra di loro e in parallelo con i
classici suoni in sintesi AWM2 e FMX:
- Lettura “One Shot” di waves
“Single Cicle” (da 2 a 16) in successione temporale
definita dal parametro “Elements - Key on Delay”
- Lettura “One Shot” di waves “Single Cicle” (da 2 a
9) in successione temporale definita dal parametro
“Elements - Key on Delay tempo Sync”
- Lettura ciclica di 4 Waves “Single Cicle” mediante
l’utilizzo di una modulazione di ampiezza comandata
da un LFO con forma d’onda “user”
- Lettura ciclica di 8 Wave “Single Cicle” mediante
l’utilizzo di 2 Motion Sequence ciascuna dotata di 4
Lines.
Nei quattro metodi è ovviamente
possibile utilizzare, al posto di onde single-cicle,
campionamenti presets o user: in tal caso ci si
allontana dalla classica sintesi wavetable che al
contrario utilizza successioni tabellate di forme
d’onda singe-cicle.
Nelle prime due tecniche se si utilizzano oltre che
forme d’onda “single cicle” anche campionamenti
percussivi, si riescono a creare i classici suoni
alla “Korg Wavestation” in cui, per ogni nota
vengono innescate sequenze di suoni armonici e
inarmonici (Drums, percussions,..), questi ultimi
con intonazione fissa.
Da non dimenticare poi che è sempre possibile
utilizzare una o più parts che leggono una semplice
onda single-cicle: si ottengono così le classiche
sonorità che hanno distinto sintetizzatori storici
quali l'Ensoniq ESQ-1, SQ-80 o Korg DW-8000. Nella
libreria che potete scaricare al termine
dell’articolo, trovate a titolo di esempio la
performance "Bell Single Cycle" che utilizza delle
semplici onde single-cicle in layer.
Prima di procedere alla descrizione delle 4
tecniche, una doverosa e ovvia premessa: molte delle
funzionalità degli oscillatori Wavetables che sono
fruibili in numerosi virtual (Serum, Tone2 Icarus,
Halion, Rapid, Avenger,..) o Synth Hardware (Peak,
Argon8, Hydrasynth, Quantum,.. ) non sono emulabili
con il Montage. Per farlo occorrerebbe implementare
un motore di sintesi nuovo che, solo Yamaha potrebbe
realizzare, hardware permettendo. Vale ovviamente
anche il contrario in quanto le tecniche descritte,
insieme alle innumerevoli potenzialità di sintesi e
modulazione del Montage, garantiscono sonorità
ibride difficilmente ottenibili altrove.
Insieme alla guida potete scaricare una
libreria con User
Waveforms e Performance, alcune dotate di “user
audition” create ad hoc, che sono un ottimo punto di
partenza per sperimentare nuove sonorità e per
impadronirsi delle tecniche che andrò a descrivere.
Diventerà così relativamente facile realizzare i
classici suoni “alla PPG” in cui spettri armonici
molto diversi tra di loro evolvono nel tempo, creare
delle Wave Sequence oggi ritornate “di moda” grazie
al Korg Wavestate, o con un maggior sforzo,
divertirsi a far “cantare/parlare” il Montage.
Per comodità di esposizione
mi riferirò sempre al Montage: tutto quello che
descrivo vale anche per il MODX che per la parte
AWM2 ha le medesime caratteristiche di sintesi e
stessa polifonia (128 note)
Seque un "video trailer" che
contiene un "the best of " delle audition create: le
30 audition le potete ascoltare nel player.
Update Required
To play the media you will need to either update your browser to a recent version or update your Flash plugin.
Tecnica 1 - Lettura “One Shot” di waves “Single Cicle” (da 2 a 16) in successione temporale definita dal parametro “Elements - Key on Delay”
Questa tecnica cerca di emulare
la classica lettura, da parte di un oscillatore, di
una Wavetable che ricordo essere una successione di
N. forme d’onda “Single Cicle” raggruppate
all’interno di una tabella. Lo standard
“universalmente” utilizzato è quello definito dal
software Xfer Serum dove ciascuna onda Single-Cicle
ha la dimensione di 2048 campioni e la tabella un
numero variabile di onde con un massimo pari a 256.
L’estrazione di una o più onde da una tabella può
essere facilmente effettuata all’interno degli
editor di tali software, quali ad esempio Serum.
Con un sample rate pari a 44100, una onda single
cicle di 2048 campioni ha l’intonazione pari a F0 -
19 cent; ogni trasposizione alla ottava superiore ne
dimezza la dimensione. Per compensare l’intonazione
in fase di lettura da parte del Montage, occorre
settare per ciascuna Wave un Fine Tune pari a +19
Cents, parametro che è disponibile nella sezione "KeyBanks" delle User Waveforms.
Il nucleo di base delle varie
tecniche che mi appresto a descrivere è un element
AWM2 che legge una di queste onde “single cicle”:
purtroppo Montage nella lettura di un campionamento, se
da una parte non ha limiti nel trasporre in basso un
campione, per la trasposizione nelle note superiori
ha al contrario il limite di 24 note (due ottave). Per
poter utilizzare l’onda di 2048 campioni sulla
intera estensione della tastiera, occorre
necessariamente procedere al suo ricampionamento
così da ottenere nuove onde (.Wav) e costruire una Waveform (multisample) composta
da 3 Keybanks (F0-F2-F4) o da 4 Keybanks
(F0-F2-F4-F5) di single-cicle wave. Ciascuna onda
dovrà ovviamente avere un loop di dimensione pari
alla intera lunghezza del campione e
Fine Tune pari a +19 cents.
Nel caso di una Waveform composta da 3 keybanks
(F0-F2-F4) la nota più acuta utilizzabile è E6 (la
F6 è leggermente stonata poiché supera le 2 ottave
di traspose); nel caso con 4 keybanks (F0-F2-F4-F5)
la nota più acuta utilizzabile è E7.
Esistono numerosi modi per
ottenere una Waveform (multisample) utilizzabile dal
Montage, partendo da una Single-Cicle wave di 2048
campioni: a riguardo ho dedicato un capitolo a parte
che descrive come fare mediante l'utilizzo di alcuni software
freeware (Audacity, Endlesswav, Wavosaur e
Samplerobot per Montage), opzionalmente con l’aiuto
di programmi commerciali (Waveform Editor di John
Melas e Awave Studio) che velocizzano le varie
operazioni. Qui trovate la guida. “Yamaha Montage - Creare Waveforms composte da Single-Cicle Waves” (click sulla immagine)
Riguardo la occupazione di spazio della User Flash,
una Waveform a 16 bit con 3 KeyBanks occupa circa
5,1 KBytes (2048+512+128 samples)*2(16 bit).
Parliamo di quantitativi praticamente nulli che
permettono la memorizzazione e l’utilizzo di un gran
numero di Waveforms intaccando solo in minima parte
la capienza massima della Flash che è pari a 1,75
Gbyte. Ricordo che numero massimo di Waveform
(multisample) utilizzabili dal Montage è pari a 2048;
i campioni che li compongono possono essere al
massimo 8192.
Ipotizziamo di avere creato, come descritto nella guida, una nostra libreria di Waveforms ciascuna
composta da una Wave Single-Cicle multicampionata. Vediamo come simulare la lettura di una Wavetable
composta da 8 diverse Single-Cicle Waves, con il passaggio tra una Wave e la successiva tramite un
crossfade.
Nel caso in cui si utilizza il software
Serum, ciò si ottiene creando una Wavetable con 8 Waves, calcolando le 256 forme
d’onda che verranno lette in successione tramite “Morph Crossfade” e modulando l’indice (WaveTable
position) tramite un inviluppo a rampa.
Con il Montage si può emulare la cosa creando una Performance con una
Part composta da 8 Elements AWM2, ciascuno dei quali legge una Waveform
diversa.
Ogni Part deve essere ritardata del tempo necessario per far sì che, due
elementi successivi si mixino in maniera graduale; lo si fa utilizzando per
ogni element un inviluppo di ampiezza caratterizzato da Attack e Decay tra
di loro il più possibile simmetrici.
Il ritardo di ciascun elemento lo si ottiene grazie al parametro: Element
Key On Delay Lenght.
Nello schema che segue (caso semplificato con
solo 2
elements) se ipotizziamo un inviluppo come quello nella immagine, il crossfade
migliore lo si ottiene con Key On Delay Lenght=29.
Se si utilizzano gli 8 Elements di una Part è possibile simulare la
lettura di una tabella di 8 Waves Single-Cicle. Segue uno schema di quanto è
stato fatto in alcune performance, per far “cantare/recitare” al Montage la
parola FMX ( EF_EM_ICS)
Segue uno schema riepilogativo.
Come visto, per ottenere dei buoni risultati, occorre
settare, per ciascun Element, il valore corretto del parametro “Element
Key On Delay Lenght” che determinerà il “timing” con cui si susseguono
le varie single cicle Waves.
E’ inoltre importante sagomare bene gli inviluppi di ogni Element, che
andranno modellati con un profilo di tipo “Attack – Hold – Decay”.
Vediamo in dettaglio.
Per quanto riguarda il parametro Element Key On Delay Lenght, il suo
range è pari a 0-127 a cui corrispondono dei ritardi che, in
corrispondenza di 127, arrivano a circa 8,1 secondi. Segue una tabella
che ho ottenuto testando i vari valori
Ipotizziamo il caso in cui
vogliamo una disposizione e un crossfade tra le
varie Waves costante nel tempo, in analogia alla
modulazione della WaveTable position di Serum
tramite un inviluppo a rampa.
Nell’implementazione all’interno del Montage, la
posizione nel tempo e la durata del suono di ogni
singola wave dipende dal valore dell’Element Key On
Delay Lenght e dall’inviluppo. Vediamo come settare
i valori.
Riguardo il parametro Key On Delay Lenght, a causa della
risoluzione ridotta (0-127), non è semplicissimo trovare una combinazione di
valori tra di loro multipli, che diano una disposizione tra
le varie Waves costante nel tempo. Come vedremo dopo, è possibile compensare
le imprecisioni con
delle leggere modifiche dei parametri di inviluppo.
Segue una tabella in cui ho inserito la combinazione dei valori da settare per i
vari Elements, nel caso di ritardi progressivi di circa 333 ms, 500 ms e 1 sec.
Con l’utilizzo di 8 elementi, la durata complessiva della sequenza è
rispettivamente di circa 2,5 sec, 4 Sec e 8 Sec.
Passiamo adesso al settaggio degli inviluppi che cerchiamo di
sagomare così da creare un crossfade graduale tra le 8 single-cicle Waves.
Le sagomature degli inviluppi per creare dei crossfade corretti, andranno
variate in base ai ritardi scelti e quindi a seconda della durata complessiva
della successione delle waves.
Se si vuole emulare la lettura uniforme (modulazione della WaveTable position di
Serum tramite un inviluppo a rampa), gli inviluppi di ciascun element devono tra
di loro uguali, cosa che tra l’altro semplifica notevolmente il lavoro di
assemblaggio.
In base ad alcuni test effettuati, il modo più semplice è quello di fissare i
livelli come in figura (0-127,115,0) e lavorare su:
Time Attack: tempo di crossfade d’ingresso dell’onda
Time Decay 1: tempo di permeanza dell’onda prima del mix con l’onda successiva
Time Decay 2: tempo di crossfade d’uscita dell’onda
Ho scelto il valore di Level Decay 1 = 115, così da permettere durate anche
notevoli di sustain al variare del Time Decay 1. Se Level Decay 1 ha valori
maggiori (123, 124..,126) diventa infatti impossibile mantenere il suono per
tempi elevati.
La combinazione corretta di ritardi (Key On Delay) e
inviluppi tra di loro uguali e sagomanti come in figura, produce il crossfade
degli elements con il suono che tende a mantiene il volume costante nel tempo:
segue uno schema nel caso di 3 Elements.
Ipotizzando i livelli degli inviluppi con i valori consigliati (0, 127,115 e 0) si ottengono per i tempi di attacco e decay valori
come in tabella.
I range di ciascun paramentro (Time Attack, Decay1 e Decay2) è 0-127
Se si osserva l’inviluppo reale del Montage (vedi figura), è
evidente come Attack e Decay1 hanno un andamento lineare mentre Decay2 ha un
andamento esponenziale (nelle misure in tabella di Decay2 ho ignorato
l’ultimissima parte dell’inviluppo che ha volume prossimo allo zero e quindi
ininfluente nel crossfade).
Pertanto dovendo effettuare un crossfade tra la sagoma di volume del Decay2, e
quella dell’ Attack dell’element successivo, occorre tenerne conto utilizzando
tempi di Decay2 più lunghi rispetto all’Attack.
Segue qualche breve osservazione e spunti per la creazione di nuovi suoni e
performance.
- Se nella catena degli elements (max 8 in una performance) si desidera un suono
con un attacco deciso, lo si fa con valori di Time Attack prossimi a zero
nell’AMP ENV del primo element.
- Se dopo la lettura dei vari elementi in successione, si desidera un livello di
sustain tale da mantenere il suono senza farlo decadere a zero, occorre settare
Level Decay2 dell’ultimo element con un valore diverso da zero (127 per
mantenere il volume al massimo)
- Per compensare la scarsa definizione del paramentro Element Key On Delay
Lenght e quindi la conseguente difficoltà nel settare intervalli precisi, è
possibile intervenire sui valori Attack e Decay1. Se la wave interviene in
leggero anticipo, la compensazione la si fa aumentando il tempo di Attack; al
contrario se la wave interviene in leggero ritardo è possibile compensare
diminuendo il tempo di Attack e/o il tempo del Decay1 così da ridurre la durata
della permanenza della wave.
- Un modo comodo per operare sui tempi degli Attack, Decay1 e Decay2 di tutti
gli elementi della catena è quello di associarli ai Knobs. Trovate un esempio
nelle performance "Wavetable Knob 1 2" , "TempoWave Knob 1 2" e "TempoWave2 Knob 1 2"
dove il Knob1 modifica i tempi di Attack di ogni element, e Knob2 modula il
tempo di Decay2.
- Volendo superare il limite di 8 Waves Single-Cicle è possibile utilizzare,
all’interno di una performance, 2 o più parts, ciascuna composta da una sequenza
di max 8 Waves. Con 2 parts si arriva a disporre 16 Waves complessive.
- La
possibilità di utilizzare due o più parts, ciascuna con una wavetable diversa,
permette di ottenere diverse tipologie di suoni. Un esempio tra tanti lo trovate
nella performance "SynthesizerChoir" in cui viene pronunciata la frase “Synthesizer” che
è composta da 11 waves in successione: le prime 8 con gli elements nella Part1,
e le altre con 3 elements della Part2 che si agganciano al termine della
esecuzione della prima (Key On Delay 41,44 e 47). Per ottenere un effetto
stereofonico, ad ogni vocale e consonante è stata assegnato un valore diverso e
alternato di PAN.
Altro esempio è la performance "1000 & 500 ms" in cui sono
state utilizzate 2 catene di waves che si susseguono nella part 1 con ritardi di
500 ms (0, 20, 32, 42, 50, 59, 66,73) e nella part 2 con ritardi di 1 secondo
(0, 32, 50, 66, 80, 92, 104, 115).
- Avendo a disposizione un certo
numero di Wave Single-Cicle (nel file di esempio ce
ne sono 75), creata la "catena" di delay e
inviluppi, diventa facile costruire nuove
Wavetables, semplicemente andando a scegliere una
combinazione di tali wave e variando ad esempio i
valori di pan, volume e detune di ciascun element.
- E’ sempre possibile avere dei tempi di Attack e Decay diversi per ogni
element: ad esempio nella simulazione del “parlato”, si possono applicare
settaggi di Attack e Decay1, 2 molto piccoli nel modellare le consonanti che
diventano così più impulsive e realistiche. Nella performance
SynthesizerChoir ho ad esempio usato nella consonante “t” dei tempi di
Attack e Decay1 molto brevi.
- Ciascun element ha ovviamente tutta la catena di sintesi
disponibile: Filtro, Pitch Env, Modulazioni,.. etc, etc.
Se da una parte non è possibile applicare un unico filtro all’intera Wavetable
simulata (cosa ovviamente fattibile in tutti i synth con oscillatori
Wavetables), al contrario il disporre di un filtro diverso utilizzabile per ogni
Single-Cicle Wave, garantisce numerosissime altre possibilità.
- Gran parte dei virtual con oscillatori wavetable dispongono del paramentro
“detune” con il quale vengono sommate due o più copie delle Waves con
intonazione leggermente diversa ed eventualmente in stereofonia. Grazie al
detune si ottengono molte delle tipiche sonorità dei virtual con tali oscillatori.
Il modo per simulare la cosa con il Montage, evitando di raddoppiare e
“detunare” inutilmente più parti, è quella di utilizzare l’effetto insert “Pitch
Change” che aggiunge due copie “detunate” del suono alla parte a cui viene
applicato: per ciascuna è possibile indicare la quantità di detune in cents,
eventuale ritardo, il volume e il PAN. Grazie alla presenza di 2 effetti insert
per parte, è possibile duplicare l’effetto, disponendo così di 4 copie detunate
e in sterefonia.
- Anche se la cosa è ovvia, non ci si deve dimenticare del fatto che è
possibile utilizzare all’interno dei vari elements che emulano la wavetable, una
qualunque Waveform del Montage, così da ottenere sonorità ibride.
- Nulla vieta di utilizzare uno o più inviluppi con sustain diverso da zero
(Decay2 level): in tal caso è possibile ad esempio mantenere attive, con volume
diverso da zero e per l’intero suono, una o più Wave. Un esempio lo trovate
nella performance "Synthesizer Detune" dove le ultime vocali, avendo anche un fine
tune diverso da zero, si sommano e tra di loro creano un sustain con dei
battimenti.
- Riguardo la polifonia, ciascun element utilizza una delle 128 note di
polifonia della sintesi AWM2: con una part composta da 8 elements, si ha una
polifonia minima di 16 note. In realtà grazie alla allocazione dinamica delle
voci e al fatto che gli inviluppi, per quanto visto, tendono ad avere un decay2
level pari a zero, la polifonia reale risulta essere maggiore. Naturalmente le
128 voci della FMX non sono intaccate.
- Per velocizzare la programmazione delle voci è molto cmodo l'utilizzo
del software Montage Performance di John Melas
www.jmelas.gr/montage
che tra le varie cose, rende possibile il copia e incolla degli inviluppi,
operazione molto comoda per la programmazione dei vari elements.
Come detto nella introduzione, ci sono dei limiti nell’utilizzo delle tecniche
viste; vediamo quali sono i principali e quali Yamaha potrebbe eventualmente
limitare o eliminare in una prossima una revisione del firmware.
A riguardo voglio ricordare la maniera con cui Yamaha ha affrontato
l’inserimento di nuovi parametri di sintesi nello sviluppo del firmware. Un
esempio lo si ha nel firmware 3.0 in cui è stato inserito il parametro
“extended” LFO: per mantenere la compatibilità con le performance dei firmware
precedenti è stata aggiunta l’opzione “Enable extended LFO On/OFF”: in questa
maniera è possibile utilizzare il “vecchio” range 0-63 per garantire la
retrocompatibilità o il nuovo range che è di 0-415. Ciò dimostra come è sempre
possibile conciliare la possibilità di inserire nuovi parametri di sintesi e
nello stesso tempo di mantenere la compatibilità con i suoni creati prima di
allora.
Con le tecniche viste gli elements vengono mixati con un crossfade sagomato
tramite il Decay2 e l’Attack dell’element successivo: il primo problema, come
visto, nasce dal fatto che la parte Attack dell’inviluppo ha un profilo lineare
nel tempo, mentre il Decay2 esponenziale. Tale differenza rende impossibile
ottenere crossfade precisi. La soluzione in questo caso sarebbe semplice:
l’inserimento da parte di Yamaha dell’opzione “Linear Decay”
La seconda modifica, per rendere più semplice e preciso il settaggio dei ritardi di ogni
Wave, potrebbe essere l’ampliamento del range del paramentro Key On Delay
Lenght: Yamaha potrebbe procedere, come si è fatto con l’Extended LFO,
abilitando opzionalmente un range più esteso, pari ad esempio a 0-511 rispetto
al range attuale (0-127)
C’è invece un problema che non credo possa essere facilmente risolvibile, a meno
di modifiche importanti da parte di Yamaha nella struttura di sintesi del
Montage stesso (opzione che, fino a prova contraria, non possiamo escludere a
priori).
Il problema deriva dal fatto che, quando mixiamo due onde single-cicle in
maniera graduale tramite un crossfade, se non riusciamo a forzare il sincronismo
di fase, otteniamo nel range del mix un inviluppo di volume che ad ogni mix
(quindi per ogni nota suonata) ha un andamento diverso a seconda della
differenza di fase che casualmente si ha in quel momento. Dal punto di vista
sonoro questo comporta la percezione di una transizione poco graduale tra le due
Waves che in certi casi può apparire parecchio evidente.
Segue uno schema che riassume il fenomeno tutt’altro che raro nell’ambito della
sintesi del suono: considero i due casi estremi, ovvero la somma di due onde
uguali, nel caso in cui siano in fase o controfase. Gli inviluppi sono simili a
quelli visti.
Segue il grafico ottenuto in un caso reale prodotto dal Montage (si
riconoscono i profili di attacco e decay rispettivamente lineare ed
esponenziale) da cui è evidente l’effetto della casualità delle fasi.
L’ultimo problema che penso sia irrisolvibile, nasce dal fatto che il Montage
nella generazione dei suoni ha uno jitter interno dovuto alla architettura
hardware che come tutti i synth digitali, nella gestione delle vari parti,
elements, effetti,… ha un sincronismo gestito con l’ausilio di uno o più Buffer
di memoria RAM.
Dando una occhiata all’hardware, il Montage distribuisce la generazione di suoni
AWM2 e FMX ai due chip proprietari SWP70, il primo dei quali viene utilizzato
esclusivamente per la sintesi AWM2 avendo l’accesso alla Flash che contiene i
campioni presets e user: un terzo chip proprietario (il DSP SSP2) gestisce I/O
dell’audio digitale USB. QUI
un interessante approfondimento.
La complessità dell’architettura hardware che comprende varie Flash, RAM, Chip,
e Bus e la modularità della sintesi (un massimo di 16 parti, 8x16 elementi, 34
effetti, 2 tecniche di sintesi,…) ha, come dicevo, una conseguenza sul timing
delle varie operazioni, che si effettuano con delle fluttuazioni casuali. A
prova di ciò, se misuriamo ad esempio la latenza intesa come tempo intercorso
tra l’arrivo del messaggio MIDI NOTE ON e la produzione del suono, in base ad
alcuni miei test, troviamo valori che variano tra 3 e 9,5 ms con una media
attorno ai 6ms e un jitter attorno ai 4 ms.
Nei timing di ogni operazione che abbiamo analizzato (delay, lunghezza dei vari
segmenti degli inviluppi,…) Montage si comporta con delle approssimazioni che
causano in maniera casuale delle fluttuazioni temporali.
Il classico esempio è la durata di un inviluppo che, per i valori che ho
tabellato, ha delle fluttuazioni in certi casi parecchio significative: ad
esempio in presenza di inviluppi con tempi lunghi si arrivano a variazioni
casuali anche nell’ordine di 100-200 ms. Tali fluttuazioni, pur esistenti, non
inficiano nell’uso quotidiano perché sapientemente tarate, ma per suoni in cui
occorre il sincronismo tra le parti, possono diventare fastidiose.
Per quanto di nostro interesse, la fluttuazione più evidente la si ritrova nella
durata del ritardo imposto dal Key On Delay Lenght per il quale si osservano
valori percentualmente non elevati, mediamente attorno ai 20-30 ms. Per
successioni di onde lette con maggiore velocità, sono variazioni di timing in
tutti i casi evidenti, anche se non particolarmente fastidiose: per dei lenti
crossfade tali approssimazioni, al contrario, sono del tutto trascurabili.
Tecnica 2 - Lettura “One Shot” di waves “Single Cicle” (da
2 a 9) in successione temporale definita dal parametro “Elements - Key on Delay
tempo Sync”
La tecnica utilizzata è analoga a
quella vista prima: la differenza deriva dal fatto
che il ritardo con cui ogni element emette la sua
Single-Cicle Wave non è affidato al parametro
Element Key On Delay Lenght ma al parametro
Element Key On Delay Tempo Sync Lenght:
quest’ultimo ha un set di 17 valori che fanno
riferimento al parametro Tempo.
Per il nostro scopo si utilizza una particolare combinazione
di valori che definiscono dei ritardi multipli (1X, 2X, 3X,…8X, fino a 9X)
rispetto ad un valore fisso che è determinato dal parametro Tempo; quest’ultimo
può essere settato e memorizzato in ciascuna performance e ha un range variabile
tra 5 e 300.
Rispetto alla prima tecnica vista si ha il vantaggio di poter cambiare la
velocità di lettura, semplicemente variando la velocità del Tempo.
L' "effetto collaterale" è che
il suono cambia se il sincronismo del Montage non è
più settato su "internal" ma sincronizzato con
l'esterno (Midi o USB)
Il risultato di questa seconda tecnica è analogo alla lettura di una Wavetable di massimo 9 Single-Cicle
Waves, con velocità costante di lettura della tabella.
Ovviamente se si desiderano dei crossfade corretti, occorre adattare i tempi dei
vari inviluppi alla velocità di lettura scelta che, una volta definita, rimane
fissa.
Un grosso vantaggio nasce dal fatto che qui non esiste il limite dell’altra
tecnica in cui diventava complicato definire liberamente le velocità di lettura
della successione di Waves: come visto occorreva cercare i valori tra 1 e 127,
che meglio potessero approssimare ritardi costanti tra waveforms.
Lo svantaggio di questa seconda tecnica deriva dal fatto che non è possibile
variare arbitrariamente i ritardi di ciascun element, ma si è costretti ad
utilizzare uno dei 17 valori preimpostati.
Segue uno schema con i valori da inserire per simulare una velocità di lettura
costante delle waves.
Con questa tecnica, si può arrivare ad utilizzare 9 Waves
distanziate di un tempo costante e quindi lette in successione a velocità
costante: per farlo, occorre affiancare allo schema di sopra, una ulteriore part
(es. part2), con un solo element avente Key On Delay Tempo Sync Lenght = ¼ x
8 che partirà dopo l’element 8 della part1, con lo stesso intervallo di
tempo che intercorre tra i precedenti.
Può anche essere comodo inserire in una part gli 8 elements con ritardo, e
nell’altra quello con ritardo zero.
Ovviamente nulla vieta di mischiare elementi con ritardi definiti dal parametro
Key On Delay Tempo Sync Lenght e altri tramite Key On Delay Lenght:
l’unico limite sta nel fatto che una eventuale modifica del tempo farebbe
perdere il sincronismo tra le Waves.
Tra le performance di esempio voglio segnalare quelle denominate “TempoWave
Knob 1 2” e “TempoWave2 Knob 1 2” in cui sono in sequenza 9 Waves
single cicle ed è possibile variare in tempo reale i tempi di Attacco e Decay2
di tutte le waves tramite Knob1 e Knob2. Il tempo memorizzato è il massimo
possibile (300): diminuendolo si rallenta la scansione di lettura.
Altra performance da analizzare è EFF_EM_ICS_2 Mode in cui la frase FMX è
eseguita contemporaneamente con le due tecniche Key On Delay Tempo Sync Lenght
(Tempo = 219) e Key On Delay Lenght: le due tecniche sono implementate in due
parti ciascuna di 8 elementi con Pan rispettivamente a sinistra e a destra. Le
parti, a meno di piccole differenze di timing, suonano uguali: i leggeri
asincronismi creano un piacevole senso di spazialità
Avendo a disposizione un tempo di clock e delle waves che vengono “innescate” in
sequenza da tale clock, è possibile emulare le classiche WaveSequences del Korg
WaveStation e del recente Korg Wavestate, con il limite dei 9 step.
Rispetto a quanto visto non c’è nulla da aggiungere: occorre semplicemente
pensare che ciascun element, oltre a contenere le waves single-cicle che si
mischiano tramite crossfade simulato con il profilo degli inviluppi, può
contenere un suono percussivo inarmonico (drums, percussions,..) o armonico
(archi pizzicati, marimbe, vibrafoni,..)
L’unica attenzione da fare nel caso di suono percussivo, è settare un inviluppo
senza attacco e con decay lungo tanto da eseguire per intero il suono; in caso
di percussione inarmonica, se si desidera una intonazione costante su tutta la
tastiera, occorrerà settare per il pitch il parametro Pitch Key Follow
Sensitivity=0.
Le possibilità offerte da tale tecnica sono multiple ed è possibile disporre
fino a massimo 8 “simil” WaveSequences di 8 step, ciascuna su di una parte:
tramite le scene è possibile attivare in parallelo una o più sequenze.
Ovviamente nulla vieta di inserire anche più note nello stesso slot temporale,
utilizzando 2 o più element con lo stesso valore di Key On Delay Tempo Sync
Lenght.
L’evidente limite di tale tecnica è l’impossibilità di mettere in loop la
sequenza che dovrà essere reinnescata all’occorrenza.
A riguardo è possibile ovviare al limite creando delle sequenze ad 8 step e
attivando un arpeggio composto da una sola nota con durata pari a 2 battute: la
sequenza viene innescata ogni volta che termina, creando un loop che può durare
fino a quanto si desidera.
Lo svantaggio dell’utilizzo dell’arpeggio per mantenere la sequenza in loop, sta
nel fatto che quando e se si articola la nota, spesso non si riesce ad innescare
correttamente la sequenza che ricorda per un ulteriore ciclo la vecchia nota
suonata. Per questo motivo a meno di note fisse e quindi loop statici, non
conviene utilizzare l’arpeggio, ma ricorrere al reinnesto della sequenza
semplicemente risuonando la nota.
Trovate a titolo di esempio le performance "Wavestation PizzChoir","WavestE
Trumpet" e "WavestatE Horr" che utilizzano più
wavesequence in parallelo attivabili tramite le scene 1,2 e 3: volendo è
possibile anche attivare l’arpeggio per il loop….con il limite visto.
Riguardo i possibili sviluppi del firmware da parte di Yamaha, sarebbe
auspicabile la possibilità di poter attivare il loop nell’inviluppo quando è
attivo il parametro Key On Delay Tempo Sync: in questa maniera diventa possibile
avere delle WaveSequences che ciclano in loop. Ovviamente sarebbe utile poter
settare anche ulteriori ritardi (¼ x 9, ¼ x 10, …, ¼ x 15) così da poter creare
sequenze fino a 16 step.
Ultima osservazione: per quanto visto poiché la velocità di lettura è strettamente legata al
tempo, è importante far sì che il Montage utilizzi il valore di tempo
memorizzato nella performance e non si sincronizzi al clock esterno. Per farlo
occorre verificare il settaggio: Utility - MIDI I/O – MIDI Sync=Internal
Tecnica 3 - Lettura ciclica di 4 Waves “Single Cicle”
mediante l’utilizzo di una modulazione di ampiezza comandata da un LFO con forma
d’onda “user”
Diversamente dalle prime due tecniche, l’idea è di
simulare quello che con gli oscillatori wavetables si ottiene modulando la
“wavetable position” con un LFO.
In questo caso si utilizza l’LFO presente in una part per modulare l’ampiezza
di 4 elements mediante una “user LFO wave” modellata in maniera tale da ottenere
un crossfade il più possibile “morbido”.
Per far sì che le 4 forme d’onda siano mixate tramite crossfade e siano in loop
con la successione del tipo Wave1->Wave2->Wave3->Wave4->Wave1->…etc, etc si
utilizza il parametro “Element Phase Offset” settato a 0-270-180 e 90 gradi.
Segue uno schema
Riguardo la “User LFO wave” da utilizzare per la modulazione
di ampiezza, occorre sagomare una forma d’onda divisa in 16 parti (Cycle=16
Steps) e Slope=Up&Down con i valori indicati nelle 2 figure che seguono.
Scegliendo la prima, si ottiene un profilo di transizione tra le onde più
deciso: con la seconda un mix più morbido.
Segue uno schema da cui si visualizza come la combinazione
“User LFO wave” e “Element Phase Offset” riesce a creare il crossfade
progressivo delle Single-Cicle Waves dei 4 elements.
Per il controllo in tempo reale dei parametri di modulazione,
è possibile modificare la velocità dell’LFO (LFO speed) e l’ampiezza complessiva
della modulazione di ampiezza. Con ampiezza a zero i suoni dei 4 elements
suoneranno tutti e 4 contemporaneamente, sovrapposti.
Se si vuole simulare la classica catena di sintesi OSC_Wavetable (con index
modulato da LFO)->filtro->Amplificatore
per come è strutturata la parte (4 elements mixati tramite LFO), occorre far sì
che i parametri relativi al filtro (tipologia, Cutoff, Resonance, Env.) e gli
inviluppi dell’amplificatore, siano identici per ogni element.
Una performance che utilizza la tecnica vista è "WaveTable
LFO LP". Essa è composta da 3 parti di 4 elements mixati dall’LFO; a
ciascuno dei 12 elements è applicato un filtro risonante ad attacco crescente.
Il SuperKnob comanda la velocità dell’LFO, mentre il Knob8 la ampiezza della
modulazione e quindi del mix degli elements: con Knob8=0 si ha un semplice layer
a 4 voci, mentre con Knob8=max si ottiene il crossfade che emula la lettura
della wavetable.
Nella Performance esiste un quarto layer che è un pad il cui volume è comandato
dal Knob7.
Tecnica 4 - Lettura ciclica di 8 Wave “Single Cicle”
mediante l’utilizzo di 2 Motion Sequence ciascuna dotata di 4 Lines.
La tecnica è analoga a quella appena vista, ovvero quella di
simulare ciò che con un vero oscillatore wavetables si ottiene modulando la
“wavetable position” con un LFO: con questa nuova tecnica si supera il
precedente limite delle 4 Wave “Single Cicle”, arrivando a mixarne 8 in
successione temporale.
Per far ciò il mix delle Waves non è più affidato all'LFO, come nella tecnica
precedente, ma ad un motion sequence che modula in ampiezza delle
parts.
In dettaglio si utilizzano 2 parts: la part1 è composta dalle prime 4 Waves da
mixare (1,2,3 e 4); la part2 dalle successive Waves (5,6,7,8). Il mix in
successione temporale viene fatto da 2 motion sequences (una per parte),
ciascuna composta da 4 lines che modulano l’ampiezza degli elements.
Tutte le lines delle motion sequences sono composte da 8 steps, con un profilo
costruito ad hoc (vedi schema) e sono in loop.
Nella part 1 si ha una motion sequence composta da:
- Line 1 che modula il Level (volume) dell’element 1 che suona la Waveform Wave1
- Line 2 che modula il Level (volume) dell’element 2 che suona la Waveform Wave2
- Line 3 che modula il Level (volume) dell’element 3 che suona la Waveform Wave3
- Line 4 che modula il Level (volume) dell’element 4 che suona la Waveform Wave4
Nella part 2 si ha una motion sequence composta da:
- Line 1 che modula il Level (volume) dell’element 1 che suona la Waveform Wave5
- Line 2 che modula il Level (volume) dell’element 2 che suona la Waveform Wave6
- Line 3 che modula il Level (volume) dell’element 3 che suona la Waveform Wave7
- Line 4 che modula il Level (volume) dell’element 4 che suona la Waveform Wave8
Riguardo il profilo nelle 8 lines che modulano l’ampiezza, è stata utilizzata la
curva “Threshold” in versione Forward/Reverse così da simulare il crossfade tra
waves in successione.
Il crossfade che si ottiene è, con tutte le differenze già
descritte, l’analogo di quanto Korg realizza con le WaveSequences quando c’è un
loop nella lettura della sequenza e si utilizzano forme d’onda dotate di
sustain. Con la tecnica utilizzata dal Montage rimane il limite massimo delle 8
waves.
Riguardo il sincronismo (parametro Sync del Motion Seq) è
possibile scegliere se agganciare la velocità al tempo o se procedere con una
velocità fissa. La sequenza, e quindi il mix tra le waves, può essere innescato
ad ogni nota eseguita (Key On Reset= Each-On) o solo per la prima volta (Key On
Reset= 1st-On).
Tra le performance di esempio il suono MotionSeq 8 Waves utilizza 8 waves in
sequenza con in layer un pad il cui volume è comandato dal Super Knob. La
performance MotionSeq
4 Waves è composta invece da 2 sequenze di lunghezza pari a 4 Waves ma con onde
diverse: si ottiene un effetto stereofonico grazie al Pan delle due Parts (L63-
R63) e ad un leggero detune di +- 2 Hz
L’analogia con l’implementazione Korg, vale anche nella tecnica 3 dove il
“mix” ciclico viene effettuato dall’LFO.
Seguono due gli schemi che descrivono la tecnica utilizzata.
Per concludere, è bene ricordare che le quattro tecniche
viste si adattano senza problemi all’utilizzo di waveforms che non siano
semplici forme d’onda a ciclo singolo: usando multicampioni più complessi, ci si
può allontanare dalle sonorità tipiche delle wavetables e spingersi su mix
sonori ancora più ricchi e originali, tutti da esplorare.
Ci sarebbe da scrivere un capitolo a parte su analoghi utilizzi che sfruttano la
FMX al posto della sintesi AWM2. A riguardo voglio solo ricordare come nella FMX
non è possibile ritardare l’emissione dei suoni con i paramentri “Key on Delay”
o “Key on Delay tempo Sync”; è invece possibile farlo sfruttando il primo dei
quattro segmenti dell’inviluppo associato a ciascun operatore.
Nel caso in cui Hold_Level=Release_Level= 0, il parametro Hold Time (range 0-99)
diventa a tutti gli effetti il tempo di ritardo con cui viene emesso il suono
dell’operatore.
Trovate un esempio nella performance"Wavetable&Additive" che è un suono
PAD strutturato in 6 parts: nelle prime 3, in AWM2, sono utilizzate delle
“wavetables” a 8 waves con delle lente evoluzioni timbriche; nelle altre 3,
tutte in FMX e con algoritmo= 0 (sintesi additiva), il suono si evolve nel tempo
e nello spazio stereo grazie ai 28 operatori che suonano con delay progressivo
(parametro Hold Time degli inviluppi).
Prima di concludere una breve analisi delle tecniche utilizzate per ottenere le
Waveforms che compongono le due parole “FMX e Synthesizer”. Nella libreria di
esempio ci sono numerose performance che le utilizzano: FMX
Synthetiser (entrambe in split), SynthetiserChoir (in layer con un coro),
EFF_EM_ICS e Synthetiser Detune in cui i vari fonemi sono
leggermente scordati per creare dei battimenti.
Per la parola FMX ho campionato la mia voce che recitava la parola “EFF EM ICS”
e utilizzato il software Tone2 Icarus per creare la Wavetable da cui estrapolare 8 Single-Cicle Waves.
Riguardo la parola "Synthesizer" sono partito dalla Wavetable presente nel
software freeware Audioterm e ho estrapolato 11 Single-Cicle Waves tramite Xfer
Serum; nel Montage ho suddiviso le prime 8 Waveforms in una parte e le
successive 3 in una altra.
Synthesizer e Xfer Serum.
Il file SYNTHESI.WAV è uno dei file di esempio che viene
distribuito insieme ad AudioTerm: la wavetable è compatibile con Serum ed è
composta da 20 onde Single-Cicle.
Dopo averla caricata all’interno di Serum, ho eliminato le tabelle di Morph così
da avere accesso alle 20 onde Single Cicle.
Per la selezione delle 11 onde più significative è bastato eliminare quelle
tra di loro più simili cercando di isolare le vocali e le consonanti della
parola. Tramite normalizzazione ho amplificato le onde al massimo livello così
da potere gestire i relativi volumi nel Montage.
Per l’utilizzo all’interno del Montage conviene utilizzare il metodo N.1, quello
in cui la successione temporale è definita dal parametro “Elements - Key on
Delay”. In questa maniera partendo da una successione dei fonemi equidistante
nel tempo, è possibile effettuare dei piccoli ritocchi per anticipare o
posticipare l’inserimento di ciascun suono. Per le consonanti in certi casi sono
stati utilizzati tempi di attacco e decay più brevi per dare maggiore
incisività.
Le 11 Waveforms ottenute sono poi state distribuite in una parte composta da 8
elements (S-I-N-T-TE-S-A-I) e una ulteriore parte da 3 (S-E-R).
FMX e Tone2 Icarus
In questo caso la procedura è stata diversa in quanto per “omaggiare” il Montage
ho voluto sintetizzare la parola FMX: per farlo ho campionato la mia voce
recitando la parola “EFF EM ICS” (durata di 1.4 secondi circa).
Per la conversione in una wavetables ho utilizzato l’ottimo virtual
Tone2 Icarus
che ha numerose tecniche di analisi e creazione di Wavetables, ciascuna
ottimizzata per tipologie di input diversi. Tra queste ho scelto quella più
adatta alla conversione parola -> wavetable che si è mostrata essere
“Resynthesis additive with static pitch”. Il software nella conversione ha
creato una Wavetable di 129 onde Single-Cycle
Anche in questo caso, dalla wavetable ottenuta, ho
estrapolato e normalizzato le onde più significative, in tutto 8.
Per l’import all’interno del Montage ho sempre utilizzato il
metodo N.1 (parametro “Elements - Key on Delay”): riguardo la successione
temporale gli ultimi tre fonemi sono letti più velocemente rispetto ai primi
cercando una “pronuncia” più simile alla parola. Le Wave 6 e 7 sono tra di loro
quasi sovrapposte.
Potete scaricare il file libreria per Montage che
comprende alcune Waveforms (73 in totale) e più di 30
Performance con "audition" di esempio cliccando
qui.
Se vuoi supportare il mio sito puoi effettuare una donazione Paypal al link