From d29a499113d389a8bee9bf21bf5969d41c9cf307 Mon Sep 17 00:00:00 2001 From: Leon Scheid Date: Thu, 21 Nov 2019 18:41:02 +0100 Subject: Chane NoteOff behavior --- backends/midi.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'backends') diff --git a/backends/midi.c b/backends/midi.c index 536457d..d609ad9 100644 --- a/backends/midi.c +++ b/backends/midi.c @@ -259,14 +259,20 @@ static int midi_handle(size_t num, managed_fd* fds){ ident.label = 0; switch(ev->type){ case SND_SEQ_EVENT_NOTEON: - 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)ev->data.note.velocity / 127.0; event_type = "note"; break; + case SND_SEQ_EVENT_NOTEOFF: + ident.fields.type = note; + ident.fields.channel = ev->data.note.channel; + ident.fields.control = ev->data.note.note; + val.normalised = (double)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; -- cgit v1.2.3 From 1aa8b88a1df5539fa7ad4004cfcbf3b8438486b4 Mon Sep 17 00:00:00 2001 From: Leon Scheid Date: Fri, 22 Nov 2019 15:40:11 +0100 Subject: Remove unnecessary case --- backends/midi.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'backends') 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; -- cgit v1.2.3