hello,
i’ve been working on a midibox lately with the following features:
8 encoders (two rows of 4)
8 switches (two more rows of 4)
4 extra switches (misc functions)
the layout looks like this (O for encoder, X for switch)
X O O O O
X O O O O
X X X X X
X X X X X
these are all situated under a 4x40 lcd (right now i have two 2x40’s for testing purposes).
how it works:
the application lets you assign names to each general purpose encoder and switch so you can see on the lcd what function you are controlling. for example, you could assign “osc1pitch” or “cutoff” to a knob. then the name of each control shows on the lcd in 4 rows of 4 controls. you get up to 9 characters per control. this setup of 16 control names can then be saved into a “patch” you can name, and you can freely move between patches to control your various instruments. the channel that controls the entire patch is also saved. the initial setup of a patch can be a little tedious, but you only have to do it once per control and it’s all saved to the bankstick.
each encoder saves settings for cc# and whether you want to send absolute or relative midi data. each switch saves settings for cc# and whether you want a toggle or momentary control. also, the two values sent by switches are freely assignable. to round things out i’ve added a midi learn function you can activate when setting the cc# for each control (not really tested yet).
patch management is pretty easy. you can rename a patch once it’s created and insert/delete between patches. there’s no alphabetical order or any kind of sorting. if you want one patch between two others, simply press “insert” while the first patch is active.
this is my first c application (before this i programmed in vb) besides the basic stuff they taught me in school. i received a lot of help from nils and stryd (thanks). i will release the code shortly but before i do that, i’d like to get it into a completed box so it’s a lot easier to test.
my idea for the layout of this box is that it could host other kinds of applications, with the generic layout and lcd space. so i wrote this program with it in mind that i will add more programs later on (i.e. it’ll format the bankstick when you add new software without overwriting your previous patches).
btw this thing will fit into a PT-8.