top of page

Mood Gloves: A Microcontroller-Based Music Sequencer

HARDWARE, WEARABLE DESIGN, HUMAN-COMPUTER INTERACTION, MUSIC

🛠️: MATLAB, Arduino

💁‍♀️: Nicoleta Mahu

🏆: Top prize bracket winner of the introductory electrical engineering course @Penn

: 8 weeks

Ever wondered what it would be like to touch sound? To feel music being played in your hands? Now you can with Mood Gloves!

Made with the power of Arduino, MATLAB, and sensors, Mood Gloves gives you the freedom to create music straight from your fingertips. Each finger controls a layer of a pre-programmed song, that when bent, plays music. Rotating your hand to the right or left applies filters to the song that change the frequency at which the song is being played. Finally, MATLAB provides the ability to sequence this symphony of sounds into loops.

HIGH-LEVEL DESCRIPTION

 

Our glove is comprised of three main components: an Arduino microcontroller, sensors & buttons, and MATLAB.

  1. Arduino The Arduino and its associated breadboard double as processing power and the hardware interface. All components are soldered and wired with care. Located on the back of the glove, the breadboard and Arduino interface the sensors and buttons to MATLAB via USB connection.

  2. Sensors & Buttons Connected to the Arduino via analog pins, five flex sensors measuring a change in voltage are attached to the fingers on top of the glove. An accelerometer programmed along the x-axis detects any rotational motion. When pressed, a selection of four buttons located on the breadboard-Arduino interface control which song pack is played.

  3. MATLAB MATLAB provides the digital interface where users can explore which song packs they'd like to experiment with. Running the MATLAB Mood Gloves program activates a colorful panel that displays four song packs, with themes ranging from R&B to EDM to Indie Pop.

 

MATLAB reads voltage inputs from the bend sensors in real-time via analog pins. When the finger is bent, less voltage can pass through the bend sensor, since the sensor itself is a resistor. If the voltage reading is below a certain tolerance voltage, music is played via MATLAB through a computer. When the finger stops bending, the voltage reading returns to above the tolerance and the music stops playing.

Additionally, an accelerometer oriented along the x-axis controls which filters are applied to the music. Accelerometer readings from rotating your hand to the right tells MATLAB to apply a butter filter that plays the music at a higher frequency. Conversely, rotating your hand to the left plays the music at a lower frequency.

WHAT'S NEXT?

Since MATLAB is not built for real-time inputs, we dealt with issues of latency when it came to the time period between bending your finger and hearing the music play from the computer. Our fix to this is the second part of our project: we wish to code a music sequencer that takes the time you bent your finger and plays it at the next logical beat in the sequence.

Our current interface works but can be made more efficient and user-friendly on MATLAB.

We'd also like to experiment with allowing users to upload their own sample packs or song files. This can be useful for musicians and artists wanting to experiment with overlaying beats before committing to a tune.

bottom of page