Audio 音乐处理库的建议?

Audio 音乐处理库的建议?,audio,plot,Audio,Plot,我在上音乐理论课,为了期末考试,我决定编写一个程序,输出关于给定歌曲的简单统计数据。我想知道,有没有人有好的库来完成这样的任务?我不喜欢C++或C,但是如果我被迫使用它们,我会。 我尝试过麻省理工学院的Music21 for Python(我很兴奋,因为我喜欢它的特性),但我从未让它工作过。。。是否有任何库可以只给我任何给定MP3文件的原始数据(按时间绘制的频率)?谢谢 C/C++的libsndfile不错,但可能有点低级。你打算用它做什么? 您也可以查看Java的javax.sound.sam

我在上音乐理论课,为了期末考试,我决定编写一个程序,输出关于给定歌曲的简单统计数据。我想知道,有没有人有好的库来完成这样的任务?我不喜欢C++或C,但是如果我被迫使用它们,我会。


我尝试过麻省理工学院的Music21 for Python(我很兴奋,因为我喜欢它的特性),但我从未让它工作过。。。是否有任何库可以只给我任何给定MP3文件的原始数据(按时间绘制的频率)?谢谢

C/C++的libsndfile不错,但可能有点低级。你打算用它做什么?
您也可以查看Java的
javax.sound.sampled

要找到用代码绘制的时间频率,您可能需要进行一些频域变换,例如FFT或小波。在音频文件中获得的原始数据是时变电压的离散信号。Python有一个内置的wav文件库,使用numpy可以对信号进行FFT分析。
我的一个建议是PureData(http://puredata.info/),一个用于音乐目的的可视化编程环境。该软件将为您提供很多帮助,并在音乐软件开发的DSP部分为您省去很多麻烦。使用PureData,您可以轻松使用时间绘制的频率。如果这个想法是为音乐理论课开发一些东西,这是一个很好的解决方案

除非您熟悉图形编程语言(pd、max、reaktor),否则我推荐您使用。它有一个fft库,一个合理的gui/图形库,但它真正的优势在于基于它的SmallTalk语言,它提供了丰富的功能和面向对象的工具。我发现与这个系统一起工作真的很愉快。它附带了一个交互式解释器,它可以帮助开发更多的是临时的而不是结构化的


试试看,你可能会喜欢。

哇,这正是我想要的!这有API吗?我看到这个程序有自己的语言…不,它没有API。但在这个网站上:你可以找到一个关于如何在Python的“类似API”环境中使用它的建议。我不太确定我的计划是什么,但我希望制作一些算法来尝试显示有关正在处理的音乐文件的简单信息。我希望只使用原始数据来提取节拍、乐器数量等。我不太喜欢C/C++,但Java看起来不错,因为我必须在Mac上演示。谢谢对于beat分析,您需要非常低的级别,C或Java可能是您唯一的选择。分析仪器的数量是一个非常困难的问题。对不起,伙计们,但我已经决定,对于一个甚至不需要这种东西的课程来说,这是一项太复杂的任务,在几周内完成不了。我想我将使用Snack for Python生成一些古典音乐,因为对于非程序员来说,这似乎更有意思(我怀疑我的老师会不会因为我从头开始编写节拍提取算法而给我任何荣誉)。感谢所有帮助过我的人!我还没有完成Python和音乐;)同意频率分析或歌曲节拍提取不太适合我上过的任何音乐理论课:-),尽管它们可能是计算机音乐研究的良好起点。如果你的理论课侧重于分析西方古典音乐,你可能会考虑以分数作为输入(即以离散音调、节奏等为输入而不是原始音频)的编程领域,并对其进行分析。音乐21看起来是一个很好的开始方式。哈,有点晚了,但我决定写我自己的。我编写了一个基本的音乐库(半音符、和弦等),并将其与一个粗糙的合成器(同样是Python)相链接,该合成器直接写入WAV文件。这让我得了A;)