我们将以前的材料之一专门用于
OpenMusic-一种在OOP上编写音乐的工具。 我们还讨论了为创建音频作品而量身定制的
编程语言 。
今天,我们决定继续这个话题,并谈论Sporth语言。 它是专门开发的,以便作曲家可以在现场表演中编写计算机音乐。
图片来自ichael Pierce / Unsplash什么是Sporth
通常,术语“
音乐编程 ”应理解为表示使用音序器,合成器和软件编写音乐的过程。 但是有些艺术家转向了更多的“硬核”工具-程序代码和专门的PL。
Sporth是其中一种。
Sporth(SoundPipe fORTH的缩写)是一种用C
语言实现的堆栈
编程语言 。它的运算符使您可以生成不同频率和键的信号,使用定序器的功能表并实现参数调制。
该语言是由工程师Paul Batchelor开发的,他
曾经与
Google ATAP团队的发言人一起
工作过 。 他在2018年国际现场编码会议上介绍了他的项目。 尽管
源存储库是在GitHub上创建的-更早于2016年。
根据Paul的说法,在设计Sporth时,他受到了诸如Forth和PostScript之类的堆栈语言的启发。 Forth支持许多CPU,但它们只能使用有限的计算资源。 例如,它在具有1 KB RAM的
Jupiter ACE中使用。 至于PostScript,其变体以PDF格式显示,并且其解释器已内置在许多打印机中。
语言特征
Sporth使用堆栈的机器模型传递参数。 程序员将一组互连的信号发生器(单元发生器)放入其中,它们负责再现声音。 例如,下面的线将形成频率为440 Hz,振幅为0.5点的正弦波(仪器具有自己的刻度)。
440 0.5 sine
可以使用“ +”符号组合信号发生器。 例如,以下命令列表的结果是
双音DTMF信号 。
440 0.2 sine 350 0.2 sine +
该语言支持使用节拍器(地铁)形成的触发器(单脉冲)。 以下示例显示了如何使用Sporth构建
信封生成器 :
4 metro 0.5 maytrig 0.001 0.01 0.01 tenvx 1000 0.5 sine *
Sporth允许您使用变量,参数调制和直接堆栈操作。 使用的所有运算符都简洁明了,并按顺序执行。
这种语言结构提高了编写代码的速度。 这是为什么将其用于现场会议的主要原因之一-当作曲家-程序员在现场观众面前实时编写音乐时。 顺便说一下,您可以独立研究所有运营商并在实践中进行尝试-网络在Go上具有
交互式环境 。
在该网站上,您还可以找到一些
音乐示例 。
照片苗条司仪/不飞溅但是Hacker News的居民指出 ,该语言的文档很少,不适合新手“音乐程序员”。 作者承诺会解决此问题,但现在您可以在GitHub上阅读主题食谱和规范 。
Sporth还具有与第三方应用程序集成的API。 它打开了交互式环境中不可用的功能,例如自定义回调函数。 特别是,该框架
的开发人员已经
使用 Sporth来为iOS合成
AudioKit声音。
类似物
Sporth类似物的数量非常广泛,但是可以区分
ChucK语言。 它是由普林斯顿大学的工程师Perry Cook(Perry Cook)和Guy Wong(Ge Wang)开发的,专门用于现场表演。 ChucK是一种多范式语言,具有可用于Windows,Linux和Mac OS X的强大数据类型。它支持并行执行多个线程,并允许您在运行时直接修改程序。
有关实施示例的文档
可在项目网站上找到 。
除了ChucK,还有一个
Supercollider-这不仅是一种语言,而且还是实时音频合成环境。 该工具允许您编写用于处理声音的自定义GUI:滑块,分析器等。 您可以使用MIDI设备和
HID来管理您的录音。
有趣的是,音乐也使用前述的Forth堆栈语言编写,这启发了Paul Batchelor。 它基于
Synstack项目 -一个用于在
STM32F4 / F7微控制器上生成声音的
软件和硬件平台 。 Synstack支持25个以上的运算符:信号发生器(正弦波,锯,贝塞尔曲线),滤波器,代数函数等。Forth还用于
图形的动态
渲染 -为此
提供了一个
Forth Haiku平台。 从理论上讲,该乐器适合于可视化声音。
同样值得注意的是音乐编程工具,例如Csound,Pure Data和Importu。 如果您必须使用其他任何缪斯语言。 编程,在评论中分享您的经验。
我们的“ Hi-Fi世界”的其他阅读:
什么是音乐节目-谁来做,为什么
PC如何通过软件征服媒体行业:讨论Pro Tools和Media Composer
就像火的裂缝一样,门的吱吱作响和噪音变成了音乐
“您阅读的所有内容都会对您不利”:说唱音乐如何进入法庭
电子游戏音乐制作人:一些最著名的名字
从哪里获得项目的音频样本:九种主题资源的选择