Avventure nel Primary Level – Quinta puntata

Written by Enrico Cosimi on . Posted in Software, Tutorial

L’oscillatore Voyager

Dopo aver apprezzato il comportamento Sequential, che con soli due controlli permette di gestire la transizione fluida triangle-saw-pulse e la simmetria dell’impulso, perché non recuperare il circuito ormai ventennale messo a punto da Bob Moog per il Minimoog Voyager…

Di Enrico Cosimi

voyager apertura

L’oscillatore Voyager fornisce un unico controllo denominato Wave che può coprire in fluida transizione il passaggio triangle – saw – square – pulse fino alle estreme asimmetrie di impulso. Il comportamento è eletto a destinazione di modulazione e, giocando pazientemente con la posizione di partenza e l’escursione del controllo applicato, si riescono ad ottenere transizioni limitate e/o semplici variazioni nella simmetria d’impulso.  Ovviamente, è un circuito un pochino più impegnativo da affrontare.

La struttura che realizzeremo permette la transizione fluida, lungo l’escursione min-max del controllo Position, della forma d’onda triangle – saw – square – pulse, con capacità di intervento manuale, automatico attraverso modulazione LFO a bassa frequenza e manuale più LFO per concentrare la transizione in determinate sezioni dell’escursione complessiva.

Come al solito, un’implementazione minima di amplificazione e articolazione ADSR viene messa in piedi per garantire il funzionamento sindacale della macro di oscillatore.

01 voy

Oltre all’ADSR con amplificatore Math/Mult, è presente il solito EasyScope che permette di verificare il comportamento timbrico ottenuto.

La macro Voyager Osc

Il cuore timbrico del sistema è composto – come facilmente intuibile – dai tre oscillatori Triangle, Sawtooth e Pulse; anche questa volta i tre segnali raggiungono un Signal Path/Selector posto sotto controllo di un comando Pos(ition) che però svolge il duplice compito di transizione audio nell’apertura delle tre porte 0, 1, 2 di selezione e anche di impostazione del valore di Pulse Width per la sola onda impulsiva.

Come è facile immaginare, tutta la complessità giace nella conversione selettiva del valore Position con escursione da 0 a 2 sufficiente alla transizione delle tre forme d’onda principali in un’escursione secondaria e dedicata alla sola variazione di simmetria applicata alla porta W del solo oscillatore Pulse.

02 voy

Il risultato è ottenibile prolungando l’escursioine del controllo Pos(ition) oltre le normali esigenze del modulo Signal Path/Selector in modo da riservare una porzione di valori alla sola gestione della simmetria espressa alla porta W dell’oscillatore Pulse.

In questo modo, il funzionamento di Pos(ition) viene impostato su:

  • Max = 3.8 (si evita 3.9 o 4.0 per non chiudere eccessivamente l’onda impulsiva).
  • Min = 0
  • Default = 0
  • StepSize = 0.01

Come smistare i valori necessari (0-2 per Selector e 2.1-3.8 per W)? E, ancora, come fare in modo che l’onda impulsiva non passi in rassegna le asimmetrie 10 – 49%, ma si limiti alla variazione 50-99%?

Smistare i dati di controllo
Il valore Pos(ition) compreso tra 0 e 3.8 è collegato all’ingresso In di un modulo Event Processing/Separator che smista il risultato sulle porte di uscita Hi o Lo in base alla comparazione per il valore di soglia ricevuto all’ingresso Threshold.
Nel nostro caso, il valore Pos(ition) compreso tra 0 e 3.8 viene paragonato alla costante di separazione 2 e, in base a quanto rilevato, viene inviato come valore Lo (contenuto tra 0 e 2.0) alla porta Pos del Selector (in questo modo, si garantisce la fluida escursione Triangle – Saw – Square); il valore Pos(ition) compreso tra 2.1 e 3.8 isolato post comparazione con la costante di separazione 2 viene smistato sull’uscita Hi e, da questo, dovrebbe essere poi collegato all’ingresso W del solo oscillatore Pulse.

Ricordiamo che alla porta W dell’oscillatore Pulse il valore ricevuto viene interpretato bipolarmente con escursione compresa tra -1 e +1 applicata alla transizione 1-99%.

In questo modo, purtroppo, la transizione da quadra a impulsiva procederebbe coprendo tutte le variazioni comprese tra 10 e 90% di simmetria, realizzando una “strozzatura” nel flusso audio corrispondente al passaggio tra rampa (a pieno livello) e impulsiva stretta (ben più debole timbricamente).

Per evitare questo problema, è necessario comprimere/convertire l’escursione di controllo ricavata dalla porta Hi al solo valore utile compreso in ricezione tra 0 e +1, cioè tra 50 e 99% di variazione nella simmetria.

Compressione e scalatura del valore di controllo

L’uscita Hi del primo Separator riprodotto nell’illustrazione isola i valori Pos(ition) compresi tra 2 e 3.8 indirizzandoli verso il modulo Math/A*B+C.

03 voy

In questo modo, il valore ricevuto al primo ingresso “A” viene moltiplicato per la costante 0.5 collegata all’ingresso “B” (ovvero, viene dimezzato in escursione) e, successivamente, viene addizionato con la costante -1 (ingresso “C).

In questo modo, quando il valore Pos(ition) supera 2.x, all’uscita del modulo viene prodotto 0.x, fino ad un massimo di 0.9 ottenuto quando Pos(ition) è pari a 3.8.

Scegliere la sorgente di modulazione

Per scopi puramente dimostrativi, basterebbe permettere al musicista il controllo manuale sulla posizione timbrica desiderata; in un impeto di iperattività, proponiamo un comportamento selezionabile tra controllo manuale, controllo automatizzato attraverso oscillatore a bassa frequenza LFO e somma delle due possibili sorgenti per definire da dove partirà l’eventuale modulazione automatizzata.

04 voy

La scelta delle tre possibili sorgenti avviene, ovviamente, attraverso Panel/Switch a tre porte denominate Manual, LFO e Man & LFO.

  • Ingresso Manual = riceve l’uscita diretta del controllo di pannello Pos(ition).
  • Ingresso LFO = riceve il segnale prodotto dalla macro LFO (ulteriori particolari in seguito) collegata al terminale di ingresso lfo.
  • Ingresso Man & LFO = riceve la somma (modulo Math/Add) delle due precedenti sorgenti scalata attraverso costante -1.5 con cui si evita l’immediato raggiungimento del fondo scala.

La macro LFO

Contiene un modulo LFO utilizzato con la sola onda sinusoide. I comandi implementati comprendono Freq (con escursione Min/Max pari a 0.01/1 Hz) e Pos Amt (cioè, Amplitude con escursione Min/Max pari a 0/1).

05 voy

Il segnale bipolare (di ampiezza compresa tra +/-1) deve essere reso compatibile con le escursioni richieste nella macro Oscillator vera e propria. Per questo motivo, si implementano i seguenti trattamenti:

  • Offset nella sola escursione positiva: si somma una costante 1 all’escursione originale; ora, la sinusoide si muove tra 0 e +2.
  • Scalatura del valore e sua riduzione: si divide il valore raggiunto per 0.5 riportandolo alla corsa 0/1 necessaria per i successivi trattamenti.
  • Espansione e adeguamento al valore del controllo lineare Pos(ition): si moltiplica l’escursione 0/1 per 3.8 raggiungendo la stessa escursione di Pos(ition).

Un lettore Panel/Numeric Readout velocemente denominato lfo value viene attivato per verificare la consistenza dei valori numerici richiesti.

Tags: , ,

Leave a comment

Inserisci il numero mancante: *

ga('send', 'pageview');