44 byte channel() {
return _channel_number; }
45 byte program() {
return _program_number; }
46 unsigned short bank() {
return _bank_number; }
54 return _last_on_velocity;
57 return _last_note_off;
60 return _last_off_velocity;
68 return _controller_val[n%128];
72 return &_controller_val[n%128];
76 _controller_val[n%128] = val;
92 return channel_msg (
MIDI::on, note, velocity, timestamp);
96 return channel_msg (
MIDI::off, note, velocity, timestamp);
148 byte _polypress[128];
149 bool _controller_14bit[128];
151 byte _controller_msb[128];
152 byte _controller_lsb[128];
bool channel_msg(byte id, byte val1, byte val2, timestamp_t timestamp)
void reset(timestamp_t timestamp, samplecnt_t nframes, bool notes_off=true)
void process_pitchbend(Parser &, pitchbend_t)
float rpn_value_absolute(uint16_t rpn) const
void process_note_off(Parser &, EventTwoBytes *)
controller_value_t controller_value(byte n)
bool note_off(byte note, byte velocity, timestamp_t timestamp)
void process_reset(Parser &)
float nrpn_value_absolute(uint16_t nrpn) const
static const RPNState RPN_VALUE_READY
Channel(byte channel_number, Port &)
controller_value_t nrpn_value(uint16_t rpn_id)
controller_value_t * controller_addr(byte n)
void process_polypress(Parser &, EventTwoBytes *)
bool program_change(byte value, timestamp_t timestamp)
bool all_notes_off(timestamp_t timestamp)
void process_chanpress(Parser &, byte)
unsigned short _bank_number
float nrpn_value(uint16_t nrpn) const
void process_note_on(Parser &, EventTwoBytes *)
bool maybe_process_rpns(Parser &, EventTwoBytes *)
static const RPNState RPN_READY_FOR_VALUE
bool poly_aftertouch(byte note, byte value, timestamp_t timestamp)
byte poly_pressure(byte n)
void process_program_change(Parser &, byte)
bool control(byte id, byte value, timestamp_t timestamp)
std::map< uint16_t, float > RPNList
float rpn_value(uint16_t rpn) const
controller_value_t rpn_value(uint16_t rpn_id)
bool note_on(byte note, byte velocity, timestamp_t timestamp)
bool aftertouch(byte value, timestamp_t timestamp)
bool pitchbend(byte msb, byte lsb, timestamp_t timestamp)
void set_controller(byte n, byte val)
void process_controller(Parser &, EventTwoBytes *)
unsigned short pitchbend_t