Zum Datenformat der Drummaps in Cubase LE 6

P

PySeq

|||||
Hallo,

dies wird schlimmer Nerd-Stuff, den ich gerade mal loswerden muß. Sehr speziell, wird die meisten nicht interessieren. Aber vielleicht kann jemand, der sich mit Cubase Drummaps beschäftigt, die Informationen zu dem Datenformat auch gebrauchen, wer weiß?

Also: Ich hab' mich mit dem Freeware-Sampler Shortcircuit (VST) beschäftigt, und meine (Drum-) Samples anhand der GM-Drummap angeordnet: Bass Drum auf C1, Closed Hi-Hat auf F#1, usw..
Ich hatte aber nicht für alle 128 Stellen der GM-Drummap Samples. Sondern z.B. 15 bei einem Kit bzgl. der "Korg Minipops 7".
Dadurch ergaben sich in meiner Drummap Leerstellen. Die nervten, weil man im Midi-Drum-Editor dann immer weit hoch- und runterfahren muß.
Größere Cubase-Versionen können wohl nur einen Teil der Drummap anzeigen, aber bei meinem LE 6 hab' ich das nicht gefunden.
Im Drummap-Editor kann man leere Stellen (also z.B. für "Conga", wenn man im Kit keine Conga hat) seltsamerweise nicht löschen. Und auch nicht nach unten verschieben.
Aber verschieben kann man doch, indem man die ".drm"-Datei von Hand editiert, die XML-Code enthält.
Es hat relativ lange gedauert, bis ich verstanden hab', wie Steinberg das Format für diese Datei haben will. Ziemlich schräg ist, wenn das Format nicht stimmt, stürzt Cubase LE 6 völlig unkontrolliert ab.
Eine so umfangreiche Software, die so Vieles macht, und dann kann sie ein nicht ganz korrektes Format in einer externen Konfigurationsdatei absolut nicht abfangen, das fand ich irgendwie lustig. Vielleicht ist dieses Problem auch in neueren Cubase-Versionen behoben, das weiß ich nicht.

Für die Drum-Stellen gibt es im wesentlichen zwei Abschnitte.
Der erste enthält eine Liste von "Items", mit den Beschreibungen der Drums, also z.B. den Namen, usw..
Hier muß es exakt 128 Items geben (sonst kommt der Absturz). Das erste Item (= Item Nr. 0) ist fest C-2 (= C "minus 2") zugeordnet, das 37. Item (= Item Nr. 36) also C1. Dies wird nirgendwo in der Datei festgelegt, es ergibt sich einfach aus der Reihenfolge der Items in der Datei.
Der zweite Abschnitt "Order" enthält 128 Zahlenwerte (0-127, die wiederum alle vorhanden sein müssen). Durch diese Werte wird die Reihenfolge der Items in der Drummap festgelegt. Wenn man den Abschnitt "Order" also mit "36" beginnt, wird das Item auf C1 (das 37. in der Item-Liste) als Erstes in der Drummap angezeigt.
Mit Hilfe von "Order" können also leere Drumstellen nach hinten geordnet werden, wo sie aus dem Weg geräumt sind und nicht weiter stören.

128 Items und 128 Werte in XML von Hand zu schreiben, ist nicht praktikabel (Bei XML-Dateien muß jedes einzelne Zeichen stimmen. Ist auch nur ein Zeichen falsch, funktionieren sie nicht als Datenquellen, und man kann den Fehler kaum finden). Ich habe mir dafür also ein Python-Skript geschrieben, das das XML automatisiert erzeugt. Die Daten für meine 15 Drums konnte ich aus der GM-Map als Vorlage ziehen und die restlichen Stellen mit leeren Items füllen.
Und dann den Bereich "Order" so ordnen, daß die benutzten Drums am Anfang in einem geschlossenen Block stehen, und der Rest leer ist.

Genaugenommen wurde es noch cooler: Shortcircuit verwendet ebenfalls eine XML-Datei für die Anordnung seiner Samples. Aus diesen Dateien für Shortcircuit zieht mein Skript die Daten für die Anordnung der Drums.
Letztlich liest mein Skript alle Shortcircuit-Dateien für mehrere Drum-Kits in einem Verzeichnis ein und erzeugt daraus automatisch passende Cubase Drummap-Dateien.
Als das funktioniert hat, fand ich das schon ziemlich geil. :)

Irgendwie macht es mir mehr Spaß, solche Programme zu schreiben, als Musik zu machen. Vielleicht weil man weniger kreativ dabei sein muß (das bin ich nicht gewohnt). Und weil es stiller ist.

Na ja, das wollte ich mal erzählen ...

Dies zur Belohnung (bitte den Ton anmachen):
View: https://twitter.com/WFLAJosh/status/1047184666904731648


:)
 
Zuletzt bearbeitet:
R

Rastkovic

Guest
Irgendwie macht es mir mehr Spaß, solche Programme zu schreiben, als Musik zu machen. Vielleicht weil man weniger kreativ dabei sein muß (das bin ich nicht gewohn). Und weil es stiller ist.
Reaktor oder Max/MSP könnten dann evtl. deine Freunde werden.... :)
 
 


News

Oben