Primi passi con Reaktor – Terza parte

Written by Enrico Cosimi on . Posted in Software, Tutorial

La volta scorsa abbiamo visto come mettere il nostro oscillatore sinusoide sotto il controllo dell’intonazione (Pitch) e della cruda articolazione (Amplitude). Il meccanismo così realizzato è lungi dall’essere perfetto – in realtà, è appena un gradino sopra la disperazione totale – ma ci permette di approfondire, passo dopo passo, le tecniche costruttive di base… Quelle tecniche, per intenderci, che si dimostreranno indispensabili quando partiremo con il reverse engineering delle ensemble costruite dai grandi programmatori.

Di Enrico Cosimi

Schermata 10-2456582 alle 13.12.06

Carichiamo nuovamente la ensemble Sine Osc 01 e affrontiamo, dritto per dritto, il problema dell’intonazione. Da che mondo è mondo, un oscillatore di sintetizzatore – quale che sia il dominio in cui è realizzato – deve permettere al musicista di variare la propria intonazione nominale in base alle esigenze d’utilizzo.

In questo modo, sarà necessario intervenire sull’intonazione inserendo un valore corrispondente alla “trasposizione” richiesta; a seconda delle attitudini personali, questo modo di trasporre potrà essere per ottave, semitoni e centesimi di tono, o per valori assoluti espressi in Hertz, o per rapporti di frequenza espressi (appunto) per rapporti 1:1, 1;2, eccetera.

Banalmente, nel nostro caso, metteremo in piedi un meccanismo che ci permetta di variare ottava, semitono e centesimo di tono generato dal Sine Osc ogni volta che lo si vuole utilizzare. Prima di partire, è necessario imparare a memoria e ripetere come un mantra ciò che l’help on line di Reaktor ci dice a proposito dei valori numerici applicati alla porta P.

 

Schermata 10-2456582 alle 13.16.03

Come recita il fumetto dell’help on line qui sopra (non vedete l’help on line? Siete sicuri di aver abilitato – sulla parte della toolbar superiore – il tastone con la “i” minuscola?), ogni numero applicato a P è considerato logaritmicamente come un semitono MIDI. Detto in maniera meno antipatica, se l’oscillatore riceve il numero 60, produrrà il Do centrale della tastiera MIDI, se il numero passa a valore 48, la nota prodotta sarà il Do sotto all’ottava centrale, e così via, numero per numero, semitono per semitono.

 

Organizzare una trasposizione

Trasporre l’intonazione di un oscillatore significa sommare, rispetto al valore di nota definito suonando sulla tastiera (o su altra periferica di controllo), un offset definito a seconda delle convenienze: singoli semitoni, intere ottave, centesimi di semitono. Il primo passo – tutti gli altri saranno molto simili… – è la conquista delle ottave. Come anche i pianisti riccioluti sanno, un’ottava è composta da dodici semitoni; il che significa che, per trasporre di ottava il nostro oscillatore, occorrerà inviare alla sua porta P la somma del segnale ricevuto dalla tastiera (modulo NotePitch) e una quantità numerica variabile che può o non può procedere per salti di 12.

Ci occorrerà un generatore di numeri controllabile dall’utente ed un sommatore con cui addizionare i nuovi numeri alle note di tastiera.

Il primo, misterioso, oggetto è, semplicemente, un controllo di pannello che ricorda in tutto e per tutto il tradizionale potenziometro: ruotandolo verso destra, il suo valore numerico cresce, ruotandolo in senso antiorario, il suo valore numerico decresce.

 

Schermata 10-2456582 alle 13.22.01

Con il comando Built-In Modules/Panel/Knob, creiamo un nuovo potenziometro Knob pronto ad essere personalizzato (prima) e collegato (dopo); per velocizzare le cose, si potrebbe anche fare click destro sulla porta P e scegliere se creare un controllo o una costante, ma  useremo più tardi cotanta comodità intrinseca. Per ora, scegliamo le cose dai menu di appartenenza.

 

Schermata 10-2456582 alle 13.23.48

Il nuovo potenziometro Knob è comparso dal nulla nella finestra Structure, ma è comparso dal nulla anche nel pannello “ufficiale” della nostra ensemble. Dovremo fare i conti dopo con le possibili personalizzazioni grafiche del controllo (dimensione, aspetto grafico, corredo di label, control, scala numerica, finestra dei valori, eccetera). Per ora, ci limiteremo a continuare la connessione di funzionamento.

 

Schermata 10-2456582 alle 13.25.20

Il nuovo controllo produce, sua sponte, una variazione numerica corrispondente a 0 di minima e 1 di massima escursione. Dove prendiamo tutte queste notizie? Semplice: basta cliccare una volta sul modulo Knob, per avere visualizzato nella parte sinistra dello schermo tutte le informazioni che ci servono all’interno della Property Window. Ricordiamo, per chi si fosse messo in collegamento solo ora, che la Property è suddivisa in quattro sotto finestre relative a Function (proprio quello che ci serve), Info, View (facciamo finta di nulla) e Connect.

Nella sotto pagina Function, diventa possibile vedere gli attributi numerici applicati al comando Knob:

  • Max; il valore numerico raggiunto con la massima escursione oraria del parametro.
  • Min: il valore numerico raggiunto con la minima escursione oraria del parametro.
  • Default: il valore numerico generato quando si carica la patch.
  • Stepsize: gli scatti numerici tra un incremento/decremento di valore e l’altro.
  • Mouse Resolution: il legame tra incremento decremento e passi numerici computati dal mouse.
  • Fine-Tuning Factor

Dal momento che vogliamo usare questo controllo per gestire la trasposizione di semitoni, converrà impostare i suoi valori su un’escursione sufficientemente corposa, ad esempio Max = 127, Min = 0, Default = 60, Stepsize = 1; possiamo tralasciare gli ultimi due parametri.

 

Schermata 10-2456582 alle 13.35.12

Dopo aver impostato questi valori, è il caso di rinominare il controllo (verificare l’aggiornamento sul pannello comandi) Transpose, in modo da evitare generiche indicazioni come knobbuttonswitch, eccetera…

Ora, non rimane che collegare Transpose alla porta P dell’oscillatore Sine.

Il problema è che la porta P è già impegnata dal modulo NotePitch, che trasmette le informazioni di tastiera; come nel mondo reale, quello che ci serve è un miscelatore, cioè un sommatore; nel numerico panorama di Reaktor, il sommatore è un operatore matematico di somma, logicamente depositato presso Built-in Modules/Math/Add. Non rimane che generarlo.

 

Schermata 10-2456582 alle 13.37.14

A questo punto, i collegamenti da fare sono:

  • al primo ingresso del sommatore Add, portiamo l’uscita del controllo Transpose
  • al secondo ingresso del sommatore Add, portiamo l’uscita del controllo NotePitch
  • all’ingresso porta P dell’oscillatore Sine, colleghiamo l’uscita del sommatore Add

in questo modo, l’oscillatore suonerà la note specificata dalla tastiera più l’eventuale valore di trasposizione.

 

Schermata 10-2456582 alle 13.39.38

Ora, funziona tutto… però, però, però, il comportamento del nostro sintetizzatore è quantomeno di difficile collocazione, a meno di non essere pipistrelli.

L’errore che abbiamo commesso è di aver sommato alle note di tastiera un possibile valore compreso tra 0 e 127 (corrispondente all’intera escursione della tastiera MIDI); che succede se il musicista suona nota Do centrale (valore 60) e somma a quel 60 un offset di trasposizione pari ad un altro valore 60? Ottiene un’esecuzione di semitono 120… una nota molto acuta.

Quello che ci serve non è sommare 0-127 con il controllo Transpose, ma – casomai – poter sommare un offset bipolare  compreso tra -60 e + 60 (in termini MIDI, un’escursione pari a +/- 5 ottave di semitoni); non rimane che correggere i valori Max, Min e Default del controllo Transpose.

 

Schermata 10-2456582 alle 13.44.15

Raggiungete la Property Window del controllo e sostituite i tre valori con le indicazioni appena fornite.

 

Schermata 10-2456582 alle 13.45.37

Come al solito, dentro Reaktor, fatta una cosa, se ne sfascia un’altra… Ora, è possibile controllare bipolarmente la trasposizione dell’oscillatore, ma sul pannello frontale non si riesce più a centrare un valore intero col potenziometro: compaiono sempre due decimali dopo la virgola!

 

Schermata 10-2456582 alle 13.48.35

Dove è l’errore? Torniamo alla sotto pagina Function/Property Window del controllo Transpose, per realizzare che il parametro Mouse Resolution è rimasto a 127, mentre i possibili step sono compresi tra -60 e +60 (cioè, sono 120 valori confermabili): basterà portare la Mouse Resolution a 120, per riconquistare l’escursione di pannello in valori interi. Provare per credere.

 

Ma non avevamo parlato di ottave?

Un’ottava è un salto pari a 12 semitoni: il problema del nostro parametro Transpose è che ha una Stepsize pari a 1…

Per avere, sullo stesso controllo, dei salti d’ottava, è necessario definire una dimensione di passo, una Stepsize appunto, pari a 12. In questo modo, ogni volta che col mouse sposteremo il potenziometro disegnato sul pannello, gli faremo generare un salto di +12 o -12 semitoni, per un’escursione sempre compresa nei margini Max e Min precedentemente definiti.

 

Schermata 10-2456582 alle 13.51.32

Dopo aver apportato le modifiche numeriche, come qui sopra, è il momento di abbandonare il vecchio nome Transpose per ribattezzare in Octave il nostro nuovo controllo: la sua escursione di 12 in 12 ci permette di trasporre per ottave l’intonazione dell’oscillatore.

 

Schermata 10-2456582 alle 13.57.39

A questo punto, non rimane che creare altre due controlli di Semitone (con escursione libera, ma Stepsize pari a 1) e di Cent (con escursione pari a +0.5/-0.5 e Stepsize pari a 0.01) per avere le regolazioni che ci mancano.

 

Schermata 10-2456582 alle 13.55.36

 

Ovviamente, sarà necessario sommare i due nuovi controlli prima di raggiungere la porta P e, per fare questo, agiremo sulle Property/Function del sommatore Add, portando a 4 il numero delle sue porte attive in ingresso.

 

Schermata 10-2456582 alle 13.56.50

Purtroppo, sul pannello di comando, i nuovi controlli si sono ammassati uno sopra all’altro, rendendo inutilizzabile la nuova ensemble (a proposito! Ricordatevi di salvarla come Simple Synth 02).

 

Schermata 10-2456582 alle 14.00.29

Per rimettere ordine, occorre sbloccare il pannello comandi agendo sulla chiave inglese in alto nella colonna di sinistra; la vedete nell’illustraazione qui sopra; appena cliccato sulla chiave inglese (oppure, richiamando Unlock Panel con la combinazione di tasti Command+P), compare una griglia di puntini neri disposti a 4 pixel di distanza, che ci faciliterà il riordinamento dei controlli a colpi di click and drag. Date fondo al vostro senso estetico e mettete ordine nel pannello. Dopo aver richiuso in Lock Panel la superficie di comando (altro Command+P o altro click sulla chiave inglese), i comandi tornano ad essere funzionali.

 

Schermata 10-2456582 alle 14.03.36

Questa è una possibile soluzione, non particolarmente originale, ma semplice da controllare a colpo d’occhio.

 

Ora, non rimane che arricchire con nuove forme d’onda il “potente” oscillatore creato, magari implementando anche i meccanismi di FM Lin/Exp, di Hard Sync, eccetera. 

Stay Tuned

 

Post Scriptum: in Reaktor, esistono infiniti modi per arrivare allo stesso risultato; in queste righe, presentiamo i più semplici e banali, senza lanciarci in eccessivi virtuosismi di programmazione. Per dire, il motore di Octave Select potrebbe essere realizzato creando uno switch con cui selezionare diverse costanti di valore -24-, -12, 0- +12, +24, in modo da avere un’ordinata serie di tastini “di ottava” sul pannello comandi… 😉

 

Tags: , ,

Trackback from your site.

Comments (3)

  • andrea

    |

    Mitico! Chiarezza espositiva unita ad una simpatia che rende fare queste cose un puro divertimento! Grazie!! 😉

    Reply

  • Daniele Pulciani

    |

    Riguardo al centrare la posizione del potenziometro su un numero intero, la soluzione che ho individuato è impostare lo stepsize su 1, il che risolve il problema indipendentemente dalla mouse resolution…

    Reply

Leave a comment

Inserisci il numero mancante: *

ga('send', 'pageview');