So for my next Arduino-based project I plan on building a drum-trigger to MIDI output type thing. Basically I'll have drum triggers (piezos on foam cones) mounted on my acoustic drums, which will drive an Arduino to generate MIDI, which will in turn drive both a sample playback unit and a sampler (two separate pieces of gear).
That's all fine and dandy but where I started to run into problems is deciding on how to map what to what. With only three drum inputs, and oodles of possible outcomes, there are lots of choices to deal with.
For example:
Trigger1 could send one of 9 specific MIDI notes (9 sample pads available), OR, send to three of them randomly, OR all of them randomly.
AND
Trigger1 can send MIDI events to trigger audio recording, playback, playonce, start/end/window point adjustment, most with random elements.
THEN
Each trigger would have two variables that could be controlled. Threshold and Probability. Threshold would work like a noisegate (only loud strikes generate events) or ducking (only quiet strikes generate events), and then Probability would determine how often it triggered (not based on dynamics). Between the two I could generate musical and somewhat intelligent events.
Ok, so my original plan was to have a 12-position rotary switch for each input and each device (so 6 rotary switches total), so that Trigger1 would do something to each device. Then to have 2 knobs for each bank of 3 switches.
So each output device would have 5 knobs (3 rotary switches, and 2 pots).
That's a lot of hardware in terms of price, and physical real estate.
Now, I'm thinking that I could use an LCD display with a couple of buttons built in, like this:
Throw in a couple of encoders, and I should be able to do all of what I want to do (and then some).
The problem is, I've never done LCD stuff with an Arduino before. In fact my general Arduino-manship isn't too hot to begin with.
This is the most complicated thing I've made (and it's not working perfectly (mainly due to weird state changing issues in the hardware it's interfacing with ):
http://www.rodrigoconstanzo.com/M9_MIDI_Looper.html
How "easy" is it to use an LCD shield w/buttons, set up a menu of functionality and map that to stuff? I know "easy" is a weird term here, but I saw that that above shield I linked has a library for menu stuff.
Like to be able to map two functions (selectable from multiple options) to any of the trigger inputs, and be able to control threshold/probability parameters for each, and perhaps even save presets so I can shift between multiple settings.
I plan on setting this all up on a MegaMini since I need lots of analog ins for potentiometers and trigger/piezo input, so a 'shield' format isn't important at all as I'll directly wire everything anyways.