system developmentmotion trackinggenerating audio

System Development
During the first few week of the project, I knew that I was going to be constructing a motion tracking system through an object orientated programming language, however I was unsure how to go about doing so.


From previous knowledge of OO programming, I had primarily though about using MaxMSP along with Cyclops, a plug in for MaxMSP, which would enable me to build a motion detection system, based upon a grid that translated movement from a camera into a numerical output, however after my initial stages of research I was introduced to Pure Data. Pure Data is an open source program, that would allow me to work from both the studio and at home.


I had no previous experience with Pure Data, however it is very similar to MaxMSP, and shares a lot of the same features.
Before I started to build my system I went back to basics with learning how to use Pure Data, and spent a few weeks doing tutorials and learning about all the different objects that you can used to build something with. After getting into know how the basics of Pure Data works, I was shown a simple movement detection patch (objects that are built together that do/make something).


The motion detection worked, but it was not exactly what I was looking for, so after some playing around and getting to know what the objects did.

basic movement patch


I carried on searching online for any hints on how to create 'stuff' with motion tracking. I came across a new object that will allow me to use motion tracking on a grid, any movement detected within the grid is output in a numerical value (the co-ordinate) that allows you to work with them to manipulate the results.

grid based patch


Now that I had the basic motion-tracking grid that I was looking for, I began to think of how to create the second part of the system: playing audio when movement is detected within the grid. This problem was much easier to solve, and after a few days to trial and error I had a fully working music player. When the patch is triggered, it plays a track that you have stored within it automatically.

simple music player


Once the two separate partsĀ  of the system were buit and working, it was time to joint them together to give me a basic working system.

full basic system


Now that the basic system was working, I could begin to insert audio clips into the system, however, when movement was detected and audio was triggered, the audio clips did not play their whole cycle, they would skip back to the start when motion was detected in the same area on the grid, outputting a very distorted and flickering sound. To solve this problem I had to put a delay on the audio track, so that it could only play through its full cycle until it could be played again.

patch section


At this stage I was able to focus on the type of audio I would like Connect in Transit to produce, once the audio loops were created I was then able to hold a user group to test the system. At this stage of the project the prototype will be easy to alter, giving me enough time to enhance the system, creating a fully working and finalised system for the end result.

by clare hanlon