Help us understand the problem. What is going on with this article?

Sonic PiでSoundProgramming!

More than 1 year has passed since last update.

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした