Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf ·...
Transcript of Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf ·...
Hammond sound Un ATMEGA238P per ricreare il suono dell’Organo Hammond su una tastiera midi
Dopo aver bevuto parecchie birre artigianali al recente festival dei birrai eretici di Bologna ho
iniziato ad immaginare un qualcosa che riproducesse l’inconfondibile sound dell’Organo
Hammond. Ne è venuto fuori lo YACH (Yet Another Clone Hammond) che mi è costato 40 euro,
un ottavo del costo della control box midi DB1 Ocean Beach Digital che fa lo stesso lavoro per ben
319 dollari.
In rete c’è moltissima documentazione sulla rmulazione dell’organo Hammond usando la scheda
audio di un PC, non ho invece trovato quasi nulla sulla emulazione realizzata con la parte musicale
di una tastiera midi. Per usare lo YACH occorre una tastiera General Midi 2 politimbrica e con una
polifonia di 32 note, io ho usato una PRS290 Yamaha che lavora in midi mode 3 cioè Omni Off –
Poly.
Un po’ di storia Nel 1934 Laurens Hammond intuì una buona opportunità nel settore religioso: gli organi da chiesa
erano estremamente costosi e solo poche ricche parrocchie potevano permettersene uno. Laurens
decise di costruire un organo elettromeccanico che riproducesse il suono dell’organo da chiesa ed il
successo commerciale fu strepitoso: il suono dell’organo Hammond era così simile a quello di un
organo da chiesa che i fabbricanti di organi videro minacciate le loro attività. Ci furono battaglie
legali per impedire a Laurens di chiamare “organo” il suo strumento ed i tribunali imposero un test
in una grande chiesa per valutare se fosse possibile distinguere i due strumenti in base al suono
prodotto. Gli ascoltatori non riuscirono a distinguere fra i due strumenti e Laurens vinse la causa
perché i giudici americani sentenziarono pragmaticamente che se suona “come” un organo allora
“è” un organo e quindi si può “chiamare” organo. La vendetta dei costruttori di organi non si fece
attendere e nel 1939 convinsero il Vaticano a vietare l’uso dell’organo Hammond nelle chiese
cattoliche. Il mercato si divise fra chiese cattoliche e chiese riformate, le prime erano obbligate ad
usare solo i costosissimi organi a canne mentre le seconde acquistavano con gran soddisfazione gli
organi Hammond assai più economici.
Il suono dell’organo Hammond venne esaltato dal doppio altoparlante rotante progettato da Donald
Leslie anche se fra i due inventori non ci fu mai una intesa tecnica o commerciale: Laurens vietava
ai suoi rivenditori di fornire un Leslie al posto del suo Tone Cabinet ma naturalmente nessuno lo
ascoltava. Quando il rock scoprì il nuovo strumento se ne impadronì subito creando sonorità mai
ascoltate prima: non ci sarebbe stato il rock senza Laurens Hammond e Don Leslie ed ovviamente
neppure senza Leo Fender e Les Paul.
La tecnica dell’organo Hammond L’idea alla base dell’organo Hammond è che il timbro di una nota è dato dal suo contenuto
armonico. Se la nota non ha armoniche la sua forma d’onda è una sinusoide ma via via che si
aggiungono le armoniche con opportuna ampiezza è possibile ricostruire qualunque forma d’onda:
nulla di nuovo visto che lo sviluppo in serie di Fourier è del 1822. Un organo a canne svolge questo
lavoro facendo suonare con diversa intensità varie serie di canne, accordate su frequenze in rapporti
opportuni, nelle quali un compressore soffia aria compressa. L’organo Hammond usa un metodo
elettromeccanico per generare contemporaneamente 91 note: un motore sincrono (che si avvia con
un motore ausiliario) mette in rotazione una doppia serie di ingranaggi che muovono delle ruote
dentellate ed il loro passare davanti ad un pick up magnetico genera un segnale sinusoidale.
Scegliendo opportunamente il rapporto di trasmissione ed il numero di denti di ciascuna ruota
fonica si ottengono 91 note di una scala temperata. Per ottenere il timbro voluto si aggiungono otto
armoniche con ampiezza opportuna: ogni tasto chiude nove contatti. L’organo Hammond più
famoso è il modello B3 che ha due manuali da 5 ottave ed una pedaliera da due ottave. Per rendere
ancora più realistico il suono generato sono presenti due effetti sonori che modellano l’inviluppo del
segnale: il vibrato/chorus e la percussione. Il vibrato/chorus è generato con una linea di ritardo LC:
un condensatore a 16 posizioni ruota a circa 8,6 rmp (circa 7 Hz) e preleva il segnale con vari gradi
di sfasamento. Un commutatore seleziona sei configurazioni, tre per il vibrato (che modula la
frequenza della nota) e tre per il chorus (che somma al vibrato il segnale non alterato). Per simulare
l’effetto di percussione quando si preme un tasto viene sommata la seconda o la terza armonica
della nota. Di tale ulteriore armonica è possibile scegliere l’intensità (forte/leggera) e la durata
dello smorzamento (lento/veloce): con quattro tasti si selezionano le varie possibilità. Un
preamplificatore audio a tubi fornisce una uscita bilanciata per l’amplificatore esterno (o interno per
il modello A100) ed un pedale permette di modulare il volume. L’amplificatore finale, con circa 40
watt di potenza, era nel Tone Cabinet esterno e comprendeva anche una unità di riverberazione a
molle.
La sintesi armonica Per impostare il timbro si premono i tasti a colori invertiti posti a sinistra della tastiera: è possibile
scegliere uno dei 9 timbri precablati oppure abilitare i drawbars creando un timbro personalizzato.
Posizionati sopra ai tasti sono infatti presenti due set di nove drawbars per ciascun manuale più due
drawbars per la pedaliera. Per ogni nota premuta è possibile selezionare l’intensità delle nove
componenti armoniche “tirando più o meno fuori” con una graduazione da 0 ad 8 i cursori dei
potenziometri: le combinazioni possibili generano svariati milioni di timbri diversi. Questa è la
corrispondenza fra ciascun drawbar, la canna d’organo canonica e l’armonica generata:
Draw-
bar
Tipo Colore Armonica Grado musicale Canne
d’organo
Semitoni
dalla nota
1 sub Marrone 1^ sub Una ottava sotto 16’ -12
2 sub Marrone 3^ della sub Una quinta sopra 5’ 1/3 7
3 foundation Bianco 1^ La nota! 8’ 0
4 foundation Bianco 2^ Una ottava sopra 4’ 12
5 foundation Nero 3^ Una ottava e una quinta 2’ 2/3 19
6 foundation bianco 4^ Due ottave 2’ 24
7 brilliance Nero 5^ Due ottave e una terza magg. 1’ 3/5 28
8 brilliance Nero 6^ Due ottave e una quinta 1’ 1/3 31
9 brilliance bianco 8^ Tre ottave 1’ 36
I primi due drawbars danno il corpo, i successivi quattro l’intonazione e gli ultimi tre la brillantezza
al timbro. Il colore è marrone per le sub-armoniche, bianco per le armoniche che danno suoni
“consonanti” mentre il colore è nero per le armoniche che danno suoni “dissonanti”. In rete si
trovano ancora gli schemi ed i manuali Hammond con le impostazioni dei drawbar per le diverse
voci d’organo. Chi fosse interessato alla matematica della musica deve assolutamente leggere
l’eccellente articolo di Magellano presente su GRIX “Organo elettronico - concetti teorici e idee
per una sua realizzazione - I e II parte” citato nei riferimenti.
Pillole di MIDI
Per gestire gli strumenti elettronici è stato standardizzato il protocollo midi (siamo al General Midi
2): non vengono trasmessi suoni ma codifiche di eventi sonori: in rete c’è tutto. Le note sono
numerate da 1 a 127: il Do centrale (261.63 Hz) corrisponde alla nota nr 60 quindi ci sono ben 10
ottave a disposizione. Lo YACH riceve dalla tastiera i messaggi Note On e/o Note Off e reinoltra
alla sezione musicale i messaggi Note On, Program Change 79 , Control Change 01, 72, 73, 91, 93
e Channel Mode CC120, 121, 122, 124 e 127: sono messaggi dello standard GM2 riconosciuti da
tutti gli strumenti.
In tutte le tipologie di messaggi il primo byte (status) è sempre >127 (bit 7=1) mentre i bites
seguenti (data) sono sempre <127 (bit 7=0), in tal modo è semplice riconoscerne la sequenza.
Messaggio note on <1000.cccc> <0nnnnnnn> <0vvvvvvv> Con questo messaggio di tre bites si comunica quale nota suonare: il primo indica che un tasto è
stato premuto o rilasciato su uno dei 16 canali; il secondo byte indica quale nota fra le 127 va
suonata o stoppata, il terzo definisce con che volume (0-127 detto velocity) suonarla. Se il valore è
0 la nota va fermata perché il tasto è stato rilasciato.
Messaggio Program Change <1100.cccc> <0ttttttt> Con il messaggio Program Change composto da due bites è possibile scegliere quale timbro
assegnare fra i 127 del protocollo MIDI standard: il primo byte definisce il tipo di messaggio ed il
canale midi su cui operare mentre il secondo seleziona uno dei 127 timbri. Per ampliare la gamma
dei timbri si usa spesso insieme al <Control Change 00> e <CC32> per impostare i banchi di
timbri dei vari strumenti.
Messaggio Control Change <1011.cccc> <0xxxxxxx> <0yyyyyyy> Con il messaggio Control Change, composto da tre bites, si impostano i controller che modificano il
suono (volume, pan, effetti sonori, ecc): il primo byte indica che si modificherà un controller su un
dato canale, il secondo byte definisce il numero <X>del controller da modificare ed il terzo byte
definisce il valore <Y> da assegnare al controller modificato. Il comando <CC 121> resetta al
valore di default tutti i controllers.
Messaggio Channel Mode <1011.nnnn> <0xxxxxxx><0yyyyyyy> con 0xxxxxxx compreso fra
120 e 127 Gli ultimi otto messaggi non impostano i controllers ma gestiscono la modalità di funzionamento
del canale midi o dell’intero strumento
A livello hardware abbiamo una trasmissione seriale asincrona a 31.250 bit/sec 8N1 su un loop di
corrente a 5 mA alimentato a 5 Volt: il livello 0 corrisponde ad un flusso di 5mA in linea. Gli
strumenti musicali sono isolati galvanicamente con un fotoaccoppiatore (PC900 o 6N138
Darlington) in ingresso mentre due 74LS05 in serie pilotano l’uscita. Il connettore standard è un
DIN a 5 poli su 180 gradi del quale si usano i soli pin 4 e 5. Sul connettore midi out il pin 2 è
connesso alla massa e deve essere isolato dal corpo metallico del connettore mentre sul connettore
midi in il pin 2 è non collegato. Un cavo midi ha due conduttori più lo schermo e collega i pin 2
(schermo), 4 e 5 di due connettori maschi din.
La sintesi del suono Hammond col MIDI Quando si preme un tasto la tastiera invia l’evento musicale “nota nn suonata con volume vv sul
canale midi 1” allo YACH che genera nove eventi musicali relativi a note sinusoidali di opportuna
frequenza ed ampiezza e li reinvia alla tastiera musicale sui canali midi dal 2 al 12 (saltando il 10 e
l’11 riservati ai drums). Per generare le armoniche a noi servono note con forma d’onda sinusoidale
e fortuna vuole che il midi standard preveda il timbro “ocarina” (Program Change = 79) la cui
forma d’onda è una buona sinusoide: con la mia PRS290 un analizzatore di spettro audio mostra la
seconda armonica a -45 dB e la terza a – 35 db. Quando il tasto viene rilasciato la tastiera invia
l’evento “nota nn suonata con volume 0 sul canale midi 1” e lo YACH genera altri nove eventi
musicali con velocity = 0 stoppando le note precentemente attivate. Ho usato un canale midi
separato per ciascuna armonica per non avere interferenze fra gli eventi <note on> e <note off>
relativi alle varie armoniche in presenza di accordi o di melodie suonate in legato
Il vibrato / chorus Per generare il vibrato ho usato il messaggio midi <Control Change 01> corrispondente alla
Modulation Wheel che modula in frequenza la nota emessa: leggendo la posizione di un
potenziometro si ricava il valore per impostare tale controller e variare la modulazione. In modo
analogo ho usato il messaggio <CC 93> che imposta l’effetto Chorus. Il messaggi vengono inviati
solo in presenza di una variazione della impostazione.
Il riverbero Per simulare il riverbero a molla del cabinet esterno degli organi Hammond ho usato il messaggio
<CC 91> che imposta l’effetto riverbero leggendo la posizione di un potenziometro. Anche tale
messaggio viene inviato solo in presenza di una variazione della impostazione. L’effetto Leslie non
è previsto nello standard GM2 ma è possibile realizzarlo ricorrendo ai messaggi midi <Sistem
Exclusive> per comandare il DSP della tastiera musicale, tali messaggi sono però proprietari e
differiscono da strumento a strumento, quindi non li ho usati per mantenere la massima
compatibilità.
La percussione Nell’organo Hammond l’effetto percussione è “single triggered” quindi una nuova percussione è
generata solo quando tutti i tasti sono stati rilasciati. Una frase musicale di note legate o un accordo
generano la percussione solo sulla prima nota quindi per avere la percussione su ogni nota occorre
suonare in staccato. Suonando con la percussione attivata si somma alla nota la sua seconda o terza
armonica con una intensità che parte da un valore iniziale forte o leggero e si decrementa a velocità
lenta o veloce. Per realizzare la percussione ho usato i messaggi <CC 73> e <CC 72> che
impostano il tempo di attack e il tempo di release della nota. Ho suonato e subito fermato la
seconda o terza armonica della nota ottenendo un inviluppo ADSR del tipo Attack=0, Decay=0,
Sustain=0 e Release=fast/slow, i simulatori SW di organo Hammond usano tempi di release di 300
e 630 ms. Il canale midi usato per suonare l’effetto percussione è il 13.
Il circuito
Dopo tante chiacchiere veniamo al sodo: lo YACH usa un ATMEGA238P stand alone col
bootloader Arduino precaricato. Due uscite digitali comandano una coppia di multiplex CD4052 e
su tre ingressi analogici viene letta la posizione dei 9 potenziometri dei drawbars e dei tre
potenziometri degli effetti. Sei ingressi digitali sono usati per leggere i selettori relativi al
vibrato/chorus, al riverbero ed alla percussione. Per l’interfaccia midi in ricezione ho usato un
6N138 sul pin0, mentre per l’interfaccia in trasmissione il pin1 dell’ATMEGA238P è più che
adeguato per erogare i 5 mA del current loop.
Per agevolare la realizzazione qui c’è la corrispondenza fra i pin fisici dell’ ATMEGA238P ed i pin
logici visti dal compilatore Arduino 1.0.1
Come drawbars ho usato nove potenziometri a slitta lineari per avere la possibilità di modificarne
via sw la variazione: nel codice è usato un andamento logaritmico corretto ed in tal modo il livello
di uscita dell0armonica si incrementa di 3 dB ad ogni step.
Lo YACH assorbe una ventina di mA e per l’alimentazione bastano 4 pile AA con un diodo in serie
per abbassare la tensione a 5,3 Volt, valore nei limiti dellATMEGA238P.
Programmare l’ATMEGA238P
Il codice è scritto in C/CPP AVR e compilato con l’IDE 1.0.x di Arduino. Oltre alle due prese midi
in e midi out sul retro del contenitore c’è una terza presa din a 5 poli per collegare un
programmatore seriale ed aggiornare il firmware senza aprire il contenitore (i segnali sono Tx, Rx,
CTS, Vcc e Gnd). Per la programmazione ho usato un convertitore USB-RS232 seguito da un
MAX232 per portare i livelli ai valori TTL: il segnale CTS è collegato al reset tramite un
condensatore da 100nF.
Come programmatore alternativo si può usare una board Arduino collegandone il pin RESET a
Gnd, prelevando i segnali TX ed RX dai pin D0 e D1 e collegandoli ai pin fisici 2 (Rx) e 3 (Tx)
dell’ATMEGA328P stand alone. All’avvio della compilazione dell’IDE si preme il pulsante di
reset dell’ATMEGA328P stand alone, occorre solo prenderci la mano.
Il codice
Per gestire i drawbars e poter modificare la timbrica in tempo pressochè reale ho generato un
interrupt, associato al Timer1 in modalità CTC, che ogni 500 msec richiama la seguente funzione ISR(TIMER1_COMPA_vect){
flag_isr=true;
}
settando la variabile volatile boolean flag_isr. L’attributo “volatile” è indispensabile
essendo tale variabile usata in una routine di interrupt. I potenziometri e i selettori sono letti ogni
500 msec, il tempo necessario per tale attività è di circa 6 msec ai quali vanno aggiunti 10 msec se
oltre ai drawbars si modifica anche il vibrato, il chorus o il riverbero. Tali tempi sono compatibili
con la capienza del buffer di ricezione che con il compilatore di Arduino Uno è di 64 caratteri e
quindi puo’accumulare 20 note on/off . Volendo aumentare la frequenza di lettura dei drawbars
potrebbe essere necessario ampliare il buffer in ricezione, basta modificare questa riga nella libreria
di sistema HardwareSerial.cpp .
#define SERIAL_BUFFER_SIZE 64
Il codice opera su 11 canali midi: il canale 1 per i dati in ingresso, i canali dal 2 al 12 (saltando il 10
e l’11) per le armoniche ed il canale 13 per la percussione.
All’accensione/reset - configura vari registri per generare un interrupt ogni 500 msec (ho seguito le istruzioni
dell’articolo citato nei riferimenti)
- configura i pin dell’ATMEGA238P
- inizializza la seriale
- imposta il modo midi 3 (OMNI OFF-POLY ON) inviando i messaggi <Control Change 124> e
<Control Change 127> - disconnette la tastiera dalla parte musicale con <Control Change 122> local off
- spegne tutte le note attive inviando un messaggio <Control Change 120>
- resetta tutti i controllers inviando un messaggio <Control Change 121>
- configura la tastiera musicale per generare un timbro sinusoidale sui 9+1 canali midi inviando un
messaggio <Program Change 79> timbro “Ocarina”
Se la variabile settata dalla ruotine di interrupt è = false
- estrae dal canale midi 1 il solo messaggio <nota on> e/o <nota off> in uscita dalla tastiera (ho
usato la funzione MIDI_Poll() descritta nel commento di “paulsoulsby” al post citato nei
riferimenti)
- genera 9 note spostate rispetto alla nota entrante di tanti semitoni quanti sono quelli previsti dalla
tabella delle armoniche e a ciascuna delle nove note assegna l’ampiezza corrispondente alla
posizione dei potenziometri dei drawbars
- invia alla parte musicale della tastiera (midi out) i messaggi midi relativi alle 9 note on/off
rigenerate
- verifica che non ci siano note attive e, se è abilitata, suona la percussione sul canale midi 13
Se la variabile settata dalla ruotine di interrupt è = true oppure se non ci sono dati nel buffer
- setta la variabile flag_isr = false
- legge in multiplex attraverso i due CD4052 la posizione dei 9 potenziometri dei drawbars e dei 3
potenziometri degli effetti vibrato, chorus e riverbero
- legge lo stato degli interruttori della percussione (on/off, 2^/3^ armonica, normal/soft, fast/slow) e
imposta il release time inviando il messaggio <CC 73 sul canale 13>
- legge lo stato degli interruttori del vibrato, chorus e riverbero ed invia i messaggi <Control
Change 01> (Modulation Wheel), <CC 93> (Chorus) e <CC 91> (Reverberation)
Per ultimo il codice accende e spegne un led ogni 100 msec per evidenziare il corretto
funzionamento
il codice sorgente commentato è da compilare e caricare con la IDE 1.0.x
Il codice sorgente non è ottimizzato perché ho aggiunto un pezzo alla volta per avere sotto
controllo le varie attività, è quindi possibile ridurre il numero delle variabili ed anche abbassare il
tempo di trasmissione delle note gestendo opportunamente il “running status” del midi. Anche con
il codice non ottimizzato bastano meno di 9 millisecondi per inviare il treno di nove note e mandare
a regime il timbro con tutte le armoniche: ad orecchio non ho riscontrato una latenza avvertibile fra
tasto premuto/rilasciato e suono generato/stoppato.
La calibrazione dei livelli sonori Una prima calibrazione riguarda le quattro costanti usate per l’effetto percussione: valore iniziale
soft e normal, decay time fast e slow. La prima coppia di valori è relativa all’ampiezza iniziale e li
ho trovati per tentativi.
const byte c_forza_h=64; //normal vol max
const byte c_forza_s=53; //sweet vol -3db
const byte c_time_rel_f=94 ; //fast release ~ 300msec
const byte c_time_rel_s=99; //slow release ~ 630msec
Per ottenere le restanti due costanti del decay time ho invece misurato con l’oscilloscopio il tempo
necessario per azzerare il livello di uscita dopo la pressione di un tasto. Per strumenti diversi dalla
mia PSR290 potrebbe essere necessario modificare tali quattro costanti.
Una seconda calibrazione è necessaria per far si che ad ogni step dei drawbar corrisponda un
incremento di 3 dB del segnale di uscita. Non ho trovato nessuna specifica midi che descriva la
relazione fra il “velocity” della nota ed il livello del segnale audio generato, ma in rete ho letto un
interessante articolo sulla percezione acustica delle note musicali. E’ esposta la relazione fra
velocity inviata e la SPL (Sound Pressure Level) generata su un Bösendorfer SE290, un pianoforte
acustico a coda con controllo midi:
SPL= -77.2 + 26.1 x log10(MIDIvelocity) + 5.3 x log10(MIDIvelocity)^2
Ho confrontato tale curva con quella che ho misurato sulla mia PSR290 con il SW Visual Analizer
Sillanum: l’andamento è abbastanza simile per cui ho usato la funzione citata per calcolare gli 8
valori di velocity necessari a generare gli incrementi di -3dB .
Con la funzione Spectrum di VA ho poi riverificato che i valori dei livelli avessero rispettato i salti
di – 3bB ed ho memorizzato tali valori così calcolati in un vettore
byte db[] ={0,18,21,25,30,36,44,53,64};
Ho limitato il valore di velocity a <64> perché suonando molte note contemporaneamente la
somma dei segnali avrebbe mandato in saturazione l’amplificatore interno della PSR290. Usando
altri strumenti potrebbe essere necessario aggiustare i valori che ho usato.
Il codice suddivide l’escursione dei potenziometri in 9 zone assegnando valori fra 0 e 8 ed usando
il valore trovato come indice per leggere il vettore di calibrazione.
val_0 = analogRead(in_0);
pot0 = map(val_0, 0, 1024, 0, 9);
volu0=db[pot0];
Il valore <1024> nella funzione map() invece del normale <1023> è necessario per gestire il
troncamento dei calcoli fra i numeri interi effettuati dalla funzione map().
Quando si attiva la percussione i valori di velocity delle nove armoniche forniti dalla posizione dei
drawbars vengono tutti abbattuti di 3 dB diminuendo di 1 unità l’indice di lettura del vettore di
calibrazione.
La realizzazione
Per dare una adeguata dimora allo YACH ho usato un un contenitore 22x12x7, ho forato il suo
pannello in alluminio e vi ho applicato una stampa laser adesiva a colori con uno sfondo tipo legno.
Il contenitore è verniciato in marrone con un mix di colore acrilico e tempera, il primo fa presa sulla
plastica e la seconda da l’effetto coprente.
Come si usa Per iniziare a suonare occorre seguire questi passi:
- si collega la tastiera musicale allo YACH con due cavi midi - si accende la tastiera musicale
- si imposta sulla tastiera il parametro midi <local on/off> su OFF per sganciare la tastiera
dall’expander musicale, il codice lo fa già ma non tutti gli strumenti potrebbero riconoscere il
messaggio <CC 122>
- sulla tastiera è opportuno, anche se non è indispensabile, impostare il parametro midi <external
sync > su ON: lo strumento lavora come slave evitando di trasmettere in continuazione i messaggi
di sincronismo ed alleggerendo il lavoro dell’ATMEGA328P.
- si accende lo YACH per inviare i messaggi di inizializzazione.
A questo punto si impostano i drawbars, ad esempio su power threecon 88.8000.000, si
imposta riverbero, vibrato e chorus al livello desiderato, si configura la percussione e vai!
Se il led smette di lampeggiare o qualcosa non va basta spegnere e riaccendere lo YACH, in
alternativa si puo’ collegare un pulsante, anche a pedale, ai pin 1 (gnd) e 4 (rst) del connettore di
programmazione per realizzare un comando di reset/panic. Io non l’ho previsto sul pannello per
motivi estetici.
I limiti Vista la semplicità dello YACH i limiti sono molti, occorre accontentarsi.
- Serve una tastiera musicale GM2 politimbrica e con una polifonia di 32 note, l’ideale sarebbe
averne 48. Quando ci sono 6 drawbars fuori per ogni nota vengono generate sei armoniche, quindi
suonando un accordo ed una melodia “in legato” con la percussione abilitata abbiamo (3+2) x 6
+1=31 note, mentre con tutti i drawbars attivi si sale a (3+2) x 9 arrivando a 45 note. I settaggi
timbrici più comuni non prevedono più di 5-6 drawbars fuori, quindi ci si sta quasi sempre dentro.
- la ricezione degli eventi musicali avviene sul canale midi 1, se si vuole usare un altro canale
occorre aggiornare queste due costanti const byte NOTE_ON=144+0; const byte
NOTE_OFF=128+0; sostituendo allo <0> il numero del canale midi desiderato
- Non è presente né la funzione HW midi thru né la funzione SW midi merge
- Non c’è la riproduzione del “foldback”, una particolare configurazione per il reimpiego delle
note: le 91 note dell’organo Hammond non sono sufficienti a coprire tutte le armoniche per la parte
alta della tastiera e per la parte bassa della pedaliera. Il foldback è un argomento per archeologi
musicali come anche la riproduzione del click meccanico dei tasti e il silenziamento del nono
drawbar quando si attiva la percussione.
Il test Ovviamente non posseggo un organo Hammond (magari…) e per confrontare le timbriche ho usato
il software B4 della Native Instrument che penso sia il miglior emulatore sul mercato: tale
programma gira su windows ed emula un organo Hammond B3 con due manuali ed una pedaliera
accettando i messaggi midi su 3 canali e gestendo anche i driver audio ASIO.
Usando il programma Midi-OX ho inviato alcuni file midi demo per B4 con le tre tracce per i due
manuali e la tastiera sia al B4 che allo YACH. Prima di inviarli allo YACH ho reindirizzato con
Midi-OX i canali 2 e 3 dei files sul canale 1 dato che che riceve dati su un solo canale. Per avere un
suono decente ho collegato sia la scheda audio del PC che l’uscita audio della tastiera (la PSR290
ha una uscita per cuffie a circa 250 mV) ad un amplificatore stereo (due EL84 in SE pilotate da
una ECC83) che tira fuori poco meno di 4+4 watt veri, caldi e morbidi. Il Do centrale è a circa 270
Hz, quindi il Do più a sinistra sulla tastiera da 5 ottave è a 67 Hz ed il suo primo drawbar (il 16’) è a
34 Hz, sarebbero stati necessari un paio di altoparlanti adeguati a tali frequenze, pazienza.
A parità di estrazione dei drawbars e di effetti sonori inseriti le timbriche prodotte dallo YACH e
dal PC con il SW B4 sono davvero molto simili, per meno di quaranta di euro ci si può
accontentare!
Il costo I nove potenziometri a slitta li ho trovati a 2,5 euro l’uno, 7 euro sono andati per gli interruttori e
gli altri tre potenziometri, 5 euro per l’ATMEGA238P col bootloader, alla fine con gli integrati ed il
resto ho speso meno di 40 euro: pizza e birra per tre.
Riferimenti Brevetto Hammond Organ http://www.freepatentsonline.com/1956350.pdf
Brevetto Leslie Speaker http://www.freepatentsonline.com/2622693.pdf Box DB1 Ocean Beach http://www.gearnuts.com/store/detail/DrawbarDB1
SW B4 Native Instrument http://www.native-instruments.com/en/products/komplete/keys/vintage-organs/
Specifiche MIDI http://www.midi.org/techspecs/
Rec&Play speciale Hammond http://www.scribd.com/doc/126977870/hammond-organ-vintage-articles
Hammond players http://web.tiscali.it/hammondsoundpage/Eroi%20&%20discografia.html
Storia dell’Hammond http://web.tiscali.it/hammondsoundpage/
How Hammonds Work http://www.nshos.com/contents.htm
emulatore Hammond http://teichman.org/blog/2011/05/roto.html
emulatore Hammond http://www.goodeveca.net/RotorOrgan/index.html
drawbars settings http://keyboardservice.com/Drawbars.asp
emulatore Hammond http://www.electricdruid.net/index.php?page=info.hammond
GRIX – Magellano: p1- fisica del suono http://www.grix.it/viewer.php?page=6143
GRIX – Magellano: p2 - musica e matematica http://www.grix.it/viewer.php?page=6148
Funzione C midi_poll() http://www.instructables.com/id/Send-and-Receive-MIDI-with-Arduino/?ALLSTEPS
Settaggio interrupt http://arduinodiy.wordpress.com/2012/02/28/timer-interrupts/
SPL vs midi_velocity http://www.uni-graz.at/richard.parncutt/publications/GoPa02_Intensity.pdf
Bosendorfer CEUS http://www.company7.com/bosendorfer/docs/CEUS%20User's%20Manual%201.34_english.pdf
Yamaha PRS290 http://usa.yamaha.com/products/musical-
instruments/keyboards/digitalkeyboards/portable_keyboards/psr-290/
Conclusione Anche se lo YACH è una realizzazione davvero semplice suonarci qualche vecchio pezzo fa un
certo effetto. Forse sarà perché per noi rocchettari che negli anni 60 ascoltavamo nei garages la
musica d’oltre oceano il suono di un organo Hammond è inconfondibile: è quello di un periodo
meraviglioso della nostra vita.