Rhythm Listener

Uncategorized — rbrill @ 12:27 am

Password: mti


This project is one part research tool, one part affective computing device. It has two goals. The first is to explore the relationship between computer and physiological excitement. The second is to be able to manipulate excitement at will.

All too often, I find it hard to transition to other activities after using my computer. This is especially true late at night, when my will to resist the Internet’s temptations is at its lowest. Our use of the internet often leads us into compulsive loops, in which the appeal of small hits of dopamine cause us to act quickly and without thought.

I wanted to build a tool that would help users quantify the impact that different computer-based activities have on their body and affect. My hope is that by gathering data on this activity computer users can form healthier habits.

Heart rate is a good and commonly used proxy for physiological excitement. Studies also show a correlation between steadier of heart rates and the ability to regulate of behavior. For these reasons, I chose to use heart rate data to power my project and christened it “Rhythm Listener.”

Inspiration/Related Work

There exists a small body of scholarly work on the effect of music on heart rate, examples of which I have listed below. A number of student projects have translated heart rate into musical output, but none that I found have used music to affect heart rate in such a controlled manner.


  1. Heart Rate Variability and likelihood to engage in Addictive Behavior:
  2. kb.osu.edu/dspace/bitstream/handle/1811/60413/LindsayCannon_HonorsThesis.pdf?sequence=1
  3. Pitch > Rhythm in influencing emotions: www.jstor.org/stable/40285907
  4. Effects of music on physiological arousal: www.theaudioprof.com/pubs/2007_1.pdf
  5. Cardiovascular responses to music tempo during steady-state exercise: www.asep.org/asep/asep/Birnbaum%2012(1)50-56.doc
  6. Music, heart rate and the medical field: www.emerginginvestigators.org/2013/04/the-effect-of-music-on-heart-rate/



Rhythm Listener consists of an Easy Pulse v1.01 heart rate sensor attached to a computer mouse on one end and to an Arduino microcontroller on the other. Heart rate data is sent to one of Arduino’s Analog In pins. Voltage output to the Arduino varies according to the relative thickness of the blood in the finger being read.









Arduino has a serial connection to the user’s computer using a USB cable. I enclosed the Arduino and heart rate signal processing chip inside a plastic case. The wire to the reader and the USB to the computer both come out of this case, resulting in a look like that of a standard computer mouse (albeit one with a large adapter).


The signal from the Arduino is routed to a Max Patch using standard Firmata protocol. I use “Maxuino” to accept the serial output from the Arduino and process it in Max. The result is sent to a slider, which outputs a value between 0.00 and 1.00 according to the heart rate. I take this data and route it to a graph of the raw heart rate data and to a sub-patch I built that calculates beats per minute from the time between peak values. I display both the raw data and the BPM over time in graphs for the user to easily visualize.

When the user presses a Max button, a conditional is triggered that reads their current heart rates and plays a song segment with a similar BPM. I can then adjust the speed of the song up or down according to preset preferences.

Lessons Learned

As happened throughout this course, I taught myself a new programming language in the process of doing this project. One of my biggest struggles was getting a basic understanding of Max and the specific objects I needed to use for this project. It is now hard to believe that I ever struggled with this, but the initial learning curve was steep. Once I had the lay of the land I found Max to be a joy to work in.

Getting the serial connection between the Arduino and Max working was and still is the biggest challenge of this project. I tried three different methods (Max2Arduino, Serial OSC and finally Maxuino) before getting Maxuino to work.

Unfortunately, this serial connection stopped working for unknown reasons right before our show at Assemble. This was especially troubling because I had everything running 40 minutes earlier, and changed nothing but my location in that time. I have not been able to fix it, nor has anyone else who I have asked for help from.

Fortunately, I had a backup project that I was able to show at the live demonstration.

The video above is how the program would have worked had the serial connection not failed.

Compulsion Loops and the Digital Age: www.theatlantic.com/health/archive/2012/07/exploiting-the-neuroscience-of-internet-addiction/259820/?single_page=true
EasyPulse sensor website: www.emerginginvestigators.org/2013/04/the-effect-of-music-on-heart-rate/


No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2022 Making Things Interactive | powered by WordPress with Barecity