MIDI Controller selber bauen!

  • MIDI Controller selber bauen!
    Tagchen!

    Ich habe mich kürzlich entschieden einen Midi Controller selber zu bauen. Er soll 4 Schieberegler, 2 Drehregler, 8 Knöpfe und LEDs für jedes Steuerelement haben.

    Das hier soll eine kleine Hilfe für alle sein, die sich selbst einen Controller bauen wollen, aber nicht recht wissen, wo sie anfangen sollen. Ich möchte zunächst aber darauf eingehen, was ich zusammengestellt habe. Weiter unten ist alles enthalten, was man braucht um es sich selbst zu machen :D .
    Wenn ihr in irgendeiner Form Hilfe braucht - einfach fragen. Ich helfe gerne! (nicht beleidigt sein, wenn ich nicht am selben Tag antworte, ich bin nicht andauernd im Forum :* ) Meine Mail ist aber subbestionix@gmail.com. Da kann man mich fast immer erreichen (Sync auf Android ist einfach geil #offtopic). Aber egal - LOS GEHTS!
    [hr]
    Mein Controller:
    Einkaufsliste
    Meine Einkaufsliste sieht wie folgt aus:
    1 x Arduino Uno
    1 x Gehäuse
    2 x 10 Arcade Knöpfe
    15 x LED Fassungen
    1 x 10 Drehpotis (Ich brauche nur zwei aber so billig wie die sind...)
    1 x 10 Drehpoti-Kappen
    4 x Schieberegler
    4 x Schieberegler-Kappen
    1 x Shift In Register
    1 x Shift Out Register
    2 x DIP 16 IC Sockel
    1 x Lochraster- oder Streifenrasterplatine a je 20 x 10 cm
    15 x LEDs (Ich nutze weiße, rote, grüne, gelbe und blaue)
    und nen Haufen Kabel, Lötzinn und Gedult.
    Aufbau & Verschaltung
    Plan ist es die Potis direkt an die sechs analogen Eingänge des Arduinos anzuschließen. Deren indikator LEDs werden selbstverständlich mit Schutzwiderstand (~220 Ohm müsste reichen) über die PWM Pinne des Arduinos (3, 5, 6, 9, 10, 11) angeschlossen, damit sie dimmbar sind.
    Die Knöpfe werden über das Shift In Register (74HC165) an den Arduino angeschlossen, was die Summe von acht Pinnen der Knöpfe auf drei Datenpinne (2, 4, 7) für das Shift Register reduziert.
    Alle weiteren LEDs werden über das Shift Out Register (74HC595) an angeschlossen, was aus ach wiederum drei (8, 12, 13) macht.
    Die Vcc und Gnd Leitungen, sowie den Kondensator lasse ich hier der Übersicht halber jedoch aus. (ist aber auf Schaltplan vorhanden)

    [hr]
    DEIN eigener Controller:
    Selber machen: Wo und wie fange ich an?
    Heutzutage ist es nicht mehr besonders schwer sich einen Controller selber zu bauen. Arduino und ein paar Komponenten, ein bisschen programmieren (auch für Anfänger machbar - alternativ das Skript benutzen, das ich geschrieben hab) und fertig.
    1. Steuerelemente
    Der Erste Schritt sollte jedoch sein, dass man sich klar mach: "Was brauche ich und wozu?". Mein Controller (oben) soll für das live mischen von vorbereiteten Tracks (z.B. mit FL-Studio oder Ableton) sein. Er ist aber kein DJ Mischpult mit Turntables/Jogwheels etc. Sucht euch also zunächst Komponenten raus, die ihr benutzen wollt:
    - Knöpfe (1 digitaler Pin)
    - Taster (1 Digitaler Pin)
    - Potis (Schiebe- oder Dreh- oder sogar Joysticks!) (1 Analoger Pin)
    - Jogwheels (2 Digitale Pinne)
    - LEDs (1 Digitaler Pin (mit oder ohne PWM = dimmbar))
    - Enfernungssensoren, Lagesensoren, und was euch noch so einfällt - Der Kreativität sind keine Grenzen gesetzt!!!
    2. Wie anschließen?
    Wenn ihr das habt müsst ihr euch Gedanken machen, wie ihr die ganzen Dinge anschließt: Jede Komponente braucht unterschiedliche Anzahlen von Pinnen und auch unterschiedliche Arten. Potis beispielsweise brauchen einen analogen Eingang zur Messung. Der Arduino Uno hat davon 6.
    Wenn ihr wisst, was ihr alles für Pinne braucht fällt schnell auf, dass die Pinne vom Arduino schnell nicht mehr reichen. Die kann man zum Glück aber erweitern, indem man Shift Register oder Multiplexer benutzt. Für jeden Fall gibt es eine Lösung:
    Mehr analoge Eingänge? Multiplexer (74HCT4051) (erfordert 1 analogen und 2 digitale Pinne)
    Mehr digitale Eingänge? Shift In Register (74HC165) (erfortert 3 digitale Pinne, beliebig erweiterbar)
    Mehr digitale Ausgänge? Shift Out Register (74HC595) (erfordert 3 digitale Pinne, beliebig erweiterbar)
    Mehr analoge (PWM) Ausgänge? Das ist etwas komplizierter. Googelt es mal... Möglich wäre evtl der MAX6954.
    [font="Arial, Verdana, sans-serif"]Wenn ihr das habt empfehle ich ein Platinenlayout mit Fritzing zu erstellen. Es ist einigermaßen Intuitiv und umsonst - probiert es mal aus ;)[/font]
    [font="Arial, Verdana, sans-serif"]3. Gehäuse[/font]
    [font="Arial, Verdana, sans-serif"]Wenn ihr alle Komponenten und Anschlussmöglichkeiten habt, sucht euch ein Gehäuse aus, NACHDEM ihr euch ein funktionsfähiges Layout überlegt habt. Gehäuse gibt es überall:[/font]
    - Conrad
    - Amazon
    - Reichelt, ELV etc. Googelt einfach danach
    Bevor ihr das ganze einbaut, probiert es aber erst mal aus. Das ist wichtig, um nicht alles noch mal auseinandernehmen zu müssen, wenn etwas nicht funktioniert oder ihr einen Fehler mit der Verschaltung gemacht habt.
    4. Die Programmierung
    Ich möchte nicht detailiert auf alles eingehen, was programmiert werden kann. (Für Hilfe siehe dieses Tutorial speziell für DIY Midi Controller) Ich habe jedoch für mich selbst ein Skript geschrieben, womit ich Potis und Taster / Knöpfe anschließen kann ohne alles einzeln programmieren müssen. Pro Komponente eine neue Zeile - fertig.. Ich werde vielleicht (wenn gewünscht) das Programm noch erweitern, wenn ihr das wollt.
    Um das Programm zu modifizieren müsst ihr für jedes Steuerelement in der setup() Funktion AddControl() ausführen. Dabei gibt es die Modi
    - Poti (Schiebe: oder Drehregler)
    - InversePoti (das selbe wie Poti nur umgekehrt)
    - Button (Taster)
    - ToggleDown (Umschalter beim Drücken)
    - ToggleUp (Umschalter beim loslassen)
    Danach muss der Eingangspin folgen (A0 bis A5, 2 bis 13), worauf der Ausgangspin für die LED folgt. Wenn keine LED genutzt wird einfach -1 schreiben. Zuletzt folgt die MIDI Control Nummer der Komponente.
    Wie immer: Wenn ihr Hilfe braucht - ich bin da :D
    MIDI.ino



    PS: Die AddControls, die da im Script schon sind müsst ihr natürlich weg machen, die sind nur als Beispiel da :D



    5. Platine Löten
    Wenn ihr eure Platine löten wollt beachtet folgendes:
    1. Nutzt den Arduino und verbindet ihn mit Kabeln mit der Platine, damit ihr ihn noch anderweitig nutzen könnt und neue Software aufspielen könnt.
    2. Benutzt die IC Sockel, um die Multiplexer und Shift-Register zu befestigen! Die Pinne sind empfindlich und Schaltungen vertragen keine Hitze.
    3. ÜBERPRÜFT DIE VERSCHALTUNG VOR DEM LÖTEN. Sonst kann es sein, dass die komplette Platine neu gemacht werden muss! Das ist extrem wichtig.
    4. Verkabelt Vcc (+) und Gnd (-) nicht immer einzeln sondern Brücke zu Komponente 1, Brücke, Komponente 2, Brücke, usw. Das Spart Zeit, Draht und Aufwand.



    6. Mit PC verbinden
    Um den Controller mit dem PC zu verbinden braucht man nur ein USB Kabel. Außerdem muss man Hairless installieren (das benötigt eventuell MIDI Joke, einen Midi Passthrough). Ohne Hairless würde der PC das gesülze vom USB Port nämlich net verstehen :D


    Wie man FL Studio mit nem Midi Controller verbindet muss ich in diesem Forum wohl nicht erklären :D


    7. Spaß mit dem neuen Controller haben!
    [hr]
    Eine Nachricht vom Autor...


    Ich hoffe euch hat dieses kleine mini-Tutorial geholfen. Es ist recht simpel gehalten und soll eigentlich nur zeigen, was alles wichtig zu beachten ist, wenn man so ein Projekt vor hat. Natürlich habe ich einiges Feinheiten ausgelassen. Aber der eigentliche Spaß dabei ist ja das selber machen - und wo wäre der Spaß wenn ich euch alles erzählen würde? :D :D :D .


    Sendet doch einfach mal die Controller, die ihr selber gebaut hier rein - andere können bestimmt noch von euren Erfahrungen lernen!


    Viele Grüße und viel Spaß,
    Subbestionix


    PS: Ich weiß ich hab andauernd zwischen du und euch gewechselt... naja egal xD
    PPS: Ich hoffe das ist das richtige unterforum :O

  • Hallo Subbestionix,


    VIELEN dank für diesen Thread. Ich bin mit dem Götzi leider etwas verzweifelt, da er nie genau den richtigen Code in den Videos angibt und im Folgenden Video immer mit einem anderen Code weitermacht, etwas verwirrend.


    Bei mir funktioniert nun endlich mein Midi Controller mit 4 Potis und 2 Schiebereglern.


    Eine Frage habe ich jedoch, Der Götz Müller sagt in einem Video, dass es möglich ist, den Controller direkt über USB als Midi gerät anzuschließen ohne die Hairless midibridge etc. zu aktivieren. Das entsprechende "Tool" ( den umgebauten usb - > Midi adapter) habe ich bereits gelötet und er wäre einsatzbereit. Windows erkennt ihn sogar als USB midi controller. Aber mehr auch nicht.


    Hast du ne Idee wie das gehen könnte? oder ist das mit deinem Code nicht möglich? oder mit dem Arduino UNO gar nicht möglich?


    über eine Antwort freue ich mich sehr.


    MFG


    totem


  • das is schon relativ alt. der ist schon garnicht mehr im forum wie man oben sieht "unregristriert"


    Red

  • Schade, hätte ihm gerne seine Lorbeeren überreicht ::D


    Habe es aber selbst hinbekommen. Für diejenigen die es interessiert, man muss die Baudrate im Code auf 31250 setzen, statt 115200.


    Lg


  • Also wenn du direkt ein echtes Midi signal aus dem Arduino haben willst, ist die Implementierung mit meinem Code nur teilweise nutzbar - ganz sicher bin ich mir da aber leider nicht.


    Ich weiß aber, dass es Alternativen zum Arduino Uno gibt, die direkt als MIDI Gerät am PC erkannt werden. Ich meine der Teensy wäre dazu fähig - google das mal. Ansonsten gibt es auch Arduino Shields, die echte MIDi Ausgänge haben und nicht USB als Interface nutzen.


    Edit: ich würde tatsächlich nicht mehr empfehlen solch einen Controller aus einem anderen Grund als einfach Spaß an der Sache zu bauen. Es kostet doch recht viel, es ist ein großer Aufwand und das Ergebnis ist nie so Fehler unanfällig, wie ein gekauftes Produkt beim selben Preis. Ich hatte aber ne Menbe Spaß beim bastteln - also wer darauf Lust, Zeit und Geld hat - go for it!

FL Studio Shop.de