made with requirebin
Created
January 22, 2016 22:28
-
-
Save NHQ/0dad72a4a8d7841da81a to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
setTimeout(function(){context = (AudioContext) ? AudioContext : webkitAudioContext | |
master = new context | |
SAMPLERATE = samplerate = master.sampleRate | |
jsynth = require('jsynth') | |
nvelope = require('nvelope') | |
sync = require('jsynth-sync') | |
oz = require('oscillators') | |
jdelay = require('jdelay') | |
amod = require('amod') | |
chronotrigger = require('jigger') | |
generator = new chronotrigger() | |
music = function(time, sample, input){ | |
timer.tick.call(timer, time) | |
return generator.tick(time, sample, input) | |
} | |
timer = sync(115/2, master.sampleRate) | |
gong0 = timer.on(1/8, function(_t, b){ | |
var opts = {} | |
opts.c = 1; | |
opts.a = 1; | |
opts.m = 2; | |
opts.f = 61.74 * 4 | |
opts.wave = 'triangle' | |
var dingdong = makeBells(opts) | |
var attack = [[2,0],[0,1],[2,1], [1,1]] | |
var release= [[1,1],[1,0], [1,0]] | |
var curves = [attack, release] | |
var durs = [.03, .03] | |
var mods = {curves: curves, durations: durs} | |
var synth = function(t,s,i){ | |
return dingdong(t) * ((1 + (b%2))/2) * amod(1, .5, t * 115/60/2, 1/4) | |
} | |
var gen = generator.set(_t, synth, mods) | |
}) | |
var delay = jdelay(Math.floor(master.sampleRate * 115/60/24), 2/3, 1) | |
gong = timer.on(1/4, function(_t, b){ | |
var x = Math.floor((_t % 64 % 32 % 16 % 4)) | |
if(b%x==3||b%1/2==0){ | |
// this should pribibli get the other stringy synth! | |
var delay = jdelay(master.sampleRate * 60 / 64 / 8, .75, .75) | |
var attack = [[0,1],[2,1], [1,1]] | |
var release= [[1,1],[1,0], [1,0]] | |
var curves = [attack, release] | |
var durs = [.05, .5] | |
var mods = {curves: curves, durations: durs} | |
var synth = function(t,s,i){ | |
return delay(oz.sine(t, oz.sine(t, amod(3, 3/2, t* 155/60/2, 1/64)) + 61.74 * 4 * 2) * | |
amod(1, .5, t, 1/16)) * 3 / 4 | |
} | |
generator.set(_t, synth, mods) | |
} | |
if(!(b%2==0)){ | |
console.log(b%4) | |
var opts = {} | |
opts.c = 1; | |
opts.a = 1; | |
opts.m = 2; | |
opts.f = 440 ; | |
opts.wave = 'square' | |
var ddingdong = makeBells(opts) | |
var attack = [[0,1],[2,1], [1,1]] | |
var release= [[1,1],[1,0], [1,0]] | |
var curves = [attack, release] | |
var durs = [.05, 60/64 / 4] | |
var mods = {curves: curves, durations: durs} | |
var synth = function(t,s,i){ | |
return oz.sine(t, Math.random()) * amod(1.5, .5, t, 32*2*2) / 2 // + oz.saw(t, oz.sine(t, 60/124/2) * 61.74 * 4 * 4 * 2) | |
} | |
var gen = generator.set(_t, synth, mods) | |
} | |
if((b%3==0||b%15==14||b%15===13)){ | |
console.log(b%4) | |
var opts = {} | |
opts.c = 3; | |
opts.a = 1; | |
opts.m = 1.67; | |
opts.f = 61.74; | |
opts.wave = 'square' | |
var dingdong = makeBells(opts) | |
var attack = [[0,1],[0,1],[2,1], [1,1]] | |
var release= [[1,1],[1,0], [1,0]] | |
var curves = [attack, release] | |
var durs = [.05, 60/124-.05] | |
var mods = {curves: curves, durations: durs} | |
var synth = function(t,s,i){ | |
return dingdong(t) //* amod(.5, .1, t, 33) | |
} | |
var gen = generator.set(_t, synth, mods) | |
} | |
}) | |
dsp = function(t, s, i){ | |
time = t | |
return music(t, s, i) * .17 | |
} | |
synth = jsynth(master, music) | |
synth.connect(master.destination) | |
function makeBells(opts){ | |
var f = opts.f | |
var g = createGause(opts) | |
var m = opts.m || 2; | |
var wave = opts.wave || 'sine'; | |
return function(time, _m, c, a){ | |
var x = f | |
var y = oz[wave](time, f); | |
while(x <= 11000){ | |
y += g(x, c, a); | |
x = Math.pow(x, m) | |
} | |
return y | |
} | |
} | |
function createGause(opts){ | |
opts = opts || {} | |
var c = opts.c || 100 | |
var a = opts.a || 1 | |
var u = opts.u || 0 | |
return (function (delta, _c, _a, _u){ | |
a = _a || a | |
c = _c || c | |
u = _u || u | |
return + | |
a * | |
Math.pow( | |
Math.E, | |
( | |
-Math.pow( | |
delta - u, | |
2 ) / | |
Math.pow( | |
2 * c, | |
2 ) | |
) | |
) | |
}) | |
}},0) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({oscillators:[function(require,module,exports){var OZ=module.exports;var tau=Math.PI*2;OZ.sine=sine;OZ.saw=saw;OZ.saw_i=saw_i;OZ.triangle=triangle;OZ.triangle_s=triangle_s;OZ.square=square;function sine(t,f){return Math.sin(t*tau*f)}function saw(t,f){var n=t%(1/f)*f%1;return-1+2*n}function saw_i(t,f){var n=t%(1/f)*f%1;return 1-2*n}function triangle(t,f){var n=t%(1/f)*f%1;return n<.5?-1+2*(2*n):1-2*(2*n)}function triangle_s(t,f){var n=t%(1/f)*f%1;var s=Math.abs(Math.sin(t));return n<s?-1+2*(2*(n/s)):1-2*(2*(n/s))}function square(t,f){return t%(1/f)*f%1>.5?1:-1}},{}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({jsynth:[function(require,module,exports){module.exports=function(context,fn,bufSize){if(typeof context==="function"){fn=context;context=new webkitAudioContext}if(!bufSize)bufSize=4096;var self=context.createScriptProcessor(bufSize,1,1);self.fn=fn;var tt=0;var ii=0;const rate=context.sampleRate;self.i=self.t=0;window._SAMPLERATE=self.sampleRate=self.rate=context.sampleRate;self.duration=Infinity;self.recording=false;self.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0),input=e.inputBuffer.getChannelData(0);self.tick(output,input)};self.tick=function(output,input){for(var i=0;i<output.length;i+=1){tt=ii/rate;ii=ii+1;output[i]=self.fn(tt,ii,input[i])}return output};self.stop=function(){self.disconnect();self.playing=false;if(self.recording){}};self.play=function(opts){if(self.playing)return;self.connect(self.context.destination);self.playing=true;return};self.record=function(){};self.reset=function(){self.i=self.t=0};self.createSample=function(duration){self.reset();var buffer=self.context.createBuffer(1,duration,self.context.sampleRate);var blob=buffer.getChannelData(0);self.tick(blob);return buffer};return self};function mergeArgs(opts,args){Object.keys(opts||{}).forEach(function(key){args[key]=opts[key]});return Object.keys(args).reduce(function(acc,key){var dash=key.length===1?"-":"--";return acc.concat(dash+key,args[key])},[])}function signed(n){if(isNaN(n))return 0;var b=Math.pow(2,15);return n>0?Math.min(b-1,Math.floor(b*n-1)):Math.max(-b,Math.ceil(b*n-1))}},{}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){function EventEmitter(){this._events=this._events||{};this._maxListeners=this._maxListeners||undefined}module.exports=EventEmitter;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;EventEmitter.defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");this._maxListeners=n;return this};EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(!this._events)this._events={};if(type==="error"){if(!this._events.error||isObject(this._events.error)&&!this._events.error.length){er=arguments[1];if(er instanceof Error){throw er}else{throw TypeError('Uncaught, unspecified "error" event.')}return false}}handler=this._events[type];if(isUndefined(handler))return false;if(isFunction(handler)){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:len=arguments.length;args=new Array(len-1);for(i=1;i<len;i++)args[i-1]=arguments[i];handler.apply(this,args)}}else if(isObject(handler)){len=arguments.length;args=new Array(len-1);for(i=1;i<len;i++)args[i-1]=arguments[i];listeners=handler.slice();len=listeners.length;for(i=0;i<len;i++)listeners[i].apply(this,args)}return true};EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events)this._events={};if(this._events.newListener)this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener);if(!this._events[type])this._events[type]=listener;else if(isObject(this._events[type]))this._events[type].push(listener);else this._events[type]=[this._events[type],listener];if(isObject(this._events[type])&&!this._events[type].warned){var m;if(!isUndefined(this._maxListeners)){m=this._maxListeners}else{m=EventEmitter.defaultMaxListeners}if(m&&m>0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);if(typeof console.trace==="function"){console.trace()}}}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){if(!isFunction(listener))throw TypeError("listener must be a function");var fired=false;function g(){this.removeListener(type,g);if(!fired){fired=true;listener.apply(this,arguments)}}g.listener=listener;this.on(type,g);return this};EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;list=this._events[type];length=list.length;position=-1;if(list===listener||isFunction(list.listener)&&list.listener===listener){delete this._events[type];if(this._events.removeListener)this.emit("removeListener",type,listener)}else if(isObject(list)){for(i=length;i-->0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}}if(position<0)return this;if(list.length===1){list.length=0;delete this._events[type]}else{list.splice(position,1)}if(this._events.removeListener)this.emit("removeListener",type,listener)}return this};EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[type])delete this._events[type];return this}if(arguments.length===0){for(key in this._events){if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events={};return this}listeners=this._events[type];if(isFunction(listeners)){this.removeListener(type,listeners)}else{while(listeners.length)this.removeListener(type,listeners[listeners.length-1])}delete this._events[type];return this};EventEmitter.prototype.listeners=function(type){var ret;if(!this._events||!this._events[type])ret=[];else if(isFunction(this._events[type]))ret=[this._events[type]];else ret=this._events[type].slice();return ret};EventEmitter.listenerCount=function(emitter,type){var ret;if(!emitter._events||!emitter._events[type])ret=0;else if(isFunction(emitter._events[type]))ret=1;else ret=emitter._events[type].length;return ret};function isFunction(arg){return typeof arg==="function"}function isNumber(arg){return typeof arg==="number"}function isObject(arg){return typeof arg==="object"&&arg!==null}function isUndefined(arg){return arg===void 0}},{}],"jsynth-sync":[function(require,module,exports){var emitter=require("events").EventEmitter;module.exports=sync;var $=module.exports;function sync(bpm,sampleRate){if(!(this instanceof sync))return new sync(bpm,sampleRate);this.bpm=bpm;this.beatsPerSecond=bpm/60;this.sampleRate=sampleRate;this.spb=Math.round(sampleRate/this.beatsPerSecond);this.s=0;this.t=0;this.index=[];this.beatIndex=new Array}$.prototype.clearAll=function(bpm,samplerate){this.index=this.index.map(function(){return undefined})};$.prototype.tick=function(t,i){++this.s;for(var n=0;n<this.index.length;n++){if(this.index[n])this.index[n](t,i,this.s)}};$.prototype.off=function(i){this.index.splice(i,1,undefined)};$.prototype.on=function(beats,fn){var i=Math.ceil(this.spb*beats);var l=this.index.length;var self=this;var off=function(){self.off(l)};var delta=0;var skipNext=false;var skip=false;function swing(beat){delta=Math.abs(Math.floor(self.spb*beat));skipNext=beat===0?false:true}var emit=new emitter;emit.on("stop",off);this.index.push(function(b,fn,beats,off){return function(t,a,f){if(f%(i+delta)==0){if(skip){skip=false;return}if(skipNext){skipNext=false;skip=true;if(delta>=i){skip=false}}fn.apply(fn,[t,++b,off,swing]);emit.emit("beat",b)}}}(0,fn,beats,off));return emit};function amilli(t){return[Math.floor(t),t%1*1e3]}},{events:1}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){var OZ=module.exports;var tau=Math.PI*2;OZ.sine=sine;OZ.saw=saw;OZ.saw_i=saw_i;OZ.triangle=triangle;OZ.triangle_s=triangle_s;OZ.square=square;function sine(t,f){return Math.sin(t*tau*f)}function saw(t,f){var n=t%(1/f)*f%1;return-1+2*n}function saw_i(t,f){var n=t%(1/f)*f%1;return 1-2*n}function triangle(t,f){var n=t%(1/f)*f%1;return n<.5?-1+2*(2*n):1-2*(2*n)}function triangle_s(t,f){var n=t%(1/f)*f%1;var s=Math.abs(Math.sin(t));return n<s?-1+2*(2*(n/s)):1-2*(2*(n/s))}function square(t,f){return t%(1/f)*f%1>.5?1:-1}},{}],amod:[function(require,module,exports){var oz=require("oscillators");module.exports=function(c,r,t,f){return c+r*oz.sine(t,f)}},{oscillators:1}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){module.exports=function(obj,fn){var f=function(){if(typeof fn!=="function")return;return fn.apply(obj,arguments)};function C(){}C.prototype=Object.getPrototypeOf(obj);f.__proto__=new C;Object.getOwnPropertyNames(Function.prototype).forEach(function(key){if(f[key]===undefined){f.__proto__[key]=Function.prototype[key]}});Object.getOwnPropertyNames(obj).forEach(function(key){f[key]=obj[key]});return f}},{}],jdelay:[function(require,module,exports){var funstance=require("funstance");module.exports=function(delay,feedback,mix,bufferSize){var delay=Math.floor(delay);var feedback=feedback;var mix=mix;var bufferSize=bufferSize||delay*2;if(bufferSize<delay*2)bufferSize=delay*2;var d=new Delay(delay,feedback,mix,bufferSize);var fn=funstance(d,Sample);return fn;function Delay(delay,feedback,mix,bufferSize){this.feedback=feedback;this.mix=mix;this.delay=delay;this.buffer=new Float32Array(bufferSize);this.writeOffset=0;this.endPoint=this.delay*2;this.readOffset=this.delay+1;this.readZero=0}function Sample(sample,_delay,feedback,mix){var s=sample;if(feedback)this.feedback=feedback;if(mix)this.mix=mix;if(_delay&&_delay!==this.delay){_delay=Math.max(0,Math.floor(_delay));if(_delay*2>this.buffer.length){var nb=new Float32Array(_delay*2);nb.set(this.buffer,0);this.buffer=nb}this.delay=_delay;this.endPoint=this.delay*2}if(this.readOffset>=this.endPoint)this.readOffset=0;s=this.buffer[this.readOffset];var write=sample+s*this.feedback;this.buffer[this.writeOffset]=write;this.writeOffset++;this.readOffset++;if(this.writeOffset>=this.endPoint)this.writeOffset=0;return(sample+s)*this.mix}}},{funstance:1}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){module.exports=function(pts){return function(t){for(var a=pts;a.length>1;a=b){for(var i=0,b=[],j;i<a.length-1;i++){for(b[i]=[],j=1;j<a[i].length;j++){b[i][j]=a[i][j]*(1-t)+a[i+1][j]*t}}}return a[0][1]}}},{}],2:[function(require,module,exports){module.exports=solver;function beezn(scale){var fn="";for(var x=0;x<=scale;x++){fn+="(Math.pow(1 - x, "+(scale-x)+") * Math.pow(x, "+x+") * y["+x+"] ";if(x>0&&x<scale)fn+="* "+scale+") ";else fn+=") ";if(x<scale)fn+="+ "}return new Function("x,y","return "+fn)}function solver(curves){var scale=curves.length;curves=curves.reverse();var fn=beezn(scale-1);var x=curves.map(function(e){return e[0]});var y=curves.map(function(e){return e[1]});return function(t){return fn(fn(t,x),y)}}},{}],3:[function(require,module,exports){module.exports=function(start,dur,min,max){if(!min)min=0;if(!max)max=1;var end=start+dur;var d=end-start;var r=max-min;return function(time){x=min+(time-start)*r/d;if(x>1){if(time<end)x=Number("."+x.toString().split(".").join(""))}return x}}},{}],nvelope:[function(require,module,exports){var amod=require("./amod.js");var tnorm=require("normalize-time");var beezy=require("beezy");module.exports=function(pts,durs){pts=pts.map(beezy);var t=0;var totalDuration=durs.reduce(function(e,i){return e+i},0);var tdNormFN=tnorm(t,totalDuration);var s=0;var end=t+totalDuration;var durFNS=durs.map(function(e,i){var x=tnorm(t+s,e);s+=e;return x});var dp=0;var durpercent=durs.map(function(e,i){var x=e/totalDuration+dp;dp+=e/totalDuration;return x});var tn,n,i,v=0,fn=0;var envelope=function(t){tn=tdNormFN(t);if(0>tn||tn>1)return 0;fn=durpercent.reduce(function(p,e,i,d){return(d[i-1]||0)<=tn&&tn<=e?i:p},0);v=pts[fn](durFNS[fn](t));return v};return envelope;function xenvelope(t,sustain){tn=tdNormFN(t);if(0>=tn||tn>=1)return 0;if(tn>durpercent[fn])fn=fn+1>pts.length-1?0:fn+1;v=pts[fn](durFNS[fn](t));return v}}},{"./amod.js":1,beezy:2,"normalize-time":3}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){module.exports=function(pts){return function(t){for(var a=pts;a.length>1;a=b){for(var i=0,b=[],j;i<a.length-1;i++){for(b[i]=[],j=1;j<a[i].length;j++){b[i][j]=a[i][j]*(1-t)+a[i+1][j]*t}}}return a[0][1]}}},{}],2:[function(require,module,exports){var amod=require("./amod.js");var tnorm=require("normalize-time");module.exports=function(pts,durs){pts=pts.map(amod);var t=0;var totalDuration=durs.reduce(function(e,i){return e+i},0);var tdNormFN=tnorm(t,totalDuration);var s=0;var end=t+totalDuration;var durFNS=durs.map(function(e,i){var x=tnorm(t+s,e);s+=e;return x});var dp=0;var durpercent=durs.map(function(e,i){var x=e/totalDuration+dp;dp+=e/totalDuration;return x});var tn,n,i,v=0,fn=0;var envelope=function(t){tn=tdNormFN(t);if(0>tn||tn>1)return 0;fn=durpercent.reduce(function(p,e,i,d){return(d[i-1]||0)<=tn&&tn<=e?i:p},0);v=pts[fn](durFNS[fn](t));return v};return envelope;function xenvelope(t,sustain){tn=tdNormFN(t);if(0>=tn||tn>=1)return 0;if(tn>durpercent[fn])fn=fn+1>pts.length-1?0:fn+1;v=pts[fn](durFNS[fn](t));return v}}},{"./amod.js":1,"normalize-time":3}],3:[function(require,module,exports){module.exports=function(start,dur,min,max){if(!min)min=0;if(!max)max=1;var end=start+dur;var d=end-start;var r=max-min;return function(time){x=min+(time-start)*r/d;if(x>1){if(time<end)x=Number("."+x.toString().split(".").join(""))}return x}}},{}],jigger:[function(require,module,exports){var nvelope=require("nvelope");module.exports=chrono;function chrono(_time){if(!(this instanceof chrono))return new chrono(_time);var self=this;this.ret={};this.gens=[];this.time=_time||0;this.start=_time||0;this.set=function(time,synth,mods){var x;self.gens.push(x=new generate(time,synth,mods));return x};this.tick=function(t,s,i){self.time=t;gc(t);return self.gens.reduce(function(a,e){return a+e.signal(t,s,i)},0)};function gc(t){self.gens=self.gens.filter(function(e){if(e.start+e.dur<t)return false;else return true})}}function generate(_time,synth,mod){if(!(this instanceof generate))return new generate(_time,synth,mod);var self=this;this.start=_time;this.dur=mod.durations.reduce(function(acc,e){return acc+e},0);this.synth=synth;this.env=nvelope(mod.curves,mod.durations);this.signal=function(t,s,i){return self.synth(t,s,i)*self.env(t-self.start)}}},{nvelope:2}]},{},[]);setTimeout(function(){context=AudioContext?AudioContext:webkitAudioContext;master=new context;SAMPLERATE=samplerate=master.sampleRate;jsynth=require("jsynth");nvelope=require("nvelope");sync=require("jsynth-sync");oz=require("oscillators");jdelay=require("jdelay");amod=require("amod");chronotrigger=require("jigger");generator=new chronotrigger;music=function(time,sample,input){timer.tick.call(timer,time);return generator.tick(time,sample,input)};timer=sync(115/2,master.sampleRate);gong0=timer.on(1/8,function(_t,b){var opts={};opts.c=1;opts.a=1;opts.m=2;opts.f=61.74*4;opts.wave="triangle";var dingdong=makeBells(opts);var attack=[[2,0],[0,1],[2,1],[1,1]];var release=[[1,1],[1,0],[1,0]];var curves=[attack,release];var durs=[.03,.03];var mods={curves:curves,durations:durs};var synth=function(t,s,i){return dingdong(t)*((1+b%2)/2)*amod(1,.5,t*115/60/2,1/4)};var gen=generator.set(_t,synth,mods)});var delay=jdelay(Math.floor(master.sampleRate*115/60/24),2/3,1);gong=timer.on(1/4,function(_t,b){var x=Math.floor(_t%64%32%16%4);if(b%x==3||b%1/2==0){var delay=jdelay(master.sampleRate*60/64/8,.75,.75);var attack=[[0,1],[2,1],[1,1]];var release=[[1,1],[1,0],[1,0]];var curves=[attack,release];var durs=[.05,.5];var mods={curves:curves,durations:durs};var synth=function(t,s,i){return delay(oz.sine(t,oz.sine(t,amod(3,3/2,t*155/60/2,1/64))+61.74*4*2)*amod(1,.5,t,1/16))*3/4};generator.set(_t,synth,mods)}if(!(b%2==0)){console.log(b%4);var opts={};opts.c=1;opts.a=1;opts.m=2;opts.f=440;opts.wave="square";var ddingdong=makeBells(opts);var attack=[[0,1],[2,1],[1,1]];var release=[[1,1],[1,0],[1,0]];var curves=[attack,release];var durs=[.05,60/64/4];var mods={curves:curves,durations:durs};var synth=function(t,s,i){return oz.sine(t,Math.random())*amod(1.5,.5,t,32*2*2)/2};var gen=generator.set(_t,synth,mods)}if(b%3==0||b%15==14||b%15===13){console.log(b%4);var opts={};opts.c=3;opts.a=1;opts.m=1.67;opts.f=61.74;opts.wave="square";var dingdong=makeBells(opts);var attack=[[0,1],[0,1],[2,1],[1,1]];var release=[[1,1],[1,0],[1,0]];var curves=[attack,release];var durs=[.05,60/124-.05];var mods={curves:curves,durations:durs};var synth=function(t,s,i){return dingdong(t)};var gen=generator.set(_t,synth,mods)}});dsp=function(t,s,i){time=t;return music(t,s,i)*.17};synth=jsynth(master,music);synth.connect(master.destination);function makeBells(opts){var f=opts.f;var g=createGause(opts);var m=opts.m||2;var wave=opts.wave||"sine";return function(time,_m,c,a){var x=f;var y=oz[wave](time,f);while(x<=11e3){y+=g(x,c,a);x=Math.pow(x,m)}return y}}function createGause(opts){opts=opts||{};var c=opts.c||100;var a=opts.a||1;var u=opts.u||0;return function(delta,_c,_a,_u){a=_a||a;c=_c||c;u=_u||u;return+a*Math.pow(Math.E,-Math.pow(delta-u,2)/Math.pow(2*c,2))}}},0); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "requirebin-sketch", | |
"version": "1.0.0", | |
"dependencies": { | |
"oscillators": "1.0.0", | |
"jsynth": "2.8.0", | |
"jsynth-sync": "0.14.0", | |
"amod": "2.0.0", | |
"jdelay": "9.1.0", | |
"nvelope": "0.12.0", | |
"jigger": "1.0.0" | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- contents of this file will be placed inside the <body> --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- contents of this file will be placed inside the <head> --> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment