Blog Music

MIDI Responsive Qt

Challenge: get MIDI keyboard to update Qt controls for some live jam experimentation. Task list:

  • Use a particular channel for a controller. In future I could make a hardware device that changes channel on a button press, say.
  • Respond to dials changing to update Qt controls. Should be as simple as binding MIDI signal to Qt slot.
Blog Code Music

Reading MIDI

I have a few ideas I’d like to prototype for live performance using MIDI loopers rather than audio loopers. I have sketched early ideas but I’d like to experiment with the project in earnest. I’m tinkering with tools before mocking up some early designs.

Music Projects

AARC on Bandcamp

I’ve uploaded recent AARC jams between Ryan and I onto Bandcamp. The first of these is a practice for a live gig at the Modular Meetup in London and the second is the gig itself:


Blog Music

Chains display and inputs

I wired up the the Chains prototype to display a series of events which can be controlled from the SoftPots. It’s cobbled together with scruffy code but it’s encouraging to see something responding real-time.


There are some glitches in the inputs where it can jump in certain cases – it’s like there’s noise on the pots. This could be due to it being mounted on cardboard as the flex picks up subtle pressure changes. It’s pretty sensitive, just massaging the pot with a fingertip has a noticeable effect.

The display was up and running pretty quickly with Adafruit GFX and SSD1306 libraries. I bought some displays a while back, I think this one is a cheap version on Amazon and there were some helpful tips in some of the comments. I thought I would need to change the I2C address but I there was no need – just install the libraries in the Arduino IDE and experiment with the Adafruit demos, nice!

Plan for tomorrow:

  • Hook up the buttons and the input ports
    • buttons just needs pull up resistors
    • clock/reset inputs need transistors
    • analogue inputs need protection op amps
  • Mock up a first pass interface to record input from CV and softpots
    • I’m not sure how best to data collect so I’ll run a through iterations on a local repo and see how it goes.
  • Experiment averaging the inputs on the pots to avoid glitches.
  • If there’s any time I’ll wire up the outputs though they’ll be limited to 8 bit PWM for now.
Blog Music

Prototype rig for new module

Today I mocked up a rig for a rhythm module I’ve been dreaming up for ages called ‘Chains’. The three vertical bars are SoftPot linear touch-sensitive potentiometers and the screen will give visual feedback on what’s going on internally.


The five inputs on the left will handle clock, reset and two individual analogue inputs which can be recorded to each chain – I’ll need some kind of toggle switch here to select.  The fifth input is an idea I’m keen to play around with: quantisation and anti-quantisation. The idea is 0V will leave a recording as-is, +5v will pull an event to the nearest 16th or 32th note, but -5v will push it away by the same amount. I have no idea if this will work but it’s there to try as the whole idea is ways of making rhythm more organic.

There are space for a few more inputs as needed but I’m going to start simple. Most of the interaction is done through the buttons under the screen. I’m using big, clear buttons for actions rather than fiddling around with a rotary encoder as this needs to be fast and intuitive for live interaction. The buttons will handle things like record, clear, motif load/save. I also need something for motif length adjustment – maybe individual tempo too – and I’m sure there will be more idea so the sixth button is for experimentation or may end up being a dreaded ‘shift’ button so I can double up operations on the five other buttons.

Finally the outputs on the right simply dump out whatever is on a particular chain at that point in time, be it CV or gate info. I’m glad I built this on cardboard because it gave me a better sense of positioning the controls away from the pots, it’s fun developing UX physically (well, it’s not really UX if you’re a purist, but it’s a step up for me dreaming things up and expecting them to work first time!).


From the back the board is a scramble. I’m using the bigger Arduino as a mock up purely because I don’t know how many inputs or outputs I’ll need for now, it’s overkill. The final version I’d like to bake into an AVR but I’m thinking that being able to upload firmware will be a massive boon for rapid development if I ever made this thing commercially.

Music Projects

Materials from Music Tech Fest

I still need to update my website after Music Tech Fest so this is a quick post with the presentation materials:

MTF sunset

PowerPoint Slides

All Work and No Play

Too Much Coffee

Clash of the Fractions

Various MA Videos

Pythagorean Polyrhythmic Piano



Music PhD Projects

Materials from Music Hackspace presentation

Last night I did a presentation at the Music Hackspace in London, talking about my process and demonstrating some of the mechanical, electronic and software elements that have gone into my pieces.

I’ve uploaded a zip of my presentation and some of the supporting files to my site, this includes some in-progress code and circuits which may be helpful.

It was great to meet the group last night, very chilled out and amazing stuff going on at the hackspace, with an spectacular workshop.

LEGO Music PhD Projects

Pythagorean Polyrhythmic Piano

This machine is a prototype for a concept ‘rhythm piano’ I started designing during my MA which allows a performer to play beat equivalents of tonal ratios. It forces you to compose using rhythm rather than pitch which is a very exploratory process. Feeling your way around the counter-rhythms allows you to discover unusual structures in swing and syncopation, whilst ensuring everything is easily reproducible.


Procrastination Rag

Somewhere between putting off finishing my drum synth and lunchtime, a wave of bank holiday procrastination came manifest as rag:


Chords: G, B7, E, E7, A7, D9(?), G.  Also half speed G7, C, A7, D (slide up to 7th)

What ever D9(?) is, it’s the chord that opens Clapton’s version of Hard Times with a bit of extra pinkie action x54557.