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);
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) {
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 {