Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

11 Schritt:Schritt 1: Was brauchen wir? Schritt 2: Warum OSC? Warum nicht eine direkte Verbindung? Schritt 3: Anschließen des Arduino Schritt 4: Die Elektronik hinter dem, was hier geschieht. Schritt 5: Installieren Sie die CNMAT OSC-Bibliothek Schritt 6: Finde heraus, die lokale IP-Adresse Ihres Computers mit OSX Schritt 7: Arduino Code Schritt 8: Schließen Sie Ihr Arduino Uno und Ethernet-Schild mit dem Heimnetz Schritt 9: Lassen Max eingehende OSC Nachrichten abzuhören und senden Sie sie ab Schritt 10: OSCulator Schritt 11: MIDI Learn einen Knopf in Ableton Live


In diesem instructable werden wir ein Potentiometer auf einem Arduino Uno verwenden, um eine MIDI CC in Ableton Live steuern. Ein MIDI CC steht für Continuous Controller, dh eine Zahl im Bereich von 0 bis 127 einschließlich, etwas mit zu modulieren. Im youtube ich für dieses Intro Sie sehen und hören, dass wir die Filterfrequenz mit dem Potentiometer modulieren kann gemacht. Ein Potentiometer ist ein Elektronik-Komponente, die Sie in einem Widerstandswert wählen können. Diese instructable beschäftigt sich mit dem Apple OSX-Betriebssystem, aber Sie können hoffentlich zwischen den Zeilen lesen und Umsetzung einer modifizierten Version für Ihr Betriebssystem der Wahl.

Schritt 1: Was brauchen wir?

  1. Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Wir müssen verschiedene Teile der Hardware und Software, um diese gesamte instructable wiederherzustellen. Lassen Sie uns über sie gehen zuerst. Wir werden mit der Hardware zu starten:
    Ein Arduino Uno . Ein Arduino Ethernet Shield . Ein Wandstromnetz USB-Anschluss. Ein USB-Kabel, die mit dem Arduino Uno verbinden wird. Ein LAN-Kabel, das an den Ethernet-Abschirmung verbinden wird. Ein Heimnetzwerk-Modem, das Sie ein Ethernet-Kabel mit ihm verbinden können. Ein Steckbrett. Die eine, die mit dem kommt Arduino Starter Kit wird gut tun. Ein Potentiometer. 10K 1/4 Watt tun wird. Kabel an das Potentiometer auf der Arduino Uno verbinden. Ein Mac mit OSX auf dem gleichen Heimnetzwerk.
    Jetzt für die Software:
    Eine stabile Version von OSX . Ich habe für dieses 10.10.3 instructable. Ableton Live . Früher habe ich Ableton Live Suite 9.1.9 für diese instructable. Das Arduino IDE . Ich habe 1.6.2 für diese instructable. OSCulator . Max (auch als Max / MSP bekannt). Früher habe ich die Version 7 für dieses instructable. Die CNMAT OSC-Bibliothek für die Arduino.

Schritt 2: Warum OSC? Warum nicht eine direkte Verbindung?

  1. Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Sie können sicher schließen Sie einen Arduino Uno direkt auf Ableton Live. Aber das ist nur ein sehr kleines Beispiel für die Steuerung eines MIDI CC mit einem Potentiometer. Was, wenn Sie, um das Projekt weiter zu senden Akkorde aus dem Arduino zu Ableton Live suchen? Oder vielleicht möchten Sie in der Lage, mehrere Parameter in Ableton Live mit einem Dutzend Potentiometer einzustellen. An diesem Punkt eine direkte Verbindung wird schwerfällig und bricht auseinander. OSC ( Open Sound Control ) ist eine elegante Lösung für gerade diese Art von DIY-Projekte.
    OSC ist ein Content-Format an CNMAT von Adrian Freed und Matt Wright vergleichbar mit XML, WDDX oder JSON entwickelt. Es wurde ursprünglich für den Austausch von Musik Leistungsdaten (Gesten, Parameter und Tonfolgen) zwischen Musikinstrumenten (vor allem elektronische Musikinstrumente wie Synthesizer), Computer und andere Multimedia-Geräte vorgesehen. OSC wird manchmal als eine Alternative zu dem MIDI-Standard 1983, wobei eine höhere Auflösung verwendet, und ein reicheres Musikparameterraum gewünscht wird. OSC-Nachrichten werden häufig über das Internet und im Wohnhaus und Atelier Subnetze mit (UDP / IP, Ethernet) transportiert. OSC Nachrichten zwischen gestural Steuerungen werden üblicherweise über serielle Endpunkte USB indem sie in der SLIP Protokoll verpackt übertragen.
    OSC gibt Musikern und Entwicklern mehr Flexibilität in der Art der Daten, die sie über die Leitung senden, die neue Anwendungen, die miteinander auf einem hohen Niveau miteinander kommunizieren können.
    (Von http://en.wikipedia.org/wiki/Open_Sound_Control )
    Auch wenn es seltsam, UDP Networking zwischen Ihrem Arduino Uno und Ableton Live verwenden, fühlen, denken Sie daran, dass diese Lösung noch einige Male schneller als Ihre Vanille MIDI-Kabel, wissen Sie, die Sache mit dem DIN-Stecker.
    Eine andere schöne Eigenschaft mit UDP ist, dass es nur ein Netzwerkprotokoll. Jedes Gerät kann das Senden UDP-Pakete beginnen und jedes Gerät ist auf UDP-Pakete zu hören und zu nutzen. Kein Prozess wird monopolisieren einen seriellen Port und es spielt eigentlich keine Rolle, dass viel in welcher Reihenfolge Sie die verschiedenen Programme zu starten. Denk darüber nach.

Schritt 3: Anschließen des Arduino

  1. Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Fügen Sie das Arduino Ethernet Shield zu Ihrem Arduino Uno. Es ist beschrieben worden, hier . Bevor Sie dies tun, notieren Sie sich die MAC-Adresse, die wahrscheinlich auf der Unterseite Ihres Ethernet Shield ist. Sie finden diese Nummer später benötigen und es ist ziemlich schwer zu lesen, wenn die Ethernet-Schild ist piggy gesichert auf der Arduino Uno.
    Montieren Sie die Arduino Uno + Ethernet Schild mit dem Steckbrett. Das Arduino Starter Kit wird erklärt, wie alles, was auf dem Holzbrett, die mit ihm geliefert zu installieren. Aber jede Steckbrett tun wird. Sparkfun und Adafruit haben große diejenigen zu.
    Die 10K Potentiometer geht auf das Steckbrett. Alle drei Pins der Potentiometer sollten ihre eigene Reihe von Steckbrett Löcher haben. Es ist durchaus üblich, dass Breadboards haben Reihen von 5 Löchern (a1b1c1d1e1 oder f2g2h2i2j2 zum Beispiel), die elektronisch miteinander verbunden sind. In der Tat, das ist der ganze Spaß und die einfache Montageplatten.
    Verbinden Sie die drei Adern vom Potentiometer an den Arduino Uno. Der erste geht von einem der äußeren Pins des Potentiometers Arduino Boden. Der zweite geht von der anderen äußeren Stift des Potentiometers bis 5 Volt Arduino. Die dritte geht vom mittleren Pin des Potentiometers zu Arduino analog in 0 (A0). Es hilft, farbigen Kabel für Ihr Kabel verwenden.

Schritt 4: Die Elektronik hinter dem, was hier geschieht.

  1. Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Wenn Sie verstehen, was zwischen dem Potentiometer und dem Arduino geschieht benötigen, können Sie den Artikel zu lesen Analog Seriell lesen auf der Arduino-Website. Die Bilder in diesem Schritt auch aus diesem Artikel.

Schritt 5: Installieren Sie die CNMAT OSC-Bibliothek

  1. Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    In diesem Schritt nehmen wir an, Sie haben die Arduino IDE installiert. Wenn nicht, befolgen Sie diese Anweisungen . Stellen Sie sicher, dass es in der Lage, Code auf Ihre Arduino laden ist. Es ist leicht zu vergessen, den richtigen Port und Verpflegung in der Arduino IDE-Einstellungen zuweisen (siehe Abbildungen in diesem Schritt).
    Laden Sie die kostenlose OSC zip-Paket von CNMAT die github OSC-Seite . Er sagt, "Download Zip" in der rechten unteren Ecke. Sie brauchen nicht, um sie zu entpacken. Wählen Sie einfach Sketch - Include Bibliothek - ZIP-Bibliothek hinzufügen ... aus dem Arduino IDE-Menü und verweisen Sie auf den OSC Zip-Paket Sie gerade heruntergeladen. Von nun an werden Sie "OSC" oder "OSC Master" im Beitrag Menüpunkt Bibliotheken im selben Menü.

Schritt 6: Finde heraus, die lokale IP-Adresse Ihres Computers mit OSX


  1. Das Arduino Uno wird OSC (UDP) Nachrichten an dieser Maschine zu senden, und wir werden diese IP-Adresse in der Arduino-Code codieren.
    Sie können ifconfig in der OSX-Terminal ausführen, um die IP-Adresse Ihres Gerätes sehen. Eine weitere Möglichkeit ist, um den Administrationsseiten des Modems anmelden. Es könnte ein "lokales Netzwerk" Seite gibt, die alle Maschinen mit Ihrem lokalen Netzwerk verbunden Listen sein. Wenn Sie sind sehr sicher, dass die IP-Adresse beginnt mit 192 (wie es oft der Fall ist), können Sie ausführen:
      ifconfig | grep 192 

Schritt 7: Arduino Code

  1. Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno
      // Arduino auf MIDI CC via OSC.
     // Arduino IDE 1.6.2.
     // Hens Zimmerman, 8. Juni 2015.
    
     #include <Ethernet.h> 
     #include <EthernetUdp.h> 
     #include <OSCMessage.h> 
     #include <SPI.h>
    
     // MAC-Adresse von der Unterseite des Ethernet Schirm.  YMMV.
     Mac-Byte [] = {0x91, 0xB2, 0xDA, 0x0D, 0x32, 0xB0};
    
     // Ein EthernetUDP Beispiel, uns zu senden Pakete über UDP.
     EthernetUDP Udp;
    
     Leere setup () 
     {
       // DHCP eine IP-Adresse.
       Ethernet.begin (Mac);
      
       // Wir werden hier nur zu senden, so verwenden Sie eine beliebige Listen-Port.
       Udp.begin (1234);
     }
    
     Leere Schleife ()
     {
       // Erstellt eine OSC-Nachricht.
       OSCMessage MSG ("/ analog / 0");
       // Als Wert, fügen Sie den aktuellen Wert des Analogeingang 0.
       Msg.add (analogRead (0));
    
       // Max senden, [udpreceive 5678] wartet an Port 5678.
       // Zum einen Ihrer Computer mit Max Ändern Sie die IP-Adresse.
       Udp.beginPacket ("192.168.178.42", 5678);
       Msg.send (UDP);
    
       // Aufräumen.
       Udp.endPacket (); 
       Msg.empty ();
    
       // Gib ADC (Analog-Digital-Wandler) einige Zeit, um sich niederzulassen.
       Verzögerung (20);
     }
    

Schritt 8: Schließen Sie Ihr Arduino Uno und Ethernet-Schild mit dem Heimnetz

  1. Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Das Arduino muss Strom aus der Steckdose. Ein USB-Ladegerät wird gut tun, denn das Arduino / Ethernet-Schild Combo zieht so wenig Strom.
    Ein LAN-Kabel geht vom Ethernet-Schild an Ihr Modem.

Schritt 9: Lassen Max eingehende OSC Nachrichten abzuhören und senden Sie sie ab

  1. Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Jetzt können wir einfach lassen Sie die gesamte Max Schritt hier (weil wir OSCulator ), aber ich vermute, Sie sind ein Max Kopf und es gibt zig andere Dinge, die Sie tun können, mit Arduino OSC-Nachrichten, die in Max Spaß machen.
    Für eine Sache, haben wir links die Reichweite des Arduino analog zu lesen, um [0 .. 1023], während eine MIDI CC ist ein 7-Bit-Zahl im Bereich [0 .. 127]. Wenn Sie die gesamte Max Mitte-Mann Ansatz überspringen planen, möchten Sie vielleicht, um die analoge Nummer im Arduino Code zu skalieren, bevor Sie es in ein OSC-Paket. Das ist einfach eine Frage der Verwendung dieser Codezeilen:
      int Sensorvalue = analogRead (A0); 
     int Output = map (Sensorvalue, 0, 1023, 0, 127);
     OSCMessage MSG ("/ analog / 0");
     Msg.add (Output); 

    Aber wenn Sie diese instructable folgen, werden wir tun Max die Skalierung statt. Wie Sie auf dem Bild sehen kann, senden wir zwei UDP-Pakete. Der linke sendet an eine Maschine mit einer weiteren IP-Adresse, auch hört Port 5678, während der rechte sendet an derselben Maschine aber auf Port 5679. Also, was ist das Problem? Wenn Sie die Dinge einfach halten wollen, nur den rechten Teil zu verwenden. Das ist, wo Max sendet eine skalierte Version des OSC Daten OSCulator (im nächsten Schritt). Eine vereinfachte Max Patch, nur, dass hier eingefügt hat:
      ---------- ---------- Begin_max5_patcher
     677.3ocuV8uaaBCD9uIOEVVZRaprTaiAi2qRyTEAbothXPfIKUU8ce9Gg1jT
     ZCoh1HEr8wcm + tye2geZQ.bc8NQGD7GvMfffmVDD3DYEDrec.bS1t7prNmZv
     MhttrRALz + NsXm1IOhOHpISmeuTUdaqHW6ccRBeIJDPhY1AZraAYIB7281T2
     qqDZ8iMBuAP3KupS + XkSJbXCjEtk0qe3233Agp9MRkwGNTRdUn2yNo3Cvbdc
     UcqeuPKoQbBNIzLiQ4HhcBI1OCe.HWWdjUQrDJCaUNJkFgo1YzQsfbAlT1lU
     HEJ8g.dc4cxpJmqtcHGA8XYDMbOwWDJOw3WvKgivbWhIBwSQT + LiH7Y7vfCP
     VKPL6N6rkfiS3uusYpR + YMgYs8sJzzV2T2pk0JqVFGxGyK855CSiFWYU54EK
     rOBmHQWI9mgg8FddWSqTouCrBd8FYgLOmR. + + nXE7CX wj3CX + XRx7Q + ÖIR + w
     iS + mwjPdVk.f.XDIxNPXSH7wN5.FSlsvmOZzm7UG88EMcBUA.yIKwIoKwrzk
     FVPbBie9zPDh5RCo72jF9vXM9BNomQ5d98lZRw4CKbh6XMwzBM9rmtg.noFZ
     XXZwe5ED + QyW72JJE6ZrU6Yprp5xqQfetx7q3pe8g07TN0kIvXeQOEMAVe3I
     + + MVlgbAYl3YsJvDtB4Vgk4mNgbAyyTvnYqA.6S19y4cXkTc5cebn2J 37QWc
     ea9.1124A7J7KDcZoJa3yR275cS.3WT5dYQgv + YqAyjcYqqDEueI6rBG5QJ8
     UBmzI.G92FZXS.MjuMzPNhTLNZR + 1PyIjhwgS7mDN9prrllsh1t8tzgDS + kG
     72QjE5VJU9kNOZ54tUNnejSRVqomh1zPou02KXWh + lOvM0EhVUubeEtYmedw
     + 8s4tuB
     ----------- ----------- End_max5_patcher
    

    Sie müssen noch die IP-Adresse in das Feld [udpsend] Objekt an die eines Ihrer Maschine läuft OSX ändern. Je komplizierter Patch mit den beiden [udpsend] Objekte zeigt, wie Sie ganz einfach verwenden, um die gleiche Max OSC Nachricht an verschiedene Empfänger senden. In der Tat war die linke [udpsend] für mein iPad Lauf TouchOSC .
    Ein paar Anmerkungen über die Max-Patch:
    Die [Regexp] Objekt analysiert die Parameter aus der OSC-Nachricht. Im Grunde haben wir ignorieren die gesamte / analog / 0 Teil der Nachricht und sind nur an den tatsächlichen Wert. Aber Sie sehen, wie man Max Patch könnte mit mehreren OSC-Nachrichten mit unterschiedlichen Namen bombardiert werden. So können Sie entscheiden, was mit die Nachricht zu tun, oder zu differenzieren zwischen verschiedenen Potentiometer usw. Die [ändern] Objekt wird die Datenmenge gering zu halten. Die Schleife in der Arduino Code sendet nur den OSC Nachricht immer und immer und immer wieder zu allen Abhörgeräte. Sie wollen nur auf die Daten reagieren, wenn jemand dreht das Potentiometer, das ist, wo die [ändern] Objekt kommt in. [Skala] offensichtlich macht das gleiche wie der Karte () -Funktion in der Arduino Code könnte früher getan haben. Es bringt den Parameterwert zurück von [0 .. 1023], die dem gemeinsamen MIDI CC Wertebereich von [0 .. 127]. [Sprintf "/ midicc42% d"] dreht sich die ankommenden Daten in eine ganz neue OSC Nachricht. Dies ist nur, um zu zeigen, wie mächtig Max kann als Mittelsmann zwischen allen Ihren OSC Bedürfnisse.

Schritt 10: OSCulator

  1. Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    OSCulator , einmal installiert, läuft auf Ihrem OSX Maschine auch. Es hört auf Port 5679 in diesem Fall (der Port in der OSCulator Fenster links oben gesetzt), so wird es Nachrichten von Max 7. erhalten nun durch, wenn Sie die Arduino Ihrem Heimnetzwerk verbunden sind, drehen Sie das Potentiometer sollte die Erzeugung ordnungsgemäße OSC-Nachrichten. Wenn alles gut geht, OSCulator sofort holen unsere / midicc42 Nachricht und es in die Liste hinzuzufügen. Es ist dann an uns, stellen Sie den Ereignistyp zu MIDI CC und der Wert bis 42. Letzteres ist natürlich mehr oder weniger willkürlich.
    Warum verwenden wir OSCulator? Da Ableton Live zur Zeit nicht auf OSC Daten zu hören. Aber OSCulator fungiert als Brücke zwischen OSC und MIDI. Ableton Live sieht einfach OSCulator als MIDI-Eingabegerät. Und das ist das Schöne daran!
    Achten Sie darauf, alles zu arbeiten, bevor sie zu den nächsten Schritten. Das Kontrollkästchen neben / midicc42 in OSCulator sollte aufleuchten, wenn Sie das Potentiometer drehen. Wenn nicht, hier sind einige Dinge zu überprüfen:
    Ist der Arduino Uno eingeschaltet? Sie müssen es über ein USB-Kabel an das Stromnetz anschließen. Da der Arduino verwendet sehr wenig Strom, können Sie es mit einem USB-Ladegerät mit einem USB-Kabel. Können Sie die Ethernet-Schild im Heimnetzwerk sehen? Wieder finden Sie Admin-Seiten des Modems zu sehen, ob DHCP eine IP-Adresse an den Ethernet-Schild. Aus diesem instructable brauchen wir nicht, um die tatsächliche IP-Adresse des Ethernet-Schild weiß. Es ist nur zu prüfen, ob es gesund und munter.

Schritt 11: MIDI Learn einen Knopf in Ableton Live

  1. Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Steuerung eines MIDI CC in Ableton Live mit einem Arduino Uno

    Ableton Live muss OSCulator als MIDI-Eingabegerät zu sehen. Dies geschieht meist automagisch, aber es schadet nie, um zu überprüfen. Im Dialog Einstellungen Lives, ob OSCulator Out zur Verfügung steht und Track and Fern sind unter der Registerkarte MIDI / Sync überprüft.
    Wenn alles gut geht, können Sie jetzt MIDI-Learn eine Steuer in Ableton Live. Alles, was in zu leben, dass tun wird rotiert, aber schönen Effekt schaffen einen Synthesizer mit einem Cutoff / Frequenzsteuerung und verwenden Sie diese ein. Um MIDI zu erfahren, klicken Sie einfach auf das Wort MIDI neben KEY rechts oben in der Ableton Live-Schnittstelle. Alle Arten von Kontrollen drehen dann blau. Wählen Sie das Wahl Sie automatisieren möchten, und drehen Sie das Potentiometer auf Ihrem Arduino Uno Steckbrett. Wenn Sie es geschafft, alles richtig zu machen, wird das Zifferblatt in Ableton Live jetzt sagen 1/42 im Kleingedruckten, was bedeutet, das sie empfangen MIDI CC-Nummer 42 auf Kanal 1. In der oberen linken Ecke des Ableton Live-Schnittstelle gibt es eine schöne Liste von MIDI- Zuordnungen, die Sie die Kontrolle erzählt ist MIDI abgebildet, auf die Nachricht. Wenn Sie einen Fehler machen, wählen Sie einfach die Zeile, die die falsche Zuordnung, und drücken Sie die Rücktaste hat. Sie können problemlos mehrere Zuordnungen hier. Wenn Sie fertig sind, klicken Sie auf MIDI (oben rechts) und wieder geht alles wieder normal.
    Ihre 10K Potentiometer ist jetzt ein MIDI-Controller. Spaß haben!