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/cymbal.wav | Bin 147512 -> 0 bytes src/jackclient.cc | 10 +++++++++- src/jackclient.h | 2 +- src/midimapper.cc | 47 ++++++++++++++++++++++++++++++++++++++++++++--- src/snare.wav | Bin 49220 -> 0 bytes 5 files changed, 54 insertions(+), 5 deletions(-) delete mode 100644 src/cymbal.wav delete mode 100644 src/snare.wav diff --git a/src/cymbal.wav b/src/cymbal.wav deleted file mode 100644 index 0ce8b13..0000000 Binary files a/src/cymbal.wav and /dev/null differ diff --git a/src/jackclient.cc b/src/jackclient.cc index ed2838e..94eb3c8 100644 --- a/src/jackclient.cc +++ b/src/jackclient.cc @@ -96,8 +96,16 @@ JackClient::JackClient(size_t num_inputs, size_t num_outputs) //jack_set_xrun_callback(jack_client, _wrap_jack_xrun, this); - sample[0] = new Sample("cymbal.wav"); + sample[0] = new Sample("kick.wav"); sample[1] = new Sample("snare.wav"); + sample[2] = new Sample("crash1.wav"); + sample[3] = new Sample("tom1.wav"); + sample[4] = new Sample("tom2.wav"); + sample[5] = new Sample("tom3.wav"); + sample[6] = new Sample("tom4.wav"); + sample[7] = new Sample("hihat.wav"); + sample[8] = new Sample("crash2.wav"); + sample[9] = new Sample("ride.wav"); } JackClient::~JackClient() diff --git a/src/jackclient.h b/src/jackclient.h index b910323..8a31441 100644 --- a/src/jackclient.h +++ b/src/jackclient.h @@ -62,7 +62,7 @@ private: Ports output_ports; jack_port_t *midi_port; - Sample *sample[2]; + Sample *sample[32]; Events events; MidiMapper midimapper; 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]; diff --git a/src/snare.wav b/src/snare.wav deleted file mode 100644 index 77a6123..0000000 Binary files a/src/snare.wav and /dev/null differ -- cgit v1.2.3