Thursday 23 June 2016

WORK TOGETHER

WORK TOGETHER- an interactive audio installation
1work together.JPG
WORK TOGETHER is intended to encourage people to work together, and rewards them for doing so by playing a sound that is more than the sum of its parts. WORK TOGETHER is an audio installation built from recycled furniture, broken bicycle wheels, an old speaker, and an Arduino Nano.DSC_0846.JPG
Turning one wheel causes a note (always the same pitch) to slowly get louder. Spinning the other wheel does the same, although this second note is a major third above the first one. Spinning both wheels plays both notes, as well as five more, forming a dense major seventh chord. This pleasant chord rewards the two people for interacting and working together.
DSC_0850.JPG
The speed of the wheels is detected by small momentary buttons which are hit by pieces of rubber on the wheels (shown above). The Arduino figures out how often this happens and generates a tone. Each wheel has it's own tone, and if both are spun together, the Arduino puts out a big major seventh chord. These signals are manually bit-banged out of the Arduino, run through a tone knob (pot+filter cap) and then amplified by an LM386 chip, which powers the speaker. All of this runs off a 9V battery.DSC_0851.JPG
Above: The control plate inside the box of the installation (shown detached) with an output jack, power switch and LED, volume knob, tone knob, and input jack respectively (from left to right). The cable ties hold the 9V battery in place.
Below: The Arduino nano and LM386 amplifier. These are not currently functioning properly.
DSC_0852.JPG
The use of recycled materials is important in this installation because it means that the installation has no environmental footprint whatsoever. No extra energy was expended to produce the parts for this project, apart from maybe the electronics. Everything else was recycled (the wooden table used to be two couch squares), the wheels were headed for the landfill (the rims are too damaged to ever be roadworthy again) and the speaker was harvested from an old broken guitar amplifier. The important thing about building public installations from recycled materials is that it sets an example for what can be achieved purely with recycled materials. Many artists have already been concerned with this, and rather than avoiding it as passé or cliché I think it’s important to join them.


While the project does not address any particular ecological issue, what it does have is an essentially social focus which is critical for engaging ecological issues. In order to work together on tackling planetary issues of human consumption and pollution, we need to learn to work together as individual people first. The intention of this installation is to provide a fun and interesting experience that the user/interactor can take away and remember.


Link to video of the installation in action: https://www.youtube.com/watch?v=IGhwSP9-1rY


Thanks to:
Bike Barn on Tory Street for providing the wheels.
Chris Wratt for helping me get my head around scheduling on an Arduino.

My fiancé for tolerating this weird-looking this with wheels on in the living room.

Fog (sonifying everyday life)

Fog (sonifying everyday life)
Activity Sonifier


This program listens to your mouse and keyboard inputs and plays different sections of soundscape to accompany your activities, based on the type of input (arrow keys, numbers, letters etc) and the frequency of those inputs. This provides a complex and lush sonic accompaniment to help you focus on your everyday activities.


How the program works:


The various inputs (letters, numbers/symbols, arrow keys, mouse buttons and modifier keys) are processed so that when an input event happens (let's say a letter key is pressed) then the input section spits out a number, based on the type of input (for a letter key, the input section would put out a 1). This prevents the program from logging your exact data, which is important.
The last 100 input events (or rather, the type of input events) are stored in an array. A cpu timer is sampled every time an input event happens, and the time between the new event and the previous event is stored. The times between the last 100 input events are stored in a similar array.
If statements figure out which type of input event is currently the most common type of input event stored in the array. The current most common type of input event dictates the kind of sounds being triggered. The mean (average) time between the input events is calculated from the data stored in the time array. This mean time is fed into a clock, which decides how often a sound should be triggered (the mean time is multiplied by 50).
There are 40 different 2-minute sounds that can be triggered. These are in five sets of eight, with each set corresponding to a type of input. The sounds have long fades on each end to create a smooth listening experience.
For example, if the most common type of input is currently the WASD/arrow keys, and the mean time between input events is 350ms, then a sound from the arrow key set will be triggered every 35 seconds (the mean time is multiplied by 50). If every sound in a set is already playing, the program does nothing. As soon as a sound finishes it can be triggered again, regardless of the state of the other sounds in the set.


Sounds
Five tracks were used in the program. Each track is tied to an input type. Within each input type, the speed of each track is altered. This makes a similar-sounding collection of related soundscapes for each input type. This could easily have been more complex (with eight completely different sounds for each input type) but in the interest of filesize and compositional consistency this simple solution was found.


Descriptions of each track:
Letters:
Ambient music provided in CMPO 211.


Numbers/Symbols:
Found sounds of the air-conditioning system on the fifth floor of the library in Kelburn.


Arrow keys/WASD:
My soldering iron makes a very quiet hum, which switches back and forth between a few different notes.


Mouse buttons:
Found sounds, dripping noises from a bathroom at the NZSM. Also present are birds chirping.


Modifier keys:
Ambient track mentioned above.


All of these tracks were processed in Reaper so that they can be played continuously, as well as some cleanup/EQ and spatialisation.


This program currently only works if the user has the Max window (can be any Max window) in focus. The original dream for this program was that it could listen to the mouse and keyboard while the user is going about their other activites on their machine, and provide a comfortable sonic background to their acitivities. Implementing this is difficult but I would really finish the project.
Also, the sounds are quite limited, which makes the program feel stale after just a few minutes of use. A future version of this program could refer to a vast online library of soundscapes, bringing the listener unfamiliar music every time the program is run. Another option would be to make the sound libraries selectable by the user. Sounds could also be generated within Max itself, stochastically.
One goal for the program is to make it sensitive to different frequency of user input. If the user is typing frantically the sounds should be thick and complicated; but if there are long pauses between input events (for example of the user is reading an article, scrolling slowly) then the sound should become thinner. This is currently only crudely implemented, and there could be a much finer, broader dynamic range to this sensitivity.
Finally, the other thing that the program really needs in future is the ability to run as a standalone application. This vastly widens the pool of people who could easily download and use the program, and if kept open-source the users could modify to suit their needs.


The program, as a whole and despite some limitations (particularly the fact that the user has to have a Max window in focus) works surprisingly well. The dynamic range of the combined sounds is not quite properly mapped to the frequency of user inputs, but it does work. The overall wonderful noisy mess of the whole thing (especially when you change the kind of input type) is quite complex and immersive, and lacks any kind of sharp, transient sounds that would distract the user.

The purpose of the program is to provide a listening environment that helps the user focus on the tasks at hand, and stops them from being distracted from extraneous noise. Not all users need this kind of aural distraction or filler but with the success of video game music that is intended to help focus and to immerse you, and with the prevalence and wide-spread acceptedness of these kinds of interfaces and experiences, I felt that it was worthwhile to create a simple program that does just this.