2008.06.03
The setup for Rave On Air should have been very smooth today as the RC1 was prepared so all we had to do was boot up a computer, install the plugins and away… right? How wrong that is. After many problems with Macs, PC’s, connectors and lack of microphone input on G4s I finally booted up my laptop and it was running on that all day.
The good thing is we were able to watch people use the ShoutBox without saying “Do you want to try it out”. All day people were shouting out at the screen… sometimes there was a lull and only a few small balls were generated from ambient sounds, sometimes interference from other installations would generate too many large balls too quickly and crash the Max application, and sometimes people would re-engage with the installation and generate sounds. This would carry on for a surprisingly long time as louder sounds would be heard more and become more interesting to more people.
Here are a few images of the setup process. Click the images to view the full set in Flickr


2008.06.02
Needed to do today:
- Need to ‘bang’ through a single number without it constantly updating.
- Send messages from Flash to Max.
- Playback from collisions in Flash.
To start with the Beta that had been the focus of our efforts had ‘broken’ as certain tweaking had meant that a few files had been edited for the worse.
After much painstaking research into how to only bang through a number once, the help of Stewart was enlisted and he helped us understand the logical way to do it, then we helped him understand why that wasn’t possible in Max. So together we overcame the ’single number bang’ issue and the project was then able to progress. (See 1 Below.)

Thankfully sending of information from Flash to Max didn’t appear to be a difficult one but the reference was less than comprehensive. The problem was not sending the information as we could ‘print’ the information in the Max window to confirm that information was transmitting, it was getting that information into the patcher window and then doing something with it.
It was the [remote] function that was needed and when turned on allowed a receive object reference in the Flash actionscript to receive a message. Further problems arose when Flash tried to send the ball number on collision as you can just insert the variable so 10 different functions needed to be created to send each number when called. (See 2 Above)
This linked to the playback patcher in Max, which was straight forward linking to the already existing playback setup.
Here is a video of the RC1 in operation in its proposed display space.
See also: http://www.youtube.com/watch?v=SZ7EiZLmqIM
2008.06.01
I have finally solved the problem of the ‘bang’ going off continuously in the MaxMSP window (and consequentially making everything else after it go off continuously) by asking for help.
I posted a question on the Cycling 74 forum in the hope that somebody may have had a similar problem or someone might share their insights. What actually happened was that less than an hour after posting I got the answer… and it made me feel like such a n00b.
I asked the following:
“I am having a problem using a sound analyser with Max.
The aim is when a number box goes above a certain value (say 25) then ‘bang’ once and only once until the number goes above 25 again.
The problem is that the number box is constantly updating (from the sound analyser) and when it changes number but remains above 25 it triggers another ‘bang’. So due to updating continuously it is ‘banging’ continuously. I need it to stop after the first ‘bang’.
This is for my final project this year and is supposed to be displayed at our broadcast event on Thurday.
Any help would be greatly appreciated.
Thanks“
The response was this:
“Hi.
Try this:
———-begin_max5_patcher———- 396.3ocwT0zbBCBD8L4WACmsN.ZzZOzC9WnyzKcb5PRnJcR.m.
YpsN9eu.ILVa8iXp0dYIr6xx681vtNBfRTq3ZD7N3SP.XcD.3c4b.
Z1CPErUo4LsOMjrpHgWh5UG5EkznEevcglzG23cIyjtPHm+bIO
0TWbBFaCCGMxYi8eSF2GCm0bDQlu5pjWuYbn31qRHy4F+ES1
5TUYBdoeAGRVgGGnoBi1TxYEvG4kL3CLoFNUkmEpa84MuujW
iMjPZP8fnDlbNBNykzlnHmoWKEkjJiQIQmj9jI25Vn3fce7O9L3
O4PTp6bQxeyhh.FL7UdJfz7bHoqscB022GN7X88A6k2z+v9tW
jrM9KpPcOjF2YcBScKCNpNQOCchbwdebIkHkjWK8cTkF4Uo33
ioRj+s+l94SOO9P4B42G054ny+tZnVUUlFJayHQ3VVlw0FgjYD
1QNaygtSNKDYYbe3fdVHxVprcxFHbf9YaQDoEHJ9phH63CH
4DHhrSNWCDgaAhtdZDsEHZvu.Q1Mah9z6gIOd
———–end_max5_patcher———–
Ciao“
After some googling and download of the trial version of Max 5, I opened the file and discovered it worked.
This is what it looks like in a patcher window in Max 5.

The answer is a small yet surprisingly powerful object called [onebang] which only allows one ‘bang’ if it meets the requirements of the object above, in this case ’sel 1′.
Below is an image from Max 4.6 which I am using for the project.

1: The [onebang] object in action.
2: Selection for playing back the sounds - simply select a number and ‘bang’, this will be linked up to flash to pull the sounds out and play them when an object collides with another.
2008.05.30
Flash is finally working with MaxMSP, for all the good it is going to do. The Macs in the interaction lab have yet to have Flash Server installed on them and the demo version of MaxMSP is runs out today on everyones laptops. This means that nobody can come in over the weekend and work, nor work at home.
The good news is that there is now some interactivity between sounds processed by Max and Flash generated balls. After some tinkering with settings and inputs, someone can now control the generation of balls with their voice but not the size and the shapes do not play back their sounds.
After many hours of frustration the prototype now has less functionality than earlier in the day as there has been so much manipulation of code and overwriting of files that the perfect working alpha has been lost.
There were some screenshots taken while it was operational as well as some of a side-lined problem. The problem involved the on/off switches that were triggered to start recording. They would be triggered when the buffer was [banged] but then they would stay open when they needed to close as soon as the next buffer was [banged] open.



2008.05.30
Progress until today had been slow and painful with few breakthroughs and a loss of direction recently as well as a feeling that contribution to the project had been lacking on my part. That changed when Javascript was abandoned in favour of Flash as Russell knows a lot of Flash. He progressed quickly through the task of generating balls which can change colour and size with a variable (which in the case of this prototype is just a random number that will be replaced by inputs from Max using Flash Server)

While this breakthrough happened in the graphics department of the project, another breakthrough was happening with the sounds. The analyser part has been successful for a number of weeks now but today the recording part was filled out.



The basics of what has been accomplished:
- A sound is recorded into a [buffer] when it sound peaks above a certain level.
- The peak also ‘bangs’ a [counter] which sets the number of the [buffer] to record to.
- The next time the sound peaks it is recorded to the [buffer] number set by the [counter].
The problem was that if the sound remained above the set peak level, then this would result in it continuously ‘banging’ the [counter] and so recording a fraction of a second into the [buffer] each time. What needed to happen was tracking to see if the sound peaked over a level and then set a [counter] to count for 2000ms (which is the max length of the [buffer]) to allow the recording to fill that [buffer] and not fill several [buffers]. As well as this it needed to know to reset the [counter] and select the next [buffer] if the sound stopped peaking above the set level before the 2000ms was up.

This has now been achieved but needs some fine tuning as when both statements are connected at the same time, they both function correctly but they do so at the same time. So another statement needs to be introduced in order to determine which way to go. One was with short sounds and one way with longer sounds.
Also when the [counter] ‘bangs’ the check box to record into the [buffer] it only turns it on, so the next time the cycle passes that [buffer] it will turn it off and not on, so will not record anything until the cycle after. The same problem occurs with the recalling and playback of the sounds.
2008.05.19
After some experimentation and direction with regard to the best way to ‘draw’ in Max, the [GL] object library seems to be the way to go. The prototype was forced to refrash and redraw the screen by having a [metro] bang the [clear] element attached to the [lcd]. This meant that the screen flickered as the metro banged. After a few minutes of manipulating the objects with the new [GL] rendering, the prototype instantly looked better and had no flickering.
The only problem so far is that the [GL] object library has an issue with the nVidia geforce 7600 and so the only option is to use a Mac to complete the tweaking and get started with some Javascript particle generation.
The script also has some useful insight into collision detection as the balls move when the mouse object (also a ball) moves around. This would be ueful to adapt and add some movement to the balls to get them to float around, then they would react to each other and allow a ‘contact point’ in which to play the sounds back.



2008.05.07
After learning some cool things with LEDs and Max, Christian sat with each group and went over what he thought were important aspects that needed focus and in which direction to pursue them. This led to the discovery of embedded Java Script files that are executed within the program window of Max and displayed on the external window.
This is what is needed in able to complete the drawing aspect of the ShoutBox project, something that had been elusive thus far. Christian also went into greater depth about audio analysis and what needed to be done in order to output usable data.
2008.04.30
Something really impressive that Max can do it tracking, with the right amount of time, effort and the correct use of objects of course. The tracking is a bit… skittish at best but that is probably due to a poorly lit environment for the task and also the fact that a poor quality built in webcam is being used.
Here are the results


2008.04.30
Today there was a workshop on the Jitter and MasMSP combination allowing viewing of video and changing of colours. Learning more about Max and the fact that it can handle graphics in an external window (which can be placed on an external screen / projector.
A comment from Christian had indicated that Processing may be unnecessary as Max can handle graphics. So although a few days were spent connecting the two programs, it might not be used. Interesting to know how it can be done though.
Here is a screenshot of the Max window creating a gradient.
