dynamically create touches
[nanofun.git] / nanofun.js
index 9cf7773..bb571a9 100644 (file)
@@ -316,8 +316,14 @@ var nanofun = function() {
 
   self.initUI = function() {
     var $nanopad = $('#nanopad');
+    var $nanotouch = $('.nanotouch');
+    for (var i=1; i<16; i++) {
+      var $new_touch = $nanotouch.clone();
+      $new_touch.attr('data-touch', i);
+      $new_touch.appendTo($nanopad);
+    }
 
-    $('.nanotouch input').on('change', function(ev) {
+    $('.nanotouch input[type=file]').on('change', function(ev) {
       var nanotouch = $(this).parent();
       var sample_idx = $nanopad.children().index(nanotouch);
       var reader = new FileReader();
@@ -343,7 +349,7 @@ var nanofun = function() {
       if (control > 7 && control < 16) return; /* range between sliders and pots */
       if (control > 23) return; /* after pots */
       if (control >= 16) { control -= 8; }
-      $('.touch-gain[data-touch=' + control + ']').val(value).trigger('change');
+      $('[data-touch=' + control + '] .touch-gain').val(value).trigger('change');
     }
 
     $(document).keypress(function(ev) {
@@ -360,7 +366,7 @@ var nanofun = function() {
 
     $('.touch-gain').on('change', function() {
       var fraction = parseInt(this.value) / parseInt(127);
-      var touchIdx = parseInt($(this).data('touch'));
+      var touchIdx = parseInt($(this).parent().data('touch'));
       self.touchGainNodes[touchIdx].gain.value = fraction * fraction;
     });
   }