rewrite nanopad touch mapping as a simple array
authorFrédéric Péters <fpeters@0d.be>
Sun, 19 Feb 2017 18:51:20 +0000 (19:51 +0100)
committerFrédéric Péters <fpeters@0d.be>
Sun, 19 Feb 2017 18:51:20 +0000 (19:51 +0100)
nanofun.js

index bf03e3a..ffa07dd 100644 (file)
@@ -1,7 +1,5 @@
-var NANOPAD_TOUCHS = {
-  37:  0, 39:  1, 41:  2, 43:  3, 45:  4, 47:  5, 49:  6, 51:  7,
-  36:  8, 38:  9, 40: 10, 42: 11, 44: 12, 46: 13, 48: 14, 50: 15
-};
+var NANOPAD_TOUCHS = Array(37, 39, 41, 43, 45, 47, 49, 51,
+                           36, 38, 40, 42, 44, 46, 48, 50);
 
 /* on French/Belgian keyboards, emulate pad touches with keypresses */
 var KEYBOARD_CODES = Array('a', 'z', 'e', 'r', 't', 'u', 'i', 'o',
@@ -104,8 +102,10 @@ onMIDIMessage: function(message) {
     var port = message.target;
     var data = message.data;
     if (data[0] == 144) { /* touch on */
-      var sample_idx = NANOPAD_TOUCHS[data[1]];
-      this.onTouchOn(port, data, sample_idx);
+      var sample_idx = NANOPAD_TOUCHS.indexOf(data[1]);
+      if (sample_idx != -1) {
+        this.onTouchOn(port, data, sample_idx);
+      }
     }
 },