Coding progress and UI redesign

A project log for Twister™: a play on MIDI controllers

Music is play, let's put game controls into the performance! Atari paddle knobs & arcade buttons make a great show of MIDI knob twiddling!

Tim TrzepaczTim Trzepacz 05/21/2016 at 11:460 Comments

Finally figured out what was wrong with my Twister MIDI knob box project and got it echoing data properly.

I decided that I really needed to do a proper UI design for the 4 button and 16×2 character display. I had a concept before, but it really wasn't working out. I think this will be much better.
It takes 3 button pushes to get to the point where you can reconfigure a knob parameter. Each knob can adjust 3 different things. Adjustments can be Control Change or System Exclusive. SysEx can be up to 16 bytes, although I am not sure how I will handle MSB/LSB yet. Each parameter can have it's own range of values and it's own adjustment curve (like the envelope curves in Rhythm Core Alpha 2).
I'm also intending to implement MIDI routing and key split between the ports.
One thing that might throw a monkey wrench in all this is that I only have 8k of RAM in the Arduino to play with, and only 4k of EEPROM to store patches in. Event the16MHz processor seems quite limiting. I may have to scale these features back to fit the hardware and save them for a V2.0.
I'm starting to consider combining this with the Nano-Egg synth project and building a unified platform PCB that handles the common aspects of both.
I went to start working on that in KiCAD, but discovered there weren't really comprehensive parts for the Teensy 3.1+ in KiCAD. The tutorials for making your own were from an earlier version that didn't work the same way, so I ended up rage quitting and trying it in Eagle. Eagle does have parts designed for the Teensy 3.1, but also lacks the Teensy audio board. I suppose I'll have to devote some quality time to learning how to make a new part in... some program or another.
I was doing some research and determined that the Arduino can only do analogRead about 9.1kHz. That doesn't seem great...