diff options
author | deva <deva> | 2008-07-21 22:00:11 +0000 |
---|---|---|
committer | deva <deva> | 2008-07-21 22:00:11 +0000 |
commit | 14309bc447960536c34a438dffb93f520dad40fa (patch) | |
tree | 5d9f6ed07a4f31efb1ad7ac16d0f90e691627e94 | |
parent | 217a8a1aa8eba3611d5ba6abefb502fb041e13cb (diff) |
Fixed some bugs in midimapper.
-rw-r--r-- | src/cymbal.wav | bin | 147512 -> 0 bytes | |||
-rw-r--r-- | src/jackclient.cc | 10 | ||||
-rw-r--r-- | src/jackclient.h | 2 | ||||
-rw-r--r-- | src/midimapper.cc | 47 | ||||
-rw-r--r-- | src/snare.wav | bin | 49220 -> 0 bytes |
5 files changed, 54 insertions, 5 deletions
diff --git a/src/cymbal.wav b/src/cymbal.wav Binary files differdeleted file mode 100644 index 0ce8b13..0000000 --- a/src/cymbal.wav +++ /dev/null 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 Binary files differdeleted file mode 100644 index 77a6123..0000000 --- a/src/snare.wav +++ /dev/null |