Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf ·...

11
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.

Transcript of Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf ·...

Page 1: Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf · Draw-bar Tipo Colore Armonica Grado musicale Canne d’organo Semitoni dalla nota

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.

Page 2: Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf · Draw-bar Tipo Colore Armonica Grado musicale Canne d’organo Semitoni dalla nota

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:

Page 3: Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf · Draw-bar Tipo Colore Armonica Grado musicale Canne d’organo Semitoni dalla nota

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

Page 4: Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf · Draw-bar Tipo Colore Armonica Grado musicale Canne d’organo Semitoni dalla nota

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.

Page 5: Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf · Draw-bar Tipo Colore Armonica Grado musicale Canne d’organo Semitoni dalla nota

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.

Page 6: Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf · Draw-bar Tipo Colore Armonica Grado musicale Canne d’organo Semitoni dalla nota

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

Page 7: Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf · Draw-bar Tipo Colore Armonica Grado musicale Canne d’organo Semitoni dalla nota

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.

Page 8: Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf · Draw-bar Tipo Colore Armonica Grado musicale Canne d’organo Semitoni dalla nota

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];

Page 9: Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf · Draw-bar Tipo Colore Armonica Grado musicale Canne d’organo Semitoni dalla nota

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.

Page 10: Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf · Draw-bar Tipo Colore Armonica Grado musicale Canne d’organo Semitoni dalla nota

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.

Page 11: Hammond Sound By double wrap - Altervistaadamatj.altervista.org/articoli/art16/hammondclone.pdf · Draw-bar Tipo Colore Armonica Grado musicale Canne d’organo Semitoni dalla nota

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.