我想编写一个可以播放音乐的音乐软件,可以检测从计算机麦克风中获取的声音音调(使用声音滤波器滤除频率的算法),并启用良好的用户界面。类似于smartmusic:http://smartmusic.com
对于编写此类软件可能最合适的语言的任何建议?有谁知道smartmusic编码的语言是什么?
感谢
答案 0 :(得分:12)
使用语言专门用于计算机音乐和 dsp ,否则您将重新发明轮子。
答案 1 :(得分:7)
最好的语言很可能是您最熟悉的语言,只要它是一种很好的多用途语言,可以轻松访问音频(麦克风/扬声器)硬件。 Visual Basic,C#,C ++,Java都可以快速轻松地编写,并且可以很好地访问硬件等。
但最终,音频处理非常简单,录制/播放API非常普遍 - 因此最好的语言可能是您最有信心使用的语言。你总是可以从一个基本的实验开始(录制和播放一些音频) - 如果你对它的发展方式感到满意,那么它的音频处理方面就会大不相同。
答案 2 :(得分:2)
我假设您正在尝试实时或接近实时执行上述操作?在这种情况下,你一直在寻找编译语言,而不是解释脚本语言,因为这种分析所需的数学很可能需要在解释语言中具有太多的处理能力。
大多数处理这种信号处理的软件都倾向于使用像C这样的低级语言编写。您甚至可能会发现有一些库可用于您的特定平台的这种处理。这肯定是我开始寻找的第一步,除非你想要出于好奇心来实现这些算法。根据您找到的库,您可以找到可以使用它们的编程语言,这可能会也可能不会导致您回到C语言系列(即C,C ++,Objective-C,具体取决于您的平台)
答案 3 :(得分:2)
您似乎不需要编写复杂效果和数字声音处理功能...因此您不需要像C ++这样的低级语言。我认为你应该把重点放在用户界面和可用性上。我看到Java已被建议。即使Java易于使用,Java用户界面编程也不是很实用。我宁愿选择Python,C#或Java等高级语言,也可以使用更实用的工具包。例如,您可以使用WPF或Winforms与C#。或者Qt或Gtk for Python(甚至还有Java绑定......但我不确定它的状态。)。无论如何使用一些东西,让你轻松编码,以便你可以专注于可用性和东西。
答案 4 :(得分:0)
我建议使用Java。
它有自己的声音处理API,相当容易学习。
http://java.sun.com/products/java-media/sound/
'Tux Guitar'(开源)是用Java编写的,并说明了可能的内容:
答案 5 :(得分:0)
我使用Delphi。它结合了上面的所有功能,它是经过编译的,它具有强大的音频处理库(BASS),并具有出色的用户界面功能。有了它,我写了一个混音器,命令行播放器,频谱分析器,声音和沉默搜索器,以及音乐比较器。
答案 6 :(得分:0)
如果你熟悉学校的Pascal语言,那么我建议你选择Delphi。它基于Object Pascal,它具有C ++的大部分功能(如果不是更多),它使您远离大多数高级编程概念。只知道很少就可以获得很多。
前面提到的音频库(Bass,Fmod等)都有Pascal接口。关于GUI构建,VCL是一个易于使用的解决方案,如果您想要多平台的话,可以使用FMX。
Delphi,FMX和Bass的组合是最有效的音频编码设置,适合初学者或程序员,没有经验(像我一样)。事实上,其他一切意味着需要更多的努力或更多的专业知识。