Anfänger-Frage Midi Sysex am Beispiel Yamaha DX Serie

volkmarm

.....
Folgende Anfängerfrage: Im Handbuch meines V50 (erweiterter DX11) habe ich die Sysex Beschreibung gefunden, um in Echtzeit Daten zu ändern ("Sounddesign"). Es gibt natürlich bereits fertige Programme dafür, ich möchte das aber das Prinzip verstehen und meinen BCR2000 damit programmieren.

Genaugenommen habe ich 5 der 7 Paramerter, die notwendig sind , bereits identifiziert:

f0 ("Anmeldung")
43 ("auch noch Anmeldung")
11 (HEX, Device Nummer, hier 1)
12 (HEX, Group Nummer des zu bearbeitenden Bereichs der Daten lt. Handbuch)
[PARAMETERNUMMER)
[DATA]
f7 ("Sendungsende")

Parameternummer und Data sind einzelnen Tabellen des Handbuchs zu entnehmen. Beispielhaft hab ich jetzt mal eine Tabelle hier in der Anlage.

Die erste Spalte ist nach Anschein nur eine Ordnungsnummer in den ganzen Tabellen. Und wenn ein ## dahinter steht bedeutet es nach Legende nur, dass dies anders als bei anderen 4OP Geräten von Yamaha umgesetzt ist. Soweit ok.

Die relevante [PARAMETERNUMMER] dürfte damit in der zweiten Spalte stehen. Das interpretiere ich jetzt als Dezimalwert, der sich auch in HEX gut umrechnen lässt. Das gleiche könnte ich mit den Data machen.

ABER: jetzt wundert mich, dass in der Formatbeschreibung jeweils 7 Bit als Werte und eine führende "0" - bei Parameter als auch bei Data, vorgesehen sind. Damit kann ich also die PARAMETERNUMMER doch nicht einfach übernehmen. DATA auch nicht.

Weiterhin hab ich in der Tabelle dann doch 7 Bit einzeln angegeben - zumindest theoretisch. Tatsächlich stehen da eher Anmerkungen oder teilweise "0" und Anmerkungen. Und wofür stehen diese 7 Bit? Data? Parameter?

Jetzt frage ich mich also, wie lese ich die richtigen Werte aus dieser Tabelle?

DANKE!!!
 

Anhänge

  • image_50389761.JPG
    image_50389761.JPG
    1,4 MB · Aufrufe: 8
  • image_50393857.JPG
    image_50393857.JPG
    586 KB · Aufrufe: 7
Zuletzt bearbeitet:
Die ganzen 4Op Teile, DX100/27/100/21/11/TX81z &Co sind kompatibel, nicht vorhandene Parameter werden jeweils ignoriert.

Und wofür stehen diese 7 Bit? Data? Parameter?

Bin jetzt auch nicht unbedingt der Sysex Profi, aber MIDI überträgt immer 7Bit Worte, größere Werte müssen aus msb/high und lsb/low zusammengetzt werden.
 
ABER: jetzt wundert mich, dass in der Formatbeschreibung jeweils 7 Bit als Werte und eine führende "0" - bei Parameter als auch bei Data, vorgesehen sind. Damit kann ich also die PARAMETERNUMMER doch nicht einfach übernehmen. DATA auch nicht.

Die führende Null bzw. Eins zeichnet bei MIDI ganz grundsätzlich Datenbytes bzw. Statusbytes aus.

Statusbytes: Es gibt bei Sysex reservierte Bytes, allen voran 0xF0 (Start einer jeden Sysex-Message) und 0xF7 (Ende der Sysex-Message).

Wichtig ist es vor allem, die Konvertierungen zwischen Binär-, Dezimal- und Hexadezimalsystem aus dem EffEff zu beherrschen.

Konvertierung von Hexadezimal -> Dezimal -> Binär:

0xF0 -> 240 -> 0b11110000
0xF7 -> 247 -> 0b11110111

Datenbytes: Diese MÜSSEN kleiner als 128 sein:

0x7F -> 127 -> 0b01111111

Man kann hier erkennen, dass Datenbytes immer mit einer Null anfangen und Statusbytes immer mit einer 1. Dieser Typ von Information hat also eine effektive Länge von 7 Bit, steckt aber in einem Wort von 8 Bit Länge drin. Wenn eine Information einen größeren Wert als 128 hat, dann muss sie auf zwei (oder sogar noch mehr!) Bytes aufgeteilt werden. Dabei gibt es verschiedene Strategien, die alleine dem Hersteller eines bestimmten Geräts obliegen und nicht weiter standardisiert sein müssen.

Ein MIDI-Byte mit dem Wert 128 ist dieser Logik zufolge ein Statusbyte. Und zwar leitet es einen Note-Off-Event für den MIDI-Kanal "1" ein. Darauf folgen zwei Datenbytes, nämlich für die zu spielende Note und die Velocity.

Weitere Infos: http://unseretollepage.de/hosted/midiguide/kap05.html
 
Zuletzt bearbeitet:
Ich habe das, was du vorhast, schon hinter mir, ebenfalls V50 + BCR2000. Ist tatsächlich gar nicht so schwierig, wenn man das Prinzip erstmal verstanden hat (dazu wurde ja jetzt schon das Wichtigste gesagt). Ist halt eher so 'ne serielle Fummel-Arbeit, viel Copy/Paste, wenig wirklicher Denksport, aber lohnt sich. Die Kombi ist extrem spaßig und ermöglicht nochmal ein ganz anderes Arbeiten mit dem Synth.

Ich kann nachher gerne mal mein V50-BCR-Overlay hier hochladen, wenn du reinschauen willst.

Du nutzt sicher auch den "BC Manager", oder?
 
So sieht das bei mir aus. Auf welche Knöpfe man welche Parameter legt, ist aber natürlich stark Geschmackssache. Für mich war klar, dass ich möglichst alles, was Operator-spezifisch ist, auf die obere Reihe mit den vier logischen Gruppen verteile (mit Ausnahme der allerwichtigsten, die ich immer erreichbar haben will). Also eine "Group) pro Operator, was sich bei vier Groups natürlich sehr anbietet. Überhaupt finde ich es ziemlich nett, dass der V50 (TX81Z, DX11 usw.) ziemlich exakt so viele Parameter pro Patch hat, wie sich auf dem BCR abbilden lassen, ohne allzuviel zu streichen oder zu vereinfachen.

1643201435561.png
 

Anhänge

  • NL-V50-BCR2000-20101030.txt
    43,4 KB · Aufrufe: 8
Zuletzt bearbeitet:
Ich habe das, was du vorhast, schon hinter mir, ebenfalls V50 + BCR2000. Ist tatsächlich gar nicht so schwierig, wenn man das Prinzip erstmal verstanden hat (dazu wurde ja jetzt schon das Wichtigste gesagt). Ist halt eher so 'ne serielle Fummel-Arbeit, viel Copy/Paste, wenig wirklicher Denksport, aber lohnt sich. Die Kombi ist extrem spaßig und ermöglicht nochmal ein ganz anderes Arbeiten mit dem Synth.

Ich kann nachher gerne mal mein V50-BCR-Overlay hier hochladen, wenn du reinschauen willst.

Du nutzt sicher auch den "BC Manager", oder?
Also wenn ich ganz unverschämt fragen dürfte: Könntest Du mir neben dem Layout auch das fertige Preset schicken? Ich stehe mit dem BCR noch auf Kriegsfuß (hab den erst erworben und mehrere Wochen gebraucht, um ein PReset des DW-8000 darauf zu laden. Mit der Lernfunktion ist das ja bei den alten Geräten nicht so einfach.

Wegen des Editors: Nach diverser Sucherei und Tipps hier im Forum hab ich den BC Manager 4.2. Aber auch damit ist das für mich noch nicht ganz einfach (bin woohl zu alt für die Technik geworden...)
 
So sieht das bei mir aus. Auf welche Knöpfe man welche Parameter legt, ist aber natürlich stark Geschmackssache. Für mich war klar, dass ich möglichst alles, was Operator-spezifisch ist, auf die obere Reihe mit den vier logischen Gruppen verteile (mit Ausnahme der allerwichtigsten, die ich immer erreichbar haben will). Also eine "Group) pro Operator, was sich bei vier Groups natürlich sehr anbietet. Überhaupt finde ich es ziemlich nett, dass der V50 (TX81Z, DX11 usw.) ziemlich exakt so viele Parameter pro Patch hat, wie sich auf dem BCR abbilden lassen, ohne allzuviel zu streichen oder zu vereinfachen.

Anhang anzeigen 128019
und die nächste blöde Trage: wie bekomme ich die txt Datei jetzt auf den BCR2000?
 
Also wenn ich ganz unverschämt fragen dürfte: Könntest Du mir neben dem Layout auch das fertige Preset schicken?

Ist ebenfalls in dem Post mit drin, als Anhang unter dem Bild. Du musst aber die .txt-Datei dann umbenennen in .bcr, damit du sie in den BCR-Manager laden und übertragen kannst.
 
Die führende Null bzw. Eins zeichnet bei MIDI ganz grundsätzlich Datenbytes bzw. Statusbytes aus.

Statusbytes: Es gibt bei Sysex reservierte Bytes, allen voran 0xF0 (Start einer jeden Sysex-Message) und 0xFE (Ende der Sysex-Message).

Wichtig ist es vor allem, die Konvertierungen zwischen Binär-, Dezimal- und Hexadezimalsystem aus dem EffEff zu beherrschen.

Konvertierung von Hexadezimal -> Dezimal -> Binär:

0xF0 -> 240 -> 0b11110000
0xFE -> 254 -> 0b11111110

Datenbytes: Diese MÜSSEN kleiner als 128 sein:

0x7F -> 127 -> 0b01111111

Man kann hier erkennen, dass Datenbytes immer mit einer Null anfangen und Statusbytes immer mit einer 1. Dieser Typ von Information hat also eine effektive Länge von 7 Bit, steckt aber in einem Wort von 8 Bit Länge drin. Wenn eine Information einen größeren Wert als 128 hat, dann muss sie auf zwei (oder sogar noch mehr!) Bytes aufgeteilt werden. Dabei gibt es verschiedene Strategien, die alleine dem Hersteller eines bestimmten Geräts obliegen und nicht weiter standardisiert sein müssen.

Ein MIDI-Byte mit dem Wert 128 ist dieser Logik zufolge ein Statusbyte. Und zwar leitet es einen Note-On-Event für den MIDI-Kanal "1" ein. Darauf folgen zwei Datenbytes, nämlich für die zu spielende Note und die Velocity.

Weitere Infos: http://unseretollepage.de/hosted/midiguide/kap05.html
Vielen Dank für die Arbeit. Was für mich noch wertvoller ist: Der Link auf die Page! Genau sowas suchte ich, um mich dem Thema MIDI mal ganz tief zu widmen. Herzlichen Dank !
 
Natürlich hat sich der Fehlerteufel eingeschlichen. 0xFE (tats. "Active Sense") ist nicht das Ende der Sysex-Mesage, sondern 0xF7.
 
und die nächste blöde Trage: wie bekomme ich die txt Datei jetzt auf den BCR2000?

wenn du sie umbenannt hast, dann kannst du sie im BCMan laden, und von dort aus dann übertragen. Habe die Prozedur schon lange nicht mehr gemacht, aber falls es dir nicht auf Anhieb gelingen sollte: du wirst nicht der Einzige sein, dem es so geht. Erinnere mich lebhaft, dass an mindestens 50% der Tage die Kommunikation zwischen BCR und BCMan nicht so richtig geklappt hat.

Wegen des Editors: Nach diverser Sucherei und Tipps hier im Forum hab ich den BC Manager 4.2. Aber auch damit ist das für mich noch nicht ganz einfach (bin woohl zu alt für die Technik geworden...)

Absolut nachvollziehbar (-:
 
wenn du sie umbenannt hast, dann kannst du sie im BCMan laden, und von dort aus dann übertragen. Habe die Prozedur schon lange nicht mehr gemacht, aber falls es dir nicht auf Anhieb gelingen sollte: du wirst nicht der Einzige sein, dem es so geht. Erinnere mich lebhaft, dass an mindestens 50% der Tage die Kommunikation zwischen BCR und BCMan nicht so richtig geklappt hat.



Absolut nachvollziehbar (-:
ich werde es heute Abend ausprobieren und berichten. Vielen, vielen Dank!
 
Der BCR bringt mich um den Verstand....

JEtzt hab ich mit dem BC MAnager die Datei auf den 2000er überspielt und man sieht auch, dass er angekommen ist. Aber jetzt kann ich die Einstellungen nicht speichern. Und sowie ich das Preset auf eine andere Nummer wechsle, dann ist die Datei wieder weg :toktok:

Was mache ich denn jetzt wieder falsch? Die "Store" Taste ist ja mit einer anderen Einstellung belegt....
 
ok, Problem auch gelöst: In Deiner Datei sind ja 4 verschiedene PResets und nur das erste ist das relevante. Und wenn ich das separiere und eine neue Connection im BC Manager starte und dann diese reduzierte bcr einlese funktioniert es.
 
So sieht das bei mir aus. Auf welche Knöpfe man welche Parameter legt, ist aber natürlich stark Geschmackssache. Für mich war klar, dass ich möglichst alles, was Operator-spezifisch ist, auf die obere Reihe mit den vier logischen Gruppen verteile (mit Ausnahme der allerwichtigsten, die ich immer erreichbar haben will). Also eine "Group) pro Operator, was sich bei vier Groups natürlich sehr anbietet. Überhaupt finde ich es ziemlich nett, dass der V50 (TX81Z, DX11 usw.) ziemlich exakt so viele Parameter pro Patch hat, wie sich auf dem BCR abbilden lassen, ohne allzuviel zu streichen oder zu vereinfachen.

Anhang anzeigen 128019
JA also wirklich vielen, vielen Dank! Das funktioniert jetzt echt wunderbar.

Bisher hatte ich diverse SW-Editoren. Aber das wollte ich ja genau verhindern (ich hab nicht mal eine DAW sondern arbeite oldschool auf HW-Sequencern (Alesis MMT-8/Roland MC 50 / Yamaha QY700) und Harddisk-Recordern (Korg D1200 + 1600).

Und da bin ich dann froh, jetzt auch Soundarbeiten ganz wie in den 80ern ohne PC zu machen (ich hätte zwar auch stylegemäß einen Atari ST und hab da Notator als auch Sounddiver und Co, aber den benutze ich noch seltender als mein sonstiges Equipment.

Also vielen Dank noch mal, ganz großes Kino! :huepfling::banane::huepfling::huepfling::huepfling::huepfling::huepfling::huepfling::huepfling:
 
da nicht für!

Ja, das hätte ich noch mit dazu sagen sollen... in der Datei ist noch ein anderes Preset, für den Marion MSR2/ProSynth, plus zwei Schnipsel von irgendwelchen Baustellen und Experimenten. Steht schon ewig auf meiner Liste, das mal komplett zu Ende zu bringen, dann kann man's auch guten Gewissens öffentlich zugänglich machen.
 
Hi @NickLimegrove Danke für das Preset! Ich habe als Newbie den "Fehler" gemacht und gedacht ich schaffe mir einen V50 samt BCR an und dachte ich könne gleich loslegen! Daraufhin verzweifelte ich zunächst etwas daran die beiden zu verbinden und gewann prompt Hoffnung als ich dieses Forum und deine Posts hier fand!
Danke dafür, dass hat mich einen großen Schritt weitergebracht!
Ich habe es allerdings noch nicht geschafft, dass der BCR mit dem V50 kommuniziert bzw. dass der V50 zuhört!
Im V50 ist Midi aktiviert und auf omni gestellt, kann aber am BCR2000 drehen wie ich will und nichts passiert. Habe auch schon versucht die verschiedenen Modi (Single, Performance) zu switchen, Compare ist aus, Edit Modi versucht. Nichts hilft.
Mein Interface Kommuniziert mit beiden problemlos.
Was mache ich falsch?
 
Zuletzt bearbeitet:
Hallo Chalaco, hab auch den Yamaha V50 am BCR. Grundsätzlich geht das also 😉 Du musst bei BCR immer auch auf die Modi achten. Das war mein Einsteigerproblem seinerzeit. Die grundsätzliche Anleitung zum BCR hast Du sicherlich aus dem Netz geladen.
 


News

Zurück
Oben