Organo a canne

Buongiorno. Sto predisponendo un progetto per un organo a canne. Sono alle prime armi con il sistema Arduino. La programmazione non è un problema.

Avrei due quesiti hardware

  • Mi servono almeno 70 input (61 per la tastiera e 5 per i registri) e 90 output (numero di magneti 12vcc).

Pensavo di usare 2 schede mega 2560 e farci due programmazioni differenti: con la prima ci collego 30 tasti e gli altri sulla seconda.

  • i magneti funzionano a 12 vcc. Quindi le uscite dovranno sopportare tale voltaggio.

Cosa mi consigliate?

Grazie per il tempo che mi vorrete dedicare.

Buongiorno, :) essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente [u]evitando[/u] di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :)

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. ;)

I tasti vengono sempre collegati a matrice: ad esempio, 14 uscite x 5 ingressi (o viceversa), utilizzando solo 19 linee per 61 tasti e 5 registri. Metti un contatto dei 12 tasti delle 5 ottave in parallelo su 12 linee e il comune di ogni ottava su una delle 5 altre linee. I comandi dei 5 registri vanno sulla linea 13 di ogni ottava. Potresti anche fare una scansione 10x7 risparmiando 2 linee, ma si mischierebbero le note rendendo poi più difficoltoso scrivere il programma. Per leggere la tastiera, poi, fai una scansione delle uscite e, per ciascuna, vedi se arriva su un ingresso attraverso un tasto premuto. Ovviamente la scansione deve essere velocissima!

Potresti anche considerare di usare, se non tutta la tastiera, la scheda di una master keyboard commerciale uscendo da quella con un segnale MIDI.

Grazie per la risposta. Non avrei voluto usare il midi perché è un piccolo strumento. Ecco il mio progetto

sto costruendo un organo a canne (85 canne) dove ad ogni canna corrisponde un magnete 14vac. che apre e chiude il foro per l’aria.

Magneti comune col positivo. Il circuito si chiude premendo il tasto (negativo)

Col registro 8’ niente di complicato. Premendo il tasto 1 chiudo il circuito ed eccito il magnete 1 e suona la canna 1 tasto 2 canna 2.... ...tasto 61 canna 61

Ora, vorrei creare dei registri di 4 e di 2 utilizzando le stesse canne. Registro 4’ tasto 1 suona la canna 13 Tasto 2 la Canna 14 ....tasto 61 la canna 74

Registro 2’ Tasto 1 suona la canna 25 Tasto 2 la canna 26......... ....tasto 61 la canna 85

Registro Cornetto Tasto 1 suona canna 5 e 17 Tasto 2 suona canna 6 e 18 ....tasto 61 suona canna 66 e 78

L’inserimento dei registri è a libera scelta Posso inserire solo 8 solo 4 Solo 2 Posso inserire a piacere 1 e 3 oppure 2 e 3 ecc......

In pratica darei istruzioni tipo: Se stop1 .......Input 1 output 1 Se stop 2 ....input 1 output 13 Se stop 3 ...input 1 output 25

Come dicevo, sono nuovo nel campo. Devo studiare come fare la matrice e come programmarla. Grazie

Forse per l'input e l'output potresti prendere in considerazione l'uso di registri a scorrimento (non so se il tempo necessario a "caricare" i dati sia trascurabile per la tua applicazione) non è complicato l'utilizzo, basta solo fare molta attenzione ai collegamenti perché saranno parecchi fili da gestire.

Ti lascio i link di due dei tanti video che ne spiegano l'utilizzo, mi sembra spiegato molto chiaramente il funzionamento

Usare un registro a scorrimento shift register con Arduino - #48 Aumentare gli ingressi di Arduino con uno shift register - #157

Grazie per la risposta. Non posso accettare ritardi nell’invio o nella risposta. Credo che l’unica via sia di utilizzare 5 Arduino mega. Uno per ottava(12 tasti entrata e altrettante canne in uscita) Così da avere collegamenti diretti e scrivere un codice per ciascun modulo.

La perplessità a questo punto riguarda il fatto se sia possibile che l’input di una scheda comandi l’output di un’altra. Questo perché le canne sono più dei tasti quindi un tasto collegato ad una scheda potrebbe comandare la canna collegata all’uscita di un altra.

Credo proprio che l'unica soluzione ragionevole sia passare per il MIDI. https://www.logosfoundation.org/instrum_gwr/pos.html

Uhmm... https://hauptwerkhardware.com/product/universal-midi-encoder/

Cerca con le parole church/pipe organ keyboard encoder/encoding

L’esperienza con il Midi l’ho già fatta.

Pensavo di cogliere l’occasione del mio progetto per imparare Arduino dato che penso di non avere problemi con la programmazione.

Il sistema Hauptwerk lo conosco e sono stato uno dei pionieri di questo software. Ho anche fatto diversi campionamenti di organi.

Il secondo organo da me costruito (uso personale) che si può vedere su YouTube ( https://youtu.be/3lIYqcp8SmM ) è via midi.

Non solo. L’organo a baule (https://youtu.be/qeOcSxKmN3Q) dispone di una tastiera che via Bluetooth permette di suonare a distanza l’organo precedente che si trova in un altro locale.

Purtroppo l’hardware di Arduino in questo caso non mi viene incontro.

Ieri ho provato un sistema meccanico di apertura e chiusura circuiti che penso sia la soluzione migliore. Posterò il risultato appena trovo delle linguine di rame. Grazie

Il problema è che tu vorresti usare un'infinità di porte di un microcontrollore per leggere lo stato dei tasti. Il microcontrollore è fatto per elaborare informazioni, mentre non è tanto portato per fare velocemente operazioni elementari, per cui una logica cablata è molto più veloce, perché fa ciò che deve "istintivamente", in maniera predeterminata, senza dover fare delle elaborazioni. Un microcontrollore richiede alcuni cicli di clock (circa 60ns l'uno a 16Mhz) per l'operazione più elementare, mentre una logica cablata in qualche decina di nanosecondi produce il risultato all'uscita! Tu devi - fare una scansione continua della tastiera, con un periodo complessivo massimo di 10ms. Con una matrice 14x5 leggi i tasti e anche i comandi dei registri - elaborare i dati per fare i registri - pilotare le uscite. I relè potresti pilotarli passando per una seriale RS485 veloce, in maniera da non dover avere un microcontrollore con una uscita per ogni relè e con il vantaggio di poter remotare il somiere. Come hai fatto con il MIDI? Che circuito hai usato?

Ho collegato i contatti fisici ad un encoder (Costruito da me leggendo lo schema ma non dirmi cosa ho fatto che non lo so. Funziona e mi basta) poi con cavo midi un decoder acquistato online e al decoder ho collegato i magneti col negativo.
Tramite pc colleghi il decoder e stabilisci i canali midi e il numero di partenza

Per l’inserimento dei registri apro e chiudo il positivo collegato in serie ai magneti
Ma qui ho una nota per tasto e una canna per registro. In totale i dieci registri del mio organo fanno quasi 1000 canne. Tieni presente che il registro di cornetto suona due canne alla volta e il ripieno quattro canne alla volta per tasto. Col ripieno ogni tasto apre anche 15 canne.

Nel caso in questione, uso la stessa fila di canne per fare registri nuovi. Quindi mentre prima ogni magnete era collegato aL tasto corrispondente, adesso invece ogni magnete è collegato con tre tasti. Devo decidere io quale inserire

Col registro 8 tasto 1 suona solo la canna 1
Col registro 4 tasto 1 suona la canna 13
Col registro 2 tasto 1 suona la canna 25

Col registro 8 e 2 tasto 1 suonano le canne 1 e 25

Con Arduino pensavo di ideare istruzioni di inserimento registro secondo uno schema qui elementarmente esposto Perché prima l’inserimento di un registro era fisico tramite leva che apriva o chiudeva il positivo si magneti. Adesso, utilizzando la stessa canna per più tasti, pensavo a una soluzione software

Se registro 8 inserito Se tasto1 inserito Suona canna1 Se tasto 2 inserito suona canna 2 ..........

Se registro 4 inserito Se tasto1 inserito Suona canna13 Se tasto 2 inserito suona canna 14 ....... Se registro 2inserito Se tasto1 inserito Suona canna25 Se tasto 2 inserito suona canna 26

Con gli if (è meglio else if, oppure switch/case) viene troppo pesante. Ti conviene usare delle matrici, cioè delle tabelle.

un encoder costruito da me leggendo lo schema Quale schema? Fai vedere?

vediamo se ho capito bene

tu hai 85 uscite, ovvero 85 canne

che vengono comandate da 61 tasti e da 5 registri, ovvero 66 ingressi

la relazione tra ingressi e uscite è che un'uscita è abilitata se e solo se 1) viene premuto un determinato tasto 2) uno tra i registri abilitati ha una corrispondenza Tasto-->Canna

ho capito bene? se sì ho alcune domande: quante canne al massimo vengono abilitata da un tasto-registro? serve saperlo per decidere la forma migliore per stivare i dati come ti è stato giustamente già detto con una serie di if else non ne esci, e comunque non sarebbe ne bello ne facilmente mantenibile quindi la domanda è: un tasto premuto attiva una sola canna per registro? oppure alcuni registri con alcuni tasti attivano più di una canna? e se sì quante? attento che non ho chiesto se più canne sono attivate da più registri con uno stesso tasto,

passiamo ora all'hardware: 85 uscite sono sono 85 relè, che vanno comandati da una batteria di shift register, non puoi pensare di usare tre arduino (solo per le uscite ne servono due) altrettanto per gli ingressi come te la cavi con gli shift register? 85 relé per 85 canne sono un bel numero, hai esperienza di cablaggi del genere? come li comanderesti? ho letto prima 12 Vdc e poi 14Vac, cambia non poco la circuiteria necessaria

non ti preoccupare per i ritardi introdotti dagli shift register, non li vedrai nemmeno, sono ininfluenti rispetto ad esempio al tempo di attivazione delle elettrovalvole delle canne

comunque stivare, scrivere, correggere, aggiornare i dati che ti servono non sarà una bazzeccola, come te la cavi con le schede SD?

Le canne sono 90, ha detto. Un registro è un timbro, cioè la nota fondamentale più altre, che possono essere la terza, la quarta, la quinta, l'ottava e altre. Un accordo di modo maggiore, ad esempio, è composto dalla tonica, la terza e la quinta. Per semplicità, anziché realizzare canne apposite, si usano quelle delle note superiori, pur non avendo sempre esattamente la frequenza richiesta. Impostando un registro, quindi, suonando una nota (mettiamo Do) suonerà solo la sua canna; impostandone un altro, invece, suonerà anche la canna del Mi e impostandone un altro suonerà anche la canna del Do superiore. Esistono anche canne di forma particolare che emettono di per sé timbri diversi, cioè non emettono un suono sinusoidale puro, ma con alcune armoniche e, così come i registri, hanno nomi particolari.

Se il registro prevede tonica e terza maggiore, ad esempio, dovrà azionare la canna n e la canna n+4; per la quinta, n e n+7; per l'ottava, n e n+12; per l'accordo maggiore, n, n+4 e n+7.

Organo a canne: registri

angeloluigi: sto costruendo un organo a canne (85 canne)

Evidentemente lo OP non si esprime chiaramente

90 uscite MA 85 canne

Le altre 5 uscite non si sa a cosa servano