适合音乐软件开发的编程语言有哪些?

8
我想要编写一款音乐软件,能够播放音乐,可以通过计算机麦克风获取声音并检测音高(使用滤波器算法过滤频率),同时还需要提供良好的用户界面。类似于SmartMusic:http://smartmusic.com 有什么建议适合编写这种软件的语言吗?有人知道SmartMusic是用哪种编程语言编写的吗?
谢谢。
7个回答

15

8
最好的语言很可能是你最熟悉的语言,只要它是一种提供易于访问音频(麦克风/扬声器)硬件的通用语言。Visual Basic、C#、C++和Java都很容易编写,并且可以轻松访问硬件等。
但是,音频处理非常简单,录制/播放API非常普遍 - 因此,最好的语言可能是你在使用时最自信的语言。您可以始终从基本实验开始(记录并播放一些音频)-如果您对此满意,则任何语言中的音频处理方面都将大致相同。

4
我假设您正在实时或准实时地尝试完成上述任务?在这种情况下,您需要寻找编译语言而不是解释性脚本语言,因为用于此类分析的数学运算很可能会在解释性语言中占用过多处理能力。
大多数处理此类信号处理的软件通常是用像C这样的低级语言编写的。您甚至可能会发现有针对您特定平台的处理库可供使用。这绝对是我首先开始寻找的地方,除非您想出于知识好奇心自己实现这些算法。根据您找到的库,然后可以寻找一个能够使用它们的编程语言,这可能或可能不会导致您回到C语言系列(即C、C++、Objective-C,具体取决于您的平台)。

3
似乎你不需要编写复杂的特效和数字声音处理功能,因此你不需要像C++这样的低级语言。我认为你应该更加关注用户界面和可用性。我看到有人建议使用Java。即使Java易于使用,但Java用户界面编程并不是非常实用。我宁愿选择一个非常高级的语言,如Python、C#或Java,并使用更实用的工具包。例如,你可以使用C#的WPF或Winforms。或者使用Python的Qt或Gtk(甚至有Java绑定...但我不确定其状态)。无论如何,使用能让你轻松编码的东西,以便你可以集中精力处理可用性等问题。

1

如果实时性能是一个问题,那么你最好考虑使用C++。 - Steven Keith

1

我使用Delphi。它集成了上述所有功能,它是编译的,具有强大的音频处理库(BASS),并且具有出色的用户界面功能。借助它,我编写了混音器、命令行播放器、频谱分析仪、声音和静音搜索器以及音乐比较器。


1
如果你在学校接触过Pascal语言,那么我建议你选择Delphi。它基于Object Pascal,具有C++的大部分功能(如果不是更多),并且让你远离大多数高级编程概念。你可以用很少的知识实现很多东西。
前面提到的音频库(Bass、Fmod等)都有Pascal接口。关于GUI构建,VCL是一个易于使用的解决方案,FMX则适用于跨平台。
对于初学者或经验较少的程序员(像我一样),Delphi、FMX和Bass的组合是最强大的音频编码设置。其他几乎所有的选择都需要更多的努力或更多的专业知识。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接