*/ import { Saw } from 'opendsp/wavetable-osc'; import debug from 'debug'; import clip from './index.js'; debug(clip(1, 0.6)); assert(0.5===clip(1)); assert(-0.5===clip(-1)); assert(0.625===clip(1,0.6)); assert(-0.625===clip(-1,0.6)); assert(0.9375===clip(15)); assert(-0.9375===clip(-15)); var step = 0.2; var osc = Saw(); var lfo = 0; var dry, wet; export function dsp(t){ lfo = Math.sin(0.3 * Math.PI * 2 * t) + 1; dry = osc(93.75) * Math.exp(1 * (-t/2 % step)); wet = clip(dry * 8, lfo + 0.01); debug(wet.toFixed(5)); return wet * 0.4; }
drums.tune(1.1); drums.add('snare', snare); drums.add('hihat', hihat); var lead = Sampler(1); lead.add('guitar', guitar); var delay = Delay(); var reverb = Reverb().room(0.92).damp(0.65); var osc = Tri(8, false); var out_exp = Allpass(35); var bass_exp = Allpass(75); var bass_osc = Saw(); export function dsp(t) { var index = 0.0000089 var bpm = 100000 * sin(t, index, 1); t *= (bpm * 1000) / 60000; if ( (t*8) % 1 === 0 ) lead.tune([0.1,[.2,2][t/4%2|0]][t%2|0]); var vibrato = sin(t, 1/6); var out = osc(440 + vibrato * 0) * envelope(t, 1/8, 80, 1) * .2; var kick = Math.sin(65 * envelope(t, 1/4, 28, 1.5)); if ( (t/2+2/4) % 1 === 0 ) drums.play('snare', 7, 1); if ( (t+2/4) % 1 === 0 ) drums.play('hihat', 1.8, 1.2);