我正在创建一个允许用户循环播放音乐的应用程序.目前,我们的原型允许这些“循环标记”(实现为UiSliders)每秒捕捉,指定循环的开始和结束.显然,当循环播放音乐时,秒钟是非常粗暴的方式来处理,所以我想使用节拍.
我不想做任何除了标记节拍以外的其他UiSliders捕捉到:
给我们的loadMusic方法一个音频文件.
>运行它通过库来检测节拍或它们之间的间隔(也许).
>将该值输入到滑块的setNumberOfTickMarks:方法中.
>利润!
不幸的是,我通过Google和SO进行的大部分结果都产生了更多高级的跳频检测库,如混音器所使用的那样.在我的情况下过度杀伤
这是CoreMedia,AVFoundation还是AudioToolBox可以处理的东西?如果没有,还有其他图书馆可以处理吗?我对苹果文档的研究只是产生了相关的结果…对于MIDI文件.但是苹果自己的软件有这样的功能,比如iMovie’s snap-to-beats functionality.
在这一点上,任何指导,代码或摘要都将非常有用.
编辑:做了更多的挖掘,似乎正确的术语,我正在寻找是发病检测.
解决方法 起始检测算法在从原始音乐信号到使用频域技术方面有许多风格.如果你想要一个快速和容易的方法来确定节拍的位置:
将音乐信号切成小段(20-50ms的块)
>计算信号的平方和平均值:Sum(Xn ^ 2)/ N(其中N是每20-50ms的样本数)
如果你想要更复杂的技术:
http://bingweb.binghamton.edu/~ahess2/Onset_Detection_Nov302011.pdf
或为了硬核治疗:
http://www.elec.qmul.ac.uk/people/juan/Documents/Bello-TSAP-2005.pdf
总结以上是内存溢出为你收集整理的可可 – 使用AVFoundation / CoreMedia /其他框架来检测节拍/ Onsets全部内容,希望文章能够帮你解决可可 – 使用AVFoundation / CoreMedia /其他框架来检测节拍/ Onsets所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)