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();
midi.onControlChange = function(port, data, control, value) {
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');
+ if (control < 8) {
+ control += 8; /* sliders, control bottom pads (8-15) */
+ } else {
+ control -= 16; /* pots, control top pads (0-7) */
+ }
+ $('[data-touch=' + control + '] .touch-gain').val(value).trigger('change');
}
$(document).keypress(function(ev) {
$('.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;
});
}
sample.connect(gainNode);
sample.buffer = sample_buffer;
sample.onended = function() {
- console.log('ended');
$(nanotouch).removeClass('playing');
self.samples[sample_idx] = undefined;
}
}
$(function() { nanofun(); });
+
+if ('serviceWorker' in navigator) {
+ window.addEventListener('load', function() {
+ navigator.serviceWorker.register('service-worker.js').then(function(registration) {
+ // Registration was successful
+ console.log('ServiceWorker registration successful with scope: ', registration.scope);
+ }).catch(function(err) {
+ // registration failed :(
+ console.log('ServiceWorker registration failed: ', err);
+ });
+ });
+}