用于音乐创作的高级编程语言 [关闭]

Posted

技术标签:

【中文标题】用于音乐创作的高级编程语言 [关闭]【英文标题】:High-level programming language for music composition [closed] 【发布时间】:2009-02-03 14:16:35 【问题描述】:

我想写一首互动歌曲。它将包含状态和逻辑。听众/用户应该能够使用 GUI 或 MIDI 界面修改一些状态变量。听众可访问的变量不必直接表示速度、音高或任何其他音乐属性。他们宁愿代表逻辑将处理以对歌曲进行更改的值。

这样的平台是我自己写还是已经有适合我想象的东西了?

【问题讨论】:

【参考方案1】:

看看cSounds和PureData。

【讨论】:

Max MSP 与 PureData 非常相似。 SuperCollider 远远优于任何一种(见下面的答案)【参考方案2】:

如果您乐于使用 Java,请查看JFugue。

【讨论】:

否则,JMusic 与 JFugue 相比具有更强大的功能和更大的灵活性,请参阅[1] JMusic 创建的应用程序 [1] explodingart.com/jmusic/applications.html jfugue 的问题在于它需要一个超快的处理器,否则音乐将远远落后于节奏。这就是发生在我身上的事。它似乎不能使用 midi 时间戳或任何东西。【参考方案3】:

我试过PureData、CSound和SuperCollider。

CSound 的编程非常麻烦,并且在版本 4 中对我的要求(24bit/96kHz 实时低延迟 linux)存在严重的稳定性问题。

PureData 是图形化的,这使得与文本文件相比,更难保持代码整洁。作曲很痛苦,因为您必须构建自己的作曲 GUI,它可能很强大,但只要我是唯一的用户,我发现使用文本会更快。

获胜者无疑是 SuperCollider,因为它是一种受 smalltalk 启发的面向对象语言,使用起来非常愉快。它分为 OSC 控制的声音服务器和客户端语言。我可以毫无保留地推荐声音合成服务器并使用该语言创建乐器,因为它具有出色的稳定性、极大的灵活性和令人难以置信的强大功能。我在舞台上现场使用过,表现非常好。

乐谱创建语言患有多手综合症;最近缺乏明确的领导,有太多的方法可以做太多的事情有太多的限制,但它仍然比 CSound 好,因为至少你可以使用合理的高级结构。

仍在寻找一种正确的组合语言。

【讨论】:

很好的答案! SuperCollider 与 ChuckK 相比如何?有这方面的经验吗? 我没有尝试过chuck,但通过研究我猜它是一个足够的低级声音处理选项,但不如通用音频语言那么适合。【参考方案4】:

看看Strasheela

这是一个基于编程语言 Oz 的组合系统。学习 Oz 并不容易,因为它结合了函数式和逻辑编程范式。但是,如果您喜欢 SICP 这本书,那么您可能也会喜欢它。

Strasheela 将音乐创作视为一个约束统计问题 (CSP),并为其寻求“解决方案”。这意味着音乐风格被定义为整数(有限域)上的数学约束,必须对其进行统计,并且内置的约束求解系统会“自动”计算解。

P.S.:我不能在 Oz 中编程,但我正在学习它。

【讨论】:

【参考方案5】:

请参阅 High level languages for Computer Music 和 Programming Languages used for music 寻求帮助。

【讨论】:

【参考方案6】:

我不确定它是否涵盖了您所追求的目标,但请查看 Java Sound API。有关它可以做什么的常见问题解答,请参阅here。好处是已经捆绑在 SDK 和 JRE 中并且是跨平台的。此外,您可以使用任何 Java 工具包构建 GUI。

【讨论】:

【参考方案7】:

如果不是用于交互位,我建议查看 Haskore 或 Nyquist,它们实际上都是用于音乐生成的 DSL。

不过,一定要看看Alex McLean's livecoding 演示。使用SuperCollider 到OpenSoundControl,它更灵活、更具交互性。

【讨论】:

DSL = 领域特定语言【参考方案8】:

答案适用于 .NET: 我发现了一些东西,通过Mark Heath 签出NAudio,这是一个很棒的.NET 音乐库,我想说它应该包含在BCL 中。

midi-dot-net 是 Tom Lokovic 的另一个出色的 C# 项目。

【讨论】:

【参考方案9】:

对于音乐交互,PureData、Max/MSP 和 OpenMusic(最后这两个来自 IRCAM)是最好的。 PureData 是免费软件。谷歌他们!

【讨论】:

【参考方案10】:

我真的不明白你想要做什么,但这里有一些 CL 音乐软件的列表,用于作曲和认知:http://www.cliki.net/Music

【讨论】:

【参考方案11】:

您正在寻找Audio Programming Language。您应该考虑的另一个选项是Processing - 许多艺术家和音乐家都在此类工作中使用。

-亚当

【讨论】:

【参考方案12】:

很遗憾没有人提到查克...... Chuck 是一种专门为音乐/音频生成和合成而构建的编程语言。 您可以在http://chuck.stanford.edu 下载 Chuck 它更容易使用,并且对 c、c++、java 等非常熟悉,但是它也更容易学习。你可以在 Coursera 上免费找到加州艺术大学关于夹头的信息,链接here.

【讨论】:

以上是关于用于音乐创作的高级编程语言 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

字体不是它本身

免费下 Apple Logic Pro X 10.1.0 Multilingual MacOSX

哪些编程语言不被视为高级语言? [关闭]

oc语言关闭指定程序

我可以看到汇编语言程序产生高级语言程序的输出吗? [关闭]

创建音乐可视化工具[关闭]