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
Serielle Schnittstelle mit korrekter Baudrate ansprechen, und die nötigen MIDI-Sequenzen ausgeben. Wo liegt jetzt Dein Problem? Weißt Du nicht, wie Du Deine serielle Schnittstelle zu programmieren hast, oder weißt Du nicht, wie die MIDI-Sequenzen für Dein nicht erwähntes MIDI-Gerät aussehen müssen? http://de.wikipedia.org/wiki/Musical_Instrument_Digital_Interface#Funktionsweise beschreibt das (wirklich ziemlich einfache Protokoll) http://de.wikipedia.org/wiki/Musical_Instrument_Digital_Interface#Technik wie die Schnittstellenhardware auszusehen hat.
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:
1 | 0x81, 0x60, 0x7f |
Note Off, Ton C4, Full Damping
:
Bearbeitet durch User
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.
Das ist echt eine blöde Frage. Erstaml brauchst du eine geeignete Schnittstelle am PC und dann suchst du Dir ein Tutorial für die Programmierung dieser Schnittstelle. Google ist doch so einfach zu benutzen, du bekommst es quasi auf dem Silbertablett geliefert: https://www.google.de/search?q=pc+midi+programmierung&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a&channel=nts&gfe_rd=cr&ei=4SuhVKLGMsmBUI_VgLgO Klicke dann auf "Simple MIDI Input/Output Examples for Windows". Auf der gleichen Seite gibt's auch was für Linux.
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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/
Franziska schrieb: > Das Datenprotokoll soll MIDI sein und das Anwenderprotokoll soll I2C > sein. Das klingt ... wirr.
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?
> Oder: Woher kommt die (sorry: Schwachsinige) Idee, den Status von Sensoren per
Midi zu übertragen.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.