Avventure nel Primary Level – Prima puntata

Written by Enrico Cosimi on . Posted in Software, Tutorial

Da oggi, con intervalli speriamo regolari, iniziamo la serie delle Avventure nel Primary Level di N.I. Reaktor. Per chi si fosse perso i trenta anni precedenti, riassumiamo velocemente ricordando che il Primary Level è quella forma di programmazione a oggetti che permette, all’interno di Reaktor, la costruzione di strutture anche complesse utilizzando una libreria di moduli e macro già pronte per il collegamento – con un minimo sforzo, è possibile raggiungere risultati interessanti che, successivamente, sono esportabili facilmente da una ensemble all’altra.

Di Enrico Cosimi

multiwave apertura

Animati, come di consueto, da maligna cattiveria nei confronti del lettore, non seguiremo un percorso lineare che collega le sorgenti ai trattamenti fino all’uscita, ma salteremo di palo in frasca accumulando soluzioni e suggerimenti che – speriamo – torneranno utili al lettore.
Come è facile immaginare, diamo per scontata la conoscenza dei meccanismi di base della programmazione in Reaktor: quanto offerto in questi appuntamenti è applicabile tanto nella versione 6.x attualmente in carico quanto nelle precedenti versione 5.x ormai storicizzate.

Partiremo dal Multiwave Oscillator

MultiWave Oscillator

Nel regime analogico, un oscillatore è sempre in grado di produrre simultaneamente le forme d’onda desiderate (sinusoide, triangolare, rampa/dente di sega, impulsiva a simmetria variabile) e solo decisioni di carattere pratico o economico ne limitano l’accesso simultaneo e/o la selezione attraverso soluzioni hardware di pannello.
In queste righe, illustreremo le procedure per generare le diverse forme d’onda estraendole da un nucleo di partenza a rilassamento analogicamente simile al comportamento ottenibile attraverso i cicli di carico e scarico del condensatore.

Impostazioni preliminari

Inizieremo costruendo una macro vuota, che chiameremo MultiWave Osc, all’interno della quale procederemo installando tutti i moduli necessari. Per poter ascoltare il suono dell’oscillatore solo quando desiderato, realizzeremo un rozzo sistema di amplificazione moltiplicando l’uscita del MultiWave Osc per il segnale MIDI Gate; la moltiplicazione/amplificazione avviene, ovviamente, nel modulo matematico Mult.

01 multiwave

Nella macro, predisporremo gli ingressi P (per la ricezione dell’intonazione MIDI NotePitch), g (per il segnale di KeySync MIDI Gate), pwm (per la modulazione di simmetria dell’impulso), sync (per la ricezione di un segnale master esterno), fm (ancora, per la ricezione di un segnale modulante esterno).

Allo stesso modo, predisporremo un terminale di uscita out per emettere il segnale generato.

Rampa – Dente di sega

É la forma d’onda di partenza ottenuta – appunto – attraverso semplice ripetizione del ciclo di carico e scarico attivato nel condensatore; se si accumula tensione progressiva e la si scarica in modo pressoché immediato, si ottiene una rampa ascendente; se il percorso è inverso, si ottiene una dente di sega – armonicamente, la differenza è rappresentata dall’andamento alternativamente in fase e in contro fase o dall’assoluta coerenza di fase tra tutte le armoniche; timbricamente, salvo rari casi dei quali si interessa la stampa internazionale, il musicista non è in grado di riconoscere differenze percepibili all’ascolto in normali condizioni di utilizzo.

02 multiwave

Realizziamo la rampa di partenza caricando il modulo Saw Sync (la versione più completa tra quelle disponibili nel Primary Level) e mettendolo sotto controllo del NotePitch ricevuto alla porta p; l’ampiezza – ovvero, il volume di uscita, viene regolarizzata attraverso costante 1. L’oscillatore risponde alle intonazioni ricevute via MIDI.

03 multiwave

Per controllare la correttezza di quanto realizzato, inseriamo un Instrument Micro Scope con cui visualizzare la forma d’onda rampa generata; si consiglia di regolare i valori X e Y in modo adeguato per poi non toccarli durante le fasi di realizzazione delle altre forme d’onda.

04 multiwave

L’immagine riproduce l’uscita dell’oscillatore e la semplice forma d’onda rampa generata.

Da onda rampa a onda impulsiva

Il procedimento prevede la comparazione dell’onda rampa precedentemente generata con un valore di soglia arbitrariamente impostato dal musicista; le variazioni nel valore di soglia (statiche o dinamiche in modo ciclico e/o transiente) determinano il rapporto di simmetria nell’onda impulsiva così generata.

05 multiwave

Dopo aver installato il modulo matematico Compare ed aver collegato all’ingresso A l’uscita rampa dev’oscillatore, è necessario predisporre uno Switch di pannello per alternare sulla porta di uscita l’ascolto dei due segnali Ramp e Pulse.

Il modulo Compare produce la semplice operazione A≥B=1 o A<B=0; l’alternanza in banda audio dei due valori 0 e 1 produce un’onda impulsiva la cui simmetria è regolabile variando – appunto – il valore del segnale di comparazione collegato all’ingresso B del modulo.
Per produrre questo segnale, prevediamo la possibilità di un controllo statico locale (il comando PW di pannello), affrancabile ad una tensione di controllo magari ciclica ricevuta dall’esterno (regolabile in intensità attraverso il comando di pannello PWM); per ottenere i due comportamenti, è necessario prevedere un modulo matematico Add collegato all’ingresso B del comparatore; il sommatore riceverà il valore di soglia prodotto con il comando PW (si sceglie un valore min/max pari a -0.9/0.9 per garantire sufficiente nasalità alle onde impulsive senza arrivare mai alla corrente continua) più il valore esterno di controllo ricevuto al terminale pwm e moltiplicato per l’intensità del comando PWM (con escursione min/max pari a 0/1).

All’analisi con l’oscilloscopio, previa selezione del segnale Pulse nel modulo switch Waveform, il segnale ottenuto per comparazione risulta di ampiezza dimezzata, composto unipolarmente dei soli valori compresi tra 0 e 1, mentre l’onda rampa originale è bipolare e compresa tra -1 e +1. Per risolvere il problema, basta collegare all’uscita del comparatore il modulo matematico A*B+C specificando la costante 2 all’ingresso B e la costante -1 all’ingresso C del modulo stesso; in questo modo, l’uscita del comparatore è raddoppiata di ampiezza (costante *2 collegata all’ingresso B) e successivamente ricollocata a cavallo dell’escursione -1/1 (grazie alla costante -1 collegata all’ingresso C).

Da onda rampa a onda triangolare

L’onda triangolare è ottenibile sia attraverso blando filtraggio dell’onda quadra precedentemente realizzata (ma occorre sviluppare un percorso parallelo di comparazione contro la rampa che garantisca costantemente il rapporto di simmetria al 50% non modificabile), sia attraverso rettifica dell’onda rampa e successivo blando filtraggio correttivo.

Ci occuperemo prima della tecnica di rettifica.

06 multiwave

Il segnale originale rampa prodotto dall’oscillatore viene sottoposto a rettifica attraverso modulo matematico Rectify. Per correggere le imperfezioni armoniche corrispondenti al punto di sutura tra porzione positiva e porzione originalmente negativa del segnale rettificato, si usa un blando filtraggio Low Pass a 1 polo (-6 dB) la cui frequenza di taglio viene posta sotto controllo del Keyboard Tracking (ricevuto come segnale MIDI NotePitch al terminale d’ingresso p), se ne aumenta il valore sommando al KeyTrack originale una costante +6.
Come visto in precedenza per l’onda impulsiva ricavata, si corregge il risultato unipolare procedendo al trattamento A*B+C moltiplicando *2 e sommando -1 fino a raggiungere un segnale bipolare di escursione pari a -1/1.

Il trattamento di filtraggio influisce, inevitabilmente, sull’ampiezza originale del segnale in uscita; per riportare l’onda triangolare allo stesso livello delle onde rampa e impulsiva, se ne moltiplica l’ampiezza di uscita per una costante 1.5 (il valore è facilmente identificabile attraverso una serie di paragoni visivi compiuti attraverso oscilloscopio).

07 multiwave

Alternativamente, si può filtrare il segnale ottenuto per comparazione diretta con l’onda rampa (assicurandosi che la comparazione produca solamente il rapporto 50%) fino a raggiungere l’onda triangolare desiderata. Il risultato timbrico è meno sgradevole (o, se si preferisce, risulta diversamente sgradevole).

Il secondo comparatore installato ad hoc realizza una perfetta onda quadra attraverso confronto con soglia pari a costante 0 e l’onda quadra così ottenuta (ancora unipolare) viene sottoposta al classico blando filtraggio Passa Basso a 1 polo, con KeyTrack addizionato alla costante 6. Come visto in precedenza, si corregge il risultato unipolare procedendo al trattamento A*B+C moltiplicando *2 e sommando -1 fino a raggiungere un segnale bipolare di escursione pari a -1/1.

Da onda rampa a onda sinusoide

Nel dominio analogico, il procedimento è effettuato purificando per filtraggio passa basso il segnale triangolare precedentemente ricavato; il risultato ottenuto viene riportato a livello attraverso semplice pre-amplificazione numerica.

08 multiwave

Dopo aver prelevato il segnale bipolare dell’onda triangolare precedentemente realizzata, lo si sottopone a filtraggio -12 dB (ovvero, a 2 poli) in questo caso ottenuto collegando in serie due filtri Low Pass da -6 dB. La frequenza di taglio è regolata dal segnale KeyTrack (ricevuto attraverso il modulo MIDI NotePitch agganciato al terminale di ingresso p) sottratto di -20 semitoni attraverso costante dedicata.

Per recuperare il livello perso durante le operazioni di filtraggio, si sottopone il segnale ad una pre-amplificazione pari a 10* attraverso costante dedicata.

Considerazioni

In modo banale, ma pratico, appare ovvio come una progettazione di livello medio basso finalizzata all’ottenimento simultaneo delle onde rampa, impulsiva a simmetria variabile e sinusoide sia riconducibile ad un mero esercizio di stile.

09 multiwave

Nella pratica quotidiana, è sicuramente più veloce – ed efficiente – ricorrere al tradizionale accumulo di moduli oscillatore dedicati alla generazione selettiva delle forme d’onda desiderate; successivamente, i segnali saranno portati al consueto Switch di selezione Waveform con cui estrarre la timbrica richiesta.

La prossima volta, ci occuperemo di come ottimizzare la configurazione e la disposizione dei comandi di intonazione Octave, Semitone, Detune applicati all’oscillatore.

Tags: , , , ,

Leave a comment

Inserisci il numero mancante: *

ga('send', 'pageview');