Sonic Piとラズパイでプログラミングで音楽を奏でよう

Raspberry Pi専用のOS「Raspbean」にはSonic Piがプリインストールされています。 Sonic Piはプログラミングをするようにコードを入力していくとエレクトロニック・ミュージックを奏でることができるアプリケーションです。当記事はGETTING STARTED WITH SONIC PI の翻訳記事です。また以下の動画を閲覧するとSonic Piがどのようなものかわかります。Sonic Piを使って Daft  Punkのアカデミックという曲を演奏しています。

 


ダフト・パンクやウィル・アイ・アムのようなファンキーな音楽を作ってみたいと思ったことはあっても、 チェロの弾き方はおろか、持ち方すら分かりませんよね。Sonic Piならそれができるでしょう。

デスクトップのアプリケーションメニューからSonic Piを開いてください。

SONIC PIでの始めての音

これがSonic Piのインターフェースで、3つのメインウインドウがあります。 最も大きなウインドウはコードを書くための場所で、プログラミングパネルと呼びます。 プログラムを動かしたときの情報を表示するための出力パネルもあります。 ウインドウの上にあるhelpボタンをクリックすると、3つ目のパネルが下の方に現れ、 ヘルプドキュメントを表示します。 これはあなたが試用できるいろいろなコードについての情報を含んでおり、 いろいろなシンセサウンドやサンプル、その他いろいろなものがあります。

  1. デスクトップかアプリケーションメニューからSonic Piを起動してください。
  2. Workspace 1を選択し、次を入力してください。play 60
  3. スクリーンの一番上にあるplayアイコンをクリックしてください。何が起こりましたか?
  4. pley 60と入力してplayアイコンをクリックした場合は何が起こりますか?これはコードにバグがある場合の例です。 後者の動作では、エラーパネルがテキストを表示して、修正の必要があるバグがあることを知らせてくれます。 playのスペルを間違えたことが分かります。
  5. では、次を入力してください。
    play 60
    play 67
    play 69
  6. スクリーンの一番上にあるplayアイコンをクリックしてください。何が起こりましたか?
  7. コンピュータはそれぞれの音を順(1つが終わってから次へ)に演奏しています。 しかし、それらは非常に速く行われているので、同時に演奏しているように聞こえます。それぞれの音の間に休みを入れることをコンピュータに知らせる必要があります。 それぞれのplayの後に次を入力することでそれができます。sleep 1sleepの後に入力された数字は秒を表します。 1を入力することは1秒を意味します。 1秒の半分を入力するにはどうしたら良いでしょうか?
  8. それでは、かっこいいメロディを作るためにplayとsleepのシーケンスを書いてみましょう。

STEP 2: メロディをループさせる

Sonic Piの基本をマスターできましたので、メロディを作ってみましょう。

  1. Workspace 2を選択してください。
  2. 次のコードを入力してください。
    play 60
    sleep 0.5
    play 62
    sleep 0.5
    play 64
    sleep 0.5
    play 60
    sleep 0.5
  3. それでは、スクリーンの一番上にあるplayアイコンをクリックしてください。 メロディの最初のパートが再生されます。 これが何か分かりますか?答え: フレール・ジャックこの最初のパートは2回演奏されます。 どのようにして繰り返しすれば良いでしょうか。 このパートをもう一度入力することもできますが、 コードにループを入れるということもできます。
  4. コードの一番上、play 60の上に下記を入力してください。2.times do
  5. そしてコードの一番下、sleep 0.5の下に下記を入力してください。end
  6. スクリーンの一番上にあるplayアイコンをクリックしてください。何が起こりましたか?このパートをSonic Piで演奏してみましょう。下記の例では、コードのいくつかの行がインデントされていることが分かります。 これによりあなたのコードが見やすくなり、playボタンを押してもうまく動かない場合にバグを確認しやすくなります。 スペースキーを2回押すことでコードの行をインデントすることができます。
play 60
sleep 0.5
play 62
sleep 0.5
play 64
sleep 0.5
play 60
sleep 0.5

 無限にループしたい?

ループ文に回数を設定するのは確かに便利ですが、 メロディを無限にループさせたい場合はどうでしょう?

2.times doendを使う代わりに、 loop doendをこのように使います。

loop do
  play 60
  sleep 0.5
end

ステップ 3: MIDIノートと音符

playの後に入力していた値は音符を意味します。 実際にはそれらはMIDIノートナンバーです。 これは、ピアノで演奏される曲を次のような表を使ってSonic Piに変換できることを意味します。

C D E CはMIDIノートでは60 62 64 60

音符からMIDIノートへの変換

C D E F G A B
60 62 64 65 67 69 71

もし演奏しようとしている曲の音符が分かっているのであれば、この方法では少し時間がかかってしまいます。 Sonic Piでは通常の音符を使用することもできます。

動作の確認

  1. 新しいワークスペースで下記を入力してください。
    play :c4
    sleep 0.5
    play :d4
    sleep 0.5
    play :e4
    sleep 0.5
    play :c4
    sleep 0.5
  2. playを押してメロディを聞いてください。MIDIノートを使ったときと同じように鳴っていますよね?

ステップ 4: 音を変える

あなたのメロディをさらに面白くしてみましょう。 使用しているシンセサイザーの音を変更することで面白くすることができます。 Sonic Piのデフォルトのシンセはbeepと呼ばれるものです。

別のシンセを使用するには、シンセを適用したいコードの上で use_synth :シンセの名前を追加する必要があります。

この例ではfmがシンセの名前です。

use_synth :fm
2.times do
  play 60
  sleep 0.5
  play 67
  sleep 0.5
end

シンセを試す

Sonic Piにはクールなシンセがたくさんあります。 それらの名前を調べるためには、スクリーンの一番上にあるhelpアイコンを クリックしてヘルプドキュメントウインドウを表示させてください。 それから左側のヘルプウインドウ内のSynthsタブを選択してください。 好きなシンセ名をクリックして、使い方についてさらなる情報を表示してください。

ステップ 5: サンプルを使用する

Sonic Piでは音符を使って音楽を作れるだけでなく、 サンプルを使用して音楽を作ることもできます。 サンプルとはあなたの音楽に使うことができる、録音済みの音やメロディのことです。 これはあなたの音楽をすごいものにする本当に簡単な方法です。

サンプルを使用するには、プログラム内の再生したい場所でsample :サンプルの名前 を追加する必要があります。

この例では、loop_amenがサンプルの名前です。

2.times do
  sample :loop_amen
  sleep 1.753
end

サンプルを試す

Sonic Piにはたくさんのサンプルがあります。 サンプルの名前を調べるためには、helpをクリックしてから、 左側のヘルプウインドウ内のsamplesをクリックしてください。 好きなサンプルの名前をクリックして、使い方についてさらなる情報を表示してください。

ステップ 6: 2つのメロディを同時に再生する

音楽は、表で演奏されるメロディとは別に、バッキングトラックの繰り返しを持つものがあります。 これまではSonic Piで1つのメロディを演奏してきました。 2つのメロディを同時に演奏してみましょう。

動作の確認

  1. 新しいワークスペースのタブをクリックしてください。
  2. 同時に演奏したい2つのメロディのコードは、 in_thread doendの間に書く必要があります。
  3. in_thread doの下に、あなたのメロディを入力してください。 ここでは、バッキングトラックとしてサンプルを使用しました。in_thread do loop do sample :loop_amen sleep 1.753 end endこれはあなたの音楽のメロディとして動作する最初の「スレッド」です。 バッキングトラックやベースラインとしてコードを入力すると良いでしょう。
  4. 下記を入力してください。
    in_thread do
      loop do
        sample :loop_amen
        sleep 1.753
      end
    end
  5. playを押すと、2つのスレッドが同時に演奏されるのが分かります。

ステップ 7: ライブコード

Sonic Piはリアルタイムでコードを操作、変更、適応できるように、 音楽のライブコーディングができるプラットフォームとして開発されてきました。 これは、すでに書き終えたプログラムを演奏することよりも、 コードで演奏することができるということです。 試してみませんか?

  1. 新しいワークスペースのタブに下記を入力してください。
  2. playを押してプログラムを開始してください。
  3. メロディの演奏中に、最後の三行の各行の先頭に#記号を追加することで コメントアウトしてください。# loop do # play_my_synth # end
  4. 次に、関数内のコードを変更して、もう一度playを押してください。 すばらしいでしょう。
# loop do
#   play_my_synth
# end


 

どうでしたか?Raspberry Piを持っていない方もSonic Piを使って演奏することはできます。Sonic PiはMac OS,Linux,Windowsに対応しているアプリケーションです。興味がある方はインストールしてみてはいかがでしょうか?またRaspberry Piをお持ちでない方はこの機会に購入して、Sonic Piを駆使したライブパフォーマンスをできるようになれば持て囃されるかもしれません。ニコニコ動画とかに投稿したり、路上パフォーマンスとかしたらおもしろそうですね。

Via:SONIC PIの始め方