Hi all,
I'm reviving an old project and I'd like to get some input on how to approach to a few things to plan ahead.
Some background: I'm building (or trying to) a small MIDI stompox to control a couple guitar FX units. I'm working with an Arduino UNO and so far I've been able to connect 5 footswitches, implemented click, double-click, combination and hold functions for these buttons, send/receive MIDI messages (SysEx, CC, program changes) and display the data on a 16x2 LCD.
Now I'd like to go a little further and implement preset handling. Here's where I'd need a hand: how would you approach to it, what would be the better way to handle memory, data structure, etc?
What I want to accomplish is the following: I'd like to be able to set a MIDI message/function for each button, per preset. In other words, each preset would have 5 messages/functions (or a couple more if I can consider combinations) triggered by 5 buttons. Each message consists on a few bytes, containing the midi channel, the message type (program change, CC) and a couple values. I was also thinking to add some special messages, where I could set, for example, 2 CC values and make some kind of curve transition to affect an FX parameter like delay time, etc. Ideally, it'd be nice to have 128 presets available, though it's not that important and I guess it depends on the available memory.
How should I structure all this, considering that I'd like to be able to edit those presets with an encoder and store them (on EEPROM or an SD card maybe)?
EDIT: UPDATED QUESTION USING EEPROM BELOW, ON POST REPLY #9
Any idea, suggestion, input will be greatly appreciated.
Thanks in advance,
Jon