aboutsummaryrefslogtreecommitdiffhomepage
path: root/backends/midi.c
diff options
context:
space:
mode:
authorLeon Scheid <leon@weingut-scheid.de>2019-11-21 18:41:02 +0100
committerLeon Scheid <leon@weingut-scheid.de>2019-11-22 15:32:59 +0100
commitd29a499113d389a8bee9bf21bf5969d41c9cf307 (patch)
tree111d5a72a735c6976359c64771f7695e677de2fb /backends/midi.c
parentb60c1adbf3c66c42997020539f8bb8a0eb6250c9 (diff)
downloadmidimonster-d29a499113d389a8bee9bf21bf5969d41c9cf307.tar.gz
midimonster-d29a499113d389a8bee9bf21bf5969d41c9cf307.tar.bz2
midimonster-d29a499113d389a8bee9bf21bf5969d41c9cf307.zip
Chane NoteOff behavior
Diffstat (limited to 'backends/midi.c')
-rw-r--r--backends/midi.c10
1 files changed, 8 insertions, 2 deletions
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;