树莓派学习系列6——Sonic Pi音乐编程

前言

一直不晓得还有音乐编程这一说,很是激动的体验了一把代码做音乐。给大家分享一下,也记录一下。跟着前面推荐的书刷的,发现版本肯定不一样,语法有点问题。这个编程使用的语言是Ruby,不要望而却步,一步一步看教程还是蛮有意思的。


准备工作

确保树莓派上安装了Sonic Pi(这里我的是V2.10)


操作与实践

界面

树莓派学习系列6——Sonic Pi音乐编程_第1张图片


实例

1.小星星

play 60
sleep 0.5
play 60
sleep 0.5
play 67
sleep 0.5
play 67
sleep 0.5
play 69
sleep 0.5
play 69
sleep 0.5
play 67
sleep 0.5

储备知识

play 后面的数字代表音符,每个音符都是钢琴的一个按键。60代表C调,69代表G调,这些数字是MIDI键盘音符编号。

这里play 60还可以写作play :C ,不要忘了冒号。还可以根据自己对于音调的喜好改为play :C4都可以,如果需要sharp的声音可以加s,平缓的声音加b。例:play Ds or play :Db

sleep代表延迟多少s

补充:这里这样的顺序播放也可以换成数据结构 play_pattern [60,60,67,67,69,69,67]





2.使用不同的音乐合成器(音乐有点诡异,调完一些参数中你会觉得更诡异)

live_loop :guit do
 with_fx :echo, mix:0.3, phase:0.25 do
    sample :guit_em9, rate:1
 end
 sleep8
end

live_loop : boom do
 with_fx :reverb, room:1 do
    sample :bd_boom, amp: 10,rate: 1
 end
 sleep 8
end

:前要加空格,不同的音调等控制之间以“,”隔开
loop:永远不会停止,除非按停止键。
FX:reverb(混响) and echo(回声)
mix:取值0到1之间,0为不混合,1为全混。
phase:The time between echoes in beats. 回声节拍间间隔
sample:实现有的音乐,可以理解为各种函数库直接调用。
rate:声音变化的速率。
room:The room size in squared metres. default:10
amp(amplitude):振幅,即音量大小,为0是静音。
补充:pan:声道。 -1:左声道 ;0:正常 1:右声道    例:pan :-1




3.可以改编成奥特曼灯闪的音乐

in_thread do
 use_synth :saw
 10.times do
  if rand < 0.5
   play 37
  else
   play 49
  end
  sleep 2
 end
end

in_thread do
 use_synth :pretty_bell
 20.times do
  play 49
  sleep 1
 end
end

in_thread:线程,可以让多个曲谱同时播放
10.times do:循环10次,可以改编数字大小来改编循环次数
rand:产生0-1的随机数



个人感觉想要系统的学习还是看官方的教程比较好。这里只是带大家入门和感受音乐编程的魅力。

你可能感兴趣的:(--树莓派)