Goals of this project:
Improve upon the design blunders of the Melodicade Prototype #2 by moving all control inputs back to the top deck.
Reduce complication further by streamlining or outright removing all unnecessary inputs.
Experiment with piezo sensors for detecting expression level.
Add outputs for serial DIN MIDI to allow for interoperability with more devices.
What was learned from this prototype:
Piezo sensors do work for expression detection, but are not accurate enough for a finished product, at least not without adding more than 5 for an entire deck.
With all of the meta keys, the control inputs are still a bit too complicated to use, at least without a cheat sheet.
This was an amazing test bed for a number of new features that will carry forward into future designs.
80% of the way there, and the last 20% is definitely most of the work.
I was happy enough with this design to build a second device, and spent a good portion of summer 2019 playing both of them. Having so much time on one design allowed for a number of software refinements that have made this both a fun instrument for playing by itself, and a useful tool for practicing with other instruments; features like a drone mode for helping keep proper intonation when playing my viola, a looper function to record and playback rhythm or harmonies for playing over, or even just quick access to a simple metronome.
Part way through the summer, one of the devices had it's Arduino Due replaced with a Teensy 2.0. The paltry 2KB of SRAM severely limited the looper function (despite some creative efficiency improvements in the code), but the lower energy usage allows an iPad to bus-power the device making iOS GarageBand a lot more portable, and the AVR microcontroller is unaffected by a particularly annoying bug in the MIDIUSB library that causes dropped notes on ARM devices like the Due. This will likely be the preferred path forward.