1
0
Fork 0
firefox/testing/web-platform/tests/webaudio/the-audio-api/processing-model/feedback-delay-time.html
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

42 lines
1.4 KiB
HTML

<!DOCTYPE html>
<html class="a">
<head>
<title>Feedback cycle with delay in audio node graph</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
function doTest() {
var off = new OfflineAudioContext(1, 512, 48000);
var b = off.createBuffer(1, 1, 48000);
b.getChannelData(0)[0] = 1;
var impulse = new AudioBufferSourceNode(off, {buffer: b});
impulse.start(0);
var delay = new DelayNode(off, {delayTime: 128 / 48000});
var fb = new GainNode(off);
impulse.connect(fb).connect(delay).connect(fb).connect(off.destination);
var samples;
return off.startRendering().then((b) => {
return Promise.resolve(b.getChannelData(0));
});
}
promise_test(() => {
return doTest().then(samples => {
for (var i = 0; i < samples.length; i++) {
if ((i % 128) != 0) {
assert_equals(
samples[i], 0.0,
'Non-silent audio found in between delayed impulses');
} else {
assert_equals(
samples[i], 1.0,
'Silent audio found instead of a delayed impulse');
}
}
});
}, 'Test that a DelayNode allows a feedback loop of a single rendering quantum');
</script>
</body>
</html>