I decided to build a proper test bed for designing my MIDI controllers, 32 pots, 16 switches and LEDs, MIDI in and out and patch saving, this is the standard I use for most of my synths, it will be Teensy 4.1 based initially, although I might switch back to a Teensy 3.6 if I need to build a demux for testing and use the onboard DAC.
Looking very good, as usual for you.
Do you use analog multiplexers or ADCs with multiple inputs, or a combination of both?
Which devices do you use?
Do you do only 7-bit resolution ADCs for the pots or higher?
If you do more than 7-bits, how do you handle the two MIDI messages required to transfer all the bits?
Always send MSB first or last? Update at the receiving end only when receiving the MSB or LSB?
I haven’t seen a MIDI standard for handling that, do you know of one?
I’m using the standard onboard ADC of the Teensy 4.1 which are 12 bit capable, but as midi cc messages are 7 bits max I’m only reading in 8 bit mode and dropping it down 7 bits internally. There are 2 16 channels analogue mux chips connected to the pots which then feed one analogue input each.
Switches and LEDs are all connected on shift registers.
A midi cc message is 3 bytes, the CC header Inc the midi channel, the cc number itself and the cc value. So no msb, LSB needed.
If you transmit NRPN controls then you send msb, LSB bytes. But I’m not using them.
Thanks for your detailed response.