我试图写一个简单的调谐器(不,不作另一个调谐器的应用程序),并且在看的AurioTouch样品来源(有没有人尝试过评论此代码?)。
我担心的是aurioTouch似乎并不实际工作很好看的频域图时。 我玩乐器一个音符,我没有看到一个很好下令,小,集,带一个字符串峰值频率在音符的适当频率。
有没有人使用aurioTouch不够了解底层代码是否是功能还是它只是一个粗样品?
我还有其他的选择是使用FFTW或KISS FFT。 任何人有任何的那些经验?
谢谢。
我试图写一个简单的调谐器(不,不作另一个调谐器的应用程序),并且在看的AurioTouch样品来源(有没有人尝试过评论此代码?)。
我担心的是aurioTouch似乎并不实际工作很好看的频域图时。 我玩乐器一个音符,我没有看到一个很好下令,小,集,带一个字符串峰值频率在音符的适当频率。
有没有人使用aurioTouch不够了解底层代码是否是功能还是它只是一个粗样品?
我还有其他的选择是使用FFTW或KISS FFT。 任何人有任何的那些经验?
谢谢。
FFT的使用频率仓和仓频率宽度是基于FFT参数。 为了找到一个频率,你需要记录在它的速率采样至少两次样品中存在的最高频率。 然后发现周期之间的时间。 如果它不是一个纯粹的频率这当然会更难。
无论是图书馆产生它正确与否,你要寻找的是很少实际存在于现实生活中的声音模式。 只有完美的正弦波,电子方式生成,将导致频率甚至中途出现不连续的“秒杀”。 图形。 如果你不相信它尝试发射了在Winamp或媒体播放器“频谱分析仪”的可视化。 这与其说是PC的故障。
想象在你的脑海中的锯齿或sqaure波。 这些尖锐的转变 - 对波角或点,看起来像吨的高次谐波的FFT,甚至一个真正的傅立叶。 如果你见过在一个范围内,或者甚至是应该产生正弦波的仪器产生的“正弦波”真正的“sqaure波/锯齿波”,看看所有的尖锐的角落和缝隙,在短短一个音符(如果你没有一个范围只是放大方式上大胆波 - 你越放大,你看高音符)。 是的,这些偏差都算作频率。
这很难说一个音符和频谱分析有时整个乐团之间的区别。
那么,如何耳朵做呢? 它认为整个波形。 然后你的下大脑在于你的大脑上对输入的是什么:一个音符,没有色彩的一个烂摊子。
你不能这样做的完全,但你可以通过它近似的培训。“
PLAY仪器上的说明和“保存”的频率曲线图。 这样做的笔记在几个频率范围,或更好,但所有音符。
然后内插笔记由2 ^(1/12),用于该仪器所保存的图形乘以间隙填充(由1/2或1/4的步骤)(或1/24 1/4步骤等)。
弄清楚如何将它们存储在像BST或特里一个快速搜索的数据结构。 只有它必须返回一个“如何接近这个”成绩。 它必须通过频率的比例,以确定比赛为好,如果它排在不同的卷。
你从仪器寻找一个音符接下来的时间,只取“听到”频率曲线图,发现它在该数据结构。 您可以录制几种乐器,使不同的波形和寻找他们。 如果有背景声音或多个音符,取最接近的匹配。 然后,如果你想找出其他注意事项,“减去”从采样一个找到的频率模式,和冲洗,泡沫重演。
如果你曾经试图调整自己唱成吉他调谐器,你就会知道,调谐器的arent那么聪明。 当然,一些仪器(语音ESP)确实漂浮在球场上,并产生不断变化的波形(即使没有人唱)。
您就不必完全得到这个奇特的“简单”调谐器的应用程序,但如果你没有将只是一个调谐器应用程式他们,我猜你真的想找出笔记(例如,也许你想自动生成从MIDI文件在电台歌曲;-)
祝好运。 我希望你能找到,做这一切的垃圾而不是推出自己的图书馆。
注意:此网页: http://www.feilding.net/sfuad/musi3012-01/html/lectures/015_instruments_II.htm那么下跌的一页,有各种管风琴的频谱分析。 有很多很多的色彩。 这些都是可以检测 - 有足够的工作 - 如果你“训练”你的应用程序与他们第一次(就像告诉一个孩子,“这是一个单簧管听起来像......”)
aurioTouch看起来奇怪,因为在频率轴上是线性刻度。 这是非常难以解释的FFT输出,当x轴比对数刻度(传统的log 2)其他任何东西。
如果你不能使用aurioTouch的整数FFT,检查出我的图书馆: http://github.com/alexbw/iPhoneFFT
它采用双精度,有多个窗口类型的支持,并实现了韦尔奇的方法 (一段时间内观察时,应该给你更稳定的光谱)。
@zaph中,FFT计算做一个真正的离散傅立叶变换。 这只不过是一种有效的算法,需要数字信号的比特单位表示的优势。
我使用Ooura FFT计算acceleromter数据的FFT。 我并不总是得到正确的频谱。 出于某种原因,Ooura FFT产生具有量级10 ^ 200跨越所有频率的频谱幅度完全错误的结果。