Piano Genie: An Intelligent Musical Interface
“We introduce Piano Genie, an intelligent controller that maps 8-button input to a full 88-key piano in real time” Via Magenta
Piano Genie is in some ways reminiscent of video games such as Rock Band and Guitar Hero that are accessible to novice musicians, with the crucial difference that users can freely improvise on Piano Genie rather than re-enacting songs from a fixed repertoire. You can try it out yourself via our interactive web demo!
How does it work?
There are many ways one could map 8-button controller sequences to full piano performances. We restrict ourselves to 1-to-1 mappings between button presses and notes, giving the user precise control over timing and degree of polyphony but not which notes are played. Even given that restriction, there are many possible mappings; for example, the 8 buttons could map to a fixed scale over a single octave. Instead of using such a fixed mapping, we learn a time-varying mapping using a discrete autoencoder architecture trained on a set of existing piano performances:
Learn more and try it yourself with the piano Genie web demo!
From the Adafruit Learn System!
Arcade Button Control Box: Custom Controller Box
In this project, you’ll learn how to build a basic USB HID keyboard for triggering things like commands and hotkeys for controlling any number of software and hardware. We’ll use an Adafruit Feather M0 Express, a handful of arcade buttons and Circuit Python to make a DIY keyboard controller.
Circuit Python makes this project super simple to program and easy to update – no need for a compiler, IDE, or any special drivers. Just plug it in and open up the text file in the virtual USB key to reprogram the keys whenever you want.
When this box is connected to your computer, it behaves just like a USB HID Keyboard. Press a button and it types a letter! It’s really simple and easy to manipulate the software so you can output single characters, or string multiple characters together to execute commands! The LEDs also light up each time you press a button. Sound like an interesting project? Let’s get started!
Learn more and browse all that’s new in the Adafruit Learning System here!