|
| |
|
Das Forum für Musiker und Musikschaffende |
|
| Autor |
Nachricht |
|
Bassti
|
Verfasst: 29.10.2006 19:35 |
|
 |
| Profi-Mucker |
 |
Registriert: 22.12.2005 16:33 Beiträge: 1051 Wohnort: Heidenheim
|
Hab mal grad wieder ein bischen Microcontroller programmiert und es tatsächlich geschafft meiner Hammond Töne zu entlocken... Meine Frage ist jetzt nach einer Syntax dieser Nachrichten, also z.B. hab ich das so gemacht: - Code: Alles auswählen
putchar(noteon); //10010000 putchar(keynum); //00100100 putchar(velocity); //01111111
für "an" und - Code: Alles auswählen
putchar(noteon); //10010000 putchar(keynum); //00100100 putchar(novelocity); //00000000
für "aus" Das funktioniert soweit, aber wie müssen die Nachrichten aufeianderfolgen, wenn z.B. mehrere Töne gespielt werden, und wann kommt die Kanalnummer etc. Ich habe ne Menge Seiten gefunden, wo jede Nachricht erklärt ist, aber keine wie deren Abfolge sein darf/muss/soll
_________________ Möge der Bass mit Euch sein !
Zuletzt geändert von Bassti am 02.11.2006 17:17, insgesamt 1-mal geändert.
|
|
| Nach oben |
|
 |
|
wowie
|
Verfasst: 29.10.2006 22:07 |
|
 |
| Trusted Junior |
Registriert: 06.10.2005 13:17 Beiträge: 109 Wohnort: Liebenburg
|
|
Hallo
du musst das noch mit einer Timebase verbinden.
Das heist du must noch syncronisieren auf den Takt.
Welchen µC benutzt du, hast du da die Möglichkeit einen TAkt vorzugeben?
Gruß Wolfgang
|
|
| Nach oben |
|
 |
|
Bassti
|
Verfasst: 29.10.2006 23:19 |
|
 |
| Profi-Mucker |
 |
Registriert: 22.12.2005 16:33 Beiträge: 1051 Wohnort: Heidenheim
|
|
Ich hab hier nen Atmel Mega8 am start.
Wie meinst Du das mit dem Takt, müssen die einzelnen Messages welche immere 1 Byte groß sind auch noch in bestimmten Abständen folgen?
Hab die alle nacheinander der USART gefüttert, das geht, nur weiss ich nicht genau, ob jetzt zuerst die Kanalnummer kommen soll, oder zuerst die Note selbst...
_________________ Möge der Bass mit Euch sein !
|
|
| Nach oben |
|
 |
|
Jens Droessler
|
Verfasst: 02.11.2006 16:39 |
|
 |
| Moderator |
 |
Registriert: 18.01.2005 01:24 Beiträge: 2155 Wohnort: Kassel / Knüllwald
|
|
Ich kann mich nicht mehr wirklich gut erinnern, aber soweit ich noch weiß, muss der Kanal zwangsläufig vor der Note kommen, denn mit der Note erklingt ja der Ton (Es wäre zu spät, dann noch den Kanal ändern zu wollen).
Ich gehe davon aus, dass wowie quasi eine Musik-Timebase meint. Die Schnittstellentaktung musst du ja vorher auf die MIDI-typischen Werte einstellen, der uController kann dann gar nicht anders als auf diesem Schnittstellen-Takt die Daten rauszuschicken...
_________________ Probleme tendieren dazu, wesentlich komplexer zu sein, als sie scheinen. Und zu jedem dieser komplexen Probleme gibt es eine einfache, saubere Lösung.... die garantiert falsch ist. http://www.studior.info
|
|
| Nach oben |
|
 |
|
Bassti
|
Verfasst: 02.11.2006 17:14 |
|
 |
| Profi-Mucker |
 |
Registriert: 22.12.2005 16:33 Beiträge: 1051 Wohnort: Heidenheim
|
Jens Droessler hat geschrieben:... der uController kann dann gar nicht anders als auf diesem Schnittstellen-Takt die Daten rauszuschicken...
Ja, der holt sich den Takt vom Prozessortakt ja eh per prescaler, das passt dann schon. Hab mal ein bischen rumprobiert, also gehen tuts jedenfalls mit [Kalnummer/NoteOn] [Keynummer] [Velocity] [Kalnummer/NoteOn] [Keynummer] [Velocity]... gehen tut aber auch: [Kalnummer/NoteOn] [Keynummer] [Velocity] [Keynummer] [Velocity] [Keynummer] [Velocity]... nur ist das vermutlich nicht spec-konform 
_________________ Möge der Bass mit Euch sein !
|
|
| Nach oben |
|
 |
|
Jens Droessler
|
Verfasst: 02.11.2006 17:55 |
|
 |
| Moderator |
 |
Registriert: 18.01.2005 01:24 Beiträge: 2155 Wohnort: Kassel / Knüllwald
|
|
Ich würde das nochmal mit drei, vier anderen Geräten testen. Wenn die das alle fressen, würde ich das auch als konform bezeichnen. Die müssten dann aber auch auf nur einen einzigen Note off-Befehl hören. Ich kann mich allerdings auch nicht mehr erinnern, ob es konform ist, einfach die Velocity auf 0 zu setzen, um eine Note zu beenden.
_________________ Probleme tendieren dazu, wesentlich komplexer zu sein, als sie scheinen. Und zu jedem dieser komplexen Probleme gibt es eine einfache, saubere Lösung.... die garantiert falsch ist. http://www.studior.info
|
|
| Nach oben |
|
 |
|
raezz
|
Verfasst: 03.11.2006 13:44 |
|
 |
| Amtlich unterwegs |
 |
Registriert: 31.05.2005 23:00 Beiträge: 674 Wohnort: Berlin
|
|
Ich glaub standardkonform ist nur die erste Variante, und eigentlich auch nur Note-Off beim Loslassen der Taste. Viele Hersteller senden aber dann ein Note-On mit Velocity 0. Außerdem gibt's noch ein AllNotesOff gegen die MIDI Panik.
Gruß raezz
_________________ Bist du schon virtuell oder lebst du noch? Fliegengedichte ... heute schon gelesen ?
|
|
| Nach oben |
|
 |
|
Jens Droessler
|
Verfasst: 03.11.2006 14:19 |
|
 |
| Moderator |
 |
Registriert: 18.01.2005 01:24 Beiträge: 2155 Wohnort: Kassel / Knüllwald
|
|
Hmm, da frage ich mich, ob auch alle Synthesizer bei Velocity 0 einfach nichts tun bzw. die vorherige Note stoppen. Hätte ich das implementiert, würde der Synth trotzdem 'synthen', aber eben nichts davon ausgeben, von wegen gesync'te Sounds und so....
_________________ Probleme tendieren dazu, wesentlich komplexer zu sein, als sie scheinen. Und zu jedem dieser komplexen Probleme gibt es eine einfache, saubere Lösung.... die garantiert falsch ist. http://www.studior.info
|
|
| Nach oben |
|
 |
|
raezz
|
Verfasst: 03.11.2006 15:13 |
|
 |
| Amtlich unterwegs |
 |
Registriert: 31.05.2005 23:00 Beiträge: 674 Wohnort: Berlin
|
|
Hab gerade noch mal nachgekuckt. Laut meinem schlauen Midi Buch ist Note On = 9n (n = Kanal) und Note Off = 8n. Dann kommt der Satz "In der Praxis wird er (Note Off) allerdings durch einen Note-On mit Velocity 0 ersetzt".
Ich denke mal das ist gerätespezifisch und muss im MIDI Implementation Chart des jeweiligen Geräts beschrieben sein.
Gruß raezz
_________________ Bist du schon virtuell oder lebst du noch? Fliegengedichte ... heute schon gelesen ?
|
|
| Nach oben |
|
 |
|
Dave
|
Verfasst: 03.11.2006 16:57 |
|
 |
| Moderator |
 |
Registriert: 20.04.2006 07:17 Beiträge: 9153 Wohnort: Bretzfeld D.C.
|
|
Naja im Zweifelsfall kann es ja eigentlich nicht schaden, beides zu senden, erst Note-On mit Velocity 0 und dann den Note-Off... Damit sollte man dann auch einigerma0en kompatibel bleiben...
Gruß, Dave
_________________ Ich mache KEINEN Support per PN, ICQ, E-Mail oder TeleofnMeine Bibel-Community
|
|
| Nach oben |
|
 |
Wer ist online? |
Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste |
|
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.
|
Gitarre lernen
|
|