树莓派 —— Sonic Pi(声音编程)

Sonic Pi是一个开源的编程环境,设计初衷是为了通过创建声音制作音乐的流程来进行编程概念的探索和教学。

Sonic Pi的执行的代码基于Ruby,这是一种漂亮又简洁的编程语言。这意味着你可以写很多代码而不需要考虑太多关于语法和大小括号的问题——尽管对于复杂程序这些很重要。

1、GETTING STARTED(开始学习)

你可以在Raspbin系统的applications菜单的Education中找到Sonic Pi程序。打开这个程序,你将会看到类似下面的窗口:

这就是Sonic Pi的程序界面。窗口中主要包含三个部分。最大的部分是你写代码的地方,我们叫这里为编程面板。右上角的控制窗口为输出面板,这里会显示你的程序执行过程中的信息。右下方的窗口是错误面板,当你的代码中有错误的时候会在这里显示错误信息。

2、MAKING SOUNDS(制作声音)

在Workspace 1中输入以下内容:

play 60

现在点击Play按钮,这个音符将会执行。MIDI将值60指定为C音。

尝试将play 60更改为pley 60看看会有什么错误。

现在输入以下代码:

play 60
play 67
play 69

然后在点击Play按钮一次。

这些音符执行的很快,以至于听起来好像是同时发声一样。使用sleep在音符之间添加暂停:

play 60
sleep 1
play 67
sleep 2
play 69

3、A TUNE:FRERE JACQUES(一首曲子:雅克兄弟)

雅克兄弟这首曲子的开头为:

C D E C 或者在MIDI中的音符为60 62 64 60。

音符与MIDI音符值对照:

C D E F G A B
60 62 64 65 67 69 71

以下是曲子:

play 60
sleep 0.5
play 62
sleep 0.5
play 64
sleep 0.5
play 60
sleep 0.5

4、LOOPING(循环)

为了重复执行一系列指令,你可以使用循环。以下是Ruby语言循环的示例:

2.times do
  play 60
  sleep 0.5
  play 62
  sleep 0.5
  play 64
  sleep 0.5
  play 60
  sleep 0.5
end

5、FUNCTIONS(方法)

你可以在一个方法中定义一系列执行,以后可以多次调用这个方法以避免复制黏贴多行代码:

def frere
  play 60
  sleep 0.5
  play 62
  sleep 0.5
  play 64
  sleep 0.5
  play 60
  sleep 0.5
end

以后就可以输入frere来调用这个方法。例如在一个循环中调用:

4.times do
  frere
end

6、SYNTHS(合成器)

合成器能够让play方法发出不同的声音效果。默认的合成器是“pretty_bell”,但是你可以自己更改:

"pretty_bell"
"dull_bell"
"beep"
"saw_beep"
"fm"

尝试一下不同的合成器:

with_synth "fm"
2.times do
  play 60
  sleep 0.5
  play 62
  sleep 0.5
end

7、THREADS(线程)

你可以使用线程来同时播放两首曲子。类似于循环,它也是以end关键字为结尾的代码块:

in_thread do
  with_synth "saw_beep"
  2.times do
    play 60
    sleep 0.5
    play 67
    sleep 0.5
  end
end

8、WORKSPACES(工作空间)

你可以在Sonic Pi程序窗口中使用多个工作空间。这意味着你可以在其它工作空间中试用你的代码块,而不需要删除当前的代码。建议你使用其它的工作空间来试用代码,做实现或沙盒测试。

9、SONIC PI FILES(Sonic Pi文件)

如果你选择保存为文件,你就可以以后再返回来或者分享给别人。Sonic Pi文件是一个简单的文本文件,因此你可以在其它计算机上查看和编辑,也可以在其他树莓派上运行。

原文地址:http://www.raspberrypi.org/documentation/usage/sonic-pi/README.md

时间: 2024-10-24 14:11:36

树莓派 —— Sonic Pi(声音编程)的相关文章

从零开始搭建Raspberry Pi机器视觉编程环境

从零开始搭建Raspberry Pi机器视觉编程环境 本文主要包括如下内容: 安装Raspbian系统 连接和设置网络 安装中文支持 用电脑控制树莓派 通过SSH远程登录树莓派命令行界面 安装VNC远程登录树莓派图形桌面 通过串口连接树莓派 安装OpenCV及相关开发包 一键备份树莓派SD卡 1 安装Raspbian系统 拿到树莓派后第一件事当然是装系统.安装树莓派系统所需配置: 1个输出5V,>700mA(通常选择1A或2A)的USB电源适配器 1根micro USB线(安卓线) 1张拷贝好系

基于树莓派的Linux串口编程_实现自发自收

串口是计算机上一种非常通用设备通信的协议,常用PC机上包含的是RS232规格的串口,具有连接线少,通讯简单,得到广泛的使用. Linux对所有设备的访问是通过设备文件来进行的,串口也是这样,为了访问串口,只需打开其设备文件即可操作串口设备.在linux系统下面,每一个串口设备都有设备文件与其关联,设备文件位于系统的/dev目录下面.如linux下的/ttyS0,/ttyS1分别表示的是串口1和串口2. 树莓派UART端口的位置:见下图的GPIO14(TXD).GPIO 15(RXD) 本文是基于

用树莓派Raspberry Pi和Micro:bit做一个自拍器

在这个项目中,我们将使用Python来构建一个由Micro:bit触发树莓派Raspberry Pi和相机模块的自拍器.这是开始使用硬件和简单文本编程的好方法. 我们将学习: 如何设置Raspberry Pi相机 如何在Micro:bit和Raspberry Pi上使用输入和输出引脚 用Python代码控制GPIO引脚 用Python代码控制相机模块 材料: 带有SD卡和常规外围设备的Raspberry Pi Raspberry Pi camera module Micro:bit USB A

树莓派raspberry pi配置

(1)国际化语言 树莓派初装系统之后,首次启动会出现“raspi-config”工具,如下图:(若不是初次启动,在命令模式下,请输入 sudo raspi-config 命令,即可调出此界面.若在图形桌面下,打开桌面的 LXT 客户端,输入 sudo raspi-config 命令也可以调出这个工具.   1.如上图,通过键盘上下键,将蓝条,移动到第 4 步“Internationalisation Options”,回车进入,会出现下图:   2.如上图,“Change Locale“,就是汉

ALSA声音编程

1. ALSA设备驱动将ALSA设备描述分为四层,从上到下为: default default:0 plughw:0,0 hw:0,0 不同的层次,对设备的控制权限不同,比如hardware parameters 的period/buffer size 需要在plughw:0,0 和 hw:0,0 这两层才会作用. 2. Hardware Parameters && Software Parameters 对alsa-core设置,叫做Software Parameters,而对audio

树莓派(Raspberry Pi)搭建简单的lamp服务

树莓派(Raspberry Pi)搭建简单的lamp服务: 1. LAMP 的安装 sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql –安装mysql.apache.php sudo chmod 777 /var/www/ –设置web目录的权限 2. phpmyadmin 安装 sudo apt-get install phpmyadmin –安装后选择apache2 3.配置 sudo

安装树莓派 Raspberry PI

安装树莓派 树莓派终于到货了,是这个样子的 上面有一行日期是 Raspberry PI (c) 2011.12 下载镜像,写入SD卡 http://www.raspberrypi.org/downloads/ 选择这个镜像: RASPBIAN Debian 2014-01-07 780M的压缩包,很大的样子 似乎还有个NOOBS的安装方式,完全无感 顺便展示一下SD卡,通过查阅可用SD卡列表,似乎是支持个别的64G Class10的卡的,就像这个,编号是 Transcend SDXC 64G C

树莓派(raspberry pi)学习4: 更改键盘布局(转)

树莓派(raspberry pi)用了几次后,发现键盘老是按错,一些字符打不出来或打错 这个问题,折腾我半天.还是把心得分享一下吧 上网查,发现是键盘布局不对,树莓派(raspberry pi)是英国产品,默认键盘布局是英国(GB),我们用的键盘布局一般是美国(US)的 更改键盘布局,命令如下: sudo dpkg-reconfigure keyboard-configuration 进入后,选通用的101键PC键盘 按tab键,到OK,按Enter确定 在键盘layout选择中,选Other

树莓派(raspberry pi)学习11: 将树莓派变成一个Web服务器(转)

将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等. 一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php. 树莓派可以安装这个LAMP系列,但Apache 和 MySql对于树莓派这个小小的机器,太重了,主要是消耗内存多\速度慢\占用磁盘大(约200M吧) 所以要安装一个轻量级的Web服务器. 经试用,推荐组合为:  nginx + php + sqlite nginx 是个轻量级的Web服务器,比Apache不差 s