The inspiration for this project includes recent developments in MIDI Controllers, such as the Roli Seaboard, that utilize MPE, or MIDI Polyphonic Expression. This allows them to send more data than traditional MIDI controllers to synthesizers and MIDI devices, such as pitch bend and key pressure. Most of these products are hardware based and quite pricey, so we wanted to make a software based alternative.

What it does

Our app uses touchscreen data to send MIDI messages to a laptop running a software synthesizer. MIDI stands for Musical Instrument Device Interface, and is used to communicate between electronic musical instruments. By using a touch screen, we're able to offer a more unique musical instrument than say a keyboard by using both X and Y data (as well as pressure and finger orientation) to control pitch and any parameter on the synthesizer we want.

Challenges we ran into

It was difficult to find examples and tutorials that worked, and we wound up spending more time trying to debug other libraries than developing our own code.

Accomplishments that we're proud of

We feel that this product is an example of a really unique opportunity to offer a software alternative to a hardware product, and we're proud of what we were able to produce this weekend. Come to our booth to check it out!

What we learned

Each team member was able to contribute their knowledge of some aspects to this project while also being inexperienced in other aspects. One of us has never programmed in Java before, let alone Android development. Two of us are musically... inexperienced. One of us also had a big project due today! All in all this was a great learning experience, where we had to really work together as a team to get this demo ready for you in time!

What's next for Android MIDI Controller

There are still many more features we could implement! We were really disappointed to see the lack of software defined MIDI controllers in the music community, especially when they can offer a great low cost solution we're sure many people would enjoy. Using the X and Y axis as well as features such as pressure and finger orientation means many variables can be reprogrammed to offer different features, and our current demo is just the beginning!

Share this project: