69
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Life is Tech ! MembersAdvent Calendar 2016

Day 9

Sonic PiでSoundProgramming!

Last updated at Posted at 2016-12-08

sonic_pi.png

初めまして、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を起動しましょう。
スクリーンショット_2016-12-08_15_01_57.png
画面左側のエディターにコードを書いていきます。

では、試しに

play 70

と入力して、上部分のRunを押してみましょう。
音がなりましたか?
次にplayの後の値を変えてみましょう。
すると、playの後の値が小さいほど低い音が、値が大きいほど高い音が出ることがわかると思います。
playの後の値は、伴盤の番号(ノートナンバー)を表しています。
075.jpg
※ノートナンバーとは上の画像の鍵盤に書かれている番号のことです。

次に、

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と入力してスペースキーを押すと、色々なシンセサイザーの選択肢が出てきます。
スクリーンショット 2016-12-08 16.13.33.png

例として: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 dolive_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を創って見てください!

##参考資料
多摩美術大学 情報デザイン学科 メディア芸術コース Sonic Pi 入門

田所淳 公式Webサイト yoppa.org

69
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
69
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?