Day One @ Rave On Air

User testing with large groups of people was very interesting today.

It was a ‘live’ environment so there was the ‘Virtual Earthquake’ going off in the background and the ‘Red Carpet’ crowd cheering loudly, all of which meant it was difficult for people to understand Shoutbox as their shapes were quickly overridden with the ambient sound pollution.

When the room was quiet though and a small group of people came in, it was easy to see them enjoying Shoutbox. Once the simple explanation was given they tried it out for themselves and created shapes. Some even had competitions to see who could create the largest shape or the fastest shape.

Even when there were no groups in the room you could see members of the Interaction course playing with it. Tom was playing a piece of wood like he would his bongos to create a series of shapes that were in time and also played back the same noise. He said “it would be great for VJs”.

The only problem with it is one that was expected and that is running it from my laptop. We have perfectly good G5 quad core Macs in iLab but we can’t use those, instead we were stuck with some old G4s that had no microphone input, the MaxMSP trial had expired on some of them and some had an administrator password that nobody in the entire faculty knew.

For the delegates tomorrow the flash .swf file will need resetting after every group so that it is a smooth as possible. Even though the shapes are deleted after a new one is created, where there is a very loud consistent noise (like from either of the other two sound based installations) the collision detection struggles on the relatively poor performance of my laptop.

Here are some pictures of today. Click to view the whole set in Flickr.

Day One @ Rave On Air 2008

Day One @ Rave On Air 2008

Setup / User Testing @ Rave On Air

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

Shoutbox Intro

Mounting The Shoutbox Board

Beta & RC1 Problems / Solutions / End Result

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

If In Doubt… Ask…

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.

Flash…! Ohhhhh…!

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.

We’ve Got Our Balls Out!

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.

Have To Use A Mac

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.

Javascript Code

Formative Presentation

Here are the slides used for the Formative Presentation.

Java Script

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.

Lead Question

Is internet privacy giving way to internet security?

What is the difference between internet security and internet privacy?

There is an inherent paradox with security and privacy issues surrounding the internet. They seem to be unable to work in harmony even though their definitions are exclusive of each other. Could this be due to pressures from the music and film industries with regard to file sharing or is there an inextricable struggle between them? A look into other areas where privacy and security issues have been addressed, possibly in the area of terrorism, something to which file sharers have been accused of.

A large part of this and in fact what has brought this to light is file sharing and the problems & controversy that it is causing. ISPs are being forced to take responsibility for what their customers are downloading which means they are forced to void their subscribers’ privacy through ‘deep packet inspection’ which has issues within itself. To try and combat this the ‘three strike rule’ was proposed which was narrowly defeated. Neither the government nor the music / film industries know how to combat illegal file sharers or ‘unauthorised distribution of copyrighted material’ so they are trying to see what EVERYONE is downloading in order to catch those few who with nefarious purposes.

Recent news says that Sony BMG has released it’s entire music collection for free, with a 10 second advert at the start of each song. It is free to download and listen to but costs to transfer to an mp3 player, for which one would hope they would have removed the advert. This is a sign that things are changing and industries are realising they cannot simply BAN everyone who they suspect is illegally getting their content. Instead they are seeing that there are other financial models that gives users’ and themselves what they want, without pressuring governments and regulatory bodies into taking foolhardy ’seen to be taking action’ actions.