Hallo liebe Forengemeinde,
ich habe das Problem selber gefunden und gelöst. Dabei hat mir sehr geholfen das ich es hier im Forum so ausführlich beschreiben musste. Es liegt an der Funktion "Anlernen von Midi Tastern" . Wird die Funktion gestartet, dann hört diese Funktion auf den Midi Port und das erste Signal das kommt wird als Taste gedrückt erkannt und das zweite Signal als Taste wieder losgelassen. Entsprechende Meldungen werden ja auch während des Vorgangs eingeblendet "Button drücken, Button loslassen". Schließt man nun anstatt eines Midi Controllers ein Musiker Keyboard an und benutzt dem Midi out wird es schwierig. Denn viele Musikerkeyboards senden auf dem Midi Port alle 300 ms das Active Sensing Signal. Damit wird überprüft ob die Verbindung noch steht. Wenn man nun die Anlernen Funktion startet, dann wird bei EnableBacktrack und EnableMessage genau dieses Signal eingetragen obwohl noch keine Taste gedrückt wurde und die Anzeige wechselt von Button drücken zu Button loslassen. Jetzt habe ich natürlich zwei nicht zueinander passende Signale und das funktioniert natürlich auch nicht.
Zum besseren Verständnis hier mal die Daten auf dem Midi Port, wenn man bei dem Musikerkeyboard eine Taste drückt
Schön zu sehen das die Note On und Note Off Befehle zwischen den Active Sensing Befehlen stehen. Ich habe das ausprobiert mit einem Keyboard von Yamaha und einem Keyboard von Korg. Bei beiden konnte man in den Midi Einstellungen das Active Sensing nicht ausschalten. Es war daher nicht möglich über die Anlernfunktion einen Button richtig zu erkennen.
Hier nun die Daten auf dem MidiPort eines Controllers der das Active Sensing nicht sendet. Es handelt sich hierbei um eine M-Audio Controller.
Schön zu sehen das die Active Sensing Signale fehlen. Daher lassen sich hier die Tasten des Keyboards richtig erkennen.
Hier nun der falsch erkannte Button beim MusikerKeyboard
Bei EnableBackdrack und bei EnableMessage steht der Active Sensing Befehl drin und bei DisableBackdrack und DisableMessage die losgelassene Taste. Das kann in dieser Kombination nicht funktionieren.
Hier nun ein richtig erkannter Button zum Vergleich
Hier stehen nun überall die gleichen Werte drin außer bei Data2. Diese Kombination funktioniert.
Wenn die Buttons und Controller mal richtig angelernt sind, dann kann man selbstverständlich wieder das Musikerkeyboard zum Steuern dranhängen. Das Funktioniert ohne Probleme da dann ja nur noch die angelernten Befehle ausgewertet werden und die Active Sensing Befehle einfach ignoriert werden.
Lösung1
Man benutzt zum Anlernen nur MidiController und Midi Keyboards die kein ActiveSensing senden
Lösung2
Man editiert die Werte für die falsch erkannten Buttons und Controller per Hand. Es gibt Midi Listen im Internet um die richtigen Zahlenwerte für die Tasten rauszulesen.
Lösung3
Eventuell kann man bei der Überarbeitung des Programmcodes das Active Sensing herausfiltern und nur auf die Note On und Note Off bzw. ControlChange Befehle hören. Dann könnte man auch Musiker Keyboards mit Midi Out anlernen.
Ich habe das hier mal ein bisschen ausführlicher beschrieben, vielleicht haben einige das gleiche Problem und können nun eine Lösung finden
Viele Grüße
BB-Boom