寻找富有表现力的音频编程语言或库

Posted

技术标签:

【中文标题】寻找富有表现力的音频编程语言或库【英文标题】:Looking for an expressive audio programming language or library 【发布时间】:2010-12-02 00:44:41 【问题描述】:

我正在寻找一种音频处理语言或库,可以让我尝试不同的合成技术。我查看了我认为它的功能很棒的处理,但还没有找到任何鼓舞人心的(和简单的)音频库。

作为基线,我想简单地创建自己的样本缓冲区并播放它们(理想情况下是实时的)。另外,处理 MIDI 事件的能力会很棒。我是一位经验丰富的 C++ 程序员,所以我可以在本地完成它,但希望有更多的 DSL(领域特定语言)方法。

我可以访问 Windows、Mac 或 Linux,所以还不太关心平台。我可以处理的其他语言是 C#、Java 和 Python。

谢谢

詹姆斯

【问题讨论】:

【参考方案1】:

根据您希望远离低级管理细节的程度,您可能需要查看 CSound ,或者如果您不想实际编写代码,基于补丁的系统 PureData 很棒跟...共事。正如@Lou 指出的那样,ChucK 很有趣(但我上次检查时太麻烦了,无法使用)。

如果您真的想编写代码,请查看Synthesis Toolkit,这是一组用于音频处理和合成的 C++ 类。

对于应用框架,我推荐JUCE,它对音频/midi IO 和 GUI 元素的跨平台处理非常出色。

【讨论】:

【参考方案2】:

Max MSP 是一款极具表现力的音频制作工具。

我想你可以说它是一种高级工具,而不是一种低级编程语言。我对它的印象是,它是面向技术音乐家或艺术工程师的,但无论如何它很糟糕,如果你愿意的话,你可以用它来降低水平。

【讨论】:

【参考方案3】:

我一直是SuperCollider 的忠实粉丝。它专为 Mac OS X 设计,但也适用于 Linux。

该语言主要基于 SmallTalk,如果您了解函数式编程的基础知识,就很容易上手。 SC Server 输出的声音质量非常好,应用环境中内置了大量文档,并且可以在线获取。

【讨论】:

【参考方案4】:

SuperCollider 的一个有趣点是在安卓设备上的使用,它通过其他模块与 python 互通。 这是example

【讨论】:

【参考方案5】:

我知道你没有说 Ruby,但看看始祖鸟

https://github.com/gilesbowkett/archaeopteryx/wiki

或查克

http://chuck.cs.princeton.edu/

【讨论】:

第一个是 ruby​​ -- 第二个是 DSL。【参考方案6】:

看看 NAudio,这是一个开源的 .NET 音频 SDK,用于在 Windows 中处理音频文件和设备。一些功能包括:

http://naudio.codeplex.com/

NAudio Features:

Play back audio using a variety of APIs
Decompress audio from different Wave Formats
Record audio using WaveIn, WASAPI or ASIO
Read and Write standard .WAV files
Mix and manipulate audio streams using a 32 bit floating mixing engine
Extensive support for reading and writing MIDI files
Full MIDI event model
Basic support for Windows Mixer APIs
A collection of useful Windows Forms Controls
Some basic audio effects, including a compressor

【讨论】:

以上是关于寻找富有表现力的音频编程语言或库的主要内容,如果未能解决你的问题,请参考以下文章

用于输出音频程序可读的 MIDI 文件或文本的 Python 接口

Dart 语言核心概念

函数式编程和解耦

laravel 教程

ElasticSearch基础入门

带有红宝石集合/可枚举的酷技巧和富有表现力的片段[关闭]