Extended iPad control panel for Creamware Pro-12 ASB synth

Certainly the last post in this blog this year – a happy 2018 to all of you, with loads of creative endeavour and technical discoveries!

Version 1.2 of my iPad control panel for my brilliant virtual Prophet, the Creamware/Soniccore Pro-12 ASB. Read here about it. The new version does not only allow access to all the hidden parameters you cannot reach by turning the synth’s knobs, it shows the actual settings for the sound as well – a true addition if you want to look at what the sound actually does. Once again, you need the TB Midi Stuff app for it to work, which is about 4 Euros.

You can download the template [here (V1.2)].

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.

Continue reading

There is a true Oberheim Matrix editor for iPad now. And yes, it’s worth buying it.

If you have found this blog searching for the Oberheim Matrix-6/1000 synthesizer, you may already know that I still haven’t given up on breathing new life into hardware and software of this wonderful machine, and that I have made a controller template for the iPad. A controller, mind you, not a true editor – but a tool to control each parameter in a sound preset via a dedicated touch control, and pretty much without alternative.
Patch Touch app screenshot - all parameters of a sound on one page
No longer – there is a true Matrix editor app in the Store now, Patch Touch by Coffeeshopped, LLC. How does it compare? Is it worth the 15 30 Dollars or Euros? Chadwick, the guy behind Coffeeshopped, was so kind as to send me a download code for his app, and to comment on an early draft of my observations, so you’ll find my remarks updated with his comments here.
Continue reading

Taming Arturia’s Beatstep: Sysex codes for programming via iPad

Arturia Beatstep in sequencer mode (animated GIF)Nice. New. Toy. Arturia’s Beatstep controller is a steal for 99 Euros – it just feels great. Large, solid pads, smooth, reassuring encoders. Did I mention there’s a 16-step sequencer included? And a CV/gate interface? Must-have. I sold my QuNexus for this.

Just like the QuNexus, it is an ideal extension for iPad music. And just like the QuNexus, Beatstep needs to be programmed via a controller program to work. At least Arturia had the common courtesy to include a Mac version of the controller software, still it is a nuisance for iPad users like me that they have to use a computer just because one key sends the wrong note and triggers the wrong event.

So I thought about building a small controller panel for TB Midi Stuff, the same app I used for my Matrix-1000 controller. A bit of work with the controller software and a MIDI monitor gave me what is needed for that: the Sysex codes to control the Beatstep’s behaviour. May be some time until I get round to building that panel, in the mean time there you are. You’ll find the very first version of my iPad Beatstep Tool for download in the TB Midi Stuff forum. No, don’t thank me, Arturia.

Anyway, here’s the MIDI command table for the Beatstep, in case you want to do your own programming.
V1.3, last update 10 November 2016, with lots of additional info by Richard Wanderlöf.

Continue reading

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. [here – v1.03, “Open with…” TBMS on the iPad])

Update, January 2022: TB Midi Stuff has been pretty much abandonware for years now; although you can still use – and buy – it, it is more and more at odds with newer iOS versions. Use at your own risk. And you might try badgering Fabien Manchec, the developer, about his promise of an update from mid-2020, but be kind – solo developers don’t make a fortune on those niche apps.

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.

Reclaiming the Matrix: new life for an old beast via iPad control

Update: there is now a working editor template for editing Matrix-1000 sounds via the iPad with TB Midi Stuff. Other than stated below, it is now possible to control the modulation matrix as well – read more about it here. The buggy parameters unfortunately still won’t work.

20140329-014655.jpg

I’m just rediscovering a 25-year old piece of analog hardware: my Oberheim Matrix-1000 synth. It’s worth rediscovering: The analog circuitry is still cutting through any mix; it’s a nasty classic. And it’s a simple 1 HU 19” rack unit; power supply included, no wall warts.

So yes, for a vintage piece of equipment, it’s handy. Unfortunately, the Matrix-1000 is a pure expander module without a single controller – no real-time tweaking the sounds to your desire. Which is a massive disadvantage to an otherwise extremely clever and versatile machine, as I’m not the first to discover. Before Access started to make very expensive top-quality VA synths, they did a hardware controller; you’ll occasionally find one on eBay for around € 700. Translating as: “It’s a monster if you can only get a controller for it.”
20140329-015834.jpg
My favourite digital music device is the iPad. So I’ve started making my own iPad controller interface, based on the cheap TB Midi Stuff controller kit. It’s an early version, still some testing to be done. And there’s a couple of things you need to realize about the Matrix-1000 before using it with an external editor.

Wie kommt das in die Hosts-Datei?

Kein iPad-Update über iTunes – statt dessen ein Tablet im Wartungszustand und beim Versuch der Wiederherstellung penetrant “Error 3004”. Wieder einmal ist die Apple-Fehlermeldung selbst null hilfreich, wieder einmal kommen über Google Antworten: ziemlich dadaistische und dann auch eine nützliche.

Tatsächlich: in der HOSTS-Datei – eine Art Sammlung von Umleitungs-Schildern zwischen meinem Computer und dem Internet – findet sich der ominöse Eintrag, der Zugriffe auf gs.apple.com auf 127.0.0.1 umleitet – wenn ich das richtig verstehe, auf einen Server auf meinem Rechner selbst. Ist ja schnell entfernt (und dann läuft alles wieder) – aaaber wo zum Geier kommt so was her?

Wieder einmal einsehen müssen, dass ich leider nicht zu den 1% zähle.

iPad Air: Shut up and take my money!

Yes, I know. We’re all a bit disappointed with the “New New New iPad”, a.k.a. iPad Air. And remember what Apple pulled off when they discovered that they had a game-changing new component, the Retina display, but the overall hardware wasn’t up to the level yet – they sold it as the iPad 3, only to be replaced with the iPad 4 less than a year later.

No, I’m not bitter with Apple over that. Well yes, I am, but the problem with my iPad 3 is that processing power has become an issue when using it for making music – an important use case for me. Waldorf’s Nave is a dream of a soft synth, but it’s pushing my iPad to the limit – run Nave, and you won’t be able to run much else. So processing power is increasingly becoming the driving force in deciding on what to buy and when.

The least thing that you could say about the iPad Air is that it’s going to drive down the prices for iPad 4’s. But considered that the Air is sporting a variant of the last-generation Apple A7 processor, you can expect it to have about double the processing power of an iPad 4, or about six times the performance of the iPad 3. That’s presumably worth a hundred Euros extra.

To get rid of the iPad3 now might be a good idea anyway. See Tim Webb’s analysis over at Discchord:

The iPad 3 shipped with an inferior processor incapable of keeping up with the huge retina display, and suffered a life-time of sluggish performance and annoying bugs. Developers consistently tell me that the majority of their bug reports come from iPad 3 users.

Now there you go. Unfortunately, this means that my carefully hand-modded IO Dock becomes obsolete – the iPad Air, due to its smaller bezel and different overall dimensions, just won’t fit, and there’s the issue of the Lightning connector which the IO Dock doesn’t have – although there are reports that an adapter would work, this would mean additional tinkering, soldering, dremeling. With hardly any chance of producing satisfactory results.

So what I’ll probably do is build a USB setup from scratch, with a modded Lightning-to-USB-adapter capable of charging the iPad; maybe with a powered hub, and a multi-channel interface like the Akai EIE. (Good list of class-compatible, iPad-friendly devices here.) It’s far from perfect, and maybe sometime I’ll integrate it into my own Dock. Once again, terra incognita.

Give me a hand: Looking for the perfect iPad Beatbox companion

proberaumI love Loopy. The nifty little looper program by this mad Australian guy has become the fourth member in our little band project; it looks gorgeous, it works flawlessly, and it’s so simple to use: Just load any rhythm loop into Loopy, auto-stretch the sample to time, record additional audio or loop live, switch between loops with MIDI PC commands – which my FCB1010 foot controller is happy to supply.

You need additional tools, though. Loops coming from my favourite beatbox have to be post-processed for dynamics and overall punch. And playing around with the free Launchpad app by Novation got me thinking. What Loopy doesn’t do, though: just trigger loops and samples. And songs have to stick to a very rigid timing grid, normally 4 bars; otherwise you’d switch loops just in the middle of your chorus track.

Organic Proto-Beatbox Band

Why bother? Why not just use Ableton Live or, if you want to spare yourself having to drag a laptop around, buy some dedicated hardware? An Akai MPC, a Roland SP-404, an Electribe, or: Bloody hell – just use whatever sampler groovebox you like.

Which is what I’m going to do, only that I’d like to buy it as an app. Everything stays in my iPad, another advantage being that due to perversity of the app store economy, software is usually a fraction of the price of more traditional solutions. (Which is why we will probably never see an iOS version of Ableton Live.)

So just pop over to the app store and just find a sample-based, loop-based beatbox app. Can’t be that hard to do, no? It is. A friendly way to describe the abundance of music apps would be “very rich organic growth”. So many programmers and small companies have started their own music apps, which is a great thing. Sadly, hardly any of them get it right.

Looking for the perfect companion

It’s easy enough to name what I am looking for:

  • A simple live-playing mode similar to Ableton Live or an MPC
  • Different trigger modes: one-shot and loop-based
  • Ability to import and export loops
  • Time-stretching
  • App has to work in the background
  • Has to be controllable via MIDI

On top of that, Audiobus. And a couple of simple processing tools would be nice.

Google didn’t help much. So I started a table, which is far from comprehensive, but I’m opening up it for you to supply additional information.

This is what has been found so far:

My favourites so far? Most apps by traditional music hardware manufacturers seem to be severely limited, their main object being a marketing tool for in-app purchases. I’d go for Protein Der Klang, but it doesn’t have MIDI. So I’d settle for Beatmaker although I fear that it is too large and too complex.

So if YOU’d like to give me a hand, and know a thing about beatboxes or two, help to make this table useful by supplying additional info. (Just follow this link to the Google Doc). I suggest keeping discussions and opinions to the comments (in the table and in this post) and keep the table to facts-only.

Change, the old way

Back in the Space Age, when they first invented MIDI, synths and drum machines used to have 8-bit processors with a measly 64k memory address range (as in 64kByte, you snotty, spoiled digital age brats). Usually that allowed them to store a couple of different presets, say: 16 or 32, so it wasn’t really a problem that the command for switching between presets – appropiately named PC, Program Change – could only transfer values between 0 and 127. (7 bit – it’s a MIDI thing.) But time moved on: Memory grew cheaper and cheaper, and machines gathered more and more preset slots. Presumably, a drum machine with 512 factory presets sold much better than its older sibling with 32 preset slots – it has always been easy to impress customers with numbers. PC still only transmitted the 0-127 range, but it became standard to use the two Midi controllers CC0 and CC32 to transmit a two-byte bank number, so now there was, in theory, the possibility to address 2^21 = 2,097,152 different presets. Everybody happy, case closed.

In theory.

Behringer FCB-1010 MIDI foot controller - PC only!

Behringer FCB-1010 MIDI foot controller – PC only!

Yet, a lot of people never bothered with this tedious CC/Bank Change business. Who ever needed more than a handful of presets on stage? To this day, you can buy quite sensible MIDI devices that don’t understand anything other than the ancient MIDI PC command, my trusted Behringer pedalboard is a case to the point. (BTW: I can recommend upgrading it with a quite ingenious unofficial firmware upgrade, which does a lot, but still does not offer Bank Change.) And this is where this story actually starts.

Did I mention how it infuriates me when modern iPad apps do not seem to know MIDI? OK, I did, and to be honest, with most of the apps, it proved to be more of a “banana software” problem – the app just needed more time with the customer to ripe. So I was not really surprised when I ran into problems with my two favourite softsynths, only a little disappointed. The all-new, all-shiny, all-mindbending Waldorf Nave app deserves to be mentioned first; using PC commands, you can only change between the sounds in the first bank of factory presets, and you cannot store anything there. Support acknowledges that this is a problem and promises, in an e-mail to me, that future releases are going to bring an “Assign preset to PC” feature.

It has not been quite that much of an issue with Sunrizer: everbody’s second-best soft synth always allowed you to save sounds to the first bank, so you could pretty much prepare what you needed. Until Beepstreet did an update that brought a new look, very Polysixish and, if you ask me, drop dead ugly. And a a new bank of presets named AI. A new first bank of sounds. Back to square one.

Sunrizer Synth, June 2013 update

The Sunrizer Bank Hack

I must admit that I wasn’t amused at all. Yet the solution is quite simple, and after letting of some steam even I saw it. This is what you should do:

  1. Store all your performance presets in a new user bank. 
  2. Connect your iPad to iTunes.
  3. Select Apps, scroll down to the section where you can transfer files to/from apps. Select Sunrizer.
  4. Find your bank of performance sounds (it’s a file called something.srb).
  5. Klick it and rename it to “AAA performance.srb”. (Alphabetically, it’s now the first bank, you see.)
  6. Sync the iPad again.
  7. On the iPad, close and restart the Sunrizer app. If you don’t know how to do this, switch off and restart the iPad.

iTunes screenshot, as describedThis simple operation makes your bank of custom presets the first bank in memory, and the first place you’ll be reaching by sending Sunrizer a PC command. I’ve tried. You still have to count presets to get to the right one – but I’m pretty confident we will cope, you and I.

There it is, a tinkerer’s legacy: Change, the old way.