From 34bfc5046bd297311a38dace8914c51905ca9d2e Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Mon, 1 Apr 2019 20:20:38 +0200 Subject: Add midi aftertouch event type. --- midievent.cc | 13 +++++++++++-- midievent.h | 7 +++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/midievent.cc b/midievent.cc index 0db8fe3..dfcbbb0 100644 --- a/midievent.cc +++ b/midievent.cc @@ -42,17 +42,26 @@ MidiEvent::MidiEvent(int64_t time, const char* data, std::size_t size) this->data[i] = data[i]; } - if ((data[0] & 0xF0) == 0x80) { // note off + if((data[0] & 0xF0) == 0x80) // note off + { type = MidiEventType::NoteOff; key = data[1]; velocity = data[2]; } - if ((data[0] & 0xF0) == 0x90) { // note on + if((data[0] & 0xF0) == 0x90) // note on + { type = MidiEventType::NoteOn; key = data[1]; velocity = data[2]; } + + if((data[0] & 0xF0) == 0xA0) // aftertouch + { + type = MidiEventType::Aftertouch; + key = data[1]; + velocity = data[2]; + } } int64_t MidiEvent::getTime() const diff --git a/midievent.h b/midievent.h index 046a01a..1cab7e4 100644 --- a/midievent.h +++ b/midievent.h @@ -31,13 +31,16 @@ #include -enum class MidiEventType { +enum class MidiEventType +{ Unknown, NoteOn, NoteOff, + Aftertouch, }; -class MidiEvent { +class MidiEvent +{ public: MidiEvent() = default; MidiEvent(int64_t time, const char* data, std::size_t size); -- cgit v1.2.3