yoppa.org


前橋工科大学 – サウンドプログラミング(環境情報デザイン) 2020

Sonic Pi 基本2 – プログラムの構造化とデータ構造

今回も引き続きSonic Piの基本について実際に音を出して確認しながら学習していきます。今回はSonic Piの言語の構造に注目して様々な機能を紹介していきます。Sonic PiはRubyというプログラミング言語をベースにしています。ですのでRubyの様々な構造をSonic Piで使用することが可能です。今回は、プログラムを構成する3つの大きな構造、順次処理 (Sequence)、繰り返し(Iteration)、条件分岐(Selection)をSonic Piで応用して演奏してみます。また後半はリストというデータ構造について紹介します。最後はここまでの知識を総動員して、Steve Reichの “Piano Phase” という曲をSonic Piで再現してみます。

スライド資料

サンプルプログラム

notes = [:E4, :Fs4, :B4, :Cs5, :D5, :Fs4, :E4, :Cs5, :B4, :Fs4, :D5, :Cs5]

use_synth :prophet
with_fx :reverb do
  live_loop :reich1 do
    i = 0
    12.times do
      play (notes[i]), release: 0.4, pan: 0.8, cutoff: 80
      sleep 0.15
      i = i + 1
    end
  end
  
  live_loop :reich2 do
    i = 0
    12.times do
      play (notes[i])+12, release: 0.4, pan: -0.8, cutoff: 80
      sleep 0.1501
      i = i + 1
    end
  end
end