MIDI/USB Controller mit Arduino auslesen

Moin,

ich möchte mit einer USB Faderbox einen Arduino / Teensy steuern.

Irgendeine Idee, wie ich an die Daten komme? Gibt es da einen bekannten Standard für die Kommunikation oder gar eine Library?

Hat jemand sowas schonmal gemacht?

Beste Grüße

Helmuth

Da sollte doch normales Midi rauskommen.
Also eine Mdi Shield für den uno, ein usb to midi interface dazwischen und dann das: Arduino Playground - MIDILibrary

Erfahrung hab ich noch nicht, aber mein nächstes Projekt soll ein LED Streifen am E-piano sein, der über midi Daten empfängt und dann im entsprechenden Bereich leuchtet und je nach Anschlag die Farbe ändert.

Dein größtes Problem ist der USB Anschluss, da das Gerät keine DIN Buchsen hat. Das musst du irgendwie rüber.
Ich würde im ersten Schritt über nen Rechner gehen. Da das Ding über USB verbinden und eine Soundkarte mit Din Midi Connector.
Dann den Input des Devices an den Din routen. Google mal nach "virtual midi cable" damit machst du intern die Verbindung.

Das wären zumindest meine ersten Versuche.

Nein, genau so etwas habe ich noch nicht gemacht.
Was ich gemacht habe geht in die anderen Richtungen sozusagen:

  1. Mit Arduino oder Teensy MIDI-Signale generieren und an ein MIDI-Musikinstrument (z.B. Drum-Machine) schicken oder an einen PC schicken und dort Software steuern, die über MIDI kontrolliert werden kann (z.B. Ableton Live, Resolume, Adobe Audition...).

  2. Und ich habe solche Dinger (USB-Faderbox) verwendet um auch solche Software (siehe oben) zu steuern.

  3. Mit einem MIDI-Musikinstrument (z.B. Keyboard - so eines mit weißen und schwarzen Tasten :slight_smile: ) MIDI an einen Arduino senden, das Signal auswerten etc.

Was ich sagen kann (aber das weißt du wahrscheinlich ohnehin): so eine USB-Faderbox schickt "MIDI over USB". Wenn du das also mit einem Arduino oder Teensy verbinden willst, dann brauchst du wohl ein USB-Host-Shield das MIDI over USB kann. Habe nur oberflächlich recherchiert, aber das Arduino USB Host Shield verwendet den MAX3421E und in dessen Datenblatt habe ich nichts über MIDI gefunden. Aber ich kenne mich mit USB (und mit allem anderen auf der Welt) nur eher oberflächlich aus.

Helmuth:
... Hat jemand sowas schonmal gemacht? ...

Ich habe mal mit einem Uno einen „Kanalwechsler“ realisiert. Der hat Midi bekommen, und dafür gesorgt, dass es an einen anderen Midi-Kanal ging, als der Absender „wollte“.

Was Du vorhast, solltest Du zumindest von der Midi-Seite aus problemlos hinbekommen.

Gruß

Gregor

Diese aktuellen Faderboxen haben alle nur noch USB Ausgänge und halt einen Softwaretreiber dazu.

Das Einzige, was mir im Moment einfällt wäre, die Kiste mit einem USB Host fähigen Microcontroller zu verbinden, und erstmal alles mitzuscheiden, was über USB kommt. Nicht ganz trivial, da bereits USB 1.0 mit bis zu 12 MBit/s sendet.

Das auf SD zwischenspeichern und sich dann im HEX-Editor ansehen. Und dann hoffen, dass man eine Logik in den gesendeten Daten erkennnt.

Helmuth:
Diese aktuellen Faderboxen haben alle nur noch USB Ausgänge und halt einen Softwaretreiber dazu.

Uh, shit, ich glaube, ich werde altmodisch. Ich dachte bei Midi sofort (und ausschließlich) an eine 5-polige DIN-Buchse.

Naja, ich werde mich daran gewöhnen :slight_smile:

Gruß

Gregor

Schau dir mal auf Youtube an: Midikontroller selber bauen. Dort ist auch ein Link zur Homepage des Autors ( Götz Müller-Dürholt ) enthalten. Die Erkärungen sind super und die Software "rennt" Es werden auch Links agbeboten für eine (PC)Midi-Bridge... Die Implementierung der USB-MIDI-Schnittstelle wird über einen einfachen Hardwarehack durchgeführt.

Die Sache interessiert mich, habe deshalb ein wenig recherchiert. USB-MIDI-Controller sind ja oft recht preisgünstig und würden sich ausgezeichnet für Usereingaben eignen - Kunststück: genau dafür sind sie ja auch gedacht :slight_smile:

Die Stichworte lauten "USB Host Shield" und das sollte auch MIDI kennen/können.

Collin von Make hat sich damit beschäftigt: makezine.com: USB hacking
Der Beitrag ist zwar schon ein wenig älter, aber das könnte ein Ansatzpunkt sein.

Gruß
Udo

@RetroGreg:
Könntest du einen Hinweis geben, wo das zu finden ist "die Implementierung der USB-MIDI-Schnittstelle wird über einen einfachen Hardwarehack durchgeführt".
Ich habe nur "normale" MIDI-Steuerungen gefunden, also ohne USB und wenn, dann kein USB-Host. Aber vielleicht habe ich auch nicht gründlich genug gesucht.

Danke für den USB Hacking Link. Das macht die Sache erheblich einfacher, wenn man das Protokoll nicht selbst nachbauen muss. (Das USB Protokoll ist erheblich komplexer, als ich bisher dachte).

Gefilterte Echos im Serial Monitor sind da sehr nützlich.

Momentan habe ich mir mit einem alten DMX Pult geholfen - das hatte ich noch rumstehen und DMX empfangen ist relativ trivial.

24 Fader sind aber nicht genug - werde mir also trotzdem mal so eine Faderbox schicken lassen und schauen, ob ich da sinnvolle Daten extrahiert bekomme.

Grüße,

Helmuth