summaryrefslogtreecommitdiff
path: root/public/js/grain.js
blob: a0b5d2a06b231b480fea086088c1f355d80ff3be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var bufferSize = 4096; // 65536 / 2;
var sampleRate = 44100;
var latency = 1000 * bufferSize / sampleRate;
var audioletReady = false;

var samples = [
  'KickDrum0001.wav',
  'Clap.wav',
  'Closed Hihat0001.wav',
  'Open Hihat0001.wav',
  'SnareDrum0001.wav',
  'Clav.wav',
  'Mid Tom0001.wav',
  'Rimshot.wav',
];


  var dev = audioLib.AudioDevice(function(buffer, ch){
      var l = buffer.length / ch,
        smpl, i, n;
      for (n=0; n<l; n++){
        osc.generate();
        smpl  = osc.getMix()
        for (i=0; i<ch; i++){
          buffer[n*ch + i] = smpl;
        }
      }
    }, 2),
    osc = new audioLib.Oscillator(dev.sampleRate);
    window.onmousemove = function(e){
      var freq  = e.clientY / window.innerHeight * 880,
        pw  = e.clientX / window.innerWidth;
      osc.frequency = freq;
      osc.pulseWidth  = pw;
    };