寻找富有表现力的音频编程语言或库
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
【讨论】:
以上是关于寻找富有表现力的音频编程语言或库的主要内容,如果未能解决你的问题,请参考以下文章