From 14309bc447960536c34a438dffb93f520dad40fa Mon Sep 17 00:00:00 2001 From: deva Date: Mon, 21 Jul 2008 22:00:11 +0000 Subject: Fixed some bugs in midimapper. --- src/midimapper.cc | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) (limited to 'src/midimapper.cc') diff --git a/src/midimapper.cc b/src/midimapper.cc index ed8c252..b17a351 100644 --- a/src/midimapper.cc +++ b/src/midimapper.cc @@ -30,7 +30,47 @@ MidiMapper::MidiMapper() { - for(int i = 0; i < 16; i++) _map[i] = i % 2; + // for(int i = 0; i < 255; i++) _map[i] = 1; + /* +35 Acoustic Bass Drum 59 Ride Cymbal 2 +36 Bass Drum 1 60 Hi Bongo +37 Side Stick 61 Low Bongo +38 Acoustic Snare 62 Mute Hi Conga +39 Hand Clap 63 Open Hi Conga +40 Electric Snare 64 Low Conga +41 Low Floor Tom 65 High Timbale +42 Closed Hi-Hat 66 Low Timbale +43 High Floor Tom 67 High Agogo +44 Pedal Hi-Hat 68 Low Agogo +45 Low Tom 69 Cabasa +46 Open Hi-Hat 70 Maracas +47 Low-Mid Tom 71 Short Whistle +48 Hi-Mid Tom 72 Long Whistle +49 Crash Cymbal 1 73 Short Guiro +50 High Tom 74 Long Guiro +51 Ride Cymbal 1 75 Claves +52 Chinese Cymbal 76 Hi Wood Block +53 Ride Bell 77 Low Wood Block +54 Tambourine 78 Mute Cuica +55 Splash Cymbal 79 Open Cuica +56 Cowbell 80 Mute Triangle +57 Crash Cymbal 2 81 Open Triangle +58 Vibraslap + */ + _map[36] = 0; // kick + _map[38] = 1; // snare + _map[49] = 2; // crash1 + _map[50] = 3; // tom1 + _map[48] = 3; // tom2 + _map[47] = 3; // tom3 + _map[45] = 4; // tom4 + _map[43] = 5; // tom5 + _map[41] = 6; // tom6 + _map[46] = 7; // open hihat + _map[57] = 8; // crash2 + _map[51] = 9; // ride 1 + _map[53] = 9; // ride bell + _map[59] = 9; // ride 2 } //http://ccrma-www.stanford.edu/~craig/articles/linuxmidi/misc/essenmidi.html @@ -44,12 +84,13 @@ int MidiMapper::map(jack_midi_event_t event) } printf("]\n"); - if(event.size == 3) return -1; + if(event.size != 3) return -1; if(event.buffer[0] != NOTE_ON) return -1; int key = event.buffer[1]; - // int velocity = event.buffer[2]; + int velocity = event.buffer[2]; + if(velocity == 0) return -1; if(_map.find(key) == _map.end()) return -1; // key is not in map. return _map[key]; -- cgit v1.2.3