Archive for the ‘equipment’ Category

For my 7th RPM Challenge album I’ve take a dystopian theme – yes, even more so than usual.

Due to various personal and domestic constraints I’ve had far less chance to prepare and work on the album this year. In fact I have had no preparation at all, so what is on there is largely a set of layered improvisations. ‘Introduction’ isn’t even layered, it’s a single take at the keyboard. For most of the tracks though, I’ve laid down an ‘idea’ track and worked with it by adding other sounds and instruments to make what, I hope, is a coherent piece of music.

The backing to ‘Restart’ was a late addition when a hard disk drive failed on me (luckily only a backup drive) making a strange a persistent rhythm I felt I just had to work with. So, despite starting this month with absolutely no plan at all I still managed to get 9 tracks totalling over 50 minutes. Oh the power of improvisation … and a 15 minutes ambient drone piece 😉

For those that care about these things here are the instruments I used on each track:

  1. Introduction: Yamaha Montage
  2. Trails of the City: Yamaha Montage, PreenFM2, builder taking my ceiling down*
  3. Cave Work: Octave electric violin with SY-300 guitar synth, Waldorf Blofeld
  4. Escape Route: MakeNoise Erbe-Verb+Mutable Systems ‘Clouds’, Electric violin, PPG softsynth
  5. Robot Dance: Emu Proteus, Yamaha Montage, PPG softsynth, spoons
  6. In my day this all was shoe shops**: Moog Sub37, DSi Tetra, Erbe-verbe, Octave Violin
  7. Restart: Failed hard disk, Yamaha Montage, Nord Lead A1,
  8. The Revolution will be short: Bastl Instruments Trinity Drum,  Nord Lead A1, Emu Proteus, Electric violins
  9. The End: Nord Lead A1, Moog Sub37, Emu Proteus

*I told you it had been a busy time.

**Track 6 was originally going to be called “In my day all this was Tescos” which is a better, and arguably funnier, title but I didn’t want corporate lawyers on my back.

As always, it’s a pay what you want download release on bandcamp.

Read Full Post »

I was in my local friendly music shop asking about other things and, for one reason or another, ended up playing with the Roland BOSS SY-300 Guitar Synth pedal. The guy in the shop was enthusing about how well it tracked guitars – including slides and vibrato and my  next thought was “yeah yeah, but how well would it work on a violin?” In my experience tracking a violin pitch is very very hard. I’ve seen nothing that would do it reliably in either hardware or software, and it’s something I’ve been looking for for a long time now.

To cut a long story short .. IT WORKS! it even tracks the octave violin (which is tuned an octave below a normal violin so, on a 5 string instrument, makes it go down to the bottom C string of a cello). I stayed in the shop for a couple of hours playing with my violins on the device and was simply astonished about how well it worked. It is possible to confuse it, either with bad technique or pulling too hard on the low octave C string, but those are hardly major problems for normal use. And by bad technique I don’t mean tuning – if you play out of tune, the SY-300 will simply play the pitch you hit, I mean not placing your finger cleanly on the string which makes a dull grinding note on the violin anyway. If you slide all the way down a string – the SY-300 will follow you, if you use wide or narrow vibrato – the SY-300 will follow you. If you play loud to soft to loud in a single bow stroke – the SY-300 will follow you.


The guy in the shop thought it worked even better with violin that guitar because of the expressive effect of the bow on amplitude, and the ability to play long notes easily, it turns the SY-300 into a very expressive synth. It’s interesting to note that playing a synth via a violin (or guitar for that matter) doesn’t sound like playing a synth from a keyboard, it transfers the intrinsic ‘feel’ of the instrument onto the sounds made by the synthesizer – so in no way is it a replacement for a keyboard synth, it’s something totally different.

You need good synthesis knowledge to get the most out of the pedal, a lot of the factory presets are very guitar-orientated, made for a plucked instrument and often with lots of distortions added, so to get the best from a violin you need to get in there and make your own patches. As a violinist who also plays synthesizers this is easy enough for me, but people less familiar with subtractive synthesis might find it hard work to get what they want from it. This really is an expert’s device/

The architecture is slightly odd. It has 3 oscillators (with the standard virtual-analogue waveforms) each with its own filter, LFO and sequencer. Yes, the LFOs, filters and sequencers are per-oscillator! There are also 3 global LFOs (called Waves) that can be applied to the built in effects as well as the oscillator parameters. There are 4 effects slots which can be placed almost anywhere you like on one of two synth busses or the dry channel, and are of very good quality – as you would expect from a BOSS device. There is a good range of the usual effects, delays, reverbs, phasers, flangers & distortions – all with a good range of options. And also there are combined effects (delay+reverb for example) so you can make full use of those four slots. Most of the parameters of the effects can be controlled from the Wave LFOs. Although the way you configure those is rather clunky.

There are a few downsides. While it has MIDI in & out sockets (including USB) it does not send or receive MIDI notes, only control change and program change. I would also have liked more waveforms than just the standard saw,triangle, sine, square and maybe some interaction between the waveforms (eg FM). Also the software editor doesn’t work on Mac OS/X Sierra. Even the driver (which is supposed to work) crashed my system … and WHY OH WHY do MIDI devices need drivers anyway when they should just be class-compliant?! sigh.

But generally I think it’s an amazing device and if you’re a violin player who’s also into synthesis I strongly recommend you have a look at it.

I made a video about it with more information and examples

Read Full Post »

As I blogged earlier I’m enjoying using the Roli Seaboard with the Waldorf Blofeld hardware synth. So I thought I’d share how I create patches that make good use of the capabilities of the Roli with the Blofeld. In the video below I take a very basic sawtooth wave and turn that into an expressive (if still not especially beautiful) patch in the Blofeld. You can apply this knowledge to your own patches and make them ‘Roli Aware’ so that you can play them expressively.

The basic steps are as follows:

  • Set the oscillator bend range to 24 so that you can slide up and down the Seaboard. The Blofeld doesn’t allow you so bend more than 2 octaves so it works fine on the Seaboard 24 but might not be quite as good on the 49.
  • Add a low pass filter and set the cutoff down to 20, and allow the modwheel to modulate it. The Roli sends CC74 for the ‘slide’ dimension which is not very useful on the Blofeld so I mapped it to the modwheel (CC 1) using the Reaper CC mapper as shown below. Other DAWs might have similar capabilities. It’s quite easy to do in Max or Pure-Data too.ccmap
  • The Roli starts the slide with value 64* (the middle of the 0-127 range) when you press a keywave regardless of where you start, and modulates it down or up from there – so be aware of this when you create your patch. It needs sound good with the modwheel halfway. This is why I start the filter at 20 and not 0.
  • Set the amplitude envelope attack and release to 64.
  • Set the mod matrix to Velocity modulating AE attack at -64. This allows you to press the keywave gently to get a slow attack, and quickly to get a fast attack
  • Set the mod matrix to Release Velocity (Rel.Velo) modulating AE Release at -64. Now when you release a keywave quickly you get a quick release and slowly you get a slow release. These two options allow you to play legato and staccato with the same patch. I love this feature!
  • Set the mod matrix Pressure to modulate Volume +64 – this allows you to increase the volume just by pressing harder on the keywave.
  • Set the Amplifier volume to 0. Otherwise the Pressure modulator won’t do anything as it can’t make the volume any louder than 127.
  • Save the preset

That’s a basic preset that will work with the Roli in single channel mode. To really get the best out of it you need to create a Multi with the same patch in slots 1-10. That way the Roli can send a note on each MIDI channel and they can act independently.

Be sure that the multi preset you use has the MIDI channels differently for each part number – this is the default so that channel 1 goes to Part 1, channel 2 to part 2 etc. You also need to set the MIDI channel (in Global options) to Omni, or the Blofeld will only listen on one MIDI channel. I forgot to mention this in the video.

And that’s it! Even with a bare sawtooth that is quite fun, but once you get your own really nice sounds you can exploit to potential of the Roli Seaboard to it’s full, expressive maximum. Of course you can, and should, experiment with the values shown here they are intended as a starting point for making your own expressively played sounds.

Here’s the video showing the whole process from start to finish, along with a completed patch:

  • If you set the Seaboard to MPE mode (using the dashboard) then the starting point for the ‘slide’ dimension will depend on where you press the keywave. I don’t think this is mentioned in the manuals, Rol support told me about it!

Read Full Post »

It’s ages since I blogged about the Raspberry Pi system I started to put together last year and it has seen some serious ‘mission creep’ since then and become a hub for synths and keyboards/controller devices.

The original plan was simply to have a custom box that would allow me to plug a USB/MIDI keyboard into a couple of synths without having to use a laptop. The first incarnation of the software took input from the keyboard and directed MIDI channels 1 to 8 to the Waldorf Blofeld, and channel 16 to the ‘bass synth’, which was the Moog Minitaur. As the Moog Sub37 has its own keyboard that seemed like enough.

The first extension to the software was writing code to read data from TouchOSC and send that on to the Blofeld (like I did in this blog post using Reaper). This had the potential for portable gigs without a big keyboard (just 2 small synths and a tablet) with the added advantage of giving me extra control over some of the more awkward to get at (but useful) functions of the Blofeld while playing. The TouchOSC screen also has a page for the Minitaur too but it doesn’t get used, apart from preset selection, as the Minitaur has a nice front panel.

TouchOSC control pane;

Main TouchOSC control panel

I’ve since acquired a few new input devices and a couple of new synths so it seemed logical to incorporate them into the software too. Now the application can do all sorts of flexible routing between keyboards/control surfaces and synths, all controlled by a TouchOSC ‘control panel’. TouchOSC also has patch editting/performance pages for  keyboardless synths (eg DSi Tetra) and one with complex editting needs (Yamaha Reface DX). There is also a cut-down version of the TouchOSC screen I have on my phone – see near the bottom of this post.

Reface DX Page

Reface DX control page

The Roli Seaboard Rise is detected and when routed to the Tetra or the Blofeld my code now automatically sets the right number of voices/MIDI channels on the Seaboard (4 for the Tetra, 10 for the Blofeld) and there is quite a lot of code in the Quneo input section for mapping the drum pads to expressive notes as I also blogged about earlier and also transparently mapping the sliders to the right controls on the connected synth so I don’t need a different preset for each instrument. It also takes the pressure and turns it into Polyphonic aftertouch when connected to the Blofeld (the only synth I have that supports it).

In addition to all that it has also grown a simple arpeggiator. This is there mainly for the nominated ‘bass synth’ (still the Minitaur usually) driven from a clock that can either be generated internally or received from an external system – in a CSMA context that would usually be Stuart’s sequencers. The sync code strips out any notes, CCs etc from the input and just sends on the clock pulses.

Small synth setup

Setup for violin & synth gig showing Raspberry Pi, PreenFM2, Quneo, 12-Step and my mobile phone running TouchOSC

In general the software automatically configures itself to work with whatever is connected to it, the idea is that it is mostly ‘plug-and-play’ to make setting up for gigs really quick and easy. As well as coping with really complicated CSMA setups with multiple input devices and synths, it is also really useful for smaller gigs – I recently used it for a couple where I was mainly playing violin but used a small synth and the Quneo. That would have been possible using the Keith McMillen MIDI expander box but this way I can also control the parameters of the synth easily as well as sending notes to it.

The software has been a roaring success for me. I don’t need to carry a laptop around with me so the weight is reduced, as is setup time. And the tiny box with the Raspberry Pi in it can go almost anywhere on stage without being a distraction.

If anyone is interested in seeing the software then email me. I would be happy to open source it if there is interest but it’s fairly specific to my setup as it stands.

  • The TouchOSC screenshots are taken from the host editor app – so slightly faked. I thought I’d get a better image than photographing the tablet screen.

Read Full Post »

I was playing with the wonderful KMI QuNeo controller the other day and started experimenting with bending synth notes and/or filters using the pressure and X/Y positions on the pads – I’m a violinist, it’s what we do! This works really well for single notes but because things like bends and filter positions are a single CC sent to affect all of the notes played on a synth it’s much less useful when playing more than one note. Worse: if you move one finger then another, the CC value jumps between the two positions giving you a very glitchy sound. Some might like this effect but it’s not what I’m going for.

So, remembering that MIDI has an ‘aftertouch’ option I started looking into that. I didn’t really have a clear idea what aftertouch was, I’d played a StudioLogic Sledge2 synth in a shop and felt the extra travel on the keyboard and thought that seemed to be what I needed. However it turns out that there are TWO types of aftertouch.

‘Channel pressure (aftertouch)’ is pretty much just another modwheel-type controller – but usually controlled from the keys themselves which does make it handier than a modwheel when performing. It affects the whole synth though and therefore suffers from the same problem as a modwheel or global CC. This is the what most manufacturers seem to mean when they ‘support aftertouch’ I found out – including the Sledge. ‘Polyphonic Pressure (aftertouch)’ is the thing I wanted – and it’s much harder to find, in both synths and keyboards. The only synth I have that supports it is the Waldorf Blofeld (ah Blofeld, how do I love thee, let me count the ways). To test this I wrote a small Max patch that added Poly Pressure messages to the last note played on the keyboard, and controlled it from an on-screen slider (see video below). Using this I could bend one note in a chord while the other stayed the same. Yes!

The problem now was that the QuNeo, while being a very flexible controller, is actually very limited in what MIDI messages it will send. Basically it only sends note and CC messages – and they have to be on the same channel for each pad. Contrast this with the SoftStep2 (my first KMI purchase) that will send almost anything. Luckily I’m a programmer and have been working with my Raspberry Pi system for a while now so I wrote some code that converts the CC numbers sent by the QuNeo to PolyPressure messages.

The way this works is that all of the pads send notes when pressed and send the same CC number with pressure information, all on MIDI channel 10 (eg I press pad 4, it sends note on for MIDI note 44, and continuously sends CC 44 with the value of my finger pressure). The Raspberry Pi code then intercepts any channel 10 messages, converts any notes back to channel 1, and converts all CCs to channel 1 Poly Pressure messages. The sliders and knobs still send their existing CCs on channel 1 so that they can still do the normal global synth control things such as filter and volume changes.

I don’t know why Poly Pressure is so underutilised, I really like the results I can get with this system and really wish there were more polyphonic controls available, but I intend to make best use of the one I have, even if it’s only on one synth. It would also be nice if more synths supported it. I know some old synths from Ensoniq and Roland do but I don’t ‘do’ vintage synths – for reasons of my own.

Not even any softsynths (that I can find, though as I’m not a fan of them I didn’t look very hard) seem to do this which is bizarre given that it’s a logical place for that sort of code to reside. The fact that Ableton seems to actively remove poly pressure messages from the MIDI stream probably isn’t helping this *sad face*.

I suspect it might be catch-22. Few synths support polypressure because hardly any keyboards do, and hardly any keyboards do because few synths do. While researching this I did find a keyboard that supports Poly Pressure (supposedly) and have ordered it off eBay – because it’s discontinued. When it arrives (and if it does what I hope) I’ll update this blog post with the results.

Maybe I should save up for a Roli Seaboard  (eek!)

Here’s a video I made showing my experiments. In the first part you can see the filter setting jumping around. In the second I made a Max patch that was a proof-of-concept – mainly to make sure that the Blofeld did what I hoped it was going to do (note there’s a bug in that patch the doesn’t take into account NOTE OFF messages). Lastly there’s the QuNeo running via my Raspberry Pi system that converts CCs to PolyPressure messages.

Read Full Post »

NOTE: This post is obsolete – Roland have released a firmware update for the JU-06 (and the other Boutique synths) that allows them to send and received MIDI CCs for their various functions, and these are also documented. See here for details.


I ‘accidentally’ bought one of the Roland ‘Boutique’ synths last week – the JU-06 one. It’s a nice instrument with a simple front panel and a good sound. It has a few annoying limitations, only 4 voice polyphony and the small stereo output jack but generally I rather like it.

One of the things I immediately noticed was missing, slightly unusual in a digital synth, was any obvious (or, at least, documented) way to control it remotely – either from a DAW or control surface. Moving the controls sent no MIDI CC values and no CC value I sent to the device made any difference apart from the usual documented ones of mod wheel and sustain pedal. Slightly disappointed, I left it at that for a few days.

Then, yesterday, Rob Schroeder on the Synthesizer Freaks Facebook group posted a (very) rough outline of what the SYSEX format was for the boutique range of synths and I started playing. Initially I could get nothing from that either but a bit more research revealed that the synth only sends those SYSEX messages when chained to another similar device for extra polyphony. It also only sends these messages down the 5 pin DIN MIDI socket – not the USB – but that gave me enough information to work on.

I plugged in a MIDI interface, enabled chaining and started moving sliders and pressing buttons. BINGO – numbers started appearing on the computer screen I was monitoring it from! I now had (nearly) all of the information I needed. The last bit of information to get was the checksum. This was very easy to establish as it’s a standard calculation based on the contents of the whole message (except for the header F0 and trailing F7 bytes).

So, here they are. I only have the JU-06 but I’m pretty sure that the other 2 synths in the Boutique range behave similarly and will be as easy to reverse-engineer. Although the synth only sends these sysexes over the 5 pin socket, it’s happy to receive them over the USB link, which makes it more useful.

The SYSEX message looks like this (all values are in hex)

41 (Roland SYSEX number)
10 (device ID)
00 (modelID)
1D (Product code for the JU-06 )
address MSB
address LSB
value MSB
value LSB

For sliders, the value is an 8 bit number (0-255) split into two, so the bottom 4 bits are sent in the LSB and the top 4 bits in the (bottom half of the) MSB. For switches the values are 1 or 0 as shown.

Addresses for the functions are as follows:

LFO Rate:       0600
LFO Delay Time: 0602
DCO Range:      0700 (values 0,1,2)
DCO LFO:        0702
DCO PWM:        0704
DCO LFO/Man:    0706 (values: Man:0 LFO:1)
DCO Sub:        070C
DCO noise:      070E
DCO Wave: PW:   0708   (values 0 1)
DCO Wave: Saw:  070A      “   “
HPF Freq:       0800
VCF Freq:       0802
VCF Res:        0804
VCF Env invert: 0806 (values 0 1)
VCF Env:        0808
VCF LFO:        080A
VCF KYBD:       080C
VCA Mode:       0900 (0=gate, 1=env)
VCA Level:      0902
Env A:          0A00
Env D:          0A02
Env S:          0A04
Env R:          0A06
Chorus:         1000 (off=0, A=1, B=2, both=3)
Delay level:    1002 (values 0->0xF)
Delay time:     1004   “ “     “ ”
Delay FB:       1006   “ “     “ "
Bend Range:     1108

The checksum calculation is expressed simply in C as follows

static unsigned char roland_cksum(unsigned char *data, int len)
        int i;
        unsigned int cksum = 0;

        for (i=0; i<len; i++) {
                cksum += data[i] & 0xFF;
        cksum = (0x100 - cksum) & 0x7F;

        return cksum;

for Max users, here’s an sxformat string you can use. It takes 4 inputs (sorry for the line break):

sxformat 240 65 16 0 0 0 29 18 3 0 / is $i1 / is $i2 / is $i3 
         / is $i4 / is checksum(1,13,2) & 127 / 247

So now I can control the synth from my Quneo controller along with other synths or even from the large MIDI keyboard using some custom software I’ve written for my host Raspberry Pi system. One of the especially nice things about this is being easily able to change the delay times – which is quite fiddly on the synth itself 🙂


Read Full Post »

After playing with Arduino microcontrollers I suppose it was inevitable that I turned to it’s larger brother the Raspberry Pi. The Raspberry Pi is more of a conventional computer but in a small form factor – in a box about the same size as the Arduino in fact.

This project was initiated by a thought I had when doing the large synth gig in Catford last month. In that gig I was using the laptop to drive one soft-synth, but without that it was really just there being a mixer – audio and MIDI – so I wondered if it was possible to do without the laptop at all. I have a hardware mixer so that can mix the audio output of the synths, but my large keyboard only has a USB socket for its MIDI output and power, and not a 5 pin DIN socket. So I thought of using a small computer to all the MIDI routing – automatically.

This turned out to be relatively easy for me, as an experienced C programmer. I got a Raspberry Pi starter kit, investigated the Linux ALSA (sound and MIDI) library calls and quite quickly wrote a small program that would route keyboard presses from a USB/MIDI keyboard to an attached synth. I also added a feature to send messages on MIDI channel 16 to a ‘Bass Synth’ (the Little Phatty or Minitaur) and also to forward any MIDI sync messages to all of the synths attached on the USB so that when Stuart has his Beatstep running in full Tangerine Dream mode all of the synths can run together.

Another feature is for it to behave as a TouchOSC->MIDI Bridge so that I can use the tablet to control the Blofeld as I did in this post. Some more work is need here to set the Raspberry Pi to run on a wireless network without a router as would be the case in a gig situation but that is in hand. I also intend to add a simple arpeggiator to the bass synth driver code.

So now I have a box smaller than many effects pedals that can do most of the work of a laptop at a synth gig. I plan to road-test this at a CSMA gig in Leeds in August.

Read Full Post »

Older Posts »