Skip to content

Commit 1b37cf0

Browse files
committed
Fixing examples for mozilla summit.
1 parent 18c8df6 commit 1b37cf0

File tree

3 files changed

+37
-35
lines changed

3 files changed

+37
-35
lines changed

dsp.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,9 @@ DSP.LOW_SHELF = 7; // H(s) = A * (s^2 + (sqrt(A)/Q)*s + A)/(A*s^2 + (sqrt(A)/Q
145145
DSP.HIGH_SHELF = 8; // H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A)
146146

147147
// Biquad filter parameter types
148-
DSP.Q = 0;
149-
DSP.BW = 1;
150-
DSP.S = 2;
148+
DSP.Q = 1;
149+
DSP.BW = 2; // SHARED with BACKWARDS LOOP MODE
150+
DSP.S = 3;
151151

152152

153153
/**
@@ -540,7 +540,6 @@ Oscillator = function Oscillator(type, frequency, amplitude, bufferSize, sampleR
540540
this.signal = new Float32Array(bufferSize);
541541
this.envelope = null;
542542

543-
544543
switch(parseInt(type)) {
545544
case DSP.TRIANGLE:
546545
this.func = Oscillator.Triangle;

examples/sampler.html

+28-27
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<script>
2323
// Setup shared variables
2424
var sampleRate = 44100;
25-
var bufferSize = 2048;
25+
var bufferSize = 1024;
2626
var bufferTime = Math.floor(1000 / (sampleRate / bufferSize));
2727

2828
var amplitude = 0.1; // Default amplitude at 70%
@@ -52,42 +52,44 @@
5252
output.mozSetup(1, sampleRate, 1);
5353
}
5454

55-
var timePerWrite = 0;
5655
var programStart;
57-
56+
var writeCount = 0;
57+
5858
var s = new Sampler('audio/intergalactic.ogg', bufferSize, sampleRate);
5959
s.envelope = new ADSR(0, 0, 1, Infinity, 0, sampleRate);
6060
s.envelope.disable(); // turn off so it does not auto trigger
6161

6262
var audioWriter = function() {
6363
if (s.loaded) {
64-
var startTime = (new Date()).getTime();
65-
6664
if ( programStart === undefined ) {
6765
programStart = new Date();
6866
}
6967

70-
var additiveSignal;
71-
72-
if ( s.envelope.isActive() ) {
73-
s.generate();
74-
additiveSignal = s.applyEnvelope();
75-
}
76-
77-
// Set the global osc object
78-
if ( typeof additiveSignal === 'undefined' ) {
79-
additiveSignal = silence;
80-
}
68+
while ( (new Date() - programStart) / 1000 * sampleRate / bufferSize >= writeCount ) {
69+
var additiveSignal;
70+
71+
if ( s.envelope.isActive() ) {
72+
s.generate();
73+
additiveSignal = s.applyEnvelope();
74+
}
75+
76+
/*
77+
// This makes it fall out of sync for some reason.
78+
if ( typeof additiveSignal === 'undefined' ) {
79+
additiveSignal = silence;
80+
}
81+
*/
8182

82-
// Flush buffer
83-
output.mozWriteAudio([]);
84-
85-
// Write next audio frame
86-
output.mozWriteAudio(additiveSignal);
83+
// Flush buffer
84+
output.mozWriteAudio([]);
85+
86+
if (additiveSignal) {
87+
// Write next audio frame
88+
output.mozWriteAudio(additiveSignal);
8789

88-
var endTime = (new Date()).getTime();
89-
90-
timePerWrite = endTime - startTime;
90+
}
91+
writeCount++;
92+
}
9193
}
9294
}
9395

@@ -129,9 +131,9 @@
129131
var step = Math.floor(s.duration * sampleRate / width);
130132

131133
noStroke();
132-
beginShape();
133134
stroke(0, 100);
134135
fill(0, 50);
136+
beginShape();
135137
for ( int i = 0; i < Math.floor(s.samples.length/step); i++) {
136138
if (s.samples[i*step] > 0) {
137139
vertex(i + width - s.samples.length/step, height/2 - s.samples[i*step] * 100);
@@ -226,7 +228,7 @@
226228
}
227229

228230
void keyPressed() {
229-
var semi;
231+
var semi = undefined;
230232

231233
if ( key == 'z' ) { // C
232234
semi = 0;
@@ -303,7 +305,6 @@
303305
if (mouseButton == RIGHT) {
304306
s.playEnd = mouseX / width;
305307
}
306-
307308
}
308309

309310
</script>

examples/synthesizer.html

+6-4
Original file line numberDiff line numberDiff line change
@@ -306,17 +306,18 @@
306306
oscPool = tmpPool;
307307

308308
// Set the global osc object
309-
if ( typeof mergedOsc != 'undefined' ) {
309+
if ( typeof mergedOsc !== 'undefined' ) {
310310
osc = mergedOsc;
311311
} else {
312312
osc.signal = silence;
313+
//osc.signal = undefined;
313314
}
314315

315316
// Flush buffer
316317
a.mozWriteAudio([]);
317318

318-
// Write next audio frame
319-
a.mozWriteAudio(osc.signal);
319+
// Write next audio frame
320+
a.mozWriteAudio(osc.signal);
320321

321322
writeCount++;
322323

@@ -340,13 +341,14 @@
340341
osc = new Oscillator(osc1_waveform, 440, 0, bufferSize, sampleRate);
341342

342343
setInterval(audioWriter, bufferTime); // start audioWriter timer
344+
frameRate(10);
343345
}
344346

345347
void draw() {
346348
var startTime = (new Date()).getTime();
347349

348350
int sequencerCol = Math.floor(sequencerStep) % 32;
349-
background(0, 0, 30, 50);
351+
background(0, 0, 30);
350352

351353
var curCol = Math.floor(sequencerCol/2);
352354
var nextCol = (curCol + 1) % 17;

0 commit comments

Comments
 (0)