Program Size. Investigate ways of reducing MIDICtrl size.
Currently MCL is using:
Sketch uses 203550 bytes (80%) of program storage space. Maximum is 253952 bytes.
Might want to start thinking of ways to cut this down.
A lot of the low level code is inlined. All the SYSEX Encoder/Decoder is inlined. Not sure what the space saving will be vs performance hit.
A general rule I've been following is to inline in ISR.
Unused glyphs from the Adafruit-GFX-Library should be culled.
Current situation:

g=global
l=local
F=function
O=progmem
So, functions are absolute heavy hitters. After the previous rounds of optimization, now the PROGMEM is only a small fraction.
Tried a few tricks.
The ones that I thought would be very effective, but actually made things worse:
- NO_INLINE some big routines
- Fold some repeated logic by hand
The ones that I thought wouldn't matter but very effective:
- int -> uint8_t
Setting up a new branch for size optimization.
#108
To wrap up this thread:
- Two attempts are made in 2020, bringing down sketch size to 78% (#108, #125)
- As of 2021, with features are being added, it creeps back to 90% and keeps growing
- #161 introduces compression to squeeze the last drops out of the mega2560