我创建了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。
谢谢!
答案 0 :(得分:7)
根据Brad的评论 - 您可能不想使用Realtime Analyzer。您还可以查看https://github.com/cwilso/PitchDetect - 您提出的确切问题," noteFromPitch"方法,在https://github.com/cwilso/PitchDetect/blob/master/js/pitchdetect.js的第194行附近,将执行此操作。