mirror of
https://github.com/servo/servo.git
synced 2025-07-12 18:03:49 +01:00
51 lines
1.6 KiB
HTML
51 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Test Panner Azimuth Calculation</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="../../resources/audit.js"></script>
|
|
</head>
|
|
|
|
<body>
|
|
<script>
|
|
const audit = Audit.createTaskRunner();
|
|
|
|
// Fairly arbitrary sample rate
|
|
const sampleRate = 16000;
|
|
|
|
audit.define('Azimuth calculation', (task, should) => {
|
|
// Two channels for the context so we can see each channel of the
|
|
// panner node.
|
|
let context = new OfflineAudioContext(2, sampleRate, sampleRate);
|
|
|
|
let src = new ConstantSourceNode(context);
|
|
let panner = new PannerNode(context);
|
|
|
|
src.connect(panner).connect(context.destination);
|
|
|
|
// The source is still pointed directly at the listener, but is now
|
|
// directly above. The audio should be the same in both the left and
|
|
// right channels.
|
|
panner.positionY.value = 1;
|
|
|
|
src.start();
|
|
|
|
context.startRendering()
|
|
.then(audioBuffer => {
|
|
// The left and right channels should contain the same signal.
|
|
let c0 = audioBuffer.getChannelData(0);
|
|
let c1 = audioBuffer.getChannelData(1);
|
|
|
|
let expected = Math.fround(Math.SQRT1_2);
|
|
|
|
should(c0, 'Left channel').beConstantValueOf(expected);
|
|
should(c1, 'Righteft channel').beConstantValueOf(expected);
|
|
})
|
|
.then(() => task.done());
|
|
});
|
|
|
|
audit.run();
|
|
</script>
|
|
</body>
|
|
</html>
|