用于音乐创作的高级编程语言 [关闭]
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.
【讨论】:
以上是关于用于音乐创作的高级编程语言 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章