- From: Antonio José Villena Godoy <_@antoniovillena.es>
- Date: Sat, 21 May 2011 06:32:27 +0200
- To: public-audio@w3.org
Hello
I have created a small program:
<!DOCTYPE html><html><head>
<script type='text/javascript'>
function buffer(e){
if( !(++counter % (0x10000/bufferSize)) ){
nt= new Date().getTime();
if( counter == (0x20000/bufferSize) ){
text+= bufferSize + '->' + parseInt(0x10000 * 1000 / (nt - time))
+ '\n';
e.currentTarget.disconnect();
bufferSize<<= 1;
if( bufferSize == 32768 )
alert(text);
else
context= new webkitAudioContext(),
node= context.createJavaScriptNode(bufferSize, 0, 1),
counter= 0x10000/bufferSize - 5,
node.onaudioprocess= buffer,
node.connect(context.destination);
}
time= nt;
}
data1= e.outputBuffer.getChannelData(0);
data2= e.outputBuffer.getChannelData(1);
for (var i = 0; i < bufferSize; i++)
data1[i]= data2[i]= Math.sin(4e3 * (phase++ / context.sampleRate));
}
bufferSize= 256;
context= new webkitAudioContext();
text= 'SampleRate->' + context.sampleRate + '\n';
node= context.createJavaScriptNode(bufferSize, 0, 1);
time= counter= phase= 0;
node.onaudioprocess= buffer;
node.connect(context.destination);
</script></head><body/></html>
The program sends a sinus wave to the output device at differents
buffer length. When finishes it shows the results: the original sample
rate, and the sample speed for each buffer length (from 256 to 16384).
A similar test is needed in every application, because optimal buffer
depends on machine performance. So, is possible to add a recommended
"buffer length value" to specification? Something like
context.optimalBufferLength or context.recommendedBufferLength
Regards
--
, _ _ __ ___ _ _
/_\ _ _| |_ ___ _ _ (_)___ \ \ / (_) | |___ _ _ __ _
/ _ \| ' \ _/ _ \ ' \| / _ \ \ V /| | | / -_) ' \/ _` |
/_/ \_\_||_\__\___/_||_|_\___/ \_/ |_|_|_\___|_||_\__,_|
Received on Saturday, 21 May 2011 04:32:56 UTC