Yamaha EX 5 wechselt keine Programmnummern per MIDI im Performancemodus

  • Ersteller TomJay66
  • Erstellt am
TomJay66
TomJay66
Registrierter Benutzer
Zuletzt hier
22.03.23
Registriert
13.03.09
Beiträge
49
Kekse
46
Ort
Wirsberg
Hallo Gemeinde!

Ich wollte mal die erfahrenen Programmierer unter Euch um Rat fragen, wie ich einen Yamaha EX 5 dazu bewegen kann, dass er per MIDI die komplette Performancenummer weiterschaltet und nicht nur einen einzelnen Sound innerhalb der Performance.

Ich habe folgendes Setup: als Mastertastatur verwende ich den Korg Triton Extreme und als Slavetastatur den Yamaha EX 5, die über MIDI IN + OUT verbunden sind. Ich habe auf dem Triton Sequenzen erstellt und möchte zu jeder Sequenznummer, die ich am Triton weiterschalte, die passende Performance-Programmnummer des EX 5 aufrufen, soll heißen, der Triton sendet einen Programchangebefehl, den der EX 5 aber nicht wirklich sauber umsetzt. Er schaltet mir nämlich nur innerhalb der Performance ein Layer (also einen Einzelsound) um. Das soll er aber nicht. Ich möchte, dass mir der EX 5 z. B. zur Sequenz Nr. 1 auch die Performance Nr. 1 aufruft.

Das selbe Spiel passiert auch, wenn ich den Triton im Combination-Mode habe und dort eine Programmnummer weiter schalte, dann schaltet mir der EX 5 nur das Layer um, aber nicht die komplette Performance.

Allerdings muss ich anmerken, dass ich mit den Bank Select Befehlen MSB + LSB nicht so wirklich klar komme. Ich bin halt mehr der Spieler denn der Programmierer. Vielleicht kann mir einer einen Tipp geben, wie ich was programmieren muss, damit das klappt. Und sorry, weil ich für den einen oder anderen hier im Board so kuriose Fragen stelle, die den meisten von Euch vielleicht schon lange klar sind. Aber mir haben sie sich noch nicht so wirklich erschlossen. :redface:

Herzlichen Dank schon mal im Voraus an Euch.

Tom
 
Eigenschaft
 
Hi,

leider habe ich meinen EX bei meinen Eltern stehen :) Deswegen kann ich das nicht für dich nachgucken. In der Anleitung sollten hinten bei den Midi Sachen eigentlich was beistehen. Ansonsten machst du mal folgendes: Du schaltest am EX einen Platz weiter und guckst an einem PC oder am Triton, was er da an Daten sendet. Daran solltest du erkennen, was du machen oder nicht machen musst.

Ich meine aber, das geht. Habe das mit einem Behringer Pedal auch mal gemacht.
 
Hallo Tom,

an MSB und LSB wirst Du aber nicht vorbeikommen. Ist aber gar nicht so schwer. Schau doch mal in die Bedienungsanleitung, dort stehen die Nummern. Die gibst Du dann in Deinen Korg. Einfach mal probieren - geht schon nichts kaputt...

Grüße, Kroppy
 
Allerdings muss ich anmerken, dass ich mit den Bank Select Befehlen MSB + LSB nicht so wirklich klar komme. Ich bin halt mehr der Spieler denn der Programmierer. Vielleicht kann mir einer einen Tipp geben, wie ich was programmieren muss, damit das klappt. Und sorry, weil ich für den einen oder anderen hier im Board so kuriose Fragen stelle, die den meisten von Euch vielleicht schon lange klar sind. Aber mir haben sie sich noch nicht so wirklich erschlossen. :redface:

Herzlichen Dank schon mal im Voraus an Euch.

Tom

Hi Tom,

ich habe zwar nur den S90ES, aber innerhalb des Multi Modes erwartet dieser auch den MSB+LSB-Befehl vor der eigentlichen ProgramChange-Nachricht - ich denke, das wird bei dir genauso sein. Welche Werte er genau erwartet, steht normalerweise in der Midibefehlstabelle zum Performancemode in der Begleitdokumentation (beim S90 ES glaube ich MSB 63 und LSB 65 oder umgekehrt - und anschließend der ProgramChange-Befehl). Diese Werte müsstest du in deinem Triton dem eigentlichen Programmwechsel vorausschicken.

Grüße
Stephan

Edit: Kroppy war schneller...
 
Hier findest du die Data-List mitz den MSB/LSB-Werten für den EX5/ 5R.
Gesendet wird.
1. MSB-Wert
2. LSB-Wert
3. PC-Wert

Natürlich am EX nachschauen, dass nicht die Midibefehle für Bank-Select und Program-Change gefilter werden.

Ansonsten kann man den EX auch epr SysEx und Dummy-Midifile ansteuern (siehe Datalist Seite 53, am Ender der Tabelle 16, die Einträge für die Bänke A-H und Programme 1-16, nach dem Eintrag "Oktave".

Beispiel:
F0 43 10 5B 0A 00 36 01 F7 = Bank A ON
F0 43 10 5B 0A 00 36 00 F7 = Bank A OFF

F0 43 10 5B 0A 00 3E 01 F7 Program 1 ON
F0 43 10 5B 0A 00 3E 00 F7 Program 1 OFF
 
Kleine Ergänzung: MSB=63, LSB=64 (+ Performance-Nummer). Damit sollte es gehen :)
Grüße, Kroppy
 
Holla, die Waldfee. Das ist ganz schön kompliziert, aber ich versuche mich da mal einzuarbeiten. Man lernt ja nicht für die Schule, sondern für´s Leben.

So, wenn ich das Beispiel von Jacky recht verstanden habe, müsste ich in eine MIDI-Spur folgendes eingeben, um z. B. Performancenummer 010 aufzurufen:

F0 43 10 5B 0A 00 36 01 F7
F0 43 10 5B 0A 00 47 01 F7

Rein generell komme ich mit Hexadezimalzahlen schon klar, aber was die ersten 5 Ziffernblöcke steuern, die nach dem Startzeichen kommen, entzieht sich momentan noch meiner Kenntnis. Okay, den ersten und letzten Ziffernblock "F0" kann ich noch nachvollziehen: der erste Block ist eine Art Startbefehl, genauso, wie der letzte "F7" eine Art Stopbefehl ist. Aber die Blöcke "43", "10", "5B2, "0A" und "00" sagen mir jetzt nicht wirklich was. :gruebel:

Aber ich werde mich auf jeden Fall damit auseinandersetzen. Versprochen.
 
Hallo, kompliziert? Mit SysEx vielleicht, aber das andere geht wirklich einfach - vesprochen :)!
 
Ich bin nicht unbedingt der geduldigste Mensch, von daher hab ich da keinen Nerv dafür, das ewig und drei Tage lang auszuprobieren, wie das am Besten funktioniert. Am Besten wird sein, ich schalte die Programchanges aus und schalte die Kiste von Hand weiter.
 
Erstmal danke für all die Tipps. Aber kennt jemand vielleicht eine Bezugsquelle für das Buch "Synthesizerprogrammierung für DUMMIES"? Ich glaube mal, das ist genau das, was ich eigentlich bräuchte! :(
 
Sorry, aber wer mehrere Synthesizer über MIDI verbindet und gegenseitig steuern will, muss sich m.E. mit Bank Select (von einigen hier unpräzise MSB/LSB-Befehle genannt.) und Program Change Befehlen auseinandersetzten, oder halt hinnehmen, dass er nicht alle Möglichkeiten nutzen kann.


So schwer ist das eigentlich gar nicht:

- MIDI-Befehle bestehen aus einem Status-Byte und i.d.R. ein bis mehreren Datenbytes.

- Beim Statusbyte ist das höchste Bit immer gesetzt (1).

- Die unteren 4 Bits des Statusbytes enthalten die MIDI-Kanalnummer (0-15).

- Bei Datenbytes ist das höchste Bit immer nicht gesetzt (0), deswegen kann man mit einem Datenbyte nur einen Wertebereich von 0-127 darstellen.

- Das Statusbyte für den Program Change Befehl ist 0xCn (n = MIDI-Kanal).

- Das erste und einzige Datenbyte ist die Programm-Nummer (0-127)

- Der Bank Select Befehl setzt sich aus zwei Controller Change Befehlen mit der Controllernummer 0 und 32 zusammen.
(Es gibt Geräte, die nur CC 0 oder 32 verwenden, aber neuere Yamaha-Geräte gehören nicht dazu).

- Das Statusbyte für den Controller Change Befehl ist 0xBn.

- Das erste Datenbyte ist die Controllernummer (01-127) und das zweite Datenbyte der Controllerwert.

- Um mehr als 127 Bänke adressieren zu können, werden i.d.R. Bank Select Controller 0 und Bank Select Controller 32 direkt hintereinander gesendet. Danach folgt der Program Change Befehl, der das Programm innerhalb der vorher ausgewählten Bank wählt.

- Bank Select 0 ist dabei das höherwertige Byte (Most signifikant byte = MSB) und Bank Select 32 das niederwertige Byte (Least significant byte = LSB). Die Formel, um die Banknummer zu erhalten lautet MSB*128 + LSB.

- Welche Banknummern für die verschiedenen Modi und Bänke benutzt werden müssen, ist der Bedienungsanleitung zu entnehmen.

Hoffedashilft,

Chris
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 2 Benutzer
So, wenn ich das Beispiel von Jacky recht verstanden habe, müsste ich in eine MIDI-Spur folgendes eingeben, um z. B. Performancenummer 010 aufzurufen:

F0 43 10 5B 0A 00 36 01 F7
F0 43 10 5B 0A 00 47 01 F7

Nicht ganz. Du musst erst den Mode per SysEx an wählen.
Also
1. Perform-Mode ON = F0 43 10 5B 0A 00 21 01 F7
2. die Bank A ON = F0 43 10 5B 0A 00 36 01 F7
3. den Speicherplatz 10 ON = F0 43 10 5B 0A 00 47 01 F7 Program 1 ON
4. Perform-Mode OFF = F0 43 10 5B 0A 00 21 00 F7 (falls man in den Voice-Mode wechseln will)

Ansonsten für die Bank-Select-Befehle:

CC 0 Bank Select MSB 63
CC 32 Bank Select LSB 0 = Preset 1 Voice
CC 32 Bank Select LSB 1 = Preset 2 Voice
CC 32 Bank Select LSB 2 = Internal 1 Voice
CC 32 Bank Select LSB 3 = Internal 2 Voice

CC 32 Bank Select LSB 64 = Performance

CC 0 Bank Select MSB 0 = GM
CC 32 Bank Select LSB 0 = Internal 1 Voice

CC 0 Bank Select MSB 127 = GM (Drum)
CC 32 Bank Select LSB 0 = Internal 2 Voice

Wenn du eine Performance A 10 anwählen willst:
1. CC 0 Bank Select MSB 63
2. CC 32 Bank Select LSB 64
3. PC = 10 (oder 9)
 
Gut, soweit ist das alles klar. Ich hab nur noch eine Frage: muss ich bei den SysEx-Befehlen den PERFOM-MODE bei jeder Sequenz einschalten lassen oder genügt das, wenn ich das einmal am Anfang mache?
 
Wenn du in keinen anderen Mode wechseln willst, dann brauchst du diesen Befehl (Perform-Mode ON/OF und/oder Voice-Mode ON/OFF) nicht senden.
Ich füge diese Befehle bei solchen Geräten (wie z.B. S80) generell mit ein. Damit der nächste Befehl, egal wie der aussieht (wie z.B. der Wechsel in den Voice-, Sequenzer, oder Master-Mode), dann auch korrekt ausgeführt werden kann.
 

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

Musiker-Board Logo
Zurück
Oben