Web Audio API とキャンバスを使用してビジュアル EQ を作成しています。次の関数を使用して、HTML5 Canvas の対数グラフに頻度をプロットしています。
function frequencyToPixel(freq){
var min = Math.log(graph.min)/Math.log(10)
, max = Math.log(graph.max)/Math.log(10)
, range = max-min
, pixel = (Math.log(freq)/Math.log(10) - min) / range * canvas.width;
return pixel;
}
この方程式を逆にして、特定のピクセルが関連する周波数を返す関数を取得したいと思います。現在、次の関数を使用していますが、目的の結果が得られません。たとえば、上記の関数に 1000 を入力すると、434.93 が返されます。したがって、次の式に 434.93 を代入して 1000 を返すことができるはずです。
function pixelToFrequency(pixel){
var min = Math.log(graph.min)/Math.log(10)
, max = Math.log(graph.max)/Math.log(10)
, range = max-min
, x = (pixel * canvas.width * range) + min
, frequency = Math.pow(10, x);
return frequency;
}
方程式を間違った方法で再配置した可能性が高いので、助けていただければ幸いです。