]> git.0d.be Git - nanofun.git/commitdiff
make faders control effects when cycle is pressed
authorFrédéric Péters <fpeters@0d.be>
Wed, 20 Jan 2021 10:20:52 +0000 (11:20 +0100)
committerFrédéric Péters <fpeters@0d.be>
Wed, 20 Jan 2021 10:20:52 +0000 (11:20 +0100)
nanofun.js

index bf32ff3f0d6f9f47034ff6d9b04ef19dc4d71bdc..fff1ea07d8e09d3a00180c280ab53df9e4c33ac5 100644 (file)
@@ -296,6 +296,7 @@ var nanofun = function() {
 
   self.initAudio = function() {
     self.focused_pad = undefined;
+    self.cycle_being_pressed = false;
     self.sample_buffers = Array(NANOPAD_TOUCHS.length);
     self.samples = Array(NANOPAD_TOUCHS.length);
     self.sample_start_times = Array(NANOPAD_TOUCHS.length);
@@ -376,6 +377,12 @@ var nanofun = function() {
 
     midi.onControlChange = function(port, data, control, value) {
       if (control > 7 && control < 16) return; /* range between sliders and pots */
+      if (control == 46) {
+        /* cycle -> alternate mode, make faders control effects when pressed
+         * (moving faders when cycle is pressed) */
+        self.cycle_being_pressed = (value != 0);
+        return;
+      }
       if (control >= 32 && control < 40) { /* "S" buttons -> loop */
           var nanotouch = $('.nanotouch')[control-32];
           if (value == 127) {
@@ -431,6 +438,19 @@ var nanofun = function() {
         self.stopSample(self.focused_pad);
       }
       if (control > 23) return; /* after pots */
+      if (self.cycle_being_pressed) {
+        /* 4 -> delay, 5 -> feedback, 6 -> filter, 7 -> master */
+        if (control == 4) {
+          $('#delay').val(value / 127 * 5).trigger('change');
+        } else if (control == 5) {
+          $('#feedback').val(value / 127 * 1).trigger('change');
+        } else if (control == 6) {
+          $('#filter').val(value / 127 * 5000).trigger('change');
+        } else if (control == 7) {
+          $('#master-gain').val(value).trigger('change');
+        }
+        return;
+      }
       if (control < 8) {
         control += 8; /* sliders, control bottom pads (8-15) */
       } else {