Baseline Widely available
frequencyBinCount
㯠AnalyserNode
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®èªã¿åãå°ç¨ããããã£ã§ã AudioContext
ã® sampleRate
ã§å©ç¨å¯è½ãªãã¼ã¿ãã¤ã³ãã®ç·æ°ãæ ¼ç´ããã¾ãããã㯠AnalyserNode.fftSize
ã® value
ã®ååã§ãã 2 ã¤ã®ã¡ã½ããã®ã¤ã³ããã¯ã¹ã¯ã0 ãããã¤ãã¹ã卿³¢æ°ã®éã§ããããã表ã卿³¢æ°ã¨ç·å½¢é¢ä¿ã«ããã¾ãã
符å·ãªãæ´æ°ã§ãæå®ããã TypedArray
ã«ã³ãã¼ããã AnalyserNode.getByteFrequencyData()
㨠AnalyserNode.getFloatFrequencyData()
ãå¤ã®æ°ã«çãããã®ã§ãã
é«éãã¼ãªã¨å¤æãå®ç¾©ããæ¹æ³ã«é¢ããæè¡çãªçç±ããï¼å¸¸ã« AnalyserNode.fftSize
ã®ååã®å¤ã«ãªãã¾ãï¼ãããã£ã¦ã 16
, 32
, 64
, 128
, 256
, 512
, 1024
, 2048
, 4096
, 8192
, 16384
ã®ãã¡ã®ããããã«ãªãã¾ãã
次ã®ä¾ã§ã¯ã AudioContext
ã§ AnalyserNode
ã使ãã requestAnimationFrame
㨠<canvas>
ã§æå»é åã®ãã¼ã¿ãç¹°ãè¿ãåéããç¾å¨ã®é³å£°å
¥åã®ããªã·ãã¹ã³ã¼ããåºåãæç»ããåºæ¬çãªä½¿ç¨æ¹æ³ã示ãã¾ãã ããå®å
¨ãªå¿ç¨ä¾/æ
å ±ã«ã¤ãã¦ã¯ã Voice-change-O-matic ã®ãã¢ã調ã¹ã¦ãã ããï¼é¢é£ããã³ã¼ã㯠app.js ã® 108 ï½ 193 è¡ç®ãåç
§ï¼ã
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
const analyser = audioCtx.createAnalyser();
analyser.minDecibels = -90;
analyser.maxDecibels = -10;
// â¦
analyser.fftSize = 256;
const bufferLength = analyser.frequencyBinCount;
console.log(bufferLength);
const dataArray = new Uint8Array(bufferLength);
canvasCtx.clearRect(0, 0, WIDTH, HEIGHT);
function draw() {
drawVisual = requestAnimationFrame(draw);
analyser.getByteFrequencyData(dataArray);
canvasCtx.fillStyle = "rgb(0, 0, 0)";
canvasCtx.fillRect(0, 0, WIDTH, HEIGHT);
const barWidth = (WIDTH / bufferLength) * 2.5 - 1;
let barHeight;
let x = 0;
for (let i = 0; i < bufferLength; i++) {
barHeight = dataArray[i];
canvasCtx.fillStyle = `rgb(${barHeight + 100}, 50, 50)`;
canvasCtx.fillRect(x, HEIGHT - barHeight / 2, barWidth, barHeight / 2);
x += barWidth;
}
}
draw();
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4