What the digital Prophet missed – iPad control for the Creamware Pro-12 ASB

Wouldn’t it be nice if you had a controller for every aspect of this thing?

Creamware Pro-12 ASB Synth Module

A brilliant virtual-analog recreation of Sequential Circuit’s Prophet-5 – unfortunately, some important parameters can not be reached from the hardware.

Weiterlesen

Matrix Modulation control included: iPad editor for the Oberheim Matrix-6/1000

Remember what I wrote about my attempt to build an iPad editor for my vintage Matrix-1000 analog synth with TB Midi Stuff? That it’s a pity that, due to the rather eccentric MIDI implementation of the Oberheim machine, I couldn’t build a controller for the modulation matrix? Tell you what: it works now.
20140430-235200.jpg

TB Midi Stuff – which is an absolutely great universal kit for building MIDI controllers, looking great and much cheaper than Lemur – has recently gained a feature that allows to send three-variable Sysex commands. And this is important – let me tell you why. (BTW, for those who can’t wait: Download links to the Matrix-1000 editor panels can be found in the TMBS forum.)

Let me explain the problem, and how to solve it with TBMS.

Unfortunately, this won’t work with Matrix-6s – they do not understand the sysex commands needed to program the mod matrix directly.

The Oberheim’s matrix control – one command, three parameters

As I’ve written before, the Oberheim Matrix-1000 has a couple of quirks and issues, especially concerning the modulation matrix, the analog synth’s strongest asset. Almost any other sound parameter within this synth can be controlled individually with a tailored MIDI Sysex message (something like: F0 10 06 06 1A xx F7, translating as „Listen synth, control coming up, setting vcf, to VALUE, thatsit“); the matrix modulation paths are set by a command sequence like this: F0 10 06 0B 01 xx yy zz F7, translating to „Listen synth, modulation coming up, setting modulation path 1 now, FROM, BY, TO, thatsit.“ What this means is: If you want to have full control over the modulation matrix, you have to be able to craft a Sysex message with at least three parameters.)

TBMS from version 2.2.4 on has a feature to achieve this: Masked variables – variables where you can set the bits you want to control. They can be up to 21 bits large – equalling three 7-bit MIDI values. So instead of sending three independent values, you tell TBMS how to craft a 21-bit variable containing the three parameters – and send this.

Step by step:

    • Define a global variable by entering Edit mode, selecting Page Settings in the upper right corner, scrolling down all the way, and adding a user variable. I’ve called it „mod0“, for modulation path 0; I’ve made it an internal variable, don’t worry about assigning it a range and max and min values for now.
    • Now, define a controller for the third of my three parameters – MIDI parameters are 7 bit only, e.g. between 0 and 127, equalling a hexadecimal value of 7F. Hexadecimal numbers are what you use in Sysex and masked variables, so what you do is add a Variable Message, select „Set Variable with Mask“, and set the mask to 7F. (My values are 0-32, so no setting the „Signed“ switch for this parameter. Remember to set the „Minimum Value“ and „Maximum Value“ to 0 and 20.)
    • Define a controller for the middle parameter – just as with the one above, only with a slight modification: Set the mask to 3F80. — Why is that? It’s 7F shifted left by 7 bits, and as you remember, parameters in MIDI are 7 bits. One noteworthy thing about the middle parameter: In my case, it takes values between -63 and +63, so I’ve set the „Signed“ switch here and set the „Minimum“ and „Maximum“ sliders to -63 and +63.
    • Only the most significant parameter missing now: Add another control for the first parameter, shift the mask by another 7 bit, and get 1FC000. Set Signed, Minimum and Maximum as desired (I used a 0-20 range here.)
    • Go back to Edit mode, call up the Page Settings, scroll down to your user variable, and add a MIDI message to it: Make it a Sysex message. Set Variable Size to three-byte and – this is important – Message Format to Linear (Little Endian). „Little Endian“ means that the lower values are sent first; as we’ve made our first controller control the lower 7 bits, this is just right. Set a Sysex message, which in my case is „(F0)10060Bxx(F7)“.

I guess there are not that many people who have followed my that far – but if you have, you may have noticed that the variable is supposed to transmit 3*7=21 bits of information, resulting in an integer range of 0 to 2,097,151. You can actually set that value in the Sysex range control setting,.

So whenever you tweak the controls for Matrix modulation path 0, TBMS constructs a three-byte, 21-bit message, which it then sends as part of a Sysex control message.

Enjoy!

The most recent version can be found in the TBMS forum. Dropbox link to V0.4 here and here. Please remember that there are two nasty bugs in the Matrix-1000 firmware – you cannot control ENV2->VCA and ENV1 Sustain via TBMS in consequence -, and that the editor only sends Sysex, it does not receive and interpret it.

QuNexus: Das Griffbrett für den aufstrebenden iPad-Synthesisten

Update. 27.6.13: Nicht nur, dass Keith McMillen innerhalb von Stunden auf meinen Bugreport reagiert hat, das in der Antwort angekündigte Update ist inzwischen draußen – der Editor V1.1 behebt die bemängelten Schwächen.

Frisch von Kickstarter: Gerade ist mein Exemplar aus der ersten Serie QuNexus-Keyboard-Controller von Keith McMillen eingetroffen. Echt klein – und fühlt sich trotz all dem Plastik nicht billig an, sondern solide und wertig. Alles, was man braucht, um mit dem iPad Musik zu machen – das Camera Connection Kit und ein paar tolle Softsynths wie Sunrizer, Magellan oder (ganz neu! ganz heiß!) der Waldorf Nave liegen ja ohnehin in jedem besseren Soundbastlerhaushalt herum.

Größenvergleich: Der komplette QuNexus würde glatt 4x auf die Fläche meines M-Audio Axiom 25 passen. Und ist dabei deutlich leichter zu transportieren und zu programmieren.

Größenvergleich: Der komplette QuNexus würde glatt 4x auf die Fläche meines M-Audio Axiom 25 passen. Und ist dabei deutlich leichter zu transportieren und zu programmieren.

Alles da, was man braucht also – vorausgesetzt, man kommt mit den frickeligen Minitasten zurecht und findet die richtige Kombination aus QuNexus-Programmierung und  Synthesizer-Sound.

Portabler Altar für Tastengötter

Vor vielen, vielen Jahren, ich war noch deutlich jünger, da träumte ich von einem Chapman Stick. (Es waren gerade noch die verdammten 80er, you see.) Zum Glück habe ich mir nie einen angeschafft, denn für jemanden wie mich – einen handwerklichen Dilettanten mit großer Experimentierfreude, aber immer zu wenig Zeit und zu wenig Lust zum Üben – wäre es genau das falsche Instrument gewesen. Ich hege den Verdacht, dass es mit dem QuNexus genauso sein könnte; die Anordnung der Tasten ist ähnlich wie bei einer Klaviertastatur, aber meine Finger finden sich einfach nicht zurecht. Da ist viel Übung gefragt.

Vermutlich hat Keith beim Kalibrieren des QuNexus auch an kräftigere Finger gedacht als die meinen, denn ich schaffe es auch mit größter Kraftanwendung nicht, den Dynamikumfang der Anschläge und der Aftertouch-Funktion auszuschöpfen. Ein Midi-Monitor bestätigt meinen Verdacht: Werte über 107, 108 sind nicht zu erreichen. (Allerdings kann man da mit dem Editor nachjustieren und andere Dynamikkurven, Schwellen und Verstärkungen einstellen.)

Der Editor: Mehr als eine v1.0 gebe ich ihm nicht

Womit wir beim Editor wären, meines Erachtens derzeit der größte Schwachpunkt des QuNexus. So wie er sich auf meinem Netbook gibt, scheint er fest für die Bildschirmauflösung 1024×768 konzipiert zu sein – der deutlich höher auflösende 10“-Bildschirm meines Samsung NF310 ist nur etwa zu einem Viertel gefüllt, was für die Lesbarkeit nicht gerade optimal ist. Und er gibt mehr Flexibilität vor, als er tatsächlich ermöglicht.

Der QuNexus-Editor v1.0.1: Screenshot bei 1366x768

Der QuNexus-Editor v1.0.1: Screenshot bei 1366×768

Gut, man kann Empfindlichkeit und Dynamikverlauf einstellen und die Parameter Druck und Druckpunkt den üblichen Midi-Controllern zuweisen. Gedacht ist das für die Standard-Synthesizer-Controller: Schwächerer oder stärkerer Druck auf die Taste ersetzt das Modulationsrad, der Druckpunkt (ob man die Taste am vorderen oder hinteren Rand drückt) dreht an der Tonhöhe – wie ein Pitchrad, wobei der QuNexus mit einem Trick auch polyphon pitchen kann: wenn man will, wird jeder Tastendruck auf einem eigenen Midi-Channel übertragen, was ermöglicht, jede Stimme unabhängig von den anderen zu verbiegen.

Ein paar Wünsche bleiben – zumindest bei mir – offen:

  • Ich würde gerne das „Bend“-Pad unten links frei belegen können – und nicht nur als Pitchwheel-Ersatz nutzen. Zum Beispiel als Modulationsrad. 
  • Es hat keinen Sinn, den „Tilt“-(Druckpunkt-)Parameter auf jeden Midicontroller legen zu können, wenn man den Nullpunkt nicht richtig bestimmen kann. Tilt für CC 1 (Modulationsrad) – nicht brauchbar, weil der Controller die Mittelstellung überträgt. Man könnte sich noch helfen, wenn man dem Editor einen Offset von -64 angeben würde, so dass die Nullstellung auch wirklicn 0 überträgt, aber leider kann man für den Offset keine negativen Werte eingeben.
  • Sowieso: Warum nicht Druck vorne für Modulation, Druck hinten für einen anderen Midi-CC?
  • Man kann einen Parameter immer nur einmal zuweisen – wäre aber schön, wenn man über den Druck sowohl Channel- als auch polyphonen Aftertouch steuern könnte.

Soweit meine paar Kritikpunkte; ich bin fast überzeugt, die Software wird reifen. Und ich werde üben. Und die nächste Bastelei steht auch schon fest: mal einen alten analogen Joystick suchen – und dann einen kleinen X-Y-Controller an den Eingang für die beiden Fußpedale anschließen…

Hier mein Unboxing-Video (auf englisch).