Forum: Mikrocontroller und Digitale Elektronik MIDI-Signale -> SD-Karte -> Arduino (Roboterband)


von Dominik (Gast)


Lesenswert?

Hallo Zusammen.

Ich arbeite gerade an einem Projekt. Entstehen sollte eine Roboterband. 
Diese Band sollte anhand einer mechanischen Vorrichtung mittels 
Steuersignale (Arduino) eine vorgegebene MIDI-Datei abspielen.
Das Projekt ist am laufen und es funktioniert so weit.
Zurzeit sende ich mittels einem Programm (Anvil Studio) vom PC über eine 
USB->MIDI Schnittstelle an ein MIDI-SHIELD am Arduino und werte dann die 
Daten aus und sende diese Steuersignale an die Endeffektoren.

Meine frage dazu wäre: Ist es möglich mit einem SD-Kartenleser und 
Decodierer (z.B.: VS 1053 von Adafruit) die MIDI-Dateien auch in Bytes 
am Arduino zu empfangen (SPI, UART,...).
Wenn es möglich wäre, könntet Ihr mir vielleicht Ein, Zwei Anhaltspunkte 
geben wie ich es Umsetzen könnte.

Bin leider sehr ungeschickt ;-).

Ich bedanke mich im Voraus.

Dominik

von R. M. (Gast)


Lesenswert?


von Dominik (Gast)


Lesenswert?

Danke für die schnelle Antwort.
Ja genau sowas suche ich. Es sollte zu diesen Projekt ein Arduino 
verwendet werden und die dazugehörigen Komponenten (ist alles 
vorhanden).
Aber ist es in allgemeinen möglich mit den Komponenten (VS 1053 Adafruit 
und Arduino) ein solches Projekt zu realisieren?

Danke
MfG

von R. M. (Gast)


Lesenswert?

Einen mp3-Dekoder brauchts für diese Aufgabenstellung (midi-Ausgabe) 
nicht, im genannten Projekt wird ein mega88 eingesetzt, könnte also auch 
mit einem passenden Arduino klappen.

von Dominik (Gast)


Lesenswert?

Ok danke für den Hinweis ;-).
Gibt es aber trotzdem eine Möglichkeit über diese Komponenten zu 
arbeiten (Möchte es gerne eine bisschen Eigenständig machen ;-))

Danke
MfG

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der VS1053 ist ein mp3-Decoder. Den brauchst Du nicht, denn der löst 
kein einziges Deiner Probleme.


Du brauchst einen µC (und da reicht ein Arduino dicke), der Midi-Dateien 
von einer SD-Karte liest und diese mit dem korrekten Timing auf seiner 
seriellen Schnittstelle (Achtung, korrekte Midi-Baudrate beachten!) 
wiedergibt.

Das bedeutet, daß Du Dir ansehen musst, wie so eine Midi-Datei aufgebaut 
ist und vor allem, wie die Zeitinformation darin codiert ist, damit Du 
die verschiedenen Midi-Events zum richtigen Zeitpunkt ausgibst.


Der Rest bleibt wie er ist, d.h. diesen "Midi-Player" verbindest Du mit 
Deinem bisherigen Aufbau anstelle des PCs.

von Dominik (Gast)


Lesenswert?

Danke vielmals für die Info!
Ich werde es mal so probieren.
Danke
Dominik

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Vielleicht magst Du Dir hier ein paar Ideen klauen:
http://www.instructables.com/id/Old-School-Arduino-MIDI-Sequencer/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
Lade...