SysEx Befehle für MIDI-Geräte (MIDIGerät selbst definieren)

Hallo, ich habe eine DigitalOrgel und bei dieser werden die einzelnen Register über SysEx Befehle ein und ausgeschaltet.

F0 31 42 02 00 F7 und F0 31 02 02 00 F7 schalten das erste Register ein und aus

Dafür habe ich in Cubase (12) ein neues MIDI-Gerät definiert und für jedes Register einen Parameter erzeugt (Register 1 - 16) und einen Schalter mit den Werten 2 und 66 (Hex 02, Hex 42) erstellt. Wenn ich jetzt “per Hand” jedes mal ein SysEx “einzeln” erzeuge ist das natürlich ein ziemlicher Aufwand und immer der (fast) gleiche Ablauf.*
(sehr umständlich - aber es funktioniert)

Das sollte ja eigentlich viel einfacher gehen.
Ich erzeuge also einen SysEx Befehl mit 4 variabelen Werten** (A1, A2, A3, Value)

doch damit funktioniert der Schalter plötzlich wie ein Taster
dh beim drücken/klicken wird Einschalten gesendet ABER beim loslassen wird sofort Ausschalten gesendet - das nützt mir natürlich überhaupt nichts…

zwar kann ich auch die funktionierende “einzeln per Hand” Variante wählen (so)
aber die Orgel hat weit über 120 Register, das ist also ein wahnsinniger Aufwand
und mir ist nicht ganz klar, warum das nicht richtig funktioniert

ich hoffe, dass ich das Problem verständlich beschrieben habe
kennt sich jemand besser aus? weiß jemand einen Rat für mich?

lieben Dank im Voraus für Eure Mühe

Herzliche Grüße
oliver

*Namen eingeben, Anzahl von 9 auf 6 reduzieren, Werte auf 1 Reduzieren, diesen Wert auf das 2. Byte verschieben, im ersten Byte 31 eintragen und die letzten beiden Bytes definieren das Register - natürlich nicht in irgendeiner nachvollziehbaren Reihenfolge… (02 00, 02 02, 02 03, 03 03, 04 03, 09 01, 05 01 sind die ersten)

** Janne Röper vom Suport hat extra für mich (für eine andere Orgel mit ähnlicher Registerschaltung) mal eine entsprechende xml Datei erstellt, leider funktioniert hier jetzt bei Cubase 12 die Zuordnung zu einem Ausgang nicht
dh es wird Missing XXXPort angezeigt, ich kann aber keinen anderen vorhandenen MIDI-Ausgang einstellen (vielleicht hat ja auch hier jemand einen Tipp)

Register 103 janne 13.xml (195.1 KB)

Kleines Update - mit Cubase 10.5 konnte ich die Datei von Janne Röper öffnen und (leider) zeigt sich hier genau der gleiche Fehler - die Schalter lassen sich nicht schalten sondern fungieren wie Taster und senden beim Loslassen den Ausschalten Befehl, gleichzeitig werden die SysEx-Befehle aus der Orgel auch nicht erkannt (wobei ich mir nicht sicher bin ob das damals so war)
dh wenn ich an der Orgel ein Register einschalte “erkennt” der Schalter an der DeviceMap das leider nicht…
das ist wirklich sehr unbefriedigend :wink:

Ich bin auf diesen Thread gestoßen, weil ich auch einen Weg suche, bei meiner Digitalorgel per Sysex Register ein- und auszuschalten. Leider habe ich aber nicht so viel Ahnung wie du - ich finde nicht einmal heraus, wie ich in Cubase (11 Pro) einen Sysex-Befehl manuell erzeuge. Wo ist das beschrieben? Wahrscheinlich bin ich wieder mal zu dusslig, um das Handbuch richtig zu lesen :wink:

Hi, ich kann Dir gerne weiterhelfen wenn Du magst

einen SysEx Befehl per Hand einzugeben ist wirklich einfach - im MIDI Listen Editor den Stift (ein neues Event einfügen) und bei der Eventart (neben der Leiste für die Werkzeuge, da steht standardmäßig Note) auf das kleine Dreieck (nach unten) klicken und Du kannst SysEx auswählen

Falls Du eine Viscount Orgel hast kann ich inzwischen sogar richtig gut weiterhelfen, weil wir fast alle Befehle für die Instrumente kennen…

Gruß oliver

Hallo Oliver, das klingt ja sehr verführerisch und sehr gerne würde ich mit dir diese Thematik weiter verfolgen. Ich bin nur nicht so ganz sicher, ob das Forum hier der geeignete Raum ist, denn vermutlich geht es weniger um Cubase-immanente Dinge, sondern mehr um die Viscount-SysEx-Implementierung.
Jedenfalls schon mal vielen Dank für die kleine Nachhilfe in Sachen manueller Listeneintrag. Das hat jetzt funktioniert, aber es sieht für mich so aus, dass ich wohl “vernünftigerweise” auch die Methode “MIDI-Gerät definieren” anwenden sollte. Da habe ich bisher auch noch keine Erfahrung, aber ich probier’s mal aus.
Eigentlich hätte ich erwartet, dass das Einschalten eines Registers bei laufender MIDI-Aufnahme ein MIDI-Event (in dem Fall also ein SysEx-Event) erzeugt, dann hätte ich wenigstens mal auf experimentellem Weg sehen können, welches Register welche Befehle braucht (keine Doku vorhanden), aber bis jetzt kriege ich das nicht hin. Auch auf dem MIDI-Monitor ist schlicht gar nichts zu sehen…

Hi SiggiM

Wenn Du in der Orgel keinen Filter (UTILITIES AND MIDI FUNCTIONS - Tx AND Rx FILTER) auf Yes stehen hast so müsste die Orgel bei Betätigung eines Registerschalters
(auch Tremulant, allerdings NICHT Koppel)
eine SysEx Nachricht senden und auf den gleichen Befehl entsprechend reagieren…

Hi Oliver,
interessantes Thema und zunächst wirklich ein Problem, dass ich nachvollziehen konnte.
Es gibt aber m.E. eine Lösung!
Probier mal, die Reihenfolge der Bytes im SysEx-String rückwärts anzulegen, so hier:
image

Festwert A3 hat also 4 Byte Versatz, A2 hat 3 Byte und A1 hat - ebenso wie die Variable X - 2 Byte Versatz.
Damit funktioniert der Schalter bei mir wieder normal und leuchtet auch dauerhaft blau, wenn er eingeschaltet ist.
Ich habe zwar keine Orgel, mit der ich das ausprobieren kann, aber im Midi-Monitor kann man sehen, dass die Befehle richtig gesendet werden. Markiert sind hier die Zustände jeweils nach dem Loslassen der Maus.
image

Die von Dir angehängte xml-Datei kann ich zwar in C12 laden, aber ich kann die MIDI-Ports nicht ändern.
Das geht nur mit Cubase 10.5 abwärts, wie Du schon festgestellt hast.
Eine Alternative wäre, die xml-Datei in einen Texteditor zu laden und dort die entsprechenden Zeilen manuell zu ändern.

Aber da hier die Schalter ebenfalls fehlerhaft funktionieren, würde ich das Bedienfeld doch eher von Grund auf neu aufsetzen, denn das Problem mit den nicht zugänglichen MIDI-Ports wirst Du nicht los.

Ich hoffe, Dir ein wenig geholfen zu haben!
Viele Grüße,
Pat

Hallo Pat,
echt lieb, dass Du geantwortet hast - inzwischen habe ich bereits das ganze Ding komplett neu erstellt - was eine blöde Fleißarbeit war aber zumindest in Teilen funktioniert hat.
allerdings ist es fast unnütz für mich, da - ich glaube das sehe ich auch bei Dir - eine Registerschaltung immer drei SysEx Befehle in Cubase erzeugt (den alten “vorherigen” befehl und zweimal den “neuen”) - das hat etwas mit Mausklick und loslassen zu tun - ist mir klar
und
ich weiß, dass es ein feature ist und kein bug - für die Automation macht das Sinn - aber für die Registerschaltung einer Orgel eben nicht, so blöd das klingt - das war (aus meiner Sicht) in meinem uralt cubase (kirche mit win 95 rechner) besser gelöst :wink:

Die eigentliche Frage bleibt natürlich - warum muss es so ein unsäglicher Aufwand (zu Fuß, mit immer dem gleichen Ablauf) sein - kannst Du Dir vorstellen wieviel Spass es macht das für ca 120 Registerschalter an der Orgel in der Kirche und dann noch einmal für über 100 Registerschalter (zuhause) zu programmieren - und dann ist mir irgendwann aufgefallen, dass es ein paar wenige Schalter gibt bei denen 16 Werte für A2 und A3 nicht ausreichen - allerdings ließ sich das leicht lösen indem ich einen erweiterten SysEx Befehl erstellt habe und glücklicherweise nur die wenigen betroffenen Schalter umstellen musste

nochmal vielen Dank für Deine Hilfe
Gruß oliver

1 Like

Ja, das ist so, schadet aber auch nicht, solange die richtigen Befehle gesendet werden.

Diese Bedienpanels sind eigentlich nur noch ein Relikt aus alten Zeiten, als Cubase noch viel mit Hardware-Klangerzeugern und -Effekten kommuniziert hat. Inzwischen sind die Entwickler wohl der Meinung, solche Hardware nutzt heute kaum noch jemand für die Produktion. Irgendwann werden die Bedienpanels vielleicht ganz abgeschafft…
Du hast schon recht, die Erstellung umfangreicher Bedienpanels ist eine zeitfressende Aufgabe.
Dazu kommt, dass elementare Werkzeuge fehlen, um existierende Panels editieren zu können, was man an Deiner Beispieldatei bestens sehen kann.
Dagegen wird intensiv an der Verbesserung der Controlleranbindung gearbeitet, um Cubase selbst “haptischer” bedienen zu können.

“Ja, das ist so, schadet aber auch nicht, solange die richtigen Befehle gesendet werden.”

Jein - das drei SysEx Befehle anstelle eines gesendet werden mag bei ein oder zwei Schaltungen nicht wirklich ins Gewicht fallen - da ich, im Gegensatz zu vielen Orgel-Kollegen die einmal zu Beginn eines Stückes “registrieren” (und die Registerschalter dann nie wieder anfassen), dazu neige Klangwechsel im Sekundentakt vorzunehmen kann es logischerweise bei über 100 Registern etwas eng werden auf der MIDI Datenleitung…
was heute auf dem Launchpad mit verschiedenen Farben so klasse aussieht habe ich bereits vor 25 Jahren an der Orgel in Do Marten gemacht (zugegeben eher zufällig), da auch dort die vier Registergruppen (3 Manuale und Pedal) in Feldern 4x7 angeordnet sind und bei einigen Stücken habe ich definitiv mehr RegisterBefehle (pro Sekunde) als Note on/off (der Computer mit MIDI macht’s möglich :wink:

“Diese Bedienpanels sind eigentlich nur noch ein Relikt aus alten Zeiten…”

Okay - aber warum muss die xml Datei dann so wenig intuitiv und benutzerfreundlich zu ändern sein - oder ich bin zu blöd (durchaus möglich)
Für die Bedienung der Register habe ich MIDI-Stops (ein einfaches Programm welches eine virtuelle Oberfläche für die einzelnen Schalter zur Verfügung stellt) ebenfalls wird hier eine xml Datei erzeugt. Diese konnte ich sehr einfach mit einem Editor bearbeiten und so wirklich schnell und komfortabel die ganzen Bedienelemente erstellen

die Struktur der xml datei hier bei cubase ist mir auch klar - allerdings habe ich nicht gewagt da etwas zu verändern, da ich bei jedem Schalter die
UniqueID value = “elendlange ZahlenBuchstabenkombi”
nicht einschätzen kann

aber wahrscheinlich hast Du recht - das “Problem” taucht bei niemandem sonst auf und ist daher wohl eher uninteressant, ich war noch nie massenkompatibel und erinnere mich an manches Gespräch mit den (wirklich sehr netten, hilfsbereiten und äußerst fähigen) Supportmitarbeitern von Steinberg wo es hieß “da haben Sie recht, das ist eigentlich ein Fehler, komisch, das ist allerdings bisher niemandem aufgefallen”

ich behelfe mich jetzt mit 120 MIDI-Spuren (für jeden Schalter eine) und habe dann die MIDI-Parts mit jeweils dem Einschalt-Befehl am Anfang und dem Aus-Befehl am Ende
das sieht dann im Prinzip wie eine Piano-Roll aus und ich kann (relativ gut) sehen welche Register zu welcher Zeit eingeschaltet (oder eben nicht) sind

1 Like