Controller MIDI Capacitivo Arduino – Arduino e Ableton Live

Il seguente video illustra la procedura per la realizzazione di un controller MIDI capacitivo realizzato con Arduino connesso ad Ableton Live.

Il video contiene brevi indicazioni, scaricate i sorgenti e tutto il materiale completo da:
https://github.com/nerdityourself/CapacitiveMidiController

Iscriviti al nostro canale YouTube per saperne di più! 🙂

Per maggiori informazioni e istruzioni dettagliate su come connettere Arduino ad Ableton Live guardate il video dedicato:

Successivo Kinect & Processing Simple Bezier Curves - Disegnare usando il kinect

7 commenti su “Controller MIDI Capacitivo Arduino – Arduino e Ableton Live

  1. Guido il said:

    Grazie mille, si sei stato molto utile! Effettivamente sono alle prime armi, fino ad ora ho lavorato solo con circuiteria base e in analogico senza passare da arduino…
    ti disturbo ancora perchè guardando il filmato e vedendo lo schema fritzing non mi torna come e se sono state usate le resistenze e i capacitori di ceramica

    • nerdityourself il said:

      Figurati, non mi disturbi affatto!
      Posso dirti che il principio di funzionamento si basa sull’utilizzo di due Pin digitali, di cui 1 (nel nostro caso il Pin 8) è utilizzato per l’eccitazione e un’altro (uno per ogni tasto) è utilizzato come sensing.
      Il pin di eccitazione assume uno stato alto e attraverso una reistenza di valore molto alto (10MOhm ad esempio) carica una capacità connessa al corrispondente pin di sensing. In base al tempo nesessario a caricare tale capacità, e quindi al tempo che ci vuole prima che il pin di sensing veda un cambio di stato, si desume la capacità conessa al pin alla quale partecipa anche la capacità parassita del nostro corpo.
      Trovi una spiegazione sicuramente migliore della mia qui:

      http://playground.arduino.cc/Main/CapacitiveSensor?from=Main.CapSense

      Ciao 🙂

      • Guido il said:

        molto utile e ancora gentile/i!
        a livello di sensori ora funziona tutto, (con resistenze e capacitori di ceramica! – su breadboard) con ottime risposte e una soglia veramente bassa, oscilla fra lo 0 e 11 quando non viene stimolato il jumper.
        Purtroppo hairless midi mi da molti problemi: o si riempie di errori oppure risulta statico agli stimoli… la velocità è settata sulla velocità di serial.print e la porta seriale è quella di arduino (nel mio caso COM4).
        Con hairless midi ho visto che c’è da installare la libreria per arduino: ardumidi, l’ho installata correttamente, ma provando l’esempio dalla libreria (il primo dei tre), arduino mi da errore dicendo che non trova il percorso della libreria nella cartella library di arduino, ma ho controllato che c’è ed ha tutti i file necessari.
        Voi siete incappati in qualche errore del genere?

        • nerdityourself il said:

          Ciao Guido,
          per quanto riguarda Hairless MIDI che si riempie di errori ti invito a verificare che nel tuo codice non ci siano Serial.print… o analoghe che magari hai inserito per debug. Questi messaggi infatti andrebbero sulla seriale su cui Hairless MIDI è in ascolto. Ma lui riconosce solo messaggi con “struttura” MIDI, quindi se gli viene inviato qualcos’altro, va un pò fuori di testa.

          Poi per quanto riguarda la libreria, nel nostro esempio non l’abbiamo usata (dopo comunque ti rispondo anche riguardo l’errore relativo alla libreria).
          Per inviare i messaggi da Arduino ad Hairless MIDI abbiamo definito questo metodo

          void MIDI_TX(byte MESSAGE, byte PITCH, byte VELOCITY)
          {
          if(!debug)
          {
          status1 = MESSAGE + midichannel; // The first byte we have to send contains information about the command (note on ,note off, etc..) and the channel were we want to send the message
          Serial.write(status1);
          Serial.write(PITCH); // The second byte of the message contains the pitch
          Serial.write(VELOCITY); // The last byte of the message contatins the velocity of the note
          }
          }
          che deve essere richiamato quando vuoi inviare qualcosa ad Hairless Midi.

          MESSAGE = il comando che vuoi inviare, ad esempio 128 corrisponde a NOTA OFF e 144 corrisponde a NOTA ON

          PITCH = la nota che vuoi inviare scritta con il suo valore MIDI
          https://www.google.it/search?q=valori+midi+note&espv=2&biw=1422&bih=1025&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiXuPvSle7OAhWByRQKHSRNBZoQ_AUIBygC&dpr=0.9#tbm=isch&q=midi+note&imgrc=paoX7Kf8DQwZtM%3A

          VELOCITY = la velocità della nota (per il momento ti consiglio di metterlo fisso a 127 per fare le prove)

          Quindi intanto, per vedere se Hairless MIDI funziona bene, puoi verificare la prima cosa che ti ho detto, poi definire questa funzione che ti ho copiato e richiamare questa funzione nel loop dandogli in ingresso dei valori che vuoi tu. Dovresti vedere apparire in Hairless MIDI le informazioni relative al messaggio che gli sta arrivando.

          Per quanto riguarda la libreria che procedura hai seguito? Hai scaricato lo zip da qui? http://playground.arduino.cc/Main/MIDILibrary
          E poi installato la libreria da Sketch > Inclusione Librerie > Includi libreria da file .zip ?

  2. Mario88 il said:

    Bello! Avete un diagramma di flusso del programma e in generale del controller? Sono curioso

I commenti sono chiusi.