Update audio.js
Improves the perfomance of that function by caching some values that doesn't change during loop.
This commit is contained in:
parent
f67b42e831
commit
cffb6c8920
1 changed files with 9 additions and 6 deletions
15
sae/audio.js
15
sae/audio.js
|
|
@ -214,22 +214,25 @@ function SAEO_Audio() {
|
||||||
const INV32768 = 1.0 / 32768; /* mul is always fasten than div */
|
const INV32768 = 1.0 / 32768; /* mul is always fasten than div */
|
||||||
|
|
||||||
function scaleplay(e, buffer, frames) {
|
function scaleplay(e, buffer, frames) {
|
||||||
|
var chn=SAEV_config.audio.channels;
|
||||||
|
var z=e.outputBuffer.length;
|
||||||
if (muted) {
|
if (muted) {
|
||||||
for (var ch = 0; ch < SAEV_config.audio.channels; ch++) {
|
for (var ch = 0; ch < chn; ch++) {
|
||||||
var data = e.outputBuffer.getChannelData(ch);
|
var data = e.outputBuffer.getChannelData(ch);
|
||||||
for (var i = 0; i < e.outputBuffer.length; i++)
|
for (var i = 0; i < z; i++)
|
||||||
data[i] = 0.0;
|
data[i] = 0.0;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/*if (driver.context.sampleRate != used_freq) {
|
/*if (driver.context.sampleRate != used_freq) {
|
||||||
} else*/ {
|
} else*/ {
|
||||||
var step = frames / e.outputBuffer.length;
|
var step = frames / z;
|
||||||
|
|
||||||
for (var ch = 0; ch < SAEV_config.audio.channels; ch++) {
|
for (var ch = 0; ch < chn; ch++) {
|
||||||
var data = e.outputBuffer.getChannelData(ch);
|
var data = e.outputBuffer.getChannelData(ch);
|
||||||
for (var i = 0, j = 0.0; i < e.outputBuffer.length; i++, j += step)
|
var tbuf=buffer[ch];
|
||||||
data[i] = buffer[ch][j >>> 0] * INV32768;
|
for (var i = 0, j = 0.0; i < z; i++, j += step)
|
||||||
|
data[i] = tbuf[j >>> 0] * INV32768;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue