From feded2aa456934df304391bf87252b31c80405c5 Mon Sep 17 00:00:00 2001
From: cstuncsik Credits
(http://codepen.io/jackrugile/blog/arcade-audio-for-js13k-games)
Game music: Sonant-X (https://github.com/nicolas-van/sonant-x) by @nicolas-van +
+Game random number utility inspired by: # JS13KGames Boilerplate (https://github.com/ooflorent/js13k-boilerplate/blob/master/src/rng.js)
diff --git a/app/scripts/core.js b/app/scripts/core.js index ff48310..5b6dab1 100644 --- a/app/scripts/core.js +++ b/app/scripts/core.js @@ -62,6 +62,12 @@ }, mute: function () { game.audio.mute = !game.audio.mute; + for (var track in game.music.pool) { + if (game.music.pool.hasOwnProperty(track)) { + var music = game.music.pool[track]; + music.volume(game.audio.mute ? 0 : 0.4); + } + } }, menu: function (resume) { game.paused = true; @@ -431,6 +437,12 @@ }, init: function () { + game.music.generate('main', function (music) { + music.loop = true; + music.volume(0.4); + music.start(); + }); + game.obj.extend(true, game, { ww: window.innerWidth, wh: window.innerHeight, @@ -496,15 +508,6 @@ game.stats(); game.menu(); - var audioCtx = new AudioContext(); - var songGen = new sonantx.MusicGenerator(song); - songGen.createAudioBuffer(function(buffer) { - var source = audioCtx.createBufferSource(); // Create Sound Source - source.buffer = buffer; // Add Buffered Data to Object - source.connect(audioCtx.destination); // Connect Sound Source to Output - source.start(); - }); - } }); diff --git a/app/scripts/music.js b/app/scripts/music.js index 42c5bc3..122074f 100644 --- a/app/scripts/music.js +++ b/app/scripts/music.js @@ -1,1175 +1,981 @@ (function () { "use strict"; - window.song = { - "songLen": 145, - "songData": [ - { - "osc1_oct": 9, - "osc1_det": 0, - "osc1_detune": 0, - "osc1_xenv": 0, - "osc1_vol": 161, - "osc1_waveform": 0, - "osc2_oct": 9, - "osc2_det": 0, - "osc2_detune": 4, - "osc2_xenv": 0, - "osc2_vol": 182, - "osc2_waveform": 0, - "noise_fader": 0, - "env_attack": 100, - "env_sustain": 1818, - "env_release": 18181, - "env_master": 192, - "fx_filter": 0, - "fx_freq": 0, - "fx_resonance": 254, - "fx_delay_time": 6, - "fx_delay_amt": 108, - "fx_pan_freq": 3, - "fx_pan_amt": 61, - "lfo_osc1_freq": 0, - "lfo_fx_freq": 0, - "lfo_freq": 3, - "lfo_amt": 94, - "lfo_waveform": 2, - "p": [ - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 0, - 2, - 3, - 4, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 5 - ], - "c": [ - { - "n": [ - 142, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 140, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 138, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "n": [ - 135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 135, - 0, - 0, - 0, - 138, - 0, - 0, - 0 - ] - }, - { - "n": [ - 140, - 0, - 138, - 0, - 135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 130, - 0, - 142, - 0, - 140, - 0, - 135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 138, - 0, - 0, - 0 - ] - }, - { - "n": [ - 135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 130, - 0, - 142, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 135, - 0, - 0, - 0, - 138, - 0, - 0, - 0 - ] - }, - { - "n": [ - 123, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "n": [ - 130, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "n": [ - 128, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "n": [ - 119, - 131, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 126, - 114, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - } - ] - }, - { - "osc1_oct": 8, - "osc1_det": 0, - "osc1_detune": 0, - "osc1_xenv": 0, - "osc1_vol": 0, - "osc1_waveform": 0, - "osc2_oct": 8, - "osc2_det": 0, - "osc2_detune": 0, - "osc2_xenv": 0, - "osc2_vol": 0, - "osc2_waveform": 0, - "noise_fader": 19, - "env_attack": 100, - "env_sustain": 0, - "env_release": 3636, - "env_master": 192, - "fx_filter": 1, - "fx_freq": 8100, - "fx_resonance": 156, - "fx_delay_time": 2, - "fx_delay_amt": 22, - "fx_pan_freq": 3, - "fx_pan_amt": 43, - "lfo_osc1_freq": 0, - "lfo_fx_freq": 0, - "lfo_freq": 0, - "lfo_amt": 0, - "lfo_waveform": 0, - "p": [ - 0, - 0, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2 - ], - "c": [ - { - "n": [ - 135, - 0, - 135, - 0, - 0, - 135, - 0, - 135, - 135, - 0, - 135, - 0, - 0, - 135, - 0, - 135, - 135, - 0, - 135, - 0, - 0, - 135, - 0, - 135, - 135, - 0, - 135, - 0, - 0, - 135, - 0, - 135 - ] - }, - { - "n": [ - 135, - 0, - 135, - 0, - 0, - 135, - 0, - 135, - 135, - 0, - 135, - 0, - 0, - 135, - 0, - 135, - 135, - 0, - 135, - 0, - 0, - 135, - 0, - 135, - 135, - 0, - 135, - 0, - 135, - 0, - 135, - 135 - ] + + game.music = { + generate: function (name, cb) { + var audioCtx = new AudioContext(); + var songGen = new sonantx.MusicGenerator(this.tracks[name]); + + songGen.createAudioBuffer(function (buffer) { + var source = audioCtx.createBufferSource(), + gainNode = audioCtx.createGain(); + + source.buffer = buffer; + source.connect(gainNode); + gainNode.connect(audioCtx.destination); + source.volume = function (vol) { + if (vol > -1) { + gainNode.gain.value = vol; + } else { + return gainNode.gain.value; } - ] - }, - { - "osc1_oct": 6, - "osc1_det": 0, - "osc1_detune": 0, - "osc1_xenv": 0, - "osc1_vol": 192, - "osc1_waveform": 1, - "osc2_oct": 8, - "osc2_det": 0, - "osc2_detune": 8, - "osc2_xenv": 0, - "osc2_vol": 82, - "osc2_waveform": 2, - "noise_fader": 0, - "env_attack": 100, - "env_sustain": 4545, - "env_release": 2727, - "env_master": 192, - "fx_filter": 3, - "fx_freq": 2700, - "fx_resonance": 85, - "fx_delay_time": 6, - "fx_delay_amt": 60, - "fx_pan_freq": 6, - "fx_pan_amt": 86, - "lfo_osc1_freq": 0, - "lfo_fx_freq": 1, - "lfo_freq": 7, - "lfo_amt": 106, - "lfo_waveform": 0, - "p": [ - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 3, - 1, - 1, - 2, - 3, - 1, - 1, - 2, - 3, - 1, - 1, - 2, - 3, - 1, - 1, - 2, - 3 - ], - "c": [ + }; + this.pool[name] = source; + cb(source); + }.bind(this)); + }, + pool: {}, + tracks: { + main: { + "songLen": 198, + "songData": [ { - "n": [ - 135, - 135, - 147, - 135, - 0, - 135, - 147, - 135, - 135, - 135, - 147, - 135, - 0, - 135, - 147, - 135, - 135, - 135, - 147, - 135, - 0, - 135, - 147, - 135, - 135, - 135, - 147, - 135, - 0, - 135, - 147, - 135 + "osc1_oct": 9, + "osc1_det": 0, + "osc1_detune": 0, + "osc1_xenv": 0, + "osc1_vol": 161, + "osc1_waveform": 0, + "osc2_oct": 9, + "osc2_det": 0, + "osc2_detune": 4, + "osc2_xenv": 0, + "osc2_vol": 182, + "osc2_waveform": 0, + "noise_fader": 0, + "env_attack": 100, + "env_sustain": 1818, + "env_release": 18181, + "env_master": 192, + "fx_filter": 0, + "fx_freq": 0, + "fx_resonance": 254, + "fx_delay_time": 6, + "fx_delay_amt": 108, + "fx_pan_freq": 3, + "fx_pan_amt": 61, + "lfo_osc1_freq": 0, + "lfo_fx_freq": 0, + "lfo_freq": 3, + "lfo_amt": 94, + "lfo_waveform": 2, + "p": [ + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 3, + 4, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 1, + 2, + 1, + 2, + 3, + 4, + 5, + 6, + 5, + 6, + 7, + 8 + ], + "c": [ + { + "n": [ + 142, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 140, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 138, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "n": [ + 135, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135, + 0, + 0, + 0, + 138, + 0, + 0, + 0 + ] + }, + { + "n": [ + 140, + 0, + 138, + 0, + 135, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 130, + 0, + 142, + 0, + 140, + 0, + 135, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 138, + 0, + 0, + 0 + ] + }, + { + "n": [ + 135, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 130, + 0, + 142, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135, + 0, + 0, + 0, + 138, + 0, + 0, + 0 + ] + }, + { + "n": [ + 123, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "n": [ + 130, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "n": [ + 128, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "n": [ + 119, + 131, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 126, + 114, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } ] }, { - "n": [ - 140, - 140, - 152, - 140, - 0, - 140, - 152, - 140, - 140, - 140, - 152, - 140, - 0, - 140, - 152, - 140, - 140, - 140, - 152, - 140, - 0, - 140, - 152, - 140, - 140, - 140, - 152, - 140, - 0, - 140, - 152, - 142 + "osc1_oct": 8, + "osc1_det": 0, + "osc1_detune": 0, + "osc1_xenv": 0, + "osc1_vol": 0, + "osc1_waveform": 0, + "osc2_oct": 8, + "osc2_det": 0, + "osc2_detune": 0, + "osc2_xenv": 0, + "osc2_vol": 0, + "osc2_waveform": 0, + "noise_fader": 19, + "env_attack": 100, + "env_sustain": 0, + "env_release": 3636, + "env_master": 192, + "fx_filter": 1, + "fx_freq": 8100, + "fx_resonance": 156, + "fx_delay_time": 2, + "fx_delay_amt": 22, + "fx_pan_freq": 3, + "fx_pan_amt": 43, + "lfo_osc1_freq": 0, + "lfo_fx_freq": 0, + "lfo_freq": 0, + "lfo_amt": 0, + "lfo_waveform": 0, + "p": [ + 0, + 0, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "c": [ + { + "n": [ + 135, + 0, + 135, + 0, + 0, + 135, + 0, + 135, + 135, + 0, + 135, + 0, + 0, + 135, + 0, + 135, + 135, + 0, + 135, + 0, + 0, + 135, + 0, + 135, + 135, + 0, + 135, + 0, + 0, + 135, + 0, + 135 + ] + }, + { + "n": [ + 135, + 0, + 135, + 0, + 0, + 135, + 0, + 135, + 135, + 0, + 135, + 0, + 0, + 135, + 0, + 135, + 135, + 0, + 135, + 0, + 0, + 135, + 0, + 135, + 135, + 0, + 135, + 0, + 135, + 0, + 135, + 135 + ] + } ] }, { - "n": [ - 131, - 131, - 143, - 131, - 0, - 131, - 143, - 131, - 131, - 131, - 143, - 131, - 0, - 131, - 143, - 131, - 138, - 138, - 150, - 138, - 0, - 138, - 150, - 138, - 138, - 138, - 150, - 138, - 0, - 138, - 150, - 137 - ] - } - ] - }, - { - "osc1_oct": 7, - "osc1_det": 0, - "osc1_detune": 0, - "osc1_xenv": 0, - "osc1_vol": 187, - "osc1_waveform": 2, - "osc2_oct": 5, - "osc2_det": 0, - "osc2_detune": 2, - "osc2_xenv": 1, - "osc2_vol": 161, - "osc2_waveform": 2, - "noise_fader": 0, - "env_attack": 100, - "env_sustain": 1818, - "env_release": 2727, - "env_master": 123, - "fx_filter": 1, - "fx_freq": 1900, - "fx_resonance": 162, - "fx_delay_time": 2, - "fx_delay_amt": 153, - "fx_pan_freq": 6, - "fx_pan_amt": 61, - "lfo_osc1_freq": 0, - "lfo_fx_freq": 1, - "lfo_freq": 2, - "lfo_amt": 196, - "lfo_waveform": 3, - "p": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 2, - 1, - 1, - 1, - 2, - 1, - 1, - 1, - 2, - 1, - 1, - 1, - 2, - 1, - 1, - 1, - 2, - 3 - ], - "c": [ - { - "n": [ - 135, - 135, - 138, - 135, - 142, - 135, - 140, - 138, - 135, - 135, - 138, - 135, - 142, - 135, - 140, - 138, - 135, - 135, - 138, - 135, - 142, - 135, - 140, - 138, - 135, - 135, - 138, - 135, - 142, - 135, - 140, - 138 + "osc1_oct": 6, + "osc1_det": 0, + "osc1_detune": 0, + "osc1_xenv": 0, + "osc1_vol": 192, + "osc1_waveform": 1, + "osc2_oct": 8, + "osc2_det": 0, + "osc2_detune": 8, + "osc2_xenv": 0, + "osc2_vol": 82, + "osc2_waveform": 2, + "noise_fader": 0, + "env_attack": 100, + "env_sustain": 4545, + "env_release": 2727, + "env_master": 192, + "fx_filter": 3, + "fx_freq": 2700, + "fx_resonance": 85, + "fx_delay_time": 6, + "fx_delay_amt": 60, + "fx_pan_freq": 6, + "fx_pan_amt": 86, + "lfo_osc1_freq": 0, + "lfo_fx_freq": 1, + "lfo_freq": 7, + "lfo_amt": 106, + "lfo_waveform": 0, + "p": [ + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 3, + 1, + 1, + 2, + 3, + 1, + 1, + 2, + 3, + 1, + 1, + 2, + 3, + 1, + 1, + 2, + 3, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 3 + ], + "c": [ + { + "n": [ + 135, + 135, + 147, + 135, + 0, + 135, + 147, + 135, + 135, + 135, + 147, + 135, + 0, + 135, + 147, + 135, + 135, + 135, + 147, + 135, + 0, + 135, + 147, + 135, + 135, + 135, + 147, + 135, + 0, + 135, + 147, + 135 + ] + }, + { + "n": [ + 140, + 140, + 152, + 140, + 0, + 140, + 152, + 140, + 140, + 140, + 152, + 140, + 0, + 140, + 152, + 140, + 140, + 140, + 152, + 140, + 0, + 140, + 152, + 140, + 140, + 140, + 152, + 140, + 0, + 140, + 152, + 142 + ] + }, + { + "n": [ + 131, + 131, + 143, + 131, + 0, + 131, + 143, + 131, + 131, + 131, + 143, + 131, + 0, + 131, + 143, + 131, + 138, + 138, + 150, + 138, + 0, + 138, + 150, + 138, + 138, + 138, + 150, + 138, + 0, + 138, + 150, + 137 + ] + } ] }, { - "n": [ - 143, - 143, - 155, - 143, - 0, - 143, - 155, - 143, - 143, - 143, - 150, - 143, - 147, - 143, - 140, - 143, - 138, - 138, - 143, - 138, - 143, - 140, - 138, - 140, - 138, - 138, - 143, - 138, - 142, - 140, - 138, - 140 + "osc1_oct": 7, + "osc1_det": 0, + "osc1_detune": 0, + "osc1_xenv": 0, + "osc1_vol": 187, + "osc1_waveform": 2, + "osc2_oct": 5, + "osc2_det": 0, + "osc2_detune": 2, + "osc2_xenv": 1, + "osc2_vol": 161, + "osc2_waveform": 2, + "noise_fader": 0, + "env_attack": 100, + "env_sustain": 1818, + "env_release": 2727, + "env_master": 123, + "fx_filter": 1, + "fx_freq": 1900, + "fx_resonance": 162, + "fx_delay_time": 2, + "fx_delay_amt": 153, + "fx_pan_freq": 6, + "fx_pan_amt": 61, + "lfo_osc1_freq": 0, + "lfo_fx_freq": 1, + "lfo_freq": 2, + "lfo_amt": 196, + "lfo_waveform": 3, + "p": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 2 + ], + "c": [ + { + "n": [ + 135, + 135, + 138, + 135, + 142, + 135, + 140, + 138, + 135, + 135, + 138, + 135, + 142, + 135, + 140, + 138, + 135, + 135, + 138, + 135, + 142, + 135, + 140, + 138, + 135, + 135, + 138, + 135, + 142, + 135, + 140, + 138 + ] + }, + { + "n": [ + 143, + 143, + 155, + 143, + 0, + 143, + 155, + 143, + 143, + 143, + 150, + 143, + 147, + 143, + 140, + 143, + 138, + 138, + 143, + 138, + 143, + 140, + 138, + 140, + 138, + 138, + 143, + 138, + 142, + 140, + 138, + 140 + ] + } ] }, { - "n": [ - 135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - } - ] - }, - { - "osc1_oct": 8, - "osc1_det": 0, - "osc1_detune": 0, - "osc1_xenv": 1, - "osc1_vol": 192, - "osc1_waveform": 0, - "osc2_oct": 7, - "osc2_det": 0, - "osc2_detune": 0, - "osc2_xenv": 1, - "osc2_vol": 70, - "osc2_waveform": 2, - "noise_fader": 8, - "env_attack": 100, - "env_sustain": 0, - "env_release": 9090, - "env_master": 164, - "fx_filter": 2, - "fx_freq": 5500, - "fx_resonance": 240, - "fx_delay_time": 6, - "fx_delay_amt": 51, - "fx_pan_freq": 3, - "fx_pan_amt": 66, - "lfo_osc1_freq": 0, - "lfo_fx_freq": 0, - "lfo_freq": 0, - "lfo_amt": 0, - "lfo_waveform": 0, - "p": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "c": [ - { - "n": [ - 135, - 0, - 0, - 0, - 0, - 0, - 135, - 0, - 0, - 0, - 135, - 0, - 0, - 0, - 0, - 0, - 135, - 0, - 0, - 0, - 0, - 0, - 135, - 0, - 0, - 0, - 135, - 0, - 0, - 0, - 0, - 0 + "osc1_oct": 8, + "osc1_det": 0, + "osc1_detune": 0, + "osc1_xenv": 1, + "osc1_vol": 192, + "osc1_waveform": 0, + "osc2_oct": 7, + "osc2_det": 0, + "osc2_detune": 0, + "osc2_xenv": 1, + "osc2_vol": 70, + "osc2_waveform": 2, + "noise_fader": 8, + "env_attack": 100, + "env_sustain": 0, + "env_release": 9090, + "env_master": 164, + "fx_filter": 2, + "fx_freq": 5500, + "fx_resonance": 240, + "fx_delay_time": 6, + "fx_delay_amt": 51, + "fx_pan_freq": 3, + "fx_pan_amt": 66, + "lfo_osc1_freq": 0, + "lfo_fx_freq": 0, + "lfo_freq": 0, + "lfo_amt": 0, + "lfo_waveform": 0, + "p": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + "c": [ + { + "n": [ + 135, + 0, + 0, + 0, + 0, + 0, + 135, + 0, + 0, + 0, + 135, + 0, + 0, + 0, + 0, + 0, + 135, + 0, + 0, + 0, + 0, + 0, + 135, + 0, + 0, + 0, + 135, + 0, + 0, + 0, + 0, + 0 + ] + } ] } - ] - }, - { - "osc1_oct": 7, - "osc1_det": 0, - "osc1_detune": 0, - "osc1_xenv": 0, - "osc1_vol": 192, - "osc1_waveform": 2, - "osc2_oct": 8, - "osc2_det": 0, - "osc2_detune": 6, - "osc2_xenv": 0, - "osc2_vol": 184, - "osc2_waveform": 2, - "noise_fader": 21, - "env_attack": 40000, - "env_sustain": 25454, - "env_release": 90909, - "env_master": 77, - "fx_filter": 2, - "fx_freq": 7100, - "fx_resonance": 188, - "fx_delay_time": 8, - "fx_delay_amt": 147, - "fx_pan_freq": 4, - "fx_pan_amt": 69, - "lfo_osc1_freq": 0, - "lfo_fx_freq": 1, - "lfo_freq": 7, - "lfo_amt": 176, - "lfo_waveform": 1, - "p": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 2, - 3, - 4, - 1, - 2, - 3, - 4, - 1, - 2, - 3, - 4, - 1, - 2, - 3, - 4, - 5 ], - "c": [ - { - "n": [ - 135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "n": [ - 142, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "n": [ - 128, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "n": [ - 143, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 138, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "n": [ - 135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - } - ] + "rowLen": 6615, + "endPattern": 41 } - ], - "rowLen": 6615, - "endPattern": 30 + } }; })(); diff --git a/dist/index.html b/dist/index.html index 8f95ea7..8ccd266 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1 +1 @@ -Swap/Move elements: Click highlighted column to select an element and click to drop to another column
Pause: P, Mute: M,
Stop bg anim: B
(because of performance issues on some devices)
Created by: Zoltan Pasztor & Csaba Tuncsik
Audio Processing: [JSFXR](https://github.com/mneubrand/jsfxr) by [@markusneubrand](https://twitter.com/markusneubrand)
Game sound inspired by: [@jackrugile](https://twitter.com/jackrugile) (http://codepen.io/jackrugile/blog/arcade-audio-for-js13k-games)
Game random number utility inspired by: # JS13KGames Boilerplate (https://github.com/ooflorent/js13k-boilerplate/blob/master/src/rng.js)
Swap/Move elements: Click highlighted column to select an element and click to drop to another column
Pause: P, Mute: M,
Stop bg anim: B
(because of performance issues on some devices)
Created by: Zoltan Pasztor & Csaba Tuncsik
Audio Processing: [JSFXR](https://github.com/mneubrand/jsfxr) by [@markusneubrand](https://twitter.com/markusneubrand)
Game sound inspired by: [@jackrugile](https://twitter.com/jackrugile) (http://codepen.io/jackrugile/blog/arcade-audio-for-js13k-games)
Game music: Sonant-X (https://github.com/nicolas-van/sonant-x) by @nicolas-van
Game random number utility inspired by: # JS13KGames Boilerplate (https://github.com/ooflorent/js13k-boilerplate/blob/master/src/rng.js)