This user has not filled out their profile!
Heart Beats continually modifies the tempo of your music to match your heart rate. Hopefully this won't result in a positive feedback system that gives the user a heart attack.
It uses a heart rate monitor that wirelessly communicates with a watch, and there is a webcam duct-taped to the watch with quick'n'dirty OCR to read the heart rate in Max/MSP. The heart rate is divided by the original tempo of the song, which determines the speed at which the song should play.
Bonus hack: I saw the HarmonicScore team's work and noticed that their image output (a noteroll generated via MIDI data, with harmonics added in) looked very similar to a spectrogram, so I ran an inverse Fourier transform on it so we could listen to it. I was pleasantly surprised to find that the result was a chiptune-y version of the original Bach piece.
The Echo Nest Remix API is amazing, but interacting with it via Python scripts isn't as fulfilling as it could be. BeatBloks aims to scratch this itch by overlaying the measure, beat, and tatum information provided by the Remix API onto the waveform of the music, and allows you to drag these "bloks" around to remix music on the fly. With the ability to rearrange everything in real-time, it's way easier to experiment, discover interesting remix opportunities, and iterate on ideas.
BeatBloks is written in openFrameworks, decodes MP3s into PCM data with LAME, and gets musical timing info from the Echo Nest Remix API. To get around the fact that BeatBloks is written in C++ and there is no C++ Remix API, I use popen() to run a simple Remix Python script that merely runs the analysis and prints out all of the timing info. BeatBloks reads the output from that popen() and stores it internally.
Also, I couldn't figure out how to decode MP3 into PCM in my app, so I use another popen() to run LAME and decode the MP3 to a temporary WAV file, then read that WAV into BeatBloks.
Even though all of these popen()s are being used, everything happens seamlessly within the app, so all you do is drag and drop an MP3 into it, and the audio and remix data are loaded automagically.