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.


