前回、いろんな音がだせるオシレーターをつくった。 音が出せるようになったら、やっぱりどんな波形か見たくなるのが世の常。 ということで、今回はWeb Audio APIとSVG/Canvasをつかってオシロスコープをつくる。 パフォーマンス検証のためSVGとCanvasの双方をつかったが、サンプルが小さかったこともあり違いは見られなかった。(詳細は後述する) 音声波形データを取得する OscillatorNodeをAnalyserNodeに繋ぐことで、音声波形や周波数のデータを取得できる。 // Oscillator → Analyser → Speakerの順に繋ぐ const ctx = new AudioContext(); const analyser = ctx.createAnalyser(); analyser.connect(ctx.destination); const o