summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--midievent.cc13
-rw-r--r--midievent.h7
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 <vector>
-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);