I am making a midi controller for a electric guitar pedal board.
The idea is that the midi controller will have a library of banks, as well as a set list. I'm trying to implement the library as just an array holding C++ objects of the type Bank. The set list will point to specific banks I need when playing whatever set of songs I'm playing. This is so that I can quickly toggle between the relevant banks when playing or whatever.
A bank has a name, stored in a string, and the possibility to store midi commands. You can store the midi commands in 4 locations in a bank, the A, B, C, and D location. Each location can hold multiple midi commands. A midi command is a class of its own as well, but I can't detail it yet. Each location will have a name as well, e.g. verse, chorus, bridge etc.
I have 4 switches that enables me to toggle the banks, and will enable me to send the midi commands stored at either the A, B, C, or D location of the current bank.
I will also have a display showing the current bank, with the bank name, the bank locations, and the number of the bank in the library. The number of the bank is probably it's index in the library + 1, just to account for the array index starting at 0.
The idea for loading the library is just to read it of an SD-CARD at startup. It will be stored in some format that I'll parse. When or after reading the data, I will use it to initialize the banks in the library, the midi commands in them etc.
I was wondering if using all these strings, as well as reading all the data of an SD-CARD would make this project more fit for a raspberry pi? That would give me the option to make it do more things at once as well. I was also thinking about adding the option to add and delete banks runtime, which I think isn't optimal for the arduino. But, the Pi is a computer, and I will pulling the plug on the pedal board, and this is not optimal for the pi, I've understood you should shut it down via a command, not just pull the plug.
Would the arduino be a better fit after all?
Can anyone potentially recommend another board for this?