Midi Befehle - Praxis/Übersicht?

Curby
Curby
Registrierter Benutzer
Zuletzt hier
03.10.23
Registriert
15.12.10
Beiträge
17
Kekse
0
Hallo allerseits,

ich habe bzgl. Midi wenig Erfahrung. Da ich jedoch eine Midi-In Schnitstelle umsetzen möchte frage ich mich, inwiefern die Midi-Befehle irgendwie genormt sind? Ich weiß, dass es Note On, Note Off Befehle gibt und habe diese auch schon angewendet.
Wie sieht es jedoch mit Befehlen zur Einstellung von Geräteparametern aus? Z.B. möchte ich per Midi:

- Effekte an/ausschalten und parametrieren
- Speicherbank auswählen
- Kammerton einstellen
- sämtliche anderen Einstellung ändern, sehr vielfältig

Ich habe bis jetzt keine Idee, wie die drei Byte der Telegramme aussehen sollen. Gibt es da standards, kann ich die irgendwo einsehen? Wie ist das in der Praxis? Ich habe vereinzelt kleine Tabellen gefunden, die aber nicht die Geräteparameter abdecken, die ich habe.

Danke für Ratschläge! Ich habe mich schwer getan, einpassendes Unterforum auszuwählen, ich denke dies trifft es am besten. Ansonsten kann es gerne verschoben werden.
 
Eigenschaft
 
Wenn Du in einer DAW den entsprechenden Editor bzw. Konfigurator durchsiehst hast Du alle gebräuchlichen Befehle da stehen.

Wenn Du eine MIDI-Schnittstelle am PC hast lade Dir "Midi OX" runter. Damit siehst Du was an der Schnittstelle passiert.

Wenn Du nur einmal kurz Google bemühst hast Du auch alles was Du brauchst.
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Hallo,

...und die gerätespezifischen MIDI-Befehle, also nicht so "allgemeine" wie Volume etc., sollten eigentlich irgendwo in der Bedienungsanleitung des betreffenden Gerätes stehen. Sowas kommt häufig auch als Beilageblatt (MIDI-Implementation) und gerät da schon mal in Wegfall...

Viele Grüße
Klaus
 
Hallo Curby über welches Gerät oder Midischnittstelle redest Du? Da Du als Subforum Hardware Effektgeräte gewählt hast, denke ich mal Du willst ein Effektgerät bedienen.
Wenn es ein relativ neues und modernes Gerät ist, dafür gibt es normalerweise vom Hersteller einen Editor,der normalerweise heute über USB läuft.
für ältere gibt es wie Basselch schon schrieb,eine Midi-Implementation im Handbuch.Herstellerspezifisch gibt es auch immer Systemexclusive Mididaten die nur dieses Gerät versteht.
diese sind aber schwierig zu programmieren. Da muss man sich sehr gut mit Midi auskennen.also mal eben was zu progammieren ist kompliziert.
Ich habe früher viel mit Cubase meinen alten Roland SC55 programmiert als Cubase noch die Mixermaps unterstützte.
Sowas ist heute aus der Mode gekommen, seit es USB und die Editoren gibt.
Für Speicherbank auswählen gibt es z.B. den Midibefehl Bankselect Kammerton wäre wohl Systemexclusiv. Die anderen Sachen klingen nach Effektgerät. und Programchange unterstüzten eigentlich alle. Dafür gibts in jeder DAW einen Midi-editor
 
Die Sache ist die, dass ich ein Gerät habe, dessen Parameter über Midi Befehle gesteuert werden sollen. Z.B. Effektparameter, Kammerton, aber auch so Dinge wie Display Helligkeit etc.

Daher frage ich mich, welche Befehle/Werte Paare man für bestimmte Sachen nimmt. Ich könnte die jetzt komplett selber definieren - es gibt ja auch einen gerätespezifischen Bereich.

Wie sehen denn so Midi Steuereinheiten aus und wie bedient man diese? Schaut man ins Datenblatt des anzusteuernden Gerätes und kann dann quasi den hinterlegten benötigten Midibefehl auf eine Taste des Steuerprogramm am PC mappen?

Z.B. Taste1: 0x90, 0x10, 0x12

Kann ich auf einem modernen Keyboard Midi Befehle frei parametrieren, so dass ich damit auch beliebige Geräte ansteuern kann?
 
Es gibt schon Standards/Konventionen:
https://www.midi.org/specifications/item/table-3-control-change-messages-data-bytes-2

Aber ob diese dann auch von jedem Gerät umgesetzt werden ist, ist fraglich.

Wie sehen denn so Midi Steuereinheiten aus und wie bedient man diese? Schaut man ins Datenblatt des anzusteuernden Gerätes und kann dann quasi den hinterlegten benötigten Midibefehl auf eine Taste des Steuerprogramm am PC mappen?
Genau. In welchem Format (Bytes einzeln oder zusammengesetzt, als Dezimal oder Hex, ...) man diese dann eingeben muss, hängt stark von deiner Software ab.
 
Dann lass mal die Katze raus.Welches Gerät hast Du da?
 
Ich möchte hier nochmal antworten, da es jetzt konkret wird. Es ist quasi ein eigener Synthesizer. Ich habe etliche verschiedene Parameter, die ich alle über Midi konfigurierbar machen möchte. Meinem Verständnis nach, würde ich hier jetzt eigene gerätespezifische Befehle erstellen.

Laut Wikipedia liegen diese bei einem Statusbyte von 0xF0 bis 0xFF. Leider muss man hier wieder eine ID vergeben und kann scheinbar auch keinen allgemein gültigen Midi-Kanal einstellen. Ich möchte keine ID von der "MIDI Manufacturers Association", zumindest nicht zwangsläufig (ist bestimmt auch wieder ein sehr kosspiliger Service).

Ich würde gerne lediglich eine Befehlstabelle hinterlegen - ohne einen Standard zu verletzten - dass ich über ein Kanal 1-16 erreichbar bin und dann in Feld X den Wert Y eintragen kann. Wie gehe ich da am geschicktesten vor? Ich bin keine Midi-Freak, möchte aber eben anderen diese Möglichkeit anbieten es zu nutzen.
 
Ein Midi Signal ist in 3 Bytes aufgeteilt (ein Byte kann 128 verschiedene Zustände annehmen):
  • 1. Byte: ist aufgeteilt in 2x 4bit
    • die ersten 4bit geben das Kommando an, z.B. Note-On, Note-Off, CC (Control Parameter). Diesen Kommandos sind standardisierte Nummern zugeordnet, z.B. ist Note-On 144 oder in Binärcode 10010000
    • die zweiten 4bit geben den Kanal an. Für den ersten Kanal (Kanal 0 sozusagen) addiert man zum Kommando + 0 und kommt auf 10010000, für den zweiten Kanal + 1 = 10010001, ..., für den 16. Kanal + 15 = 10011111
  • 2. Byte gibt einen Parameter des Kommandos an. Das ist für Note-On die Note, die gespielt werden soll. z.B. bedeutet 69, dass das 144Hz-A gespielt werden soll.
  • 3. Byte gibt evt. einen zweiten Parameter für das Kommando an, z.B. Velocity bei Note-On
Welches Kommando zu welcher Zahl gehört, kannst du hier nachschauen: https://www.midi.org/specifications/item/table-1-summary-of-midi-message
Die Parameter findest du ebenfalls auf dieser Website, z.B. für CC hier: https://www.midi.org/specifications/item/table-3-control-change-messages-data-bytes-2
Dort siehst du auch, dass einige Zahlen undefined sind, es also keine Standardbelegeung dafür gibt. Hier kanst du dann sehr spezifische Funktionen ablegen wie Displayhelligkeit.

Sagen wir mal, du möchtest den CC Parameter 20 für Displayhelligkeit nutzen und mit dem 3. Byte die Helligkeit steuern (0 = dunkel, 127 = hell).
Dann könnte das in deiner Tabelle so aussehen:

Byte1. Byte2. Byte3. Byte
Bereich176 - 191200-127
Beschreibung Kanal 1-16 Displayhelligkeit 0 = Dunkel, 127 = hell
[TBODY] [/TBODY]
Aber du kannst dich auch eher an den Beispielen von midi.org orientieren und die Bytes binär angeben, jenachdem, was dir logischer erscheint.
Gebräuchlich sind auch die Angaben in Hexadezimal.
 
Zuletzt bearbeitet:
Ich möchte keine ID von der "MIDI Manufacturers Association"

Nach Durchsicht der Texte auf midi.org sieht es so aus als ob die Geräte spezifische Device ID verwendet wird um Sysex Daten zu adressieren. Das Gerät selbst kennt seine ID und reagiert dann auf sysex mit dieser ID. Für Dich im "Labor" spielt das erst mal keine Rolle solange Du Deinem Device mitteilt, auf welche ID es reagieren soll. Sollte diese spezielle ID schon vergeben sein ist das auch erst mal egal, solange kein anderes Gerät dranhängt, das auf diese Device ID reagiert.

Die ID als solche kostet 200 Dollar pro Jahr. Näheres hier.
 
Was mich stört ist, dass die gerätespezifischen Befehle von der 3 Byte Form abweichen, ich so eine ID brauche und scheinbar auch keinen Midi-Channel verwenden kann. Insgesammt brauche ich ca. 66 Midi Kommandos. ch müsste mal überfliegen wieviel ich bei den Control Change Messages frei haben, befürchte aber das reicht nicht aus. Was wäre, wenn ich einzelne Befehle anders gebrauche?
 
Du kannst die Befehle so gebrauchen wie du Lust hast, aber dann weichst du halt vom Standard ab. Pro Befehl hast du einfach nur 3 Byte zur Verfuegung, daran kannst du nichts aendern, das ist vom Midi Protokol so vorgeschrieben. Aber du kannst dir diese 3 Byte so aufteilen, wie du magst. Wenn du mehr als 3 Byte brauchst, musst du mehrere Befehle hintereinander senden/verarbeiten.
Das wird aber wahrscheinlich niemand benutzen koennen, die normalen Midi Controller sind nicht so stark anpassbar. Man muesste sich ein Programm schreiben, was zwischen Synth und Midi Controller geschaltet ist und die Befehle anpasst. Geht z.B. mit Python + rtmidi, aber das wird wie gesagt niemand machen.

Vielleicht beschreibst du deinen Anwendungsfall mal etwas genauer, dann kann man sicher auch besser helfen.

Insgesammt brauche ich ca. 66 Midi Kommandos.
Aber die werden doch nicht alle geraetespezifisch sein? Du hast insgesamt 128 CC Kommandos zur Verfuegung, fuer die normalen Sachen wie Volume, Filter usw. gibt genormte Kommandos, schau mal in die Referenz rein.
 
Ich habe z.B:
6 Effekte wie Equalizer: an/aus + 6 Filter, Vibrato, Tremolo, speed, depth, mix, waveform, usw.
Oder für die Sounderstellung kann ich jeden Oszillator an/aus, Waveform, Lautstärke, etc. einstellen.
Displayhelligkeit, Kammerton, Displaykontrast uvm.
 
Dann musst du einfach nur auf midi.org nachschauen, für was es Standards gibt bzw. wo deine Funtionalitäten am besten paasen und für den Rest nimmst du was unbelegtes wie im Beispiel oben.
 
Es ist quasi ein eigener Synthesizer
Dann kannst Du ja selber festlegen wie er zu bedienen ist!! Na viel Spass. Sysex ist kompliziert zu programmieren. immer mit Prüfsumme etc.
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben