+ byte _channel_number;
+ unsigned short _bank_number;
+ byte _program_number;
+ byte _rpn_msb;
+ byte _rpn_lsb;
+ byte _rpn_val_msb;
+ byte _rpn_val_lsb;
+ byte _nrpn_msb;
+ byte _nrpn_lsb;
+ byte _nrpn_val_lsb;
+ byte _nrpn_val_msb;
+ RPNState _rpn_state;
+ RPNState _nrpn_state;
+ byte _chanpress;
+ byte _polypress[128];
+ bool _controller_14bit[128];
+ controller_value_t _controller_val[128];
+ byte _controller_msb[128];
+ byte _controller_lsb[128];
+ byte _last_note_on;
+ byte _last_on_velocity;
+ byte _last_note_off;
+ byte _last_off_velocity;
+ pitchbend_t _pitch_bend;
+ bool _omni;
+ bool _poly;
+ bool _mono;
+ size_t _notes_on;
+
+ typedef std::map<uint16_t,float> RPNList;
+
+ RPNList rpns;
+ RPNList nrpns;
+
+ void reset (timestamp_t timestamp, framecnt_t nframes, bool notes_off = true);