我想学习如何编写将分析歌曲的音乐应用程序.
我将如何开始这个,是否有一个分析声波的库?
我知道C,C++,Java,Python,一些程序集和一些Perl.
相关问题: 音乐模仿算法
计算机音乐的构成和分析是一个巨大的领域.这类工作有两个基本领域,有些重叠.
算法组合与音乐的产生有关.这可以基于统计方法,例如马尔可夫链,使用分形或混沌过程的数学模型,或利用来自AI的技术,例如专家系统,神经网络和遗传算法.
音乐信息检索涉及识别音乐片段之间的共同语法,共性和相似性度量,以及识别唯一性(有时称为声学指纹识别).
存在许多许多库,工具和专用编程语言,它们可以帮助解决这些问题的不同部分.这是Python的音乐相关程序和库列表.有很多技术可供选择; 你应该能够找到一些能够为你工作的首要任务.通过非常低级别的频率分析工具(如傅里叶变换)重新实现"音乐解析器" ,正如其他答案所暗示的那样,虽然可能,但是很难并且几乎肯定是不必要的.
有关进一步的建议和具体问题,国际音乐信息检索协会有一个邮件列表,您可能会发现它非常有用.
一旦你超越了Lennart提到的FFT内容,你可能想看一下Markov链来分析音符和聚合模式之间的间隔.
这是一种踩踏的地面,但过去曾使用马尔可夫链来构建一种来自各种歌曲的旋律统计模型,可用于产生新的旋律.马尔可夫链可以用书面英语句子做同样的事情.有关如何看起来的一个例子,请玩megahal chatterbot以了解马尔可夫链如何产生在统计上看起来像其输入的损坏输出(在megahal的情况下,它看起来像英语句子)
你可以将前100名混合起来,然后让马尔可夫链发电机爆炸下一个大热门.
另一方面,您可能想要考虑音乐本身的任何质量都不会使歌曲流行.或者也许是与音乐营销相结合的音乐质量问题.