Fingerscan: music at your fingertips

SAMSUNG CSC

This project is a tactile music wearable: 10 vibration motors (the same found in cellphones) are to be attached to fingernails. This device can be used to produce patterns for meditation/body consciousness, tactile music, 1-to-1 performances, music for deaf people, tactile communication systems, augmentation of perception (e.g. feeling the same sensation under a performing pianist’s skin), possible medical applications…

Realized as the last work in the frame of the research project touchmysound, in 2016, this prototype of a wearable tries to translate the musical elements to a tactile level. While sound is totally absent here, the focus is on the spatialization of the tactile sensation.

Two Arduinos control rhythm, duration and intensity of the vibration. The patterns can be programmed and then uploaded to the Arduinos or controlled in real-time via computer.

PH Stefan Klaverdal

This prototype could be upgraded in various ways:

  1. realize a design to properly and easily wear the device (maybe 3D-printed silicone gloves). Int he public presentation of the project, finger sleeves used to count banknotes were used to secure the motors to the fingersnails;
  2. laser-cut a wooden case and include a battery to make it a mobile wearable;
  3. include plugs to attach a set of 10 piezo sensors that, worn by another person, can transmit the vibration data to the vibrating motors (even via networked connection);
  4. include a knob to control the maximum intensity of the vibration;
  5. include a button to select the operational mode: different stand-alone programs, composition mode (attached to a PC via Arduino’s USB port for composing tactile music), direct piezo-to-motor communication;
  6. compose different stand-alone patterns for when the device is used as a wearable;
  7. set up a computer-based system for the composition of pieces;
  8. imagine the same system fit in another design to be worn on other parts of the body. Will the same compositional strategy apply?
Fingerscan_WEB

Picture from work-in-progress


In the schematics shown hereunder, made with Fritzing, the two Arduinos run separately. In case you wanna sync the two hands, you need to send data from one Arduino to the other (via the TX and RX pins). The software has to be adapted accordingly.

MusicAtYourFingertips_schem.jpg

Schermata 2017-07-30 alle 18.32.52.pngThis schematic is basically a development of the project found on Learning About Electronics, and the module which controls a vibration motor (3.3V) is repeated ten times. Since all the motors could be on at the same time, an external power supply is used, which feeds 9V directly to the Vin pin of the two Arduinos, while a switch regulator takes down the input to 3.3V to feed the then motors. For a better understanding of the powering of the Arduino board, see this article.

I also wrote a tutorial which is now a featured project at Hackster.io.

You may want to redesign this circuit using an Arduino Mega, or even one only Arduino Uno…

I programmed the patterns directly in Arduino Code.

An Arduino sketch was used activate the motors one by one on subsequent fingers, with a random timing:

  const int motorPin1 = 3;
  const int motorPin2 = 5;
  const int motorPin3 = 6;
  const int motorPin4 = 9;
  const int motorPin5 = 10;
  int randTime = 0;

void setup() {
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  pinMode(motorPin5, OUTPUT);
}

void loop() {
  steady(motorPin1);
  steady(motorPin2);
  steady(motorPin3);
  steady(motorPin4);
  steady(motorPin5);
}

void steady(int motorPin) {
  randTime = random(250);
  analogWrite(motorPin, 250);
  delay(randTime+50);
  analogWrite(motorPin, 0);
}

Another sketch was used to produce ramps (crescendo-diminuendo) on subsequent fingers:

  const int motorPin1 = 3;
  const int motorPin2 = 5;
  const int motorPin3 = 6;
  const int motorPin4 = 9;
  const int motorPin5 = 10;

void setup() {
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  pinMode(motorPin5, OUTPUT);
}

void loop() {
  ramp(motorPin1);
  ramp(motorPin2);
  ramp(motorPin3);
  ramp(motorPin4);
  ramp(motorPin5);
}

void ramp(int motorPin) {
  int randn;
   randn = random(10);
   for (int intensity = 0; intensity < 250; intensity++) {     analogWrite(motorPin, intensity);     delay(randn);   }   randn = random(20);    for (int intensity = 250; intensity > 0; intensity--) {

    analogWrite(motorPin, intensity);
    delay(randn);
  }
}

The prototype also resulted in a caterpillar-like self-moving robotic hand:


A modified versions of these sketches was then used by Argentinian composer Mariano Rocca during a sound-art workshop at Distat Terra 2016, Choele Choel (Argentina). The device was attached to the strings of an open vertical piano, with the pedal forced down, to let the strings resonate with the motors.


The project was publicly presented at the Nordic Sound-Art Symposium “Sound Disturbance”, February 10-12, 2017.


Licenza Creative Commons
Fingerscan by Alessandro Perini is distributed under a Creative Commons License – Attribution – Non-commercial – Share Alike 4.0 International.
For further permissions: https://alessandroperini.com/contact/.

One thought on “Fingerscan: music at your fingertips

  1. Pingback: Epicentro | Alessandro Perini

Leave a comment