diff --git a/libs/ardour/ardour/beatbox.h b/libs/ardour/ardour/beatbox.h index 02bd2b7b70..2e82a6ae1d 100644 --- a/libs/ardour/ardour/beatbox.h +++ b/libs/ardour/ardour/beatbox.h @@ -64,6 +64,7 @@ class BeatBox : public ARDOUR::Processor { void add_note (int number, int velocity, Timecode::BBT_Time at); void remove_note (int number, Timecode::BBT_Time at); + void edit_note_number (int old_number, int new_number); void set_measure_count (int measures); void set_meter (int beats, int beat_type); diff --git a/libs/ardour/beatbox.cc b/libs/ardour/beatbox.cc index af6f23fbc3..209c810042 100644 --- a/libs/ardour/beatbox.cc +++ b/libs/ardour/beatbox.cc @@ -421,10 +421,21 @@ BeatBox::get_last_time() const return last_time; } +void +BeatBox::edit_note_number (int old_number, int new_number) +{ + for (Events::iterator e = _current_events.begin(); e != _current_events.end(); ++e) { + if (((*e)->buf[0] & 0xf0) == MIDI_CMD_NOTE_OFF || ((*e)->buf[0] & 0xf0) == MIDI_CMD_NOTE_ON) { + if ((*e)->buf[1] == old_number) { + (*e)->buf[1] = new_number; + } + } + } +} + void BeatBox::remove_note (int note, Timecode::BBT_Time at) { - } void