top of page

OFF  BEAT
BY TOVÉ SIGNE SOREN TRYGVE WILLIAM ANNABEL RYDIN LISADOTTER

Off Beat is an interactive installation and performance involving live heart beats. It is a combination of new skills that I am currently learning: drumming and electronics. The two heart beats represent my own heart beat and my brothers, who passed away and since his passing I have felt as though I am now holding the both of our souls in this one body. Two heart beats. Which at times can be overwhelming and I fall Off Beat. He was very gifted in robotics and so for the past year and a half, I have been learning circuitry and some basic coding in Max MSP and Arduino (see the code for Arduino used in this project below. And also a big thanks to April Giom for helping me write it).

The way that it all works is that there is a pulse sensor  which has a little green LED above a photosensor which detects the level of green light coming from the above LED. You place this on your finger and every time a rush of hemoglobin/red blood cells flow through your veins (aka a pulse) the red blood absorbs the green light. Hence my color choices for the space. The photosensor can then read this data and do many different things. In my case I had it graph the information, I set a threshold and every time it passed this threshold a motor would be told to go forwards. When the light absorption was below this threshold, the motor would turn backwards. Mallets were attached to each of the motors so that when they went forwards, they hit one of the base drums mounted to the wall thus electronically transposing a real heart beat into live robotics that are still playing acoustic instruments!

During the installation segment, viewers were able to place their own fingertips on the sensors and hear their heartbeats pounding on a bass drum above their heads. There was chamomile and cayenne tea to slow down heart rates or cookies if you wanted to speed it up. At the end of the exhibition we also performed a rehearsed piece with the drums (although sadly the motors burnt out just before the show and we were reduced to a drummer taking his own heart beat in real time and working with that). 

I am so honored to have worked with such a lovely group of musicians and non-musicians alike. This entire show and installation came together over the course of 3 weeks and so we really only ever had 2 rehearsals and 2 shows but each one of them was an immense pleasure. I would like to thank (in no particular order) Rose Nadis, Miriam Lubin, Masha Kurbatova, Leila Stallone, Tess Cogen, Aiden Samp, Ari, Elsa Joiner, Shay, Cyrus, Cedric, and Matt Macari.

//  Variables

#define M1_ENA 2
#define M1_in1 53
#define M1_in2 52
#define M1_ON 39

#define M3_ENA 4
#define M3_in1 49
#define M3_in2 48
#define M3_ON 43

int PulseSensorPurplePin1 = 0;        // Pulse Sensor PURPLE WIRE connected to ANALOG PIN 0
int PulseSensorPurplePin2 = 5;
int LED13 = 13;   //  The on-board Arduion LED


int Signal1;                // holds the incoming raw data. Signal1 value can range from 0-1024
int Signal3;
int Threshold = 400;            // Determine which Signal1 to "count as a beat", and which to ingore.


// The SetUp Function:
void setup() {
  pinMode(LED13,OUTPUT);         // pin that will blink to your heartbeat!
   Serial.begin(9600);         // Set's up Serial Communication at certain speed.
   pinMode(M1_ENA, OUTPUT);
   pinMode(M1_ON, INPUT);
   pinMode(M3_ENA, OUTPUT);
   pinMode(M3_ON, INPUT);
}

// The Main Loop Function
void loop() {

  Signal1 = analogRead(PulseSensorPurplePin1);  // Read the PulseSensor's value.
  Signal3 = analogRead(PulseSensorPurplePin2);
                                              // Assign this value to the "Signal1" variable.

   Serial.println(Signal3);                    // Send the Signal1 value to Serial Plotter.

 


   if((Signal1 > Threshold)){                          // If the Signal1 is above "550", then "turn-on" Arduino's on-Board LED.
     digitalWrite(LED13, HIGH);
     digitalWrite(M1_in1, LOW);
     digitalWrite(M1_in2, HIGH);

   } else {
     digitalWrite(LED13,LOW);                //  Else, the sigal must be below "550", so "turn-off" this LED.
     digitalWrite(M1_in1, HIGH);
     digitalWrite(M1_in2, LOW);
   }

   if(digitalRead(M1_ON)){
     analogWrite(M1_ENA, 255);
   }else{
     analogWrite(M1_ENA, 0);
   }

 

   // the other one!
   if((Signal3 > Threshold)){                          // If the Signal1 is above "550", then "turn-on" Arduino's on-Board LED.
     digitalWrite(M3_in1, LOW);
     digitalWrite(M3_in2, HIGH);

   } else {                                             //  Else, the sigal must be below "550", so "turn-off" this LED.
     digitalWrite(M3_in1, HIGH);
     digitalWrite(M3_in2, LOW);
   }

   if(digitalRead(M3_ON)){
     analogWrite(M3_ENA, 255);
   }else{
     analogWrite(M3_ENA, 0);
   }

delay(10);


}

Untitled219_20221027210358~2.png
bottom of page