Hallo
Ich hätte eine Frage, kennt sich irgendwer gut mit MIDI aus?
Wäre wirklich sehr wichtig.
Ich muss mit MIDI Protokoll 10 Töne "programmieren". Das Problem ist das
ich überhaupt keine Ahnung davon habe und ich mir auch schwer tue es mir
selbst beizubringen.
Hätte zufällig irgendjemand ein Beispiel File und könnte mir es
erklären?
LG
Meli schrieb:> Ich muss mit MIDI Protokoll 10 Töne "programmieren". Das Problem ist das> ich überhaupt keine Ahnung davon habe und ich mir auch schwer tue es mir> selbst beizubringen.
Das Problem sind nicht die 10 Töne. Das Problem ist, dass Du nicht
verrätst, was Du programmieren sollst.
Also welche Hardware, welche Programmiersprache ?
Ohne diese Infos wird Dir keiner helfen können (bei Deiner
Hausaufgabe^^).
Grüße
Andreas
Auf Wikipedia ist das MIDI-Protokoll erklärt.
Auf musik-mit-pc.de gibt es auch interessante
Informationen.
Ich hätte auch mal Lust, MIDI-Daten zu einem
Musikinstrument zu senden. Aber das ist nicht
so einfach. Das erste Problem ist die
krumme Baud-Rate von 31,25 kBaut. Die läst
sich auf mein Terminal-Programm nicht einstellen.
Man müßte vielleicht die Daten erst eimal zu einem
Mikrocontroller senden, der die Daten dann
mit 31,25 kBaut wieder ausgibt. Oder man muß
irgendwas fertiges kaufen.
Günter Lenz schrieb:> Ich hätte auch mal Lust, MIDI-Daten zu einem> Musikinstrument zu senden. Aber das ist nicht> so einfach.
Ich habe Dir mal eine Demo angehängt, die ich mal für jemand als kurzes
Beispiel gemacht habe, wie "kompliziert" MIDI ist. Das ist für einen
AVR, den er damals benutzt hatte.
Ich glaube nicht, dass es auf einer anderen Hardware komplizierter
wird^^
/Regards
AHz
Günter Lenz schrieb:> Aber das ist nicht so einfach. Das erste Problem ist die krumme> Baud-Rate von 31,25 kBaut. Die läst> sich auf mein Terminal-Programm nicht einstellen.
Das hat damit zu tun, daß die serielle Schnittstelle des PCs diese
Bau_d_rate nicht unterstützt.
Mit einem USB-Seriell-Adapter kann es funktionieren, aber dann
brauchst Du auch ein Terminalprogramm, bei dem Du beliebige Werte für
die Baudrate eingeben kannst, statt nur einige vordefinierte Konstanten
aus einer Liste auszuwählen.
Das sogenanne "Terminalprogramm" hTerm von Tobi kann das. Das ist zwar
kein Terminalprogramm im eigentlichen Sinne (denn es emuliert kein
Terminal), aber für Deine Tests sollte es ausreichen.
ich bin in Programmieren echt schlecht und darum checke ich schon
leichtere Sachen nicht...sorry
ich habe auch keine Ahnung welche MIDI-Sequenzen oder sonstiges ich
einstellen muss.
ich muss es in C++ programmieren
Übersicht:
Von einem Sensor bekomme ich ein Signal und dieses muss ich dann
verarbeiten und an einem Raspberry weiterschicken.
Datenprotokoll: MIDI
Anwenderprotokoll: I2C
Hallo :)
Ich wollte mir vornehmen für mein neues Zuhause eine "Klavierstiege" zu
programmieren. Leider komme ich nicht dazu das Projekt fertig zustellen.
Meine Frage wäre jetzt, ob jemand bereit wäre mein Projekt fertig
zustellen (natürlich gegen Bezahlung).
Ich hätt mir das so vorgestellt, dass ich von einem Infrarotsensor ein
Siganel bekomm, dieses an einen Arduino UNO weiterschicke, es dort
verarbeite und an einen Rasbperry weiterschicke. Das Datenprotokoll soll
MIDI sein und das Anwenderprotokoll soll I2C sein.
LG Franziska
> Das erste Problem ist die krumme Baud-Rate von 31,25 kBaut.> Die läst sich auf mein Terminal-Programm nicht einstellen.
Weil normale serielle Ports vom PC diese Baudrate nicht unterstützen.
> Man müßte vielleicht die Daten erst eimal zu einem> Mikrocontroller senden, der die Daten dann> mit 31,25 kBaud wieder ausgibt.> Oder man muß irgendwas fertiges kaufen.
Ganz genau. Die meisten Soundkarten haben ein Midi Interface im
Game-Port.
> ich habe auch keine Ahnung welche MIDI-Sequenzen oder sonstiges> ich einstellen muss.
Als Beispiel kannst du einfach ein Midi Musikstück abspielen und
"mitlesen", was da am seriellen Port ausgegeben wird. Dazu eignen sich
Logic-Analyzer sehr gut.
Manche Midi Programme können die Rohdaten auch in eine menschen-lesbare
Textdatei schreiben. Zum Beispiel das:
http://www.pnelsoncomposer.com/software/MIDIFile/
Meli schrieb:> Übersicht:> Von einem Sensor bekomme ich ein Signal und dieses muss ich dann> verarbeiten und an einem Raspberry weiterschicken.>> Datenprotokoll: MIDI> Anwenderprotokoll: I2C
Aha, wieder jemand, dem man alles einzeln aus der Nase ziehen muss.
Also, der Sensor sendet MIDI? Der Raspberry empfängt MIDI? Nu sag doch
mal bitte, wie die Kette aufgebaut ist, und wo da C++ ins Spiel kommt
(für einen Anfänger evtl. nicht die beste Wahl - nur mal nebenbei).
Um eine MIDI Note zu spielen, sendest du normalerweise
Note ON (hier mal auf MIDI Kanal 2, Note ist das C4, Voller Anschlag):
1
0x91,0x60,0x7f
Note On, Ton C4, Full Velocity
Nu spielt das Instrument das C4. Zum Stoppen sendest du ein Note Off:
OK, ich hab das Anvil Studio und das zeigt mir auch so was an.
Blöde Frage, aber wie kann ich das in mein Programm einbauen?
Der Sensor schickt 0 oder 1 (Schranke geschlossen oder offen) und dies
wird an den Arduino geschickt und das muss ich mit C++ (I2C und Midi)
programmieren.
Meli schrieb:>>> Der Sensor schickt 0 oder 1 (Schranke geschlossen oder offen) und dies> wird an den Arduino geschickt und das muss ich mit C++ (I2C und Midi)> programmieren.
Was jetzt?
Vorher war es ein Rasberry, jetzt ist es ploetzlich ein Arduino.
Deine Reputation waechst nicht wirklich, wenn du noch nicht mal weisst,
welches Geraet du eigentlich hast.
Und auf einem Arduino ist das nun wirklich Kindergartenkram. Wuerde mich
wundern, wenn es da nicht irgendwelche fix&fertigen MIDI-Klassen gibt.
Fazit: du bist nur zu faul, dir selbst was beizubringen. Das hat dann
noch nicht mal was damit zu tun, dass du in Programmieren echt schlecht
bist. Denn das bischen, was man auf einem Arduino dazu braucht, kann man
jedem Kleinkind in 2 Stunden beibringen.
Urteile nicht über andere, du kennst mich nicht einmal, also kannst du
gar nix sagen. So eine Aussage kannst du dir sparen, nur überheblich.
Wenn du nur blöde Aussagen von dir geben kannst, dann gib mir keine
Antwort.
Ich will sehen wie du es einem Kleinkind beibringen willst.
Meli schrieb:> Der Sensor schickt 0 oder 1 (Schranke geschlossen oder offen) und dies> wird an den Arduino geschickt und das muss ich mit C++ (I2C und Midi)> programmieren.
Ich halte mich normalerweise für einen Typen mit IQ im Mittelfeld, aber
ich verstehe hier immer noch Bahnhof. Das meinte ich oben mit
'Beschreibung der Kette'. Also, noch einmal: Wie kommuniziert welcher
Sensor mit was über welches Protokoll? Ich nehme mal an, das du
derjenige mit dem Treppendings (Klavierstiege?) aus dem anderen Thread
bist, denn das klingt genauso unklar.
http://www.mikrocontroller.net/topic/353734
Und wie oder wo kommt da MIDI ins Spiel? Spielt der RPi eine Melodie?
Meli schrieb:> Wenn du nur blöde Aussagen von dir geben kannst, dann gib mir keine> Antwort.
Ganz im Gegentum, Karl Heinz ist einer der geduldigsten Berater hier im
Forum und hat aber mal so richtig Ahnung. Aber mit deiner Beschreibung
hier sind wir alle ratlos, obwohl hier einige echte Freaks rumhängen,
die MIDI und I²C im Schlaf beherrschen.
Matthias Sch. schrieb:> Habe nur ich ein 'Dejà Vu'?> Beitrag "MIDI-Protokoll"
Zumindest die IP Adresse ist identisch.
Alles in allem klingt das fuer mich wieder mal nach dem Fall, bei dem
jemand denkt, die Dinge werden einfacher, wenn man mehrere Computer auf
ein 'Problem' ansetzt. In mehr als 95% der Faelle ist das Gegenteil der
Fall: Die Dinge werden komplexer, weil Kommunikationsschichten ins Spiel
kommen, die man nicht haette, wenn ganz einfach 1 Computer mit 1-nem
Programm alles macht.
Ok, auf einem Arduino wird das mit einem Wavetable-Synthesizer nichts
werden, aber ein paar Toene kann er auch produzieren. Auf der anderen
Seite hat man mit einem RaPi Rechenpower zur Verfuegung, gegen die so
mancher Grossrechner der 80-iger Jahre (der ganze Firmenkonzerne
geschupft hat) einfach nur alt aussieht. Der macht den Waverable Synthi
mit links und ein paar Lichtschranken zusaetzlich bringen den auch nicht
aus dem Konzept.
Also: Anforderungen noch mal ueberdenken und wenn es keinen triftigen
Grund fuer 2 Rechner gibt, einen der beiden loswerden.
Meli schrieb:> Urteile nicht über andere, du kennst mich nicht einmal, also kannst du> gar nix sagen.
Ich hab in 30 Jahren genug gesehen, um mir ein Urteil erlauben zu
koennen. Sorry, aber mit der Ueberheblichkeit der Generation
Playstation, die ausser Geraet einschalten nichts mehr kann, aber alles
haben will, brauchst du mir nicht kommen.
ich bin nicht diejenige von dem anderen Beitrag, tut mir leid, das wäre
ja Blödsinn wenn ich den gleichen Beitrag 2mal reingeben würde.
Ich habe eine Stiege, mit 11 Stufen und pro Stufe sind 2 Sensoren
angebracht(links und rechts). Pro Stufe soll ein Ton ausgegeben werden.
Wenn ein Sensor angesprochen wird, wird das Signal an den Arduino
geschickt, am Arduino wird das Midi-Protokoll gemacht und dies soll an
den Raspberry weitergeschicht werden. Ich bin nur für den Arduino also
MIDI zuständig.
hab ich nicht gewusst, aber man kann es auch netter sagen und für mich
hat das nicht ausgesehen als wäre er geduldig aber egal
Meli schrieb:> Pro Stufe soll ein Ton ausgegeben werden.> Wenn ein Sensor angesprochen wird, wird das Signal an den Arduino> geschickt,
welcher Sensor?
Sensoren schicken im Normalfall keine Signale, sondern der zentrale
Computer fragt einen Sensor nach dem anderen ab, wie die Situation
aussieht.
> am Arduino wird das Midi-Protokoll gemacht und dies soll an> den Raspberry weitergeschicht werden. Ich bin nur für den Arduino also> MIDI zuständig.
Bin mir zu 99.9% sicher, dass es fuer Midi auf einem Arduino fertige
Klassen gibt.
www.ucapps.de
hier findet man alles über Midi. Nebst einem MIDI-Betriebssystem fur 8
bit oder 32 bit Prozessoren MIOS8 /32. Geschrieben ist alles in C oder
asm.
http://ucapps.de/mios8_c.html
Ich sehe nicht, dass du mit deinen Kenntnissen selbst zum Ziel kommen
wirst. Das ist nicht abwertend gemeint, aber man muss wirklich einiges
Wissen haben, um I2C und einen UART für MIDI überhaupt in den Griff zu
bekommen. Du sagst ja selbst, dass du eigentlich überhaupt keine Ahnung
hast.
Guck dir vielleicht mal dieses Projekt hier an:
http://www.megadrum.info
Das macht genau, was du brauchst, und die Firmware muss nur noch
geflashed werden.
Oder evtl. wären auch die Alesis Trigger I/O Geräte etwas für euch.
Hm, das verstehe ich nicht:
>Wenn ein Sensor angesprochen wird, wird das Signal an den Arduino>geschickt, am Arduino wird das Midi-Protokoll gemacht und dies soll an>den Raspberry weitergeschicht werden.
Warum unterhalten sich Arduino und Raspberry über Midi? Da gibt es doch
wesentlich einfacherer Protokoll. Einfach ein USB-Kabel benutzen, und
dann die vorhandene serielle Leitung nehmen.
Wenn da ein Musikgerät am anderen Ende wäre...
Aber für Computer zu Computer Kommunikation ist das doch unnötig.
>Ok, auf einem Arduino wird das mit einem Wavetable-Synthesizer nichts>werden, aber ein paar Toene kann er auch produzieren.
Vielleicht doch:
http://sensorium.github.io/Mozzi/
Was studierst du und "Meli (Gast)" denn, dass ihr beide ganz
offensichtlich das gleiche Thema zur Aufgabe habt, aber so hoffnungslos
überfordert damit seid?
Da beide Threads das gleiche Thema haben, und da beide Threads
offensichtlich von zwei sich sehr nahestehenden Personen verfasst
wurden, habe ich das jetzt mal zusammengeführt.
Woher kommt die (sorry: Schwachsinige) Idee, Midi über I2C abzuwickeln?
Ich fasse mal zusammen:
Offensichtlich gibt es einen Arduino, der per I2C die Sensoren abfragen
soll.
Der Arduino soll dann je nach dem welche Treppenstufe betreten wurde ein
entsprechenden Note-On Event auf ein MIDI Interface ausgeben.
Der Raspberry ist dann wohl ein Synthesizer, der aus dem MIDI Event dann
Musik macht - und diesen Teil gibt es wohl schon, so dass es nur um den
Arduino-Teil geht...
Hmm, warum macht der RPi dann nicht einfach alles? I²C macht er mit
links, C++ sollte er auch verstehen, sobald es kompiliert ist und der
Rest ist ein bisschen Wavetables triggern. M.E. kann man den Italiener
einfach weglassen und mit MIDI muss man dann gar nicht anfangen.