从Web Audio API EQ的像素值获取频率
Getting frequency from a pixel value for Web Audio API EQ
我正在使用Web Audio API和画布创建一个可视化EQ。我使用以下函数在HTML5画布上绘制对数图中的频率:
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;
}
很可能我把方程式重新排列错了,所以如果有任何帮助,我们将不胜感激。
下面的函数计算出对数缩放画布频率图上给定像素的频率:
function pixelToFrequency(pixel){
var min = Math.log(app.graph.min)/Math.log(10)
, max = Math.log(app.graph.max)/Math.log(10)
, range = max-min
, frequency = Math.pow(10, pixel * (range / canvas.width) + min)
return frequency;
}
pixel = (Math.log(freq)/Math.log(10) - min) / range * canvas.width
试试这个?freq=E((Math.log(10)*(像素*(范围/画布宽度))+Math.log(图形最小值))
看看这是否有帮助。其中,E是括号中参数的欧拉数。这可能相当于你在那里的东西,老实说,我没有仔细看。不过值得一试。
相关文章:
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 获取图像的平均外部像素颜色
- 获取以屏幕像素为单位的旋转SVG元素的边界
- 谷歌地图:获取点击或标记(x,y)像素坐标内的标记点击侦听器
- 使用回调获取图像像素数据
- 如何使用javascript获取像素中左/右/上/下属性的值
- 画布-在多个画布叠加中获取像素颜色
- Circle-Canvas获取lineWidth的像素颜色
- 获取元素的编号's视口内的像素
- 以非像素为单位获取HTML DOM元素的CSS高度,在我的例子中是英寸
- 获取元素左侧的像素Javascript似乎只有在窗口稍微调整大小时才起作用
- JS Canvas经常获取像素值
- .height() 以百分比返回高度,如何以像素为单位获取它
- 如何从顶部获取窗口位置(以像素为单位)
- 以像素为单位获取整个页面的高度
- 获取返回的数据表的大小(以像素为单位)
- 传单:如何在变焦后,在变焦开始之前获取纬度液化天然气的像素位置
- 无法从画布获取像素数据
- 当屏幕 CSS 像素比大于 1 时,在不同的浏览器上获取相同的 window.screen.height 和 windo
- 使用 javascript 获取位图的像素