aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--backends/midi.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/backends/midi.c b/backends/midi.c
index d609ad9..cde278b 100644
--- a/backends/midi.c
+++ b/backends/midi.c
@@ -259,20 +259,17 @@ static int midi_handle(size_t num, managed_fd* fds){
ident.label = 0;
switch(ev->type){
case SND_SEQ_EVENT_NOTEON:
- ident.fields.type = note;
- ident.fields.channel = ev->data.note.channel;
- ident.fields.control = ev->data.note.note;
- val.normalised = (double)ev->data.note.velocity / 127.0;
- event_type = "note";
- break;
case SND_SEQ_EVENT_NOTEOFF:
+ case SND_SEQ_EVENT_NOTE:
ident.fields.type = note;
ident.fields.channel = ev->data.note.channel;
ident.fields.control = ev->data.note.note;
- val.normalised = (double)0;
+ val.normalised = (double)ev->data.note.velocity / 127.0;
+ if(ev->type == SND_SEQ_EVENT_NOTEOFF){
+ val.normalised = 0;
+ }
event_type = "note";
break;
- case SND_SEQ_EVENT_NOTE:
case SND_SEQ_EVENT_KEYPRESS:
ident.fields.type = pressure;
ident.fields.channel = ev->data.note.channel;