Web Audio API中音符的频率

时间:2014-04-10 19:29:22

标签: javascript html5 html5-audio web-audio

我创建了audiocontext并将我的麦克风连接到分析仪:

context = new AudioContext();
microphone = context.createMediaStreamSource(stream);
analyser = context.createAnalyser();
analyser.fftSize = 2048;
microphone.connect(analyser);

然后我得到了一些频率数组:

fFrequencyData = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(fFrequencyData);

我想在麦克风前播放一些音符,然后显示它是什么音符。 我如何获得音符的频率? 例如,A1 = 440.00Hz,F#3 = 1480.00Hz。

谢谢!

1 个答案:

答案 0 :(得分:7)

根据Brad的评论 - 您可能不想使用Realtime Analyzer。您还可以查看https://github.com/cwilso/PitchDetect - 您提出的确切问题," noteFromPitch"方法,在https://github.com/cwilso/PitchDetect/blob/master/js/pitchdetect.js的第194行附近,将执行此操作。