Technology //

The technology embedded into my product has to replicate the capabilities of real turntable if is to be successful in the ever growing .mp3 DJ market. The product must be able to control an ,mp3 track accurately with the touch of a finger, being able to play it backwards, and at variable speeds, it also needs the ability to be start and stopped easily and also a pitch control, i vital element in a turntable.

 

Touching Music //

I needed a surface that makes it possible for a musical interface that reacts to the touch of a human hand so a started looking at interactive white boards and touch-screens.

I decided to work with touch-screens because they are the most reactive and most importantly, they can display a visual interface which makes this an ideal way to 'SEE' and 'TOUCH' music in a new way.

I bought two 17" touch-screen overlays which worked great. They are resistive screens, basically a panal of glass with resistors around the edges, connected to a pcb controller which changes the voltages into X and Y co-ordinates to act as a mouse, and then connected to the compuer via USB.

 

 

 

 

Max/MSP //

I find Max to be the best software to create individual music controllers (patches) so i started to work on an audio speed manipulation patch where i could play an .mp3 file faster, slower, backwards and vary between these speeds smoothly to simulate 'scratching' on a vinyl record. It had to do the exact same as a turntable, it had a start/stop button, a pitch control of + 12% and - 12%. I will start to work on different concepts for the the interface and think about adding effects and loop functions to it. Here is the patch i designed...

 

 

Flash Interface //

The best way to design and create the interface for the control of the visual waveform of the music is using Adobe Flash. I was able to create a couple of small applications that i could use with the touchscreens to make the interface. Because the Flash document has to be very interactive i had to learn some ActionScript, which is the programming language that Flash uses. I can create objects and use the 'mouseDown' event to trigger actions, this event will work when a finger touches the screen, which is recognised as a click.

I have started making a couple of basic interfaces that will be developed to maybe be used in the final solution.

 

Interface 1: You can press the button to start the wave and grab the wave to pull it up or down, sadly, no music yet...

 

Interface 2: Here you can play the song, and move the waveform to where on the song you want and it will play...

 

 

Flashserver //

For the technology to work properly i have to use a small application called 'Flashserver', written by Olaf Matthes. Flashserver allows bidirectional communication between Flash and Max/MSP through a small code. The way that the Flash document will tell Max how to control the song is based on speed. The waveform of a song will travel at a relative speed to the song, it knows how to do this using basic math, like when you are calculating the speed of a car that is travelling over a set distance: speed = distance / time. Similar to this, the speed the waveform will travel upwards is the length of the image in pixels (distance) / the length of the song in seconds (time). This will ensure that the wave image will travel at the correct speed. This speed will be read to Max as '1' (normal) and play the song in time with the image moving. When the image is pulled or pushed backwards, Flash will read the speed to Max of that number, for example, if the song is pulled backwards at half the speed of its normal state, this will be read as -0.5 and the song will be played through Max backwards at half the speed. This will simulate the 'scratching' effect of the song. Through this, Flash will be able to display the waveform of the song and manipulate the song simultaneously.