哪种编程语言更适合构建音频处理应用程序

时间:2018-07-26 17:38:03

标签: audio audio-processing

哪种编程语言适合构建音频处理应用程序(例如,大胆或Adobe试听)?

我已经知道一些python和一些JavaScript。我可以使用这些语言来构建这样的应用程序吗?另外,我还应该知道什么是先决条件。例如了解声音的工作原理等。了解见解,资源,书籍,图书馆,工具等。

1 个答案:

答案 0 :(得分:0)

对于希望进一步了解数字信号处理的任何人,这是一本非常有用的免费书籍: Scientists and Engineers Guide to DSP 例子恰好在BASIC中! (从好的方面来说,它们是完全可读和可理解的。)

这个问题的本质是不会使自己得到“正确”答案的。有许多处理音频的方法。

我占少数,因为我从事使用Java编写基于音频的应用程序的工作。我喜欢Java,因为它既低级又是一种成熟的,设计良好的语言,支持多核和并发,并且适合我的编程偏好(而不是多余和明确,而不必担心简洁性)。使用Java,您可以参与PCM数据级别,并且可以直接和轻松地与核心库对象javax.sound.sampled.SourceDataLine输出。

有人告诉我

C ++(但并不完全了解具体细节),它具有更高效的低级内部结构,特别是对于过滤所需的某些功能(卷积非常耗费计算能力)。据我所知,大多数音频应用程序,包括编写插件(VST),都是用C ++完成的。

如果您想将自己的作品与Unity或Unreal之类的游戏引擎集成在一起,那么使用C#或C ++是合理的。

我对Web Audio API的了解不足,无法实时了解它的功能。我确实知道我对JavaScript有强烈的偏见,并且发现与Java相比,代码很难阅读和维护。但这可能与我的局限性而不是JavaScript有关。

当我采用Java时,还没有Web Audio API,像Python这样的高级语言对于实时工作来说太慢了,C ++确实让我感到困惑,因为我什至不知道该做什么。我必须导入外部组件才能使声音正常工作,因为该语言本身没有音频命令。 (当我做出选择时,我正处于反微软情绪的大潮中。)

如果有兴趣,我很乐意提供有关Java音频编码细节的更多信息。