This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
* This remembers various useful information about the current 'state' of a
* MIDI channel (eg current pitch bend value).
*/
* This remembers various useful information about the current 'state' of a
* MIDI channel (eg current pitch bend value).
*/
bool channel_msg (byte id, byte val1, byte val2, timestamp_t timestamp);
bool all_notes_off (timestamp_t timestamp) {
return channel_msg (MIDI::controller, 123, 0, timestamp);
}
bool channel_msg (byte id, byte val1, byte val2, timestamp_t timestamp);
bool all_notes_off (timestamp_t timestamp) {
return channel_msg (MIDI::controller, 123, 0, timestamp);
}
bool control (byte id, byte value, timestamp_t timestamp) {
return channel_msg (MIDI::controller, id, value, timestamp);
}
bool control (byte id, byte value, timestamp_t timestamp) {
return channel_msg (MIDI::controller, id, value, timestamp);
}
bool note_on (byte note, byte velocity, timestamp_t timestamp) {
return channel_msg (MIDI::on, note, velocity, timestamp);
}
bool note_on (byte note, byte velocity, timestamp_t timestamp) {
return channel_msg (MIDI::on, note, velocity, timestamp);
}
bool note_off (byte note, byte velocity, timestamp_t timestamp) {
return channel_msg (MIDI::off, note, velocity, timestamp);
}
bool note_off (byte note, byte velocity, timestamp_t timestamp) {
return channel_msg (MIDI::off, note, velocity, timestamp);
}
bool aftertouch (byte value, timestamp_t timestamp) {
return channel_msg (MIDI::chanpress, value, 0, timestamp);
}
bool aftertouch (byte value, timestamp_t timestamp) {
return channel_msg (MIDI::chanpress, value, 0, timestamp);
}
return channel_msg (MIDI::pitchbend, lsb, msb, timestamp);
}
return channel_msg (MIDI::pitchbend, lsb, msb, timestamp);
}
- void reset (timestamp_t timestamp, nframes_t nframes, bool notes_off = true);
-
+ typedef std::map<uint16_t,float> RPNList;
+
+ RPNList rpns;
+ RPNList nrpns;
+
+ void reset (timestamp_t timestamp, framecnt_t nframes, bool notes_off = true);
+
void process_note_off (Parser &, EventTwoBytes *);
void process_note_on (Parser &, EventTwoBytes *);
void process_controller (Parser &, EventTwoBytes *);
void process_note_off (Parser &, EventTwoBytes *);
void process_note_on (Parser &, EventTwoBytes *);
void process_controller (Parser &, EventTwoBytes *);
void process_chanpress (Parser &, byte);
void process_pitchbend (Parser &, pitchbend_t);
void process_reset (Parser &);
void process_chanpress (Parser &, byte);
void process_pitchbend (Parser &, pitchbend_t);
void process_reset (Parser &);