Ok, so in truth I’ve done more than what I’m going to outline below but I wanted to share with you a couple of the instruments I’ve made, I’ll make separate blog posts for each, I hope you like them both!
First up is the Bliptronome patch I made in Max/MSP. Before I show you the patch I’ll quickly go over what a Bliptrome is! It started it’s life in the brain cells of a clever monkey at ThinkGeek where it came to life as the Bliptronic. In essence it’s a 8×8 button grid synthesizer. However for the past few years there has been another popular use for the button grid as a MIDI controller. This is seen in products like the Monome:
And also in the Novation Launchpad:
Given the costly nature of both these controllers it almost seems inevitable that at some point someone somewhere would realise that the Bliptronic was a cheap alternative for someone more than a little bit clever. Happily that some one was Wil Lindsay. I first heard about his clever exploitation of the Bliptronic in a Create Digital Music article. Happily, the original hacker clearly likes the idea of the words ‘open source’ so all the documentation you could wish for is on his website, and he even offers a handy kit! Being new to the land of hacking at the time I opted for his kit to combine with my Bliptronic, apart from anything else I don’t have the ability to cheaply produce a printed PCB which will fit snugly in my Bliptronic, and even his is a snug fit! It is, however, wonderful.
Just for good measure here is one of how the final board fitted into the Bliptronic:
And thus the Bliptronic became the Bliptronome and there was much rejoicing.
In order for me to actually have the Bliptronome communicate with Max/MSP I have to use a programme called ArduinomeSerial which looks like this:
This reads the data being received from the Bliptronome (which uses the same microcontroller as the Arduino) and translates it into OpenSound Control, also known as OSC. Using the udpreceive object in Max/MSP you can listen to the port ArduinomeSerial is sending the OSC messages on (in this case 8000) and use these messages to control the patch. To do this you also need to set the pattern prefix and then also set this in your patch.
Before I begin to explain the patch I will show you it both locked and unlocked:
This patch started out life as the test patch for a monome, except really all I did was keep in the receive object, bind to the /test prefix, see the potentiometer controls and the ability to toggle the lights with ‘press’ ‘toggle’ and ‘none’ when a button is pushed. The rest is my own work. The parch works by having each button trigger a cycle object at a different frequency, the frequency can be changed with the potentiometers – 4 pots = 4 presets. The first of these starts on a high C major, then it’s relative minor on the next line, G major on the next line, then it’s relative minor and so on around the circle of 5ths to the bottom of the board. The next preset is the same but an octave lower, the next after that is at the same octave as the latter but using the circle of fourths instead of the circle of fifths and the final also in the circle of fourths but once again an octave higher. As well as this I have also supplied meters and gain controls for each individual button which are also set in the presets to help stop notes from clipping. One final note of interest is how I managed to get the frequencies for the cycle object stored into the presets as it took a little bit of thinking on my part: Each cycle object has a slider attached to the input which determines the objects frequency, all these are modified so that their ranges are wide enough to represent the required frequency, each was set using a message, all 64 were set and the first preset stored, they were then done again for the second preset and so on. I had to do it in this manner as though the preset object will record the value of a slider it cannot record the state of the cycle~ object which meant I couldn’t simply define the frequency within the objects arguments.
I’ll update this post at some point in the next few days to show the patch working, I had great fun creating it and it certainly got me a bit more familiar with Max/MSP!