Baseline Widely available
smoothingTimeConstant
㯠AnalyserNode
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ããããã£ã§ãæå¾ã®åæãã¬ã¼ã ã¨ã®å¹³åå宿°ã表ã double å¤ã§ããããã¯åºæ¬çã«ãç¾å¨ã®ãããã¡ã¼ã¨ AnalyserNode
ãå¦çããæå¾ã®ãããã¡ã¼ã¨ã®éã®å¹³åã§ãããçµæã¨ãã¦ãããã¹ã ã¼ãºãªæéã«ããå¤ã®å¤åã®éåã«ãªãã¾ãã
doublet ã§ã 0
ãã 1
ã¾ã§ã®ç¯å²å
ã§ãï¼0
ã¯å¹³åæéã§ã¯ããã¾ããï¼ãæ¢å®å¤ã¯ 0.8
ã§ãã
0 ãè¨å®ããã¦ããå ´åãå¹³ååã¯è¡ããã¾ãããã1 ã®å¤ã¯ãå¤ãè¨ç®ããéã«ååã¨ç¾å¨ã®ãããã¡ã¼ãããªããªã¼ãã¼ã©ããããããã¨ãæå³ãã¦ãããå®è³ªçã« AnalyserNode.getFloatFrequencyData
/AnalyserNode.getByteFrequencyData
å¼ã³åºãéã®å¤åãæ»ããã«ãã¾ãã
å°éç¨èªã§ã¯ããã©ãã¯ãã³ã¦ã£ã³ãã¦ãé©ç¨ããæéã«ããå¤ã®å¤åãå¹³æ»åãã¾ããã»ã¨ãã©ã®å ´åãæ¢å®å¤ã§ååã§ãã
ã¡ã¢: 0ï½1 ã®ç¯å²ã®å¤ã®å¤ãè¨å®ããã«ã¯ã INDEX_SIZE_ERR
ä¾å¤ãçºçãã¾ãã
次ã®ä¾ã§ã¯ã AudioContext
ã§ AnalyserNode
ã使ãã requestAnimationFrame
㨠<canvas>
ã§æå»é åã®ãã¼ã¿ãç¹°ãè¿ãåéããç¾å¨ã®é³å£°å
¥åã®ããªã·ãã¹ã³ã¼ããåºåãæç»ããåºæ¬çãªä½¿ç¨æ¹æ³ã示ãã¾ãã ããå®å
¨ãªå¿ç¨ä¾/æ
å ±ã«ã¤ãã¦ã¯ã Voice-change-O-matic ã®ãã¢ã調ã¹ã¦ãã ããï¼é¢é£ããã³ã¼ã㯠app.js ã® 108 ï½ 193 è¡ç®ãåç
§ï¼ã
smoothingTimeConstant()
ãæã¤å¹æã«èå³ãããå ´åã¯ãä¸è¨ã®ä¾ãè¤è£½ãã¦ã代ããã« analyser.smoothingTimeConstant = 0;
ãè¨å®ãã¦ã¿ã¦ãã ãããå¤ã®å¤åãããæ¿ãããªããã¨ããããã§ãããã
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
const analyser = audioCtx.createAnalyser();
analyser.minDecibels = -90;
analyser.maxDecibels = -10;
analyser.smoothingTimeConstant = 0.85;
// â¦
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;
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 + 1;
}
}
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