Una luce in fondo al tunnel – 02

Written by Enrico Cosimi on . Posted in Tutorial

In un mondo perfetto, si entra nell’elegante personal studio, si accendono le macchine, si arma la traccia nella DAW e, mentre le idee fluiscono copiose, si stende una traccia appresso all’altra, scrivendo capolavori immortali che ci assicurano fama, immortalità, fortuna.

Poi, uno si sveglia tutto sudato tra le lenzuola stropicciate.

Di Enrico Cosimi

Tunnel with lightspot

 

La vita reale definisce una delle più crudeli verità: la tecnologia crea problemi. La tecnologia non ci aiuta.

Accendi le cose, e non funziona niente: il Sub 37 si impalla appena armi la traccia MIDI, il KORG MS2000 sembra suonare dentro un flanger, la polifonia sparisce, le note MIDI rimangono agganciate e non finiscono più, tutto sembra non avere senso, come i soldi che sono finiti fuori dalla finestra.

La colpa è di un mostro mitologico che, periodicamente, emerge dalle nebbie del tempo per fare danni: stiamo parlando del terribile transito di dati MIDI.

Quando, nel 1983, sua santità Dave Smith mise su strada il protocollo d’interfacciamento MIDI, aveva come obiettivo principale poter suonare Do maggiore sulla tastiera del synth A e sentirlo eseguito anche dal synth B, nulla di più complicato. Poi, la comunità dei musicisti elettronici ha preteso sempre di più dalla tecnologia, fino ad arrivare al panorama attuale, dove un musicista solo può gestire interi flussi di orchestrazione virtuale e di produzione elettronica dall’idea al mastering finale. Ovviamente, tutto questo non è stato a costo zero e, generazione dopo generazione, con i vantaggi sono cresciuti anche gli obblighi e le trappole tecnologiche. Questa volta, affronteremo i pericoli della trasmissione MIDI, cioè perché le cose che dovrebbero funzionare non funzionano e creano casini epocali nella normale connessione sintetizzatore-computer. 

Schermata 2017-03-02 alle 08.29.32

Da fuori, sembrava un semplice sintetizzatore…

Qualsiasi sintetizzatore dotato di MIDI, monofonico o polifonico, analogico o digitale che sia, è l’insieme di più sezioni operative che convivono armoniosamente in un unico oggetto dedicato alla produzione musicale. Lo strumento a tastiera, con un bellissimo pannello e una sexy tastiera a quattro ottave contiene, al suo interno, diverse entità operative separate, che è bene iniziare a prendere in considerazione:

  • il motore di sintesi vero e proprio, cioè la scheda componenti che produce/genera il suono che ascoltiamo dalle uscite audio del sintetizzatore; il motore di sintesi viene controllato dal musicista attraverso
  • la tastiera; è il controller più diretto, che permette al musicista di definire fraseggi monofonici o armonie a più voci che saranno eseguite dal motore di sintesi; la tastiera è un’entità separata dalla generazione sonora: negli Anni 90 dello scorso secolo, era normale acquistare un expander privo di tastiera – che conteneva solo la sintesi sonora – e una master keyboard che non generava suono, ma produceva tutto il controllo necessario per gestire uno o più expander;
  • l’interfaccia MIDI o, come dicono più correttamente i progettisti, la porta MIDI di dialogo con il mondo esterno. Per un momento, facciamo finta che il formato USB non esista e rimaniamo concentrati sulle insidie del vecchio mondo MIDI targato 1983. La porta MIDI del sintetizzatore gestisce un triplice flusso di dati in uscita (quello che viene fatto sulla tastiera o sul pannello comandi), in ingresso (quello che viene trasmesso al sintetizzatore da un’altra master o dal computer), in copia cc (quello che viene ricevuto e si ritiene comodo inviare ad un altro strumento per conoscenza).

Le tre sezioni operative (sintesi, tastiera e porta MIDI) esistono e convivono all’interno di buona parte degli strumenti elettronici che chiamiamo “sintetizzatori”, ma da fuori l’utente meno esperto vede una cosa sola… iniizia a suonare un campanello di allarme.

 

Cosa fanno i connettori della porta MIDI

Anche se c’è una relativa libertà per il produttore (il connettore Thru può o non può esserci, una certa categoria di apparecchi può avere solo il MIDI In, eccetera…), la logica di funzionamento della porta MIDI, articolata nei suoi tre connettori In, Out e Thru, è stringente e perfettamente documentata nelle implementazioni di base.

 

MIDI IN

Serve a ricevere dall’esterno (un’altra tastiera, un altro sintetizzatore, la traccia MIDI abilitata sulla DAW che vive all’interno del nostro PC) i dati digitali che realizzano l’esecuzione delle note musicali precedentemente programmate, o gli impulsi di clock che governano il fluido avanzamento degli arpeggiatori e/o dei sequencer interni agli strumenti che vogliamo utilizzare. In aggiunta, al MIDI Input arrivano gli oscuri comandi di MIDI SysEx o MIDI Control Change che permettono l’esecuzione dei comandi di automazione: il filtro può essere aperto in automazione, l’oscillatore può cambiare la forma d’onda ritenuta più adeguata, eccetera; tutto quanto è stato operato precedentemente sul pannello comandi, può essere poi eseguito in differita grazie all’automazione dei parametri MIDI.

Senza MIDI Input, lo strumento non può ricevere comandi dall’esterno – a quel punto, non rimane che suonarlo dalla sua tastiera.

 

MIDI THRU

Il midi “attraverso” permette di fornire una copia conforme dei dati ricevuti all’Input MIDI per inviarla ad un altro sintetizzatore. Perché si può essere così perversi da voler far sapere a un secondo sintetizzatore quello che è stato ricevuto dal primo sintetizzatore? Semplicemente perchè, lungo il cavo MIDI possono viaggiare codici che non riguardano il primo sintetizzatore, o non riguardano solamente il primo sintetizzatore, ma che devono essere condivisi anche dalle altre macchine presenti nel parco strumenti del musicista. Ad esempio, dal computer inviamo le note MIDI della traccia di Synth Bass (che faremo eseguire al Sub 37) e anche il MIDI Clock necessario a far avanzare i pattern programmati nella Analog Rytm. Il computer è collegato al MIDI IN del Sub 37, questo esegue correttamente le note della traccia di basso ricevute, ignora il codice di MIDI Clock che non lo riguarda e dalla porta THRU emette copia conforme di note MIDI e MIDI Clock. La batteria Analog Rytm, collegata al THRU del Sub 37, ignorerà le note midi dellla traccia di basso, ma sarà con le orecchie bene aperte pronta a ricevere il MIDI Clock che le permetterà di avanzare in battuta.

Senza MIDI Thru, sarebbero necessarie tante uscite MIDI quanti strumenti sono presenti nel nostro sistema… un infermo molto costoso.

Ovviamente, la tecnologia THRU non viene a costo zero: è necessario “un qualcosa” che faccia capire agli strumenti collegati Out-In, Thru-In cosa devono prendere in considerazione e cosa devono ignorare. La questione è facilmente risolta prevedendo l’esistenza di un “prefisso” denominato “canale MIDI” che, opportunamente sintonizzato sul sintetizzatore di ricezione (e precedentemente deciso nella traccia MIDI di trasmissione) rende indipendente la ricezione di uno di sedici possibili flussi di dati indipendenti. In questo modo, gli strumenti collegati in catena Thru-In possono “concentrarsi” solo sui dati che li riguardano, quelli che viaggiano sul loro canale MIDI e possono continuare a ignorare il resto dei dati non pertinenti.

Attenzione! Anche se il MIDI Thru sembra la panacea per tutti i mali, la natura seriale del collegamento e la veocità relativamente bassa del transito dati limitano – di fatto – ad un massimo di tre o quattro apparecchi l’’estensione utile di una catena di sintetizzatori collegati in Thru; se le macchine continuano ad aumentare (è bello avere questi problemi…) l’ultimo apparecchio in coda alla catena probabilmente suonerà con un ritardo ritmicamente inaccettabile. 

Schermata 2017-03-02 alle 08.31.44

Facciamo un esempio pratico:

  • nel nostro PC, la DAW sta mandando in playbck tre tracce MIDI di Basso (ch1 MIDI), pad (ch2 MIDI) e lead (ch3 MIDI); in aggiunta, è trasmesso il MIDI Clock per far andare in battuta la batteria elettronica;
  • al MIDI Out del computer (scheda, interfaccia, quello che è…), viene collegato il MIDI IN del primo sintetizzatore che – su ch 1 – produce il suono di synth bass; lo strumento riceve tutti i dati MIDI dei tre canali più Clock, ma ignora qualsiasi cosa non sia trasmessa sul proprio canale MIDI precedentemente sintonizzato;
  • dal MIDI Thru del sinth bass, appare copia conforme di tutti i dati ricevuti (i 3 canali di roba più il clock); la presa Thru del primo sintetizzatore è collegata all’ingresso MIDI In del secondo sintetizatore;
  • il secondo sintetizzatore, su canale MIDI 2, genera la timbrica di pad ed esegue i dati MIDI relativi all’armonizzazione, ignorando la traccia di dati MIDI su ch1 (basso), su ch3 (lead) e il MIDI Clock; al suo MIDI Thru, i dati transitano pari pari pari, senza modifica (solo, un pelino più tardi, ma poco male…);
  • il terzo sintetizzatore, su ch 3, produce il suono lead ed è collegato al MIDI Thru del secondo sintetizzatore; esegue solo i dati della traccia lead e ignora tutto il resto della trasmissione, che passa para para al MIDI Thru del terzo sintetizzatore;
  • la batteria elettronica è collegata al MIDI Thru del terzo sintetizzatore e, opportunamente regolata su canale 10 o canale 16, ignorerà i dati delle tre tracce di dati MIDI per concentrarsi solo sul MIDI Clock che garantisce l’esecuzione a tempo dei pattern programmati al suo interno.

Come è facile immaginare, se la batteria elettronica viene collegata, in catena Thru, in una posizione “più vicina” al computer, ci saranno minori possibilità di accumulare ritardi; allo stesso modo, uno strumento dannatamente privo di presa MIDI Thru, andrà collegato per forza di cose in coda alla catena. Non si scappa. 

Il classico errore da evitare è considerare il MIDI Thru come “un’uscita per i dati interni”: al MIDI Thru compare solo quanto è stato ricevuto al MIDI In dell’apparecchio, senza alcuna aggiunta e senza alcuna modifica. 

 

MIDI OUT

La connessione MIDI Out permette al sintetizzatore di emettere verso il mondo esterno (un altro sint, un expander, una DAW) i dati generati internamente. Nel caso di un sintetizzatore “normale”, questi dati apparteranno praticamente a due categorie:

  • le note suonate sulla tastiera del sintetizzatore, magari arricchite da pitch bend e modulation wheel, che si vuole affidare alle amorevoli cure di una traccia MIDI aperta nella nostra DAW;
  • le operazioni effettuate sul pannello comandi, ad esempio l’apertura del filtro, per animare l’esecuzione e far respirare il suono prodotto dal sintetizzatore.

A questi due tipi di dato (Roland li chiamerebbe Note e Motion Recording, Elektron – dovendo rendere difficile quello che è facile – parlerebbe di trigless lock…), se ne aggiunge un terzo appena più raro, rappresentato dalla possibilità di “tirare fuori dal sintetizzatore” le note elaborate dall’Arpeggiatore di bordo o organizzate nella sezione Step Sequencer disponibile; non sempre, il progettista prevede la possibilità di tirare fuori l’arpeggio e trascrivere i dati sulla DAW, ma può succedere. (In questo e in casi analoghi, il musicista deve controllare sul manuale operativo; non si scappa…).

Dal MIDI Out, dicevamo, escono i dati generati internamente al sintetizzatore, non i dati ricevuti (quelli, passano per la connessione Thru). Un classico errore “da tunnel” si verifica quando l’utente inesperto pretende di tirare fuori dal MIDI Out il Clock generato dalla DAW e ricevuto dal sintetizzatore; come minimo, ci saranno dei problemi di allineamento.. molto facilmente, non funzionerà un piffero. 

 

Repetita juvat

Il sintetizzatore, l’expander, la batteria elettronica “di moderna costruzione” sono tutti dotati di una porta MIDI; la porta MIDI è articolata in uno, due o tre connettori a discrezione del costruttore, che corrispondono ai collegamenti:

  • MIDI In
  • MIDI Thru
  • MIDI Out

Ciascun connettore svolge il proprio compito in maniera non alternativa o modificabile (esiste qualche losco costruttore che permette di cambiare il comportamento Thru in Out e viceversa, ma dovrebbe essere selvaggiamente perculato per aver creato, in nome di un risparmio teorico, tanti problemi all’utenza meno esperta. Caveat emptor).

Il MIDI In riceve i dati provenienti dall’esterno, riceve tutti i dati; quelli presi in esame dalla macchina ricevente sono solo quelli trasmessi sul giusto Canale MIDI (è ovvio che una prossima puntata del nostro tunnel sarà relativa al mistero dei canali misteriosi…).

Il MIDI Thru emette una copia conforme e non modificata di quanto ricevuto dal sintetizzatore al proprio MIDI Input; esiste come comodità per semplificare le connessioni, permettendo – a rischio e pericolo dell’utente – la creazione di catene di macchine in cascata. Dal MIDI Thru non escono dati generati internamente, ma solo dati “echeggiati” da quanto ricevuto.

Il MIDI Out emette i dati, di pannello, di tastiera, di sequencer o di arpeggio, generati internamente all’apparecchio trasmettitore. Un eventuale MIDI Clock ricevuto dal sintetizzatore non sarà trasmesso dal MIDI Out, ma dal MIDI Thru. Eventualmente, dal MIDI Out potrà emergere il MIDI Clock generato internamente, non quello ricevuto dalla DAW

E’ MIDI, baby. E tu non puoi farci niente.

La prossima volta, affronteremo un altro terrificante problema collegato alla convivenza tra connessione MIDI, generatore di suono e controller tastiera: il diabolico Local On/Off. Estote parati.

 

Comments (11)

  • Lensflare

    |

    Mi-Di.

    (M)oltiplica
    (I)
    (D)ei
    (I)nclusi

    (nella imprecazione del musicista in studio).

    Reply

  • lello caliendo

    |

    che bello, con questo articolo sono tornato 30 anni addietro, quando il quinto synth in thru, “inventava” il chorus midi :)

    Reply

  • pier

    |

    “le note MIDI rimangono agganciate e non finiscono più, tutto sembra non avere senso…” Ecco, mi trovo a leggere oggi questo articolo proprio quando da una settimana mi sto letteralmente dannando, alle prese con Reaktor, per gestire quella che dovrebbe essere una “semplicissima” funzione: suonare le note di un modulo esterno (nel mio caso lo slim phatty) usando una tastiera midi e facendo passare il flusso di dati attraverso Reaktor e i suoi moduli midi in/out notepitch/gate. E’ il caso di dire che tutto sembra non avere senso, perché il gate di Reaktor è come se perdesse la nozione di note off non appena si cambia pitch sfiorando due tasti contemporaneamente. Le note rimangono appunto agganciate e non finiscono più a meno che non si spenga tutto! Sarei veramente grato a chiunque mi facesse luce su questo comportamento… e io che pensavo che i problemi sarebbero arrivati dopo, con architetture più complesse…

    Reply

    • Attilio De Simone

      |

      Devi avere impostato qualche parametro errato nel Reaktor. Io piloto lo Slim Phatty da Reaktor senza alcun problema. Individuare l’origine del malfunzionamento è impossibile, visto il numero altissimo di funzioni, macros, moduli.
      Dovresti ripartire da zero, leggi prima attentamente il manuale di Reaktor in relazione agli argomenti funzionali al tuo obiettivo e poi costruisci da capo il modulo.

      Reply

  • Enrico Cosimi

    |

    controlla il comportamento monofonico/polifonico dei moduli, delle macro e della ensemble che stai realizzando…

    Reply

  • pier

    |

    Innanzi tutto ringrazio entrambi per avermi risposto di domenica mattina, un atto magnanimo!
    Prima di passare a strutture complesse sto cercando di imparare attraverso macro ridotte all’osso, come ad esempio una macro per controllare solo le note dello slim phatty, senza neanche i comandi sulla velocity. Come prima cosa ho provato a collegare in tutto tre moduli tra loro, ovvero quelli midi in di notepitch e gate con il modulo singolo che manda in out questi ultimi (parlo sempre dei built-in module). Ma forse non basta per generare un flusso dati senza errori, e non capisco se riguardi un problema di Reaktor (che va arginato con opportuni aggiustamenti) o è a me che sfugge qualcosa. Ho tenuto presente la funzione mono, anche se forse le voci c’entrano lo stesso in qualche modo. Mi chiedo se il problema possa riguardare anche l’ordine in cui i dati vengono trasmessi…Come prova alternativa, anche se non del tutto simile, ma almeno con un ensemble fatto come si deve, ho caricato SQP.esn incluso nella library e l’ho usato con lo Slim Phatty; se interrompo il sequencer mentre sta suonando le note rimangono fisse anche li, cosa che non succede se il suono proviene da Reaktor perché l’instrument collegato “micropad” ha un inviluppo a tre stadi senza il sustain e il suono decade in base all’inviluppo. Stessa cosa succede con lo Slim Phatty: se metto il sustain a zero funziona come il micropad, ma appena aziono il sustain le note si agganciano e rimangono fisse. Analogamente se al micropad inserisco un inviluppo a quattro stadi, con un relativo sustain maggiore di zero, anche li ho lo stesso problema. SPQ della NI usa come modulo midi out lo stesso modulo che ho usato nelle mie macro di prova.

    Reply

  • Andrea

    |

    grazie per questo approfondimento.
    Per quanto mi riguarda ho usato il midi solo per quello che era il primo obiettivo/scopo del suo inventore “poter suonare Do maggiore sulla tastiera del synth A e sentirlo eseguito anche dal synth B”.
    Non avendo mai usato – fino ad ora – daw il resto resta un mistero…

    Reply

  • rikk

    |

    proprio ieri sera ho provato a sincronizzare il dark time (che manda una sequenza al dark energy 2 via cv/gate) tramite usb a reason. Reason master dark time slave…. per una quindicina di secondi tutto ok, poi come se saltasse la puntina del disco e va fuori sincrono, booh, forse troppa roba dalle usb del mac mini?

    Reply

    • Enrico Cosimi

      |

      probabilmente, non stava arrivando il clock via USB… prova con i cavi MIDI

      Reply

  • Andrea

    |

    buon giorno,
    visto che si parla di clock chiedo un approfondimento.
    Non l’ho mai utilizzato e sto provando a mettere in clock (si dice così?) l’akai wolf e l’ultranova, volendo arrivare ad avere l’arpeggiatore del synth in clock con il beat scelto per la drum machine.
    Collego le due macchine con midi out dalla drum e midi in al synth dicendo a quest’ultimo (in uno dei tantissimi sotto menù) di prendere il clock dal midi in.
    E’ corretto?
    Grazie.
    Andrea

    Reply

Leave a comment

Inserisci il numero mancante: *

ga('send', 'pageview');