Tutorial

介绍

Sonic Pi 是一个基于代码的音乐创作和表演工具。

拥有超过180万用户的多元社区。

基于 Ruby 开发,最初设计用于支持学校的计算和音乐课程,由剑桥大学计算机实验室的 Sam Aaron 与树莓派基金会联合开发。可在主流操作系统中使用。

外部环境依赖

需要下载Sonic Pi

开始使用

运行 Sonic Pi。

启动 CodeLab Adapter,运行 node_sonicPi 插件。

打开 Scratch 编程界面,我们已经制作了一个 demo:Scratch-SonicPi

进阶

更多可用的指令,参考python-sonic

如果你想深入了解Sonic Pi,可以跟着 Sonic Pi 软件内置的文档学习。

发送消息

>= 3.7.2 的 Adapter 支持使用Scratch积木发送OSC消息,消息的参数(args)是一个 list(采用json语法,字符串使用 双引号 )

Receiving OSC

Sonic Pi Receiving OSC

参考这个文档,你也可以基于python-sonic构建一个自定义插件直接与Sonic Pi沟通。

FAQ

Linux用户

Windows 和 Mac 用户开箱可用。Linux用户将自动安装依赖。

Linux (Ubuntu 20.0)环境下安装完 Sonic Pi 后可能会出现程序无法启动的问题,这可能是因为 JACK 与 PulseAudio 在使用声卡上存在冲突造成的,参见 Sonic-Pi 仓库内这个 issue 对该问题的讨论及最终的解决方法 以及 JACK 官方文档对相关问题的解释。具体的操作是:

  1. 在启动 Sonic-Pi 之前,先打开 QjackCtl(安装 Sonic-pi 时会自动安装),在 Settings-Advanced页面下,在 Input Device 中选择一个声卡,同时将 Server Prefix 修改为 pasuspender -- /usr/bin/jackd(我对此操作的理解是明确地为 JACK 选择一个声卡,同时暂停 PulseAudio 对它的可能占用。)
  2. 设置完成后保存,然后在控制页面上点击开始按钮,如果一切顺利终端内没有报错的话,这时再去运行 Sonic Pi 应该就会正常启动了。

Selection_023

参考