RubyでSonic Piを使ってライブコーディングする方法
Sonic Pi は「音楽ライブコーディング」を楽しむために作られたツールで、
Ruby 風の DSL(ドメイン固有言語) で音を生成できます。
本記事では以下をまとめます。
- Sonic Pi の基本構造
- Ruby との違い・Rubyプログラマ として知っておくべきポイント
- 実際のライブコーディング例
- エフェクト、サンプル、シンセ、ループの使い方
- 実践的 Tips
Sonic Pi とは?
Sonic Pi は Sam Aaron によって開発された「コードで音楽を作る」ツールです。
特徴:
- Ruby に似た文法の DSL
- リアルタイムに再実行できる「ライブコーディング」機能
- 低レイテンシなオーディオエンジン(SuperCollider)
- シンセ・エフェクト・サンプルが標準搭載
- 無料 / マルチプラットフォーム
Ruby と Sonic Pi の関係
Sonic Pi は Ruby をベースにした DSL を採用しています。
ただし以下に注意:
| Ruby | Sonic Pi |
|---|---|
| 一般的なプログラミング言語 | 音楽生成専用 DSL |
puts や class など一般 Ruby が使える |
ほとんど使えない |
| 変数は普通に使える | 状態管理が制限される |
| while ループ |
live_loop を使うのが正しい |
つまり Sonic Pi は「Ruby の要素を多く持ちつつも Ruby そのものではない」ツールです。
しかし Ruby の基礎知識があればすぐ使いこなせるようになります。
インストール
Sonic Pi 公式サイトからダウンロードするだけです。
Sonic Pi 公式サイト
まずは音を鳴らしてみる
play 60
sleep 1
play 67
sleep 1
play 72
これはド・ソ・ド(高いド)。
live_loop を使ったライブコーディング
ライブコーディングの要となる live_loop。
実行中のループを コード編集 → Run で即反映できます。
live_loop :beat do
sample :bd_haus
sleep 0.5
end
書き換えれば BPM 変更もリアルタイム。
ベース + ドラムを重ねる例
use_bpm 100
live_loop :drum do
sample :bd_haus, amp: 1.4
sleep 0.5
end
live_loop :bass do
use_synth :fm
play :e2, release: 0.2, cutoff: 80
sleep 0.5
end
エフェクトを使う
live_loop :melody do
use_synth :prophet
with_fx :echo, phase: 0.25, decay: 4 do
play choose([:e4, :g4, :b4, :e5])
sleep 0.5
end
end
サンプルを使う
sample :ambi_choir, rate: 0.5
sample :loop_amen, beat_stretch: 1, amp: 1.2
# ライブコーディング実践:4トラック全体例
use_bpm 120
live_loop :kick do
sample :bd_haus, amp: 1.3
sleep 0.5
end
live_loop :hihat do
sleep 0.25
sample :drum_cymbal_closed, amp: 0.6, rate: 1.5
end
live_loop :bass do
use_synth :fm
play [:e2, :e2, :g2, :e2].tick, release: 0.25
sleep 0.5
end
live_loop :lead do
use_synth :blade
play choose([:e4, :g4, :b4, :d5]), release: 0.4, cutoff: 90
sleep 0.5
end
ライブで使えるテクニック集
✓ パラメータを後からいじる(control)
live_loop :sine do
synth :sine, note: :e4, sustain: 4, amp: 0.5
sleep 4
end
BPM と拍を sync で揃える
live_loop :kick do
sleep 0.5
end
live_loop :melody do
sync :kick
play :e4
sleep 0.5
end
MIDI 連携
midi :e3, sustain: 0.5
まとめ
Sonic Pi は Ruby に似た DSL で扱えるため、
- プログラミングを覚えたい人
- 音楽をコードで遊びたい人
- ライブコーディングパフォーマンスをしたい人
にとても向いています。
Ruby の基本がわかれば、誰でもその日から「音で遊べる」ようになります。
あなたも快適なSonic Pi ライフを謳歌してください!