Black MIDI: There Is No Denser Music

Imagine if you played all the keys on a piano at once. What would it sound like? Now imagine that you’d like to transcribe that music. What would it look like? So many notes that you could hardly see the paper underneath.

Which is why the people making such “impossible music” are calling themselves the Black MIDI Crew: if you wrote the music down, it’d look like a big black blob. Or at least, that’s the joke. Amazingly, though, it doesn’t sound like a big mess. Check out “Pi, The Song With 3.1415 Million Notes” below the break to see what we mean.

Continue reading “Black MIDI: There Is No Denser Music”

It’s an Upright Piano, It’s a Looper, It’s a Pi Project

We don’t really get out much, but we have noticed that there are brightly painted upright pianos in public places these days. Research indicates that these pianos are being placed by small, independent local organizations, most of which aim to spread the joy of music and encourage a sense of community.

[Sean and Mike] took this idea a couple of steps further with Quaver, their analog looping piano. Both of them are maker/musicians based in Lancaster, Pennsylvania, which happens to be a hot spot for public pianos. [Sean and Mike] often stop to play them and wanted a good way to capture their impromptu masterpieces. Quaver is an antique upright that has been modified to record, save, loop, and upload music to the internet. It does all of this through a simple and intuitive user interface and a Raspi 2. Quaver works a lot like a 4-track recorder, so up to four people can potentially contribute to a song.

The player sits down, cracks their knuckles, and presses our personal favorite part of the interface: the giant, irresistible record button. A friendly scrolling LED matrix display tells them to start playing. Once they are satisfied, they press the button again to stop the recording, and the notes they played immediately play back in a loop through a pair of salvaged Bose speakers from the 1980s. This is just the beginning of the fun as you play along with your looping recording, building up several voices worth of song!

Continue reading “It’s an Upright Piano, It’s a Looper, It’s a Pi Project”

Turning a Cadenza into a Finishing Move

What do you get when you mix dueling pianos with a 2D fighting game? Undoubtably some complex controls, but also an awesome platform for showmanship! The “Sound Fighter” installation by artists [Cyril] and [Eric] was built with the exact intention that two opposing parties could duke it out in a Street Fighter match with their piano playing abilities mapping into attack combos and dragon-punches.

In order to turn a piano into a glorified arcade stick, [Cyril] and [Eric] would need a way to register when and what notes were being played and then translate that data into commands for the fighting game itself. To start, they did their homework on the inner workings of different piano types. Whatever digital augmentation they were to design would have to work without inhibiting the piano’s function.

There were many possible methods of registering when the piano was being used and though several would have worked for their intended purpose, it took writing down and discussing the pros and cons of each sensor before they made a decision. Some of the options they considered included pressure sensors for the keys themselves, accelerometers to detect the movement of the individual hammers within the piano, and even a microphone to computationally analyze the sound heard from either instrument. In the end they chose to implement small and accurate piezo knock sensors tethered to the internal mechanism of each key. These could register both faint and strong notes when played without altering the natural sound of the instrument.


After deciding on a Street Fighter iteration for the PS2 to develop the rest of the project around, they had to play the actual game a bit to get a feel for the command list of moves. They wanted to conceive of a way to map the notes played to the controller, but not in the direct “key to button” sort of way. The idea was that if someone was good at playing piano, they would also be good at executing moves in game. So they had to sort out how groups of notes and chords would translate into moving the character or attacking.

I highly suggest checking out their in depth play-by-play as they built the installation from the ground up. In addition to being fascinating (they prepared this project in a fight against time for the reopening of a historical site in Paris), you’ll find that everything they developed is opened source. The completed installation is as awesome as it sounds. You can see it in action in an actual duel below:

Continue reading “Turning a Cadenza into a Finishing Move”

Ambilight for your Piano (Hero)

That old upright piano still sounds great, and now it can easily have its own special effects. [DangerousTim] added LED strips which change color when he tickles the ivories. The strips are applied along the perimeter of the rear side of the upright causing the light to reflect off of the wall behind the instrument. This is a familiar orientation which is often seen in ambilight clone builds and will surely give you the thrill of Guitar Hero’s brightly changing graphics while you rock the [Jerry Lee Lewis].

Key to this build is the electret microphone and opamp which feed an Arduino. This allows the sound from the piano to be processed in order to affect the color and intensity of the LED strips. These are not addressable, but use a transistor to switch power to the three colors of all pixels simultaneously.

We think there’s room for some clever derivative builds, but we’re still scratching our heads as to how we’d use addressable pixels. Does anyone know a relatively easy way to take the mic input and reliably establish which keys are being played? If so, we can’t wait to see your ambilight-piano-clone build. Don’t forget to tip us off when you finish the hack!

Making a Player Piano Talk MIDI

[Ramon] was always fascinated with pianos, and when he came across a few player piano rolls in an antique shop, a small kernel of a project idea was formed. He wondered if anyone had ever tried to convert a player piano into a full MIDI instrument, with a computer tickling the ivories with a few commands. This led to one of the best builds we’ve ever seen: a player piano connected to a computer.

[Ramon] found an old piano in Craigslist for a few hundred dollars, and once it made its way into the workshop the teardown began. Player pianos work via a vacuum, where air is sucked through a few pin points in a piano roll with a bellows. A series of pipes leading to each key translate these small holes into notes. Replicating this system for a MIDI device would be impossible, but there are a few companies that make electronic adapters for player pianos. All [Ramon] would have to do is replicate that.

The lead pipes were torn out and replaced with 88 separate solenoid valves. These valves are controlled via a shift register, and the shift registers controlled by an ATMega. There’s an astonishing amount of electronic and mechanical work invested in this build, and the finished product shows that.

As if turning an ancient player piano into something that can understand and play MIDI music wasn’t enough, [Ramon] decided to add a few visuals to the mix. He found a display with a ratio of 16:4.5 – yes, half as tall as 16:9 – and turned the front of the piano into a giant display. The ten different styles of visualization were whipped up in Processing.


The piano has so far been shown at an interactive art exhibit in Oakland, and hopefully it’ll make it to one of the Maker Faires next year. There are also plans to have this piano output MIDI with a key scanner underneath all the keys. Very impressive work.

Video below.

Continue reading “Making a Player Piano Talk MIDI”

Laser Piano Worthy Of The Band ‘Wyld Stallyns’

Laser Piano uses Arduino

[Robi] and [Kathy] from elecfreaks have put together a how-to article about a Laser Piano they just built. Instead of keys, the user breaks beams of laser light to trigger the sounds.

Several laser pointer diodes are wired in parallel and mounted in a box, cardboard in this case. The laser diodes are aimed at photocells that reside on the other side of the box. Each photocellis connected to a digital input pin on an Arduino. When the Arduino senses a state change from one of the photocell, meaning the beam of light has been interrupted, it plays the appropriate wave file stored on an external JQ6500 sound module.

[Robi] admits that there are some improvements to be made, specifically the trigger response time and the piano sounding too monotonous. If you have any ideas, please leave them in the comments section.

Continue reading “Laser Piano Worthy Of The Band ‘Wyld Stallyns’”

Transcribing Piano Rolls with Python

Piano Roll


Perforated rolls of paper, called piano rolls, are used to input songs into player pianos. The image above was taken from a YouTube video showing a player piano playing a Gershwin tune called Limehouse Nights. There’s no published sheet music for the song, so [Zulko] decided to use Python to transcribe it.

First off the video was downloaded from YouTube. This video was processed with MoviePy library to create a single image plotting the notes. Using a Fourier Transform, the horizontal spacing between notes was found. This allowed the image to be reduced so that one pixel corresponded with one key.

With that done, each column could be assigned to a specific note on the piano. That takes care of the pitches, but the note duration requires more processing. The Fourier Transform is applied again to determine the length of a quarter note. With this known, the notes can be quantized, and a note duration can be applied to each.

Once the duration and notes are known, it’s time to export sheet music. LilyPond, an open source language for music notation, was used. This converts ASCII text into a sheet music PDF. The final result is a playable score of the piece, which you can watch after the break.

Continue reading “Transcribing Piano Rolls with Python”