Matrix6 über BCR2000 steuern?

Super...danke dir erstmal für deine Ausführungen...habs jetzt so in etwa kapiert.
Hab nun einen encoder des BCR auch so konfiguriert...der BCR scheint auch in etwa das zu machen was ich dem gesagt habe (.tx $f0 $10 $06 $06 $15 val $f7 -> der "val" wert ändert sich mit dem drehen des Encoders) - aber der Matrix scheint nix davon wissen zu wollen.
Hab mir jetzt im Midi Ox nochmal genau angeschaut das das BCR sendet -> das sieht so aus als würde es wild durcheinander auf allen Midi-Kanälen senden, obwohl ich Kanal 01 bei beiden Geräten eingestellt habe.

Naja...ich werde der Sache auch mal nachgehen - vielleicht finde ich die Lösung dazu...
 
$rev R1
$encoder 1
.tx $F0 $10 $06 $06 val $F7
.minmax 0 127
.showvalue on
.mode 1dot
.resolution 96 96 96 96
.default 64
$end


Laut MIDI-OX tut das. Am Matrix hab ichs nicht getestet.
 
MiK schrieb:
Muss mich erst mal noch durch alle Parameterlisten graben. wenn Du die SysEx-Specs vom Matrix (6 und 1000 sind da ja gleich) rumliegen hast, kannst ja mal anschauen. Wenn die Werte, die Du brauchst, einfach Parameter sind mit Wert bis 7 Bit, dann ists kein Problem. Nur von der Modulationsmatrix lass ich die Finger. Ich denke, an Filtern und Hüllkurven kannst Du problemlos in Realtime rumknobsen. Interessant wirds nur, ob der Matrix das Zeug auch online ranzieht, also während der gespielten Note. Und grad, wenn ich Filter höre - das magst du vielleicht eher auf nen normalen Controller routen, weil die Datenmenge bei SysEx höher ist, und erfahrungsgemäss der Matrix ziemlich schnell wackelig wird, wenn man zu viel rüber schickt. Schraub mal am ObieEdit rum, während Du spielst. Wenn Du eine Minute sauberen Betrieb hast, ist vermutlich das MIDI-Kabel nicht eingesteckt :)

Man wird sehen...
Den Matrix 6 habe ich schon mit CC-Werten bombardiert, um Gate-Filterflächen zu erzeugen. Das ging problemlos und klang spitze Ist nur ein wenig Programmierarbeit..
 
CC ist auch ok. Aber die SysEx Verarbeitung ist weder knackfrei noch besonders schnell.

Ich hoffe mal ich kann am 'schnell' noch was drehen, zumindest diese ekligen Verschluckteile wenn man ihn bombardiert ...
Es wird praktich das ganze "Programm" für die 'Modulationsprozessoren' neu erstellt, und zwar für jeden gesendeten SysEx sofort. Und genau das plane ich auf 'mach es erst wenn du alle neuen SysEx Werte eingetragen hast' zu verlegen. (nur Matrix 1000 - und "don't hold your breath".)

Alles, was man zum spielen braucht muß auf einen Controller.
Das ist aber dank der vollständigen Modmatrix kein Problem.
 
@taschenmusikant:
Wie jetzt den Matrix6 mit CC werten gefüttert? Der versteht doch nur sysex oder? Mit CC werten konne mein M6 ja nun irgendwie garnix anfangen...hab das auch mal im Sequenzer-prog getestet...da tat sich garnix.... :?:
 
Okay...das wäre dann doch nicht ganz das was ich will. Ich schau mit das mit dem BCR später nochmal an.....irgendwie muss es ja gehen, scheinbar wird ja das richtige gesendet..
 
Naja, es reicht auf jedenfall fuer nettes Parameter-Morphing, Zugriff auf jeden einzelnen Parameter brauch ich gar nicht. Ich mag dieses Geschraubsel nicht in 'nem Song haben...
 
Also, habe jetzt den BCR wieder vom Sofa ins Studio verfrachtet, die weiteren Analysen kann ich auch da machen. Und entsprechend hab ich mal angefangen, son Patch fürn Matrix-1000 zu bauen.

Meine Herrn, ist das Vintage-CPU-Leistung in dem Karren :) Was Fetz da berichtet, ist absolut nachvollziehbar. Einige Parameter, die ausreichend tief im Modulationskram von der Kiste sitzen, machen bei Änderungen sowas von gar keinen Spass. Der Patch wird also auf jeden Fall noch nen All-Notes-Off oder Reset oder sonstwas enthalten müssen, weil alleine die Änderung eines Controller (LFO->DCO modulation amount) mit nebenher paar Töne reindrücken das Ding in einen völlig unbrauchbaren Zustand versetzt (hängender Ton und so). Außerdem kann es vorkommen, daß die Kiste echt mal nach Empfang einiger Dinger bis zu 10 Sekunden hängt und auf nix mehr reagiert.

Soviel zur "Brauchbarkeit" - glücklicherweise nicht bei allen Parametern. So kann ich z.B. sorglos an der DCO 1 Initial Frequency rumschrauben, das geht online ganz gut. Ich bau jetzt mal alle Parameter ein, dann sieht man ja, was davon praxisgerecht ist. Ansonsten so machen, wie das jeder Matrix-user betreibt - Controller konfigurieren und in die Modmatrix aufnehmen. Das funktioniert normalerweise sehr gut und reicht für mindestens 95% der Anwendungsfälle wirklich aus :)

Kleiner Vergleich: SysEx Parameter Change 7 Bytes. Control Change 3 Bytes. Und wenn Running Status dazu kommt, also zwischen den Control Changes nix anderes kommt, sogar nur 2 Bytes. Also 2-3 mal so schnell übertragen -> weniger Latenzen, MIDI-Bus nicht bis zum Anschlag dicht.

Übrigens kann man beim BCR auch das txinterval konfigurieren, also quasi die Mindestwartezeit zwischen gesendeten Updates. Ich fürchte, dass das zumindest beim experimentieren mit 100ms gar nicht so schlecht eingestellt ist, und 2ms definitiv bei den SysEx-Meldungen dafür sorgt, daß der Bus dicht ist - diese 2ms brauchst nämlich schon, um die 7 Bytes zu übertragen :)

Wie auch immer - ich schraub die BCR-Config fertig, sehe aber keinen echten Nutzen darin, außer als "Lernmaterial", als was es auch gedacht sein soll.
 
*seufz*

Die Firmware ist echt mal ziemlich broken :) Fetz, wie weit bist Du? Wenn weit genug, schau mal bitte nach Parameter 29. Gerade, wenn man den ändert, fliegt einem die Firmware quasi sofort um die Ohren, insbesondere bei Werten zwischen 0 und 63.

SynthKraft: VCF Initial Frequency über SysEx steuern ist kein guter Plan. Das ist wirklich "Initial". Wird zwar auch online rangezogen, aber nur mit grosser Latenz. Also zum Filterschrauben willst Du Cutoff definitiv auf nen Controller legen, das hat über SysEx gar keinen Tauch.
 
Die Matrix Engine läuft mit ca 120 Hz.
Es werden alle Midi-Daten in einem Puffer gesammelt und dann im Engine-Takt abgearbeitet.

Das völlig bekloppte ist nun, das jeder SysEX, der im Puffer steht einzeln komplett abgearbeitet wird, statt erst den kompletten Puffer auszuwerten dabei erstmal nur alle Parameter in den Patch einzutragen und dann am Ende *einmal* die Enginedaten neu zu rechnen.

Die Modulationsengine ist ziemlich pfiffig programmiert, damit sie zur Laufzeit mit dem 2Mhz 6809 hinkommt. Dafür ist der Code der dort Änderungen vornimmt alles andere als klein. Es werden übrigens alle Modulationen in der gleichen Matrix gerechnet, bei den 'fixed modulations' werden die Quellen und Zeile nur fest eingesetzt und dann die allgemeine Routine benutzt.

Parameter 29: Es gibt eine handvoll Routinen, die unteschiedliche Teile der Patchdaten in Engine-Daten übersetzen. Bei Parameter 29 (Envelope 2 to VCA) wird eine falsche Update-Routine aufgerufen, was nach meinen bisherigen Verständniss nur dazu führen sollte, dass die Änderung nicht korrekt übernommen wird.

VCF Initial Frequency: ist fixed, da wurden einfach mal fast alle Update-Routinen aufgerufen was sich als unnötig erwies. (Nu isses zumindest schon mal so unschnell wie der Rest auch.)
 
Hmm...also so wie das ausschaut, wird es wohl mit dem BCR nicht das, was ich mir vorgestellt hatte. Wichtig wäre mir schon die Steuerung aller Parameter (außer Mod-Matrix vielleicht) in Echtzeit gewesen. Die Programmierung von dem Teil wäre ja nichtmal das Problem. Denke das Prob. liegt hier eher beim Matrix (CPU-Leistung, Sysex).

Werde das BCR wohl also zurückschicken.
Aber dennoch ein großes Danke an Mik für seine Hilfe. Aber ich bin ja nicht der einzige den das interessiert hat, daher ist es ja auch für andere nützlich.
 
Fetz schrieb:
Das völlig bekloppte ist nun, das jeder SysEX, der im Puffer steht einzeln komplett abgearbeitet wird, statt erst den kompletten Puffer auszuwerten dabei erstmal nur alle Parameter in den Patch einzutragen und dann am Ende *einmal* die Enginedaten neu zu rechnen.

Hmja, das ist in der Tat etwas albern :)

Fetz schrieb:
Die Modulationsengine ist ziemlich pfiffig programmiert, damit sie zur Laufzeit mit dem 2Mhz 6809 hinkommt. Dafür ist der Code der dort Änderungen vornimmt alles andere als klein. Es werden übrigens alle Modulationen in der gleichen Matrix gerechnet, bei den 'fixed modulations' werden die Quellen und Zeile nur fest eingesetzt und dann die allgemeine Routine benutzt.

Das denk ich mir, son 6809 ist zwar ein ziemliches Kampftier, aber ich hab schon bei dem Parameter durchlesen gesehen, daß das Ding nen Haufen Zeug kann, und das in 8ms Zyklenzeit durchzurechnen, ist schon recht edel.

Die "fixed modulations" sind also quasi vorgefertige Einträge in der Matrix, die in dem Fall nicht krumme 10, sonder einfach glatte 16 Einträge oder sowas hat?

Fetz schrieb:
Parameter 29: Es gibt eine handvoll Routinen, die unteschiedliche Teile der Patchdaten in Engine-Daten übersetzen. Bei Parameter 29 (Envelope 2 to VCA) wird eine falsche Update-Routine aufgerufen, was nach meinen bisherigen Verständniss nur dazu führen sollte, dass die Änderung nicht korrekt übernommen wird.

Naja. Vielleicht ist das von Version zu Version unterschiedlich, weiss grad nicht, was ich für ne Version drin hab. Aber bei den meisten Änderungen am 29er, vor allem eben im Bereich <64, hängt sich die Karre komplett weg. Müll auf dem Display und das Ding friert völlig ein. So richtig "klassisch".

Fetz schrieb:
VCF Initial Frequency: ist fixed, da wurden einfach mal fast alle Update-Routinen aufgerufen was sich als unnötig erwies. (Nu isses zumindest schon mal so unschnell wie der Rest auch.)

Hehe. Okay. Also wie gesacht - nur via Controller benutzbar. Was generell am meisten Sinn macht. In meinem 1000er waren die ersten beiden Banks so mit "ich tu mal wie ne 303"-Patches bestückt, da war der ganze Krempel angenehm auf Aftertouch und Modwheel gehängt, das ist IMHO auch der Weg, den man da verwenden sollte. SysEx eigentlich nur im Notfall. Generell. Nicht nur beim Matrix-1000.

Was ich da aufm BCR zusammenbrate, ist mehr sowas wie "SoundDiver in Hardware". Übrigens sind mir die Knobs ausgegangen. 56 Encoder sind halt doch zu wenig. Sieht im Moment so aus:

Encoder Group 1 - DCO 1 Parameter
Encoder Group 2 - DCO 2 Parameter
Encoder Group 3 - Mix/VCF/VCA Parameter
Encoder Group 4 - oh, die ist ja noch frei. Dann kommen die LFOs da hin
Encoder Reihe 1 - Envelope 1
Encoder Reihe 2 - Envelope 2
Encoder Reihe 3 - Envelope 3

Bin noch bei einigen Dinger dabei, die Wertebereiche zu erforschen, aber es sieht wohl so aus, als würd ich das im Laufe des Tages mal online stellen. Geht übrigens nicht mir dem Converter 0.2, da hab ich heut morgen noch nen Bug im Comment-handling gefunden, 0.3 ist schon fertig, aber noch nicht online, weil ich grad am Mac hocke, und später erstmal den Wintendo-Kasten booten muss zum Compilieren.
 
SynthKraft schrieb:
@taschenmusikant:
Wie jetzt den Matrix6 mit CC werten gefüttert? Der versteht doch nur sysex oder? Mit CC werten konne mein M6 ja nun irgendwie garnix anfangen...hab das auch mal im Sequenzer-prog getestet...da tat sich garnix.... :?:
Wie der Summa schon sagte. Man kann Modulationsverknüpfungen machen, in dem man einen beliebigen CC-Wert einem Matrix Parameter zuweist. In der Liste ist schon ziemlich viel drin, so z.B. Cutoff, Reso, aber auch dieADSR-Parameter. Das Ansteuern geht auch in Echtzeit, ohne dass der Matrix holpert. Was willst du denn noch mehr an Steuerung?
 
SynthKraft schrieb:
Hmm...also so wie das ausschaut, wird es wohl mit dem BCR nicht das, was ich mir vorgestellt hatte. Wichtig wäre mir schon die Steuerung aller Parameter (außer Mod-Matrix vielleicht) in Echtzeit gewesen. Die Programmierung von dem Teil wäre ja nichtmal das Problem. Denke das Prob. liegt hier eher beim Matrix (CPU-Leistung, Sysex).

Genau. Der ist dafür nicht gebaut. Mit dem BCR kannst echt so ziemlich alles machen, aber der Matrix ist in Sachen Realtime-SysEx einfach mal gar nicht so geeignet.

SynthKraft schrieb:
Werde das BCR wohl also zurückschicken.

Aber nicht, dass Du dann wieder einen willst, wenn Behringer mal wieder die Preise erhöht hat, dann ärgerst Dich. Abgesehen vom 19%-Faktor :)
Überlegs Dir gut, ob Du den wirklich abstossen willst. IMHO die Knobsbox mit dem besten Preis/Leistungsverhältnis. Mit ist es völlig unverständlich, wie Behringer so präzise Encoder mit 96(!!!) Steps pro Umdrehung bei dem Preis verbauen kann. Wäre nicht noch Garantie drauf, hätt ich den schon lang mal aufgeschraubt und geschaut, was das überhaupt für Dinger sind. Die fühlen sich schon fast nach magnetischen oder optischen an.

SynthKraft schrieb:
Aber dennoch ein großes Danke an Mik für seine Hilfe. Aber ich bin ja nicht der einzige den das interessiert hat, daher ist es ja auch für andere nützlich.

Klar, das interessiert viele, und hängt auch schon ewig in der Queue. Nicht nur für den Matrix, allgemein.
 
Fetz, Du als kenner - wo issn der Mixer zwischen den beiden VCOs untergebracht? Im Voice Chip oder ist der extern? Ich stell nämlich grad fest, daß die eine oder andere Voice meines Matrix kaputt zu sein scheint, und dass ich das wohl auf den Mixer schieben kann, weil da stellenweise das Regelverhältnis zwischen den VCOs sehr deutlich zwischen den Voices abweicht.

Edit: Hat sich erledigt. So ne Rekalibrierung hats wohl gefixt, jetzt klingen wieder alle Voices gleich.
 
So, auf http://b-control.mik-music.org/ ist mal der erste Wurf zur Matrix-Fernsteuerung drauf. Ich hab das syx dazu gepackt wegen dem Comment-Bug in BC-Convert 0.2. Also im Moment ist das txt nur zum reinschauen, noch kanns keine selber in ein funktionierendes syx bauen.

Kurze Erläuterung:

Encoder 1-8 = oberste 8 Encoder in Gruppe 1 (auswahl links oben)
Encoder 9-16 = oberste 8 Encoder in Gruppe 2 (auswahl rechts oben)
Encoder 17-24 = oberste 8 Encoder in Gruppe 3 (auswahl links unten)
Encoder 25-32 = oberste 8 Encoder in Gruppe 4 (auswahl rechts unten)
Button 33-48 = Buttons unter den 8 obersten Encodern
- die oberste Button-Reihe ist Waveform-Auswahl und Click an/aus. Button 1-3 = DCO 1 Waveform, 4 = DCO 1 Clock, 5-7 = DCO 2 Waveform, 8 = DCO 2 Click. Die Dinger sind alle Toggle. Der ÜBersicht halber ist aber bei den beiden Waveform-Gruppen ein Einschalten mehrere Buttons nicht sinnvoll, dann weiss man nämlich nicht mehr, welcher wirklich gesetz ist. Also erst alten ausschalten, dann neuen einschalten. Beim Ausschalten (egal welcher) wird 0 geschickt, also alle Waveforms aus. Bein Einschalten der Wer des Buttons, also beim ersten Pulse, beim zweiten Wave, beim dritten beides.
Die 3 Encoder-Reihen im "Hauptteil" sind für die 3 Hüllkurven (Encoder 33 aufwärts). Sonst ist noch nix drin, für weitere Hinweise bitte im matrix-1000.txt selber nachschauen :)

Und - Das ist ein Entwurf. Die Lust vergehr relativ schnell, sowas zu bauen, wenn man sieht, wie unbrauchbar der Matrix auf die meisten Dinger reagiert. Einige sind aber echt okay. Einfach mal ausprobieren. Und nicht wundern, wenn der Matrix einem dabei abstürzt, das kann wohl mal vorkommen :)
 
:supi: coole Sache, die du da gebaut hast - muß leider aber gleich los die Wintersonnenwende begiessen - nix Test :sad: .

Der *komplette* Analogteil der Voice ist auf einem Chip. Und die Chips gehen hin und wieder mal (gerne auch nur ein bißchen!) kaputt (-> ggfls. PM).
Aber vorher *unbedingt* erstmal neu kalibireren (lassen) und den Chip mit einem andern tauschen. (Ist total straight und übersichtlich.)

http://wolzow.mindworks.ee/analog/m1k-firmware.htm


Nächste Woche hab ich etwas Zeit da könnte ich den SysEx Translator mal für Win übersetzen.
 
Ich übersetz den heut eh noch. Heut Abend ist Sofa-Mode, da ist das Notebook dann wieder an, dann zieh ich den gschwind durch den Watcom.

Edit: Version 0.3 steht zum Download bereit. Und ein BCR-Preset für den MKS50 :)
 
Nur der Vollständigkeit halber möchte ich meine Behauptung, dass der BCR2000 bei den SysEx-Strings keine Checksumme mitliefern kann, zurück ziehen.

Ich frag mich, ob es irgendwann mal ne Zeit gibt, wo ich innerhalb von 5 Stunden Benutzung des Gerätes keine weiteren undokumentierten Features finde :)
 


News

Zurück
Oben