Posted by: euphonyproject on: March 6, 2009
Due to budget, time and technical restraints we reduced the amount of instruments from 4 to 3, at once. This is because with 3, we can use a single tri-colour LED to show the state of the instrument, and having more than 1 LED would cause major problems.
This diagram is more for personal use because the sequencer is being revamped to enable only 3 sounds, and to add some more interesting interactive opportunities into it. The users control the changing of the sound sets and tempo whilst interacting with Euphony. They will not have direct control of these factors, their participation will influence the change. This should make it a bit more exciting.
Posted by: euphonyproject on: March 6, 2009
Sometimes you’ll end up needing more digital inputs than the 13 pins the Arduino board can readily handle. Using a parallel to serial shift register allows you collect information from 8 or more switches while only using 3 of the pins on your Arduino.
This is exactly what is needed for euphony. Each of the 64 buttons, and 64 LED’s require a connection to the computer via the arduino board. Using serial shift registers to open up more inputs on the board is ideal, and after purchasing several from the web, very cheap too.
Today we started assembling the circuits needed for the push buttons. Following diagrams found on the arduino.cc website, we soldered the nessisary components onto the board. I’ve never really soldered before, just bits and pieces during previous projects, so it was quite a steep learning curve. After about an hour or so, the blobs of solder got easier to apply, and the finish was neater, however it seems it i’ll take longer to finish than we first thought. Each shift register can handle 8 inputs or outputs. This means we will require at least 8 of them for the buttons, and 8 for the LED’s. Thats alot of wiring.
Posted by: euphonyproject on: March 5, 2009
Linking Max/MSP and the Arduino board wasn’t too hard thanks to the Max plugin ‘Maxduino‘
All we have done so far is control 2 outputs (Pin 12 and 13) and used a single input with a switch, hooked up to our Max/MSP sequencer file. We put a counter on to count the amount of bangs the button was producing, and came across a problem. The button was not adding 1 each time, it was adding random amounts, sometimes up to 20 at a time. After about half an hour of confusion, it was discovered that the wires on the switch were not connected problem, hence the large numbers being output. Doh! Here are some pics:
Posted by: euphonyproject on: March 4, 2009
Yesterday we got hold of a sheet of MDF, and marked out a circle to be cut out with a jig-saw. That was a breeze, and after sanding and cleaning up the edges, we marked the positions of 64 holes to receive the buttons, and 64 smaller ones to hold the LED’s. A 12mm drill bit was used for the button holes, which held them nice and snug, and the holes for the LED’s needed a 4.8mm bit, which kept the bulbs tight, so we won’t need to use anything additional.
After going over the table top and legs with first course, then fine sandpaper, we painted them with grey gloss paint.
Next, installation of the buttons and LED’s, oh yeah!
Posted by: euphonyproject on: March 4, 2009
To attach the legs to the table, we experimented with different screws and washers, to get the desired look for the project. There wasn’t much to choose from in the store room, but what we decided to go with looks pretty good.
Posted by: euphonyproject on: March 3, 2009
Here’s a technical drawing (or photoshop mock-up) of the dimensions of the table. We’ll be using 6mm MDF for the table top itself, and support this with 8 x 1000mm legs. The sides will be cladded with mesh of fabric of some sort, and house a 5.1 surround sound, the computer and all the wires and circuit boards that should make the whole thing work.
Posted by: euphonyproject on: February 23, 2009
So the sequencer is working but we had to cut down on the number of buttons we are using, from 196 to 64 due to expenses. This means we can’t use a whole octave, but helps with the idea of the sounds, tempo and pitches changing due to multi user collaberation. Here are some pics of the Max Patch, it is all pretty simple, just havn’t found a better way of laying out the code. It works though, just need to get the arduino hooked up.
Posted by: euphonyproject on: February 19, 2009
From the initial concept (http://tinyurl.com/cg5ua3), the former domed table has been scraped, and a slicker flat table, hosting a series of 64 push buttons and LED back lights takes its placed.
The button configuration will feature 4 Bars (16beats running around the table), 4 pitches (running from the centre of the table out) and 3 instruments choices (1 press = Instrument 1, 2 presses = Instrument 2…).
Posted by: euphonyproject on: February 19, 2009
To bridge the gap between the code from Max/MSP and the push buttons and LED’s on the table, an Arduino Board will be introduced.
“Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.”
At the moment we are working with a bluetooth Arduino, which is a little temperamental at times, but its input pins will allow push buttons to be connected and ‘bang’ as they are pressed, telling Max to do something. Output pins will then light LED’s underneath the push buttons to react to the users actions. This all sounds simple enough, however Arduino only have 6 input pins, and 6 output ones. euphony requires 64 button inputs, and 64-192 LED outputs (depending on the type of LED used). To get around this, we will need to use a series of bread boards, parrallel to serial shifting chips (to increase the number of input pins) and resistors. This shouldn’t prove a massive promblem, just a little time consuming.
Posted by: euphonyproject on: February 12, 2009
Ok I was in the flow so I kept working on Max and made some pretty decent progress. I have also used the ‘patch’ function to try and keep the code nice and tidy, although it can get a little tricky to test things due to having to switch between windows all of the time. The old ‘If and Else’ statements are dead and buried, I found a much easier and tidier way of doing it, thank god for the ‘Select’ function.
The select function can have multiple inputs and outputs. What it does is if the arguments match the input, it will bang on the specified output. For example if I used ’select 4 8 15 16 23 42′ and a metronome outputting numbers linealy from 1-100, each time it hit 4, it would bang the first output, 8 the second, 15 the third etc… Very handy. I didn’t want five if statements coming out of each button. I tried looking for a ‘for loop’ with no success. Who cares, I am more than happy with the select function.
I have used select for two main things, giving the user feedback on which state each button is currently in, i.e. 0=black, 1=red, 2=green, 3=blue, 4=yellow. Hopefully this will be easily translated using RGB LED’s. The second is to determine which instrument should be played when the button is banged by the metronome (not the user). Still yet to determine how to control the pitch of the instrument. Two option here, use Max to edit it or just use 12 separate samples for each instrument.
I created a very basic timeline for the sequencer. All is used is the basic metronome function and a counter which loops through 16 outputs. Once eachput is reached, it is banged and sends a unique message to the 12 buttons connected using the ’send’ and ‘receive’ functions. Using the send and receive helps a lot with simplicity of the code and it is a lot less messy, just have to remember when duplicating the buttons I change the number of the receive function each time. I know I won’t… The tempo of the metronome is also easily controlled, maybe this can be implmented into our design somehow.