初めまして、9日目を担当する、さんた(@santa_sukitoku)です。
突然ですが、メディアアートに興味はありますか?
最近、メディアアートって流行ってますよね。
メディアアートって映像とかプロジェクションマッピングだけだと思われがちですが、実はSoundもメディアアートになることもあります。
「でも、ボク(ワタシ)楽器とか無理だし音符も読めない...」という人も多いと思います!(多分)
そこで、今回は「Sonic Pi」を使ってprogrammingでSoundを作る方法を書いていこうと思います。
Sonic Piとは
まずはSonic Piの説明をしたいと思います。
Sonic Piは、学校でのプログラミングや音楽の授業をサポートするように設計された、ライブコーディング可能な無料のシンセサイザーです。
MacやWindowsだけでなくLinux(raspberry pi)でも動くのでパソコンさえあれば誰でも使うことができます。
Let's Create!
まずは、Sonic Piをダウンロードしましょう。※テキストをクリックすると公式サイトに飛びます。
次にSonic Piを起動しましょう。
画面左側のエディターにコードを書いていきます。
では、試しに
play 70
と入力して、上部分のRunを押してみましょう。
音がなりましたか?
次にplayの後の値を変えてみましょう。
すると、playの後の値が小さいほど低い音が、値が大きいほど高い音が出ることがわかると思います。
playの後の値は、伴盤の番号(ノートナンバー)を表しています。
※ノートナンバーとは上の画像の鍵盤に書かれている番号のことです。
次に、
play 82
play 85
play 89
と入力してRunしてみてください。
複数のplayを書くと、全て同時に演奏されるので、harmony(和音)が奏でられます。
playの後の値を自分で変えてどの組み合わせが良いかさがして行きましょう。
また、音を同時に演奏するのではなく一音ずつ演奏したい場合には、音符の間に sleep
を入れます。
play 82
sleep 1
play 85
sleep 1
play 89
sleep 1
sleepの後の1は一拍休むという意味なので数値を変えると、アルペジオのスピードが変化します。
音程は、音階(音の名前)で指定することも可能で、
ド → :C
レ → :D
ミ → :E
ファ → :F
ソ → :G
ラ → :A
シ → :B
このようにアルファベットで指定します。
試しに音階で指定してみましょう。
play :C
sleep 0.5
play :D
sleep 0.5
play :E
すると、「ドレミ」の順で音が流れるはずです。
また、音階名とオクターブの数字で
♯(シャープ 半音上)は「s」→ 例: Cs3
♭(フラット 半音下)は「b」→ 例: Db3
というように表現するすることができます。
次にシンセサイザーのアンプ(Amp)とパン(Pan)を指定しましょう。
Amp:音の大きさ
「amp:数値」で指定する。
標準が1なのでそこから相対的に指定する。
Pan:音の定位 (左右の位置)
「pan:数値」で指定する。
0が中心で、-1が左、1が右
試しにアンプとパンを指定しましょう。
play :C4, amp: 3.4, pan: 0
sleep 0.5
play :D4, amp: 2.7, pan: -1
sleep 0.5
play :E4, amp: 1.3, pan: 1
また、今までビープ音でSoundを作ってきましたが、音色も指定することができます。
プログラムの初めにuse_synth
と入力してスペースキーを押すと、色々なシンセサイザーの選択肢が出てきます。
例として:piano
を選択します。
use_synth :piano
play :C4, amp: 3.4, pan: 0
sleep 0.5
play :D4, amp: 2.7, pan: -1
sleep 0.5
play :E4, amp: 1.3, pan: 1
すると、ピアノの音色で再生されます。
また、1音ごとにシンセサイザーは指定することができます。
use_synth :piano
play :C4, amp: 3.4, pan: 0
sleep 0.5
use_synth :prophet
play :D4, amp: 2.7, pan: -1
sleep 0.5
use_synth :saw
play :E4, amp: 1.3, pan: 1
シンセサイザーの詳細は、Helpメニューの「シンセ」タブで確認しましょう。
次に、今の状態では音が一回しか流れないのでループさせましょう。
プログラムの始めにloop do
を、終わりにend
を追加しましょう
loop do
use_synth :piano
play :C4, amp: 3.4, pan: 0
sleep 0.5
use_synth :prophet
play :D4, amp: 2.7, pan: -1
sleep 0.5
use_synth :saw
play :E4, amp: 1.3, pan: 1
end
いよいよ最後は...
ライブコーディングです!!
急にカッコよくなりましたね(笑)
先ほどのコードのloop do
をlive_loop :live do
に書き換えましょう。
live_loop :live do
use_synth :piano
play :C4, amp: 3.4, pan: 0
sleep 0.5
use_synth :prophet
play :D4, amp: 2.7, pan: -1
sleep 0.5
use_synth :saw
play :E4, amp: 1.3, pan: 1
end
これだけでライブコーディングができます!!
まとめ
Sonic Piでは簡単な単語と数値を入力するだけでSoundが創れるのでプログラミング初心者の人でもなじみやすいと思うのでこの記事を参考にSoundを創って見てください!