« September 2007 | Main | November 2007 »

October 02, 2007

DANCE & MOVEMENTS

Movement Research

These are a series of movements i am interested in developing for a performance.

Interaction with Projection Screen

This is a Max patch that mixes 2 channels of video with the use of a tool.

How it works

The tool i have been working with sits in the water and using the 3 Axis of the accelerometer modifies certain aspect of the video, such as luminosity, fading and speed and using a hydrophone, it controls the saturation of the colors.

October 04, 2007

CALL THE MANHOLE

LAST TOUCHES

You can also call the manhole and receive useful information on touristic attractions around it and restaurant and bars in the vicinity. I am thinking of using these landmarks as a mean to navigate the city.

SIGN1.jpg

and

SIGN2.jpg


October 08, 2007

OPENING PICTURES

ultime 722.jpg

design+.jpg

design+1.jpg

design+2.jpg

design+3.jpg

design+4.jpg

PRANKS AND ACTIVISM

The concept

The idea was to reinvent the Roman manholes as method of navigation for tourists and non. The venue was the Rome d+ design week, opening Oct 5th til the 13th.

Here is the link to the blog section

Here is the link to the venue website

Performance pictures

Here are some photos of the 'performance' of introducing this interactive sewer grate inside the Design show opening. And also the performance of speaking and explaining the piece to the visitors.

ultime 722.jpg

design+.jpg

design+1.jpg

design+2.jpg

design+3.jpg

design+4.jpg

MORE PICTURES

design+bro.jpg

Me and my brother

design+sign.jpg

Outside

design+space.jpg

Front

design+tomtom.jpg

Installed piece.

OPENING VIDEOS

Here are some videos of the opening night (better videos coming soon):

tomtom1.jpg

tomtom2.jpg

October 09, 2007

TOM-TOM TOMBINO PROTOTYPE

Here is what the grates would look like with the sticker on:

tombinonumber.jpg

October 11, 2007

ROCK, PAPER, SCISSORS

IT HAS BEEN A LONG HARD ROAD...

RPS.jpg

Still trying to get the code to work... But i am considering changing route.

//-----------abs values for rock paper scissors
#define rock 2
#define paper 0
#define scissors 1

int inByte= -1; // incoming byte from serial RX

int switchPin1 = 12; // digital input pin for a switch
int switchPin2 = 11;
int switchPin3 = 10;

int yellowLed = 3; // digital output pin for an LED
int redLed = 2;
int greenLed = 9;

int switchState1 = 0; // the state of the switch
int switchState2 = 0; // the state of the switch
int switchState3 = 0; // the state of the switch

int Loc = 0;
int Rem = 0;

int winner = 0;


//________________________________________

void setup() {
//-----------configure serial communications:
Serial.begin (9600);
pinMode(switchPin1, INPUT); // set the switch pin to be an input
pinMode(switchPin2, INPUT); //
pinMode(switchPin3, INPUT); //
pinMode(yellowLed, OUTPUT); // set the yellow LED pin to be an output
pinMode(redLed, OUTPUT); //
pinMode(greenLed, OUTPUT); //

//-----------set XBee's destination address:
setDestination();
//-----------blink the TX LED indicating that the main program's
//about to start:
}

//________________________________________
void setDestination() {
// put the radio in command mode:
Serial.print("+++");
// wait for the radio to respond with "OK\r"
char thisByte = 0;
while (thisByte != '\r') {
if (Serial.available() > 0) {
thisByte = Serial.read();
}
}

// set the destination address, using 16-bit addressing.
// if you're using two radios, one radio's destination
// should be the other radio's MY address, and vice versa:
Serial.print("ATDH0, DL1000\r");
// set my address using 16-bit addressing:
Serial.print("ATMY2000\r");
// set the PAN ID. If you're working in a place where many people
// are using XBees, you should set your own PAN ID distinct
// from other projects.
Serial.print("ATID0911\r");
// put the radio in data mode:
Serial.print("ATCN\r");
}

//________________________________________
void loop() {

//if (Serial.available() > 0) {
readSwitch();
handleEval();
winnerLights();
}

void readSwitch() {

switchState1 = digitalRead(switchPin1);
switchState2 = digitalRead(switchPin2);
switchState3 = digitalRead(switchPin3);

if (switchState1 == 1) {
// if the switch is closed:
digitalWrite(greenLed, HIGH); // turn on the green LED
Serial.print(rock, DEC);
Serial.print("\r");

}
else {
// if the switch is open:
digitalWrite(greenLed, LOW); // turn off the green LED

}
if (switchState2 == 1) {
// if the switch is closed:
digitalWrite(redLed, HIGH); // turn on the red LED
Serial.print (paper, DEC);
Serial.print("\r");

}
else {
// if the switch is open:
digitalWrite(redLed, LOW); // turn off the red LED

}
if (switchState3 == 1) {
// if the switch is closed:
digitalWrite(yellowLed, HIGH); // turn on the yellow LED
Serial.print(scissors, DEC);
Serial.print("\r");

}
else {
// if the switch is open:
digitalWrite(yellowLed, LOW); // turn off the yellow LED

}

}

void handleEval () {

Rem = Serial.read();
//Serial.println(Rem, BYTE);

if (Loc == Rem) {
winner = 0;
}
else if (Loc == rock && Rem == paper) {
winner = 2;
}
else if (Loc == rock && Rem == scissors) {
winner = 1;
}
else if (Loc == paper && Rem == rock) {
winner = 1;
}
else if (Loc == paper && Rem == scissors) {
winner = 2;
}
else if (Loc == scissors && Rem == rock) {
winner = 2;
}
else if (Loc == scissors && Rem == paper) {
winner = 1;
}

}
void winnerLights () {

if (winner == 1) {

digitalWrite(yellowLed, HIGH);
digitalWrite(redLed, HIGH);
digitalWrite(greenLed, HIGH);

delay (200);

digitalWrite(yellowLed, LOW);
digitalWrite(redLed, LOW);
digitalWrite(greenLed, LOW);
}
}

October 14, 2007

F... YOU, FUKUSAWA!

WHAT I DID

So I started the light-project thinking i wanted to focus on wall switches and wanted to reinvent the gesture, but i sadly found out that the 2 QProx boards (QWheel and QSlide, E511 and E411) were being discontinued and were considered obsolete by the manufacturer. They were apparently replacing them with a different kit number E 1106 which Digikey was not going to have it for another 7 weeks. Crazy. So, I decided to make my first lamp. I took Fukusawa's Cosmo 1 and Cosmo 2 as model and ordered the following 'ingredients':

- 70 feet of the Aqua 2.5 brightest EL wire
- Inverter
- 12V dc transformer
- beads
- light kit to hold light bulb
- 36 LED spotlight
- canopy
- metal wire for structure

I could call this partially a failure, but the process was definitely useful and a good learning experience, so this is how it went:

LAMP PROCESS

maerials.jpg gems.jpg

Materials needed and Swarovski beads. My first intention was actually to copy Fukusawa's lamp to figure out how much it was actually worth since on most websites the piece was marked as not purchasable.
After a few documented difficulties, I came up with a different form.

Elgems.jpg soul1.jpg

I made a metal 'soul' for the lamp in order to help shape the EL wire, but i realized that i would not have enough wire to cover it up well, the budget constraint allowed only for 70 feet to be purchased. I decided to make it cylindrical.

weaving.jpg canopies.jpg

The process was long, tangled and tedious, but under some circumstances it could have almost been a form of meditation. The Zen of the Basket Weaving... and here are the canopies that I managed to find.

readylamp.jpg johnhanginglamp.jpg

I had a few choices of light bulbs, but i decided to go for the LED spotlight, to test out the durability and the electrical usage. I found this specific light bulb inexplicably heavy, I am not sure if all LED bulbs weight this much, but I could not find any other ones outside the ones that Lighting Plus sells. On line they were also on backorder. John helped me in hanging it up.

lightonlamp.jpg

This is what it looks like installed as bathroom light fixture. The ideal scenario for this lamp is as night light on while taking a bath. It adds a classier and more sophisticated look to the bathroom with the preciousness of the Swarovski crystals. It serves the purpose of adorning an LED spot light as well as create a specific magical atmosphere when the EL wire is turned on.

lamplighton.jpg

Lamp with bathroom light on.

lightondark.jpg

Lamp with both EL wire and LED bulb on.

lightondark2.jpg

Lamp with both EL wire and LED bulb on in the dark.

lightofflampon.jpg

EL wire on only.

FUK LAMP VIDEO:

fuklamp.jpg

CONCLUSIONS & PROBLEMS

- The inverter for the EL wire takes too much room and emanates a very annoying sound. I need to look into that and make a portable inverter or try to find a way to insert it in the ceiling. Hence the problem of the two separate power sources.

- It was very laborious and still expensive, if on the market and produced, this lamp would definitely come out to be costly, but at least low in power consumption and i think certainly attractive.

- Aesthetics definitely plays a role, i wish i could have made a more defined prototype, but this was the best for my possibilities this time around. The hand weaving was definitely somewhat frustrating at times.
But i do believe that the atmosphere it creates in the dark was worth the endless hours...

- The LED bulb is too heavy, so i might substitute with a more attractive and smaller bulb, maybe interestingly shaped.


October 15, 2007

SOME REACTIONS

In reactions to this week's links and readings, here are a couple of questions. If Orlan's exploitation and abuse of her own body and plastic surgery is art, or even better, performance art, then is this art? And if so, these 2 'performers' are almost contemporary, which one gets the title of being the first?

Jocelyn Wildenstein B & A.img_assist_custom.jpg

Well, in class it was discussed how Orlan's practice should be respected given her determination and strong pursue of an artistic goal. In the case of Jocelyn Wildenstein, or better known as the Queen of the Jungle, her motivation into turning herself into a feline-look alike was to regain her distant husband's love, through his passion for cats. Where does she stand on the stage of performance art?

And if The Queen of the Jungle is performance, how about Michael Jackson's determination into becoming white? Is his alteration a performance testimony? (please note the sarcasm)

578257438_53b8fa82cd.jpg

October 16, 2007

BODY & BIOLOGY

THE ASSIGNMENT

Choose one of your senses, appendages or behaviors and augment or frustrate it technologically.

At first I was thinking about stressing my hand by holding something in it all day, something that would also record the experience. But then I decided to use an accelerometer, encased in a waterproof casing, which i had used last semester for a different experiment.

This is what the sensor looks like.

hobo_wristband.jpg

This is what I encased into and wore it from 10.30 am til 11.20 pm.

wristband.jpg

THE IDEA

I wanted to map out my hand movements to see if i could find patterns, repeated gestures. I wanted to see if i could recognize some small actions thanks to the visualization of the data.

Here is he over all graph, on the bottom you can find the time, on the left the values ranging from -3g to +3g:

Graph1

Here are the main actions of my day in the attempt of recognizing a pattern:

Graph2 with activities

Here is a different view of the same chart:

Graph3 with dots

Here are all the samples taken during the 13 hours, with a sampling rate of a sample every 3 seconds.

Datalogging

PERFORMING RITUAL UPDATE

Here is the link to the video of most of my daily rituals:


meditation2.jpg

October 17, 2007

ROCK, PAPER, SCISSORS FINAL

Sometimes you have to lose some to gain some... I decided to rethink our Rock Paper Scissors method and go for the random seed while keeping the feeling of playing a game, by leaving the push button for each player and the boards look like this:

RPSfinal.jpg

And if played, the tricolor LEDs would select one of the three possibilities and display them, while a yellow LED blinks to announce the winner.

playRPS.jpg


MIDTERM CONCEPT SKETCH

MIDTERM APPROACHING...

Group: Eric, Benny, Raphael, Rory.

Title: "Collaborative Music" (temporary title)

Description: Our group has decided to work on creating wearable music devices that would each separately make a simple electronic tune when unable to detect other members of the same network. They would instead play different and more articulate tunes once able to communicate with other devices present on the floor. Each device will employ a Mini Arduino, a Zigbee Radio, some other components like LEDs and a speaker, in order to be self contained units (possibly enclosed in belt buckle or other wearable elements that could be implemented in already designed clothing).

This is a preliminary sketch of what our midterm idea is and the directions it could take:

midtermsketchcmn.jpg


NYC METRO ARTICLE

HOW FUNNY IS THIS??? WE WERE ON IT!

metro.jpg

Apparently now, at the exit of certain subway stops, you will find stickers on the floor of some popular touristy areas in NY that act as compass to tell you where you are and where to go. Did they steal our idea?

metroarticle.jpg


October 20, 2007

ITERATION

Many are the projects that would need more time, more critique and more feedback. From one of my very first interactive projects: a coat hanger where you would hang life size portraits of people, to my college thesis that still is missing smells, to the last project i did for Rome which would need the last iteration.
Right now I am a little split between these 2 and by Monday i will figure out which one I plan on taking on first:

1. As an artist I have always be interested in memories. Their significance, their emotional impact, their vividness, their lies, their interpretation. Researching a few years back, for a piece that centered around the experience of exile, i came to the conclusion that smells are the fastest triggers of memories and remembrance, as they act so immediately and without a conscious filter to bring us back to the exact moment and place that smell was experienced. The fascination, for me, is that the same smell can bring so many people to different times and dimensions and because of that i think the term 'interactive' takes a whole new meaning and form. It's no longer a path, a planned out journey for the 'user' but a personal and secret one, set up by the artist who has no control over the actual result. I want to deepen my research on smells and finally actually manage to compile a few key smells and user test them.

2. In Rome I proposed the idea of using the famous manholes all over the city, that most tourists and residents are familiar with, as a new way to navigate the city by assigning them a toll free number that once called would give useful information such as directions to attractions, restaurants, cafe's and the location of the nearest taxi stand. This was a way to help tourists not to get lost in Rome as well as raising awareness of the malfunctions and poor-maintainence of these italian design/architectural icons. What i would need to do right now is to find the right type of sticker, print it, apply it and purchase a toll free number to see if the great response i received in Rome would actually turn into the desired result.

October 23, 2007

VIRTUAL PERFORMANCE ATTEMPT

THE PERFORMANCE I WANTED TO CREATE...

I had been always very curious about SecondLife, although I had tried to stay away from it to avoid becoming addicted to one more virtual world tool. But while thinking about what type of virtual performance I would have liked to create, I realized that the Italian political presence on SL is fairly big and wanted to explore the island of some of the most hated Italian Ministers.

I started by creating my very first Avatar and I found that experience somehow ridiculously rewarding.
There is something intrinsically satisfactory in giving an Avatar the physical qualities one has always wanted... so here's Ms. Toula Pinazzo:

avatar.jpg

Then for days I tried to get used to this environment. It took me forever to learn how to sit, change my appearance and I still can't seem to land very well. I had some interesting interactions my first days there as everyone on the first island seemed very confused about this new world. I got lost in it for a while and then decided what my plan would have been. Unfortunately i didn't understand how dispersive, distracting and complicated life on SL can be.

interaction_avatar.jpg

What I was in fact on SL to do was try to find Antonio Di Pietro, the Italian Minister of Infrastructures who became famous because of his war so called "Clean Hands" against big business owners and corrupted politicians who would receive payments in order to facilitate the growth of their firms or companies. Although Di Pietro being incredibly ignorant, extremely illiterate and almost embarrassingly uneducated, he managed within this present government (which I have voted for, unfortunately) to become Minister and inaugurate his own party called 'Italia dei Valori' (Italy of Values), for which he apparently opened an island on SecondLife.

Here's a video of his first public speech on SL:

To know more about him, you can visit his website, although I can't stress enough how illiterate this man actually sounds when speaking in Italian. And although I have always been an open leftist, this is the one thing I cannot forgive my government for. Antonio Di Pietro has in the past persecuted people without a real reason, using the excuse of the Clean Hands act, and has hit very close to home for me, involving members of my family in his unfounded finger-pointing and witch-hunting. Since my family is rooted in the construction business, it is really hard for me not to despise this man now that he has been invested with such a high position.

This is a picture of when Toula made it to his island and was greeted with an introductory video:

dipietro.jpg

My ideas for a performance were:

1. Try to get expelled from his Island (or SecondLife all together) for shooting him during a conference or for seriously damaging his property or for assaulting him verbally and physically;
2. Trying to seduce him after a speech to end up actually bitch-slapping him in private.

Unfortunately, not only he seems to be fairly absent from his island which has nothing on it except for useless propaganda and an empty theater, but also SL has been constantly crashing in the past 24 hours, helping me in not getting hooked to this realm, as my FirstLife still seems to run more smoothly and uninterrupted.

PRESENTATION CRITIQUE

Watching myself give last week's presentation, was excruciatingly painful. I even hate hearing my own high-pitched voice over answering machine. The positive notes are that I was decently dressed, as I usually always try to look at my best or at least professional before any presentation and it was overall much better than any other presentation I have recently given. I have to say that I wasn't trying to present my thesis idea, as I thought it was an exercise more focused on the actual presentation skills than anything else. Given that disclaimer, I did a slightly better job than expected and although I had rehearsed a million times, I am starting to believe that I do a better job when I haven't rehearsed than when I have, as improvisation when I used to perform was what I did best. Now, to the negative notes: my voice doesn't seem very well modulated or controlled as my emotions highly transpire and I never seem to look confident enough. I did do a decent enough job not to look at the screen too often, but I also don't seem to engage in truthful and sincere eye contact since I sort of glance over people. I think I sound competent and experienced but my tone is fairly boring and my body language very uncomfortable. There is definitely more room for betterment and maybe repeating in front of a mirror was what made this presentation slightly better than the past.

MIDTERM PROGRESS

Our initial plan was to combine in self contained units, a mini arduino, a zigbee and a speaker in order to broadcast each other's presence through music. The idea was to play a simple tune while noone was around or when only one radio was on the floor but as more people in our group appeared on the floor it would play a more complex tune.

We first wrote the arduino program that would check for the presence of the other radios, since their program would broadcast a 1, 2, 3, or 4 when turned on. We soon ran into some technical difficulties of running the part of the program that played notes at the same time as the broadcasting, in fact it seemed as though the delays present and necessary to play the notes on the arduino PWM pin, would actually stall and block anything else from happening.

We then decided to use a digital pot AD5206 to control an oscillator chip to actually produce the notes. That seemed to work, but ones interfaced with the Zigbee wasn't working properly and it still needed an amp of some sort, therefore making the idea of a wearable completely impossible.

musicchip.jpg

We then decided after investing a lot of time into this option, to opt for a base central station hooked up to a computer running a patch in Max MSP that would listen to the serial and expect 5 bytes, 4 of which represented the presence (1 or 49) or absence (0 or 48) from the Arduino base station. It then used each ON radio to trigger a different instrument.

4zig.jpg4zig1.jpg

Close up of one of the small now wearable radio circuits.

4zigcloseup.jpg

And a cute casing for it.

sawing.jpg

October 24, 2007

MAX PATCHES FOR MIDTERM

Here is the first patch that Raphael and I worked on, which attributes one different instrument to each radio coming into the range of the base station:

patch1.png

And this is the patch that Eric worked on that adds a little excitement to our demonstration and works off of Rob's radio metronome:

patch2.png

Code for the Base station here:

//Rory Nugent, Raphael Zollinger, Eric Beug, Benedetta Piantella Simeonidis
//Collaborative Mesh Networking

#define timecodeLED 13
#define receiveLED 12

#define nodeOneLED 8
#define nodeTwoLED 7
#define nodeThreeLED 6
#define nodeFourLED 5

byte availByte = B10000;
boolean oneAvailable = false;
boolean twoAvailable = false;
boolean threeAvailable = false;
boolean fourAvailable = false;

unsigned long lastOneAvailable = 0;
unsigned long lastTwoAvailable = 0;
unsigned long lastThreeAvailable = 0;
unsigned long lastFourAvailable = 0;

const unsigned long nodeTimeout = 5000;

unsigned long lastReceive = 0;
unsigned long lastBroadcast = 0;
const unsigned long freqBroadcast = 1000;

int beat = 0; // used to store the current beat number
unsigned long timeCode = 0; // used to store the current time code value

byte inByte = 0;

void setup()
{
pinMode(timecodeLED,OUTPUT);
pinMode(receiveLED,OUTPUT);
pinMode(nodeOneLED,OUTPUT);
pinMode(nodeTwoLED,OUTPUT);
pinMode(nodeThreeLED,OUTPUT);
pinMode(nodeFourLED,OUTPUT);

digitalWrite(nodeOneLED,LOW);
digitalWrite(nodeTwoLED,LOW);
digitalWrite(nodeThreeLED,LOW);
digitalWrite(nodeFourLED,LOW);

Serial.begin(9600);
setupXBee();
Serial.flush();
blinkLED(receiveLED,2,250);
}

void loop()
{
checkforBroadcast();
checkNodeTime();
setAvailByte();
}

void setAvailByte()
{
availByte = B10000;

if(fourAvailable)
{
availByte = availByte + (B1 << 3);
}
if(threeAvailable)
{
availByte = availByte + (B1 << 2);
}
if(twoAvailable)
{
availByte = availByte + (B1 << 1);
}
if(oneAvailable)
{
availByte = availByte + B1;
}
}

void checkforBroadcast()
{
if(Serial.available() > 2)
{
inByte = Serial.read();
if(inByte == '#')
{
inByte = Serial.read();
if(inByte == '1')
{
lastOneAvailable = millis();
digitalWrite(nodeOneLED,HIGH);
oneAvailable = true;
blinkLED(receiveLED,1,20);
}
else if(inByte == '2')
{
lastTwoAvailable = millis();
digitalWrite(nodeTwoLED,HIGH);
twoAvailable = true;
blinkLED(receiveLED,1,20);
}
else if(inByte == '3')
{
lastThreeAvailable = millis();
digitalWrite(nodeThreeLED,HIGH);
threeAvailable = true;
blinkLED(receiveLED,1,20);
}
else if(inByte == '4')
{
lastFourAvailable = millis();
digitalWrite(nodeFourLED,HIGH);
fourAvailable = true;
blinkLED(receiveLED,1,20);
}
}
else if(inByte == '*')
{
blinkLED(timecodeLED,1,20);
Serial.print('$');
Serial.print(availByte,BIN); //outputs availability status to Max, format can be changed accordingly
}
}
}

void checkNodeTime()
{
if((millis() - lastOneAvailable > nodeTimeout) && oneAvailable == true)
{
digitalWrite(nodeOneLED,LOW);
oneAvailable = false;
}
else if((millis() - lastTwoAvailable > nodeTimeout) && twoAvailable == true)
{
digitalWrite(nodeTwoLED,LOW);
twoAvailable = false;
}
else if((millis() - lastThreeAvailable > nodeTimeout) && threeAvailable == true)
{
digitalWrite(nodeThreeLED,LOW);
threeAvailable = false;
}
else if((millis() - lastFourAvailable > nodeTimeout) && fourAvailable == true)
{
digitalWrite(nodeFourLED,LOW);
fourAvailable = false;
}
}

// this function blinks andddd LED light as many times as requested
void blinkLED(int targetPin, int numBlinks, int blinkRate) {
for (int i=0; i digitalWrite(targetPin, HIGH); // sets the LED on
delay(blinkRate); // waits for a blinkRate milliseconds
digitalWrite(targetPin, LOW); // sets the LED off
delay(blinkRate);
}
}

///////////////////////////////// UTILITY FUNCTIONS //////////////////////////////////////////
// this function checks for a specific response on the serial port
// it accepts a string to look for and a timeout in milliseconds
int checkFor(char* desiredResponse, int timeout) {
int result = 0;
int length = 40;
char incomingResponse[41];
memset(incomingResponse,0,length); // initialize all incomingResponse string positions to null
char inByte = NULL;
long startTime = millis();//makes the start time = to now
char* ptr_incomingResponse = incomingResponse;
// while we haven't timed out or gotten back the string that we are looking for
while (millis() - startTime < timeout && strstr(incomingResponse,desiredResponse) == NULL ) { //strstr compares strings
if (Serial.available() > 0) { // if there are any bytes waiting to be read
inByte = Serial.read(); // read one byte
if (incomingResponse > ptr_incomingResponse-length) { // if we haven't read in 80 characters yet
*ptr_incomingResponse = inByte; // put the byte into the current position in the string
ptr_incomingResponse++; // advance to the next position in the string
}
else {
//move the last char to be next to last, and so forth until we reach the end of the array.
for (int i = 0; i < length; i++) {
incomingResponse[i] = incomingResponse[i+1];
}
incomingResponse[length-1] = inByte; // put the byte into the current position in the string
}
}
}
if (strstr(incomingResponse,desiredResponse) != NULL ) { // if the desired string is found
result = 1;
}
else {
result = 0;
}
return result;
}

void setupXBee() {
boolean success = false;
int ctr = 0;
while (success == false && ctr < 100) {
// blink the status LED
blinkLED(receiveLED, 2, 250);
// an arbitrary byte to wake up the XBee
//Serial.print("X");
//delay(1100);
// put the XBee in command mode
Serial.print("+++");
delay(1100);
// wait for a response from the XBee for 2000 ms, or start
// over with setup if no valid response comes
// set the PAN (personal area network) ID number
// set the MY (16 bit address)
// set the Destination High to 0x0
// set the Destination Low (16 bit address)
// exit command mode (using a Serial.printLN to end the command with a linefeed)
Serial.println("ATRE,ID333A,MYBEEF,DH0,DLBEEF,CN");
if (checkFor("OK", 1000)) {
// if an OK was received then continue
success = true;
}
else {
success = false;
}
ctr++;
}
}

Code for the 4 Nodes here:

//Rory Nugent, Raphael Zollinger, Eric Beug, Benedetta Piantella Simeonidis
//Collaborative Mesh Networking

#define broadcastLED 13

unsigned long lastBroadcast = 0;
const unsigned long freqBroadcast = 1000;

const char* broadcastID = "#1"; //change depending on the number of the node

byte inByte = 0;

void setup()
{
pinMode(broadcastLED,OUTPUT);

Serial.begin(9600);
setupXBee();
Serial.flush();
blinkLED(broadcastLED,2,250);
}

void loop()
{
broadcast();
}

void broadcast()
{
if(millis() - lastBroadcast > freqBroadcast)
{
blinkLED(broadcastLED,1,20);
Serial.print(broadcastID);
lastBroadcast = millis();
}
}

// this function blinks the an LED light as many times as requested
void blinkLED(int targetPin, int numBlinks, int blinkRate) {
for (int i=0; i digitalWrite(targetPin, HIGH); // sets the LED on
delay(blinkRate); // waits for a blinkRate milliseconds
digitalWrite(targetPin, LOW); // sets the LED off
delay(blinkRate);
}
}

///////////////////////////////// UTILITY FUNCTIONS //////////////////////////////////////////
// this function checks for a specific response on the serial port
// it accepts a string to look for and a timeout in milliseconds
int checkFor(char* desiredResponse, int timeout) {
int result = 0;
int length = 40;
char incomingResponse[41];
memset(incomingResponse,0,length); // initialize all incomingResponse string positions to null
char inByte = NULL;
long startTime = millis();//makes the start time = to now
char* ptr_incomingResponse = incomingResponse;
// while we haven't timed out or gotten back the string that we are looking for
while (millis() - startTime < timeout && strstr(incomingResponse,desiredResponse) == NULL ) { //strstr compares strings
if (Serial.available() > 0) { // if there are any bytes waiting to be read
inByte = Serial.read(); // read one byte
if (incomingResponse > ptr_incomingResponse-length) { // if we haven't read in 80 characters yet
*ptr_incomingResponse = inByte; // put the byte into the current position in the string
ptr_incomingResponse++; // advance to the next position in the string
}
else {
//move the last char to be next to last, and so forth until we reach the end of the array.
for (int i = 0; i < length; i++) {
incomingResponse[i] = incomingResponse[i+1];
}
incomingResponse[length-1] = inByte; // put the byte into the current position in the string
}
}
}
if (strstr(incomingResponse,desiredResponse) != NULL ) { // if the desired string is found
result = 1;
}
else {
result = 0;
}
return result;
}

void setupXBee() {
boolean success = false;
int ctr = 0;
while (success == false && ctr < 100) {
// blink the status LED
blinkLED(broadcastLED, 2, 250);
// an arbitrary byte to wake up the XBee
//Serial.print("X");
//delay(1100);
// put the XBee in command mode
Serial.print("+++");
delay(1100);
// wait for a response from the XBee for 2000 ms, or start
// over with setup if no valid response comes
// set the PAN (personal area network) ID number
// set the MY (16 bit address)
// set the Destination High to 0x0
// set the Destination Low (16 bit address)
// exit command mode (using a Serial.printLN to end the command with a linefeed)
Serial.println("ATRE,ID333A,MYBEEF,DH0,DLBEEF,CN");
if (checkFor("OK", 1000)) {
// if an OK was received then continue
success = true;
}
else {
success = false;
}
ctr++;
}
}

MEDITATION 1

MEDITATION ONE

The Task: The two above random thoughts have kernels of intersection; one may be that translation can be seen as a process that, when used literally, can provide unexpected and compositionally interesting outcomes.

Keeping this in mind, create a brief compositional study which explores one or more translation faults in the Babelfish service. Feel free to explore multiple chains of translation (e.g. English-to-French-to-Portuguese-to-English). Don't worry if you don't understand one of the languages your working with. That might even be better. Record yourself speaking the resulting text piece (either one side of the translation or both). Bring it in on Class 6 (in a little under two weeks). We'll give it a listen and put it on the radio.

A. Here is translation #1 (ITALIAN-ENGLISH-ITALIAN).

Come un segreto tu, mi sussurri nella notte.

Like a secret, you, whisper to me in the night.

Come un segreto, bisbigliante a me nella notte.

B. Here is translation #2 (ITALIAN-ENGLISH-ITALIAN).

Sognami, mentre cammini per la città, mentre passeggi per i parchi, mentre corri tra la gente.

It dreams to me, while you walk for the city, while it takes a walk for the parks, while you run between people.

Sogna a me, mentre camminate per la città, mentre fa una passeggiata per i parchi, mentre funzionate fra la gente.

C. Here is translation #3 (ITALIAN-FRENCH-SPANISH-ENGLISH).

Cancella dalla tua mente arida tristezza di sottili delusioni.

Il raye de tes mentes aride tristesse de subtiles dècesptions.

él de tus mentas àrido tristeza de sutiles decepciones.

He of your mints barren sadness of subtle deceptions.

MEDITATION 2

MEDITATION TWO

bridges.jpg

The Task: The Seven Bridges of Königsberg, in addition to being a very famous problem in graph theory, can be thought of as a type of probability table for score creation. If we presume a musical vocabulary of four events (corresponding to the west island, the north bank, the east island, and the south bank), we can create a Markov process based on the possibilities of moving from one part of the map to another. For example, from the east island we have an equal chance of travelling to the west island or either bank; from the west island, however, we are twice as likely to travel to the north or south bank than we are to the east island (i.e. there are two bridges to each bank but only one bridge between the islands). Furthermore, we could restrict the motion in our score to include randomness without repetition (i.e. you can only cross bridges that you haven't just crossed).

Using this problem as an inspiration, create a musical sketch based on four sounds representing the locales (the two islands and the two banks) and seven sounds representing the bridges. Construct a piece such that guides the listener on a walking tour through the city (which may or may not sound anything like a real city, or even a real space), attempting to solve the problem of the seven bridges. In other words, create a musical structure such that your path follows the topography of the city in such a way that you move in a semi-random path across the bridges, the only requirement being that you don't double-back on yourself immediately.

You can generate the score by hand or through a computer algorithm like the one we did in class this week for defining Markov chains. Bring in what you came up with (both the score (paper or code) and the resulting sound) and we'll check it out!

And here is my Meditation 2 done in CSound!

The score is as follows:

C2B1A3B4C7D5B5D6A

where A, B, C, D = LANDS (using sounds like walking, people, traffic, seagulls.
and 1, 2, 3, 4, 5, 6, 7 = BRIDGES (using sounds of means of transportation such as trains, buses, elevators, scooters, bikes, planes, etc.)

There was one score I made that involved swimming across one of the river sides that didn't seem to have a bridge, but someone thought it would be cheating...

October 25, 2007

MEDITATION 3 SKETCH AND FINAL IDEAS

MEDITATION THREE DATA

Mapping: As we discovered last week when we attempted to sonify the EEG data, mapping is an incredibly important aspect of the composition using data mining. Taking some data from the USGS server, do a musical sketch where you sonify the data using a Csound opcode we've never tried in class (e.g. not oscil, pluck, or soundin). Start off with the Csound example posted at the end of the documentation for the opcode, then write a score to make some sound out of the data. You can use a brief seismic reading which you map note for note, or you can write some code to read a data file into Processing to generate a score.
Bring in what you come up with (as well as an explanation of your mapping choices) and we'll give it a spin!

I am thinking about using NOAA data for a sound piece instead of earthquake data. I am interested in water pressure, wave heights and speed, I would like it to be pulling it live from one of the DART buoys or by calling a specific location to retrieve the info. Not sure how to do that yet. Or earthquakes in real time are also very interesting.

This is a page of DART data as example.

IDEAS FOR FINAL PERFORMANCE

1. Using typical SAREE patterns and some type of image-to sound software (like Coagula) I would like to generate some interesting sounds to be later manipulated algorithmically.

2. I would like to incorporate, as I stated at the beginning, Tsunami detection algorithms to manipulate or generate sound. The problem with this is that I am not sure yest what kind of library of sounds I need or where to extrapolate that from. This is an example:

Picture 6

3. Using live incoming Tsunami/earthquake data from the NOAA website or others I would like to manipulate and/or generate some interesting soundscapes.

There is a possibility for a small dance performance inside one of the soundscapes playing as a small taste of what my thesis is going to be, and as a small test to see if that is actually the direction I want to go into.

October 28, 2007

EVENT WRITE-UP #1


Odissee, Italiani sulle rotte del sogno e del dolore, is a performance created by the Compagnia delle Acque based on the incredible book written by Gian Antonio Stella, the editor and political, economic, and social correspondent for Il Corriere della Sera and also best-selling author of many books including La Casta (Rizzoli, 2007). Odissee plans to capture and focus the audience attention on the hopes and disappointments of the many Italian emigrants at the end of the 19th century who left their homeland to find fortune in faraway lands such as the-much-dreamed-of America. The performance alternates tales, authentic poetry, vintage documents, historical images and songs taken from the Italian folk tradition of the time. La Compagnia delle Acque has been a very prolific group founded by Gualtiero Bertelli (accordion, guitar, vocals), including Rachele Colombo (vocals and guitar), Paolo Favorido (piano), and Giuseppina Casarin (vocals), and represents one of the very few multimedia/folk theater groups to actually still include a socio-political message in every piece they masterfully construct and perform. Their clever social commentaries and political-economical remarks well blend into their heart-felt music and poetic voices, while leaving the audience with some meditative thoughts and strong imagery that will open their eyes to forgotten and hidden realities.
The performance, held at the Casa Italiana Zerilli-Marimò at New York University on Friday October 27th, was a touching and enchanting event that I think succeeded in its intent and picked up from where Emanuele Crialese's film Nuovo Mondo (Golden Doors) left off. While on the big screen even the darkest moments were still detached and presented to us like a far away nightmare to forget about as soon as we exit the theater, Odissee told the stories that our grandparents and ancestors have attempted to let go of, but instead were haunted by forever. Those stories you only get glimps of in Crialese's film, while thanks to Gian Antonio Stella's commitment and the Compagnia's devotion and passion, they finally come alive through a brilliant mix of traditional signing, useful historic information and hard-to-find testimonies that have been buried with tears in foreign soils for generations. The music was well executed, the readings were full of sorrow but also desperate hope, the imagery powerful and unfiltered. It was a beautiful event that could teach the true history of our exodus and emigration process without the lies and the tacit false understanding that the promised land came at no cost. We can also learned so much about the original conditions of Italy at the end of the 19th century and later, information so painful that even in school sometimes it's held back or uncomfortably discussed. As much as I think the format the Compagnia delle Acque has chosen for this performance was appropriate, I do wish I could have seen a little bit more of a modern interpretation of the stage: a dancer's movements would have complemented greatly the imagery and the music which lacked a physical and tangible element, the same way the placement of the instruments on stage took too much of a central role in the aesthetics of the piece. The screen projection also creates too much distance between the viewer and the material, adding that element of institutionalized presentation that could serve both as positive and negative prop. If on one hand a PowerPoint slide presentation can be a hidden criticism of institutions and schools that don't make this material available, on the other hand it creates one more layer of separation. But considering the limitations dictated by the space itself, the voices, the guitar, the piano keys and the accordion filled that void with a strong emotional charge regardless.

Photos of the event available at: Flickr set

And a small video:

FINAL PERFORMANCE IDEAS

CONCEPT:

I have an ambitious plan, which might turn into my thesis if this semester's experiments turn out successful and satisfactory.

The idea is to perform a dance piece I wrote and choreographed (in the future together with the help of dancer Lucia Nicolussi Perego and the Compagnia Era Acquario, which I was a part of until 2000).

The piece will have a soundtrack made of algorithmically manipulated natural sounds as well as percussion instruments, chimes and mathematically generated samples. The visuals would cover three walls of a possibly white place and the moments derive from a deep movement analysis based on an essay I wrote, poetry, dream sequences and nightmares. The three wall projections (which are not elements I plan on tackling this semester) would create an environment for the dance to interact with and also would help in creating a sense of 'stage' without employing a more traditional structure.
Ideally the environment would be reactive to the performance and somewhat mapped out with sensors/camera without limiting the movements to the choreography but leaving room for improvisation as well. The props include a solid wood table at the center of the stage. The color scheme i envision will be a battle between blues and reds.

ELEMENTS FOR FINAL PERFORMANCE

1. Using typical SAREE patterns and some type of image-to sound software (like Coagula/MetaSynth) I would like to generate some interesting sounds to be later manipulated algorithmically and constitute part of the soundtrack to my live dance performance.

2. I would like to incorporate, as I stated at the beginning, Tsunami detection algorithms to manipulate or generate sound/video. The problem with this is that I am not sure yest what kind of library of sounds I need or where to extrapolate that from. This is an example:

Picture 6

3. Using live incoming Tsunami/earthquake data from the NOAA website or others I would like to manipulate and/or generate some interesting soundscapes.

4. Starting from 2 of the assignments we did at the beginning of the semester, I would like to create a dance performance with somewhat of a narrative, that takes elements from my movement analysis and the augmentation of my hand movements mapped throughout the day.

Previous assignment:

This is the interaction with one screen, although this was recorded and played back the actual performance would eventually be live.

If i could manage to recognize some gestures, i would then be able to create some small devices that manipulate the sound or the imagery projected on the wall while leaving some room for improvisation.

Here are the main actions of my day in the attempt of recognizing a pattern:

Graph2 with activities

5. Eventually I would figure out the perfect format, but ideally i would like three wall projections in order to define "a stage" for the performance. At the center of the scene there would be a wooden table. Color contrast would play a role, lighting as well. Music i am working on right now and i have some movements in order.

IMPROVISATION RULES

PUSH & PULL
Rules for Improvising Dance with another person

1. Smile to greet the other person.
2. Breath deeply and naturally until comfortable.
3. Touch/Push the other person to start the interaction.
4. Think of:
- pressure
- gravity
- weight
- kinetic energy
5. Listen to each other's breathing and body energy.
6. Try to move together seamlessly.
7. Thank each other with a bow.

October 29, 2007

ITERATION TEST 1

This week I started thinking about the scents that I was going to test out. My plan is not to try to recreate a specific experience for people, but i rather want to exploit certain scents that would fit into the environment i plan to build, reminiscing of an abandoned apartment in Italy, and that would be iconic and above cultural differences. Some scents are obviously very geographically-tied and I wish i could use that element of unknown-ness as well as the familiar elements of certain smells that almost act as universal triggers.

I started by ordering some samples of natural, and chemically processed scented oils with these fragrances:

25932|Vervain Scent
25704|Bread Scent
25765|Tobacco Scent
24279|Mimosa Scent
20376|Rain Scent
24158|Oregano Scent
25602|Sunflower Scent
26278|Magnolia Scent
24852|Basil Scent
24261|Baby Powder Scent
24347|Myrrh Scent
20102|Amaretto Scent
20784|Lavender Scent
23731|Anise Scent

While I wait on those to arrive, I started with the real things:
here is a picture of Vanilla scent, Cinnamon and Clove scent, Lavender scent, Chocolate powder, Grounded coffee beans.

smells.jpg

I tested one on m husband and this is what Lavender reminded him of:

"It brings me back to Sunday afternoons when my mom used to put me into bed, i was eight or nine years old, it has something something to do with my mom, after she took a shower, i think my mom used to wear something like that. It reminds me of my parents bathroom above all. And it's funny that it's Sunday afternoon now and it reminds me of Sunday afternoons."