summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordeva <deva>2008-07-21 22:00:11 +0000
committerdeva <deva>2008-07-21 22:00:11 +0000
commit14309bc447960536c34a438dffb93f520dad40fa (patch)
tree5d9f6ed07a4f31efb1ad7ac16d0f90e691627e94
parent217a8a1aa8eba3611d5ba6abefb502fb041e13cb (diff)
Fixed some bugs in midimapper.
-rw-r--r--src/cymbal.wavbin147512 -> 0 bytes
-rw-r--r--src/jackclient.cc10
-rw-r--r--src/jackclient.h2
-rw-r--r--src/midimapper.cc47
-rw-r--r--src/snare.wavbin49220 -> 0 bytes
5 files changed, 54 insertions, 5 deletions
diff --git a/src/cymbal.wav b/src/cymbal.wav
deleted file mode 100644
index 0ce8b13..0000000
--- a/src/cymbal.wav
+++ /dev/null
Binary files 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
--- a/src/snare.wav
+++ /dev/null
Binary files differ