Coding a Custom Step Sequencer

I have been wanting to code my own customer step sequencer for a while. A couple of weeks ago I finally dived in to the project. I knew I wanted to use a lightweight scripting language for the project an started out with Python. But after trying out a couple of Midi libraries I got frustrated and switched to Ruby with UniMidi.

UniMidi actually works pretty well, and I was able to write a fairly complete 8 track step sequencer for my Novation LaunchPad Mini in about 20 hours. The source code is available on github.  I also made a track where I used this sequencer to control my Volca Sample, and it worked out great.

Last week I decided to take things a bit further and ordered a Novation LaunchControl from Thomann. I figured this controller would be perfect fit for my needs: The silicon pads can be used to mute/unmute the 8 tracks and the 2 x 8 knobs can be set to control volume and pan of the corresponding Volca Sample channels (I’m actually using the right output on the Volca Sample as an effect send, so the pan knob acts as dry/wet balance).

I made another track with this setup and it worked out great… I will be needing a second LaunchControl for my Volca Beats before long. Or maybe I should get hold of some silicon pads and build a more customised midi controller…

I hit some snags with my Ruby/UniMidi setup though. Things work reasonably well as long as I sync to an external clock, but I have not been able to implement a 100% stable internal clock with the Ruby Sleep() function. The internal clock works OK most of the time, but sometimes the tempo drops by maybe 10% for 20 seconds or so… probably because some background task kicks in on my MacBook.

I really want to take this project further and eventually I hope to build a complete sequencer for my hardware setup. While playing around with Ruby and UniMidi has been fun, it is clear to me that I will need another platform to reach this goal.

I initially discounted Max/MSP because I really dislike visual programming languages. I spend my days developing software professionally and I like to write code in a text editor. But after doing some more research, I realised that Max actually has a javascript object and that it is possible to create extensions if you want and this has put me at ease.  At least I will have an alternative to huge canvases with a million visual objects and connections.

I’m still not sure if I want to go with live Max for Live or a “pure” Max setup for this project, but I will be doing some research.

Korg Volca Sync Issues and How to Solve Them

Ever since I got my Korg Volcas (all 4 of them) I have been struggling with timing issues. The units sync up fine most of the time, but sometimes one of them skip a step or two when I press play and gets out of time with the other units.

At first, I thought the problem only occurred when I sync the Volcas to my computer via MIDI, and suspicion immediately fell on my home made MIDI Thru Box. I later discovered that the same thing also happens sometimes when I use only Volcas with sync cables, so I started doing some research.

It turns out that the sync problems were caused by my mono audio cables! When using mono cables (or a stereo cable plugged into a mono input), one of the audio channels is shorted to ground and this somehow interferes with the sync circuits of the Volcas.


The solution was straight forward – I took some minijack stereo cables I had lying around, got out my wire cutters and snipped one of the 2 wires in each cable. I covered up the cut with electrical tape to provide isolation and avoid pops when I touch the cable.

I haven’t had any sync issues since and this solution also allows me to plug the Volcas into the balanced inputs on my Scarlet audio interface without having the two stereo channels cancel each other out.

Live Perfromance with 4 x Korg Volca and Waldorf Rocket

I recently watched an interesting video with Saytek on how he does his live performances and got a few ideas for my own.

I started out by creating kick, bass and pad loops in Reason, and imported them into Ableton Live as clips. I then created additional parts with the internal sequencers on the Volca Bass, Beats and Sample and used Ableton Live to sequence the Volca Keys and Waldorf Rocket. I love the  Volca Keys but the internal sequencer is pretty useless in my opinion.

All the hardware synths go into Ableton Live for real-time FX processing and mixing (no multi tracking was involved). I set up the Korg nanoKontrol to control volume on the kick and a couple of other tracks, to be able to fade them in and out.

I played around with the parts for a while and set up a few scenes in Live to outline the arrangement. I maximized the width of the master track in Live and typed in notes along with the scene names to guide me during the performance – a cool trick I picked up from the Saytek video. I mapped one of the buttons on the nanoKontrol to “Scene Up” in Live and used it switch scenes during the performance.

All in all I think the setup worked out pretty well. The notes really did help me bring more structure to the performance but they are also somewhat constraining. I will probably not use performance notes moving forward – I prefer to improvise… after all, making good electronic music is all about fortunate accidents!

DIY Mixer and Effects for my Korg Volcas

I have been playing around with my Korg Volcas for a while now and I think they are really great. I thoroughly enjoy the immediate, “hands-on” music making experience I get from a small table-top setup.

I still use Ableton Live for mixing and effects though, which is less than ideal. What I really want is to bypass the computer all together – no DAW, only “real”, tactile gear. I see a lot of people on YouTube using small 4 way mono mixers, perhaps with a stomp box or two, but I find that approach a bit too simplistic for my needs. With only a few sound sources to work with I think it is really important to have something interesting going on in the stereo field, at least for the type of “down tempo” music that I like to make. I also need a good selection of delay, reverb and chorus type effects to create ambience and interesting textures.

I have been looking at the Eventide and Strymon guitar pedals which sound fantastic and would probably work great for me. Unfortunately they are also pretty expensive, and I have not been able to find a small form factor stereo mixer that suits my needs.

So, I started looking around for schematics online, thinking that I might build this stuff myself. The mixer is pretty straight forward, since what I want is really just 5-6 stereo channels with volume controls, a master volume control and nothing else. There are also a ton of DIY guitar pedal designs out there which could be adapted for my needs – this will require a bit of work though. Guitar pedals tend to work best on stuff that occupy the mid-range frequencies (such as… guitars) and almost all the DIY designs out there are mono only. Being powered by 9V DC most guitar pedals handle -10 dBv signals just fine (such as those from the Volcas) but impedance can be an issue, especially on the outputs.

Some of the more interesting and best sounding guitar pedal designs I have found are based on old school analog “brigade bucket delays” commonly referred to as BBDs. Most of these chips are out of production and horribly expensive but I found one company that still manufacture BBD chips and sell them at reasonable prices. I have done the math and figure I should be able to make at least 3-4 true analog stereo reverb/delay/chorus type effects for the price of a single Eventide/Strymon box. Plus I get to build them myself, which is fun, interesting and infinitely more satisfying than just forking over your hard earned cash to buy the same stuff as everyone else.

I have already done some work on the mixer and a couple of effects and will be posting about this soon, so stay tuned!