Inspiration
Our team originally came together out of an interest in hardware. We had other ideas that we wanted to approach, but we were limited with the hardware available to us, and had to think of a novel idea given the constraints. We eventually combined our interest in doing a hardware project with our collective love of music to make what is known today as Midi-Tunes.
What it does
Midi-Tunes is a miniature MIDI keyboard that can simulate the sound of five octaves of a piano, with a joystick for pitch-bending.
How we built it
The MIDI-Tune started on a breadboard with 12 buttons in the layout of a piano keyboard. To limit the inputs used in our MCU, we organized the buttons into a matrix. We used the midi library ardumidi to send MIDI Packets over USB. We mapped a joystick to control pitch bending and the octave played. We then used the Hairless serial to MIDI converter as a serial driver to interface the MCU with the PC. We were able to use our keyboard to play notes through digital audio workstation software such as QSynth.
Challenges we ran into
We initially wanted to implement a MIDI system that would record tunes and create its own tune by utilizing machine learning. Due to unexpected hiccups taking to much time, we were unable to implement the recording, playback, and machine learning aspects of the project. The library we were using to send MIDI packets had some errors in the implementation, which left us puzzled and debugging for hours in the night. This was our main hurdle preventing us from implementing more advanced features. After fixing the issues with the library and debugging issues with the OS MIDI stack, we finally got sound to output through the computers speakers.
The button matrix was a lot more complicated than we thought it would be. The wiring was not in a traditional layout as the buttons were not in a grid layout. Instead we had to deal with complicated wiring in rows and columns being in a weird layout. After we got the wiring correct, the coding aspect of the matrix was even as hard. We had problems in which one button would be pushed and the another two would also emit a signal. Eventually we were able to find a solution to this through adapting to the code and rewiring the buttons so that it was compatible to the existing code.
Accomplishments that we're proud of
We were proud of completion of the button matrix, which was able to allocate other ports and pinholes for other functions such as the octave, pitch, and bend of sound.

Log in or sign up for Devpost to join the conversation.