MCPcopy Create free account
hub / github.com/Milkyroad/SCiPNET / drawOscilloscope

Function drawOscilloscope

public/src/js/vc.js:1–37  ·  view source on GitHub ↗
(mediaStream, id)

Source from the content-addressed store, hash-verified

1function drawOscilloscope(mediaStream, id) {
2 let canvasElement = document.getElementById(id);
3 let canvasContext = canvasElement.getContext("2d");
4
5 let audioContext = new AudioContext();
6 let analyserNode = audioContext.createAnalyser();
7 let bufferLength = analyserNode.frequencyBinCount;
8 let dataArray = new Uint8Array(bufferLength);
9
10 mediaStreamSource = audioContext.createMediaStreamSource(mediaStream);
11 mediaStreamSource.connect(analyserNode);
12
13 draw();
14
15 function draw() {
16 requestAnimationFrame(draw);
17 analyserNode.getByteTimeDomainData(dataArray);
18
19 canvasContext.clearRect(0, 0, canvasElement.width, canvasElement.height);
20 canvasContext.lineWidth = 2;
21 canvasContext.strokeStyle = "white";
22 canvasContext.beginPath();
23 canvasContext.moveTo(0, canvasElement.height / 2);
24
25 let x = 0;
26 let sliceWidth = canvasElement.width / bufferLength;
27 for (let i = 0; i < bufferLength; i++) {
28 let v = dataArray[i] / 128;
29 let y = canvasElement.height / 2 * v;
30 canvasContext.lineTo(x, y);
31 x += sliceWidth;
32 }
33
34 canvasContext.lineTo(canvasElement.width, canvasElement.height / 2);
35 canvasContext.stroke();
36 }
37}
38
39//variables
40var pc;

Callers 2

vc.jsFile · 0.85
checkaudioLoadedFunction · 0.85

Calls 2

drawFunction · 0.70
getContextMethod · 0.45

Tested by

no test coverage detected