MIDI messages can be divided into three categories: Channel Voice Messages, System Common Messages and System Real-Time Messages. Of these, the Teesny 3 USB MIDI supports sending all five types of Channel Voice Messages (NoteOff, NoteOn, AfterTouchPoly, ControlChange, ProgramChange, AfterTouchChannel and PitchBend) but only supports receiving (by setting a message handler) four of them. Polyphonic Aftertouch is missing. This looks like a simple oversight.
Relevance: I suspect the impact of this has been slight, because hardware that sends polyphponic after touch needs a pressure or movement sensor per key and has thus tended to be expensive. A well known example is the Vax77 keyboard, which sold for around 3500 USD and was recently discontinued. A new keyboard campaign on indiegogo with hardware starting at 235 USD, might make this lack more relevant. (I just backed that project; thinking about a Teensy-based MIDI to control voltage (CV) interface led to my noticing this missing feature).
Solution: in usb_midi.h add
and
In usb_midi.c add
Relevance: I suspect the impact of this has been slight, because hardware that sends polyphponic after touch needs a pressure or movement sensor per key and has thus tended to be expensive. A well known example is the Vax77 keyboard, which sold for around 3500 USD and was recently discontinued. A new keyboard campaign on indiegogo with hardware starting at 235 USD, might make this lack more relevant. (I just backed that project; thinking about a Teensy-based MIDI to control voltage (CV) interface led to my noticing this missing feature).
Solution: in usb_midi.h add
Code:
extern void (*usb_midi_handlePolyPressure)(uint8_t ch, uint8_t note, uint8_t pressure);
Code:
inline void setHandlePolyPressure(void (*fptr)(uint8_t channel, uint8_t note, uint8_t pressure)) {
usb_midi_handlePolyPressure = fptr;
};
In usb_midi.c add
Code:
extern void (*usb_midi_handlePolyPressure)(uint8_t ch, uint8_t note, uint8_t pressure) = NULL;