SONIC PIの始め方
ダフト・パンクやウィル・アイ・アムのようなファンキーな音楽を作ってみたいと思ったことはあっても、 チェロの弾き方はおろか、持ち方すら分かりませんよね。Sonic Piならそれができるでしょう。
デスクトップのアプリケーションメニューからSonic Piを開いてください。
SONIC PIでの始めての音
これがSonic Piのインターフェースで、3つのメインウインドウがあります。 最も大きなウインドウはコードを書くための場所で、プログラミングパネルと呼びます。 プログラムを動かしたときの情報を表示するための出力パネルもあります。 ウインドウの上にあるhelpボタンをクリックすると、3つ目のパネルが下の方に現れ、 ヘルプドキュメントを表示します。 これはあなたが試用できるいろいろなコードについての情報を含んでおり、 いろいろなシンセサウンドやサンプル、その他いろいろなものがあります。
- デスクトップかアプリケーションメニューからSonic Piを起動してください。
- Workspace 1を選択し、次を入力してください。
play 60
- スクリーンの一番上にあるplayアイコンをクリックしてください。何が起こりましたか?
pley 60
と入力してplayアイコンをクリックした場合は何が起こりますか?
これはコードにバグがある場合の例です。 後者の動作では、エラーパネルがテキストを表示して、修正の必要があるバグがあることを知らせてくれます。play
のスペルを間違えたことが分かります。- では、次を入力してください。
play 60 play 67 play 69
- スクリーンの一番上にあるplayアイコンをクリックしてください。何が起こりましたか?
- コンピュータはそれぞれの音を順(1つが終わってから次へ)に演奏しています。
しかし、それらは非常に速く行われているので、同時に演奏しているように聞こえます。
それぞれの音の間に休みを入れることをコンピュータに知らせる必要があります。 それぞれのplay
の後に次を入力することでそれができます。sleep 1
sleep
の後に入力された数字は秒を表します。 1を入力することは1秒を意味します。 1秒の半分を入力するにはどうしたら良いでしょうか? - それでは、かっこいいメロディを作るためにplayとsleepのシーケンスを書いてみましょう。
STEP 2: メロディをループさせる
Sonic Piの基本をマスターできましたので、メロディを作ってみましょう。
- Workspace 2を選択してください。
- 次のコードを入力してください。
play 60 sleep 0.5 play 62 sleep 0.5 play 64 sleep 0.5 play 60 sleep 0.5
- それでは、スクリーンの一番上にあるplayアイコンをクリックしてください。
メロディの最初のパートが再生されます。
これが何か分かりますか?
答え: フレール・ジャック
この最初のパートは2回演奏されます。 どのようにして繰り返しすれば良いでしょうか。 このパートをもう一度入力することもできますが、 コードにループを入れるということもできます。 - コードの一番上、
play 60
の上に下記を入力してください。2.times do
- そしてコードの一番下、
sleep 0.5
の下に下記を入力してください。end
- スクリーンの一番上にあるplayアイコンをクリックしてください。何が起こりましたか?
このパートをSonic Piで演奏してみましょう。
下記の例では、コードのいくつかの行がインデントされていることが分かります。 これによりあなたのコードが見やすくなり、playボタンを押してもうまく動かない場合にバグを確認しやすくなります。 スペースキーを2回押すことでコードの行をインデントすることができます。2.times do play 60 sleep 0.5 play 62 sleep 0.5 play 64 sleep 0.5 play 60 sleep 0.5 end
無限にループしたい?
ループ文に回数を設定するのは確かに便利ですが、 メロディを無限にループさせたい場合はどうでしょう?
2.times do
とend
を使う代わりに、
loop do
とend
をこのように使います。
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では通常の音符を使用することもできます。
動作の確認
- 新しいワークスペースで下記を入力してください。
play :c4 sleep 0.5 play :d4 sleep 0.5 play :e4 sleep 0.5 play :c4 sleep 0.5
- 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つのメロディを同時に演奏してみましょう。
動作の確認
- 新しいワークスペースのタブをクリックしてください。
- 同時に演奏したい2つのメロディのコードは、
in_thread do
とend
の間に書く必要があります。 in_thread do
の下に、あなたのメロディを入力してください。 ここでは、バッキングトラックとしてサンプルを使用しました。
これはあなたの音楽のメロディとして動作する最初の「スレッド」です。 バッキングトラックやベースラインとしてコードを入力すると良いでしょう。in_thread do loop do sample :loop_amen sleep 1.753 end end
- 下記を入力してください。
in_thread do 16.times do play 75 sleep 1.753 play 74 sleep 0.25 end end
- playを押すと、2つのスレッドが同時に演奏されるのが分かります。
ステップ 7: ライブコード
Sonic Piはリアルタイムでコードを操作、変更、適応できるように、 音楽のライブコーディングができるプラットフォームとして開発されてきました。 これは、すでに書き終えたプログラムを演奏することよりも、 コードで演奏することができるということです。 試してみませんか?
- 新しいワークスペースのタブに下記を入力してください。
define :play_my_synth do use_synth :prophet play 50, attack: 0.2, release: 1.3 sleep 0.5 end loop do play_my_synth end
- playを押してプログラムを開始してください。
- メロディの演奏中に、最後の三行の各行の先頭に
#
記号を追加することで コメントアウトしてください。# loop do # play_my_synth # end
- 次に、関数内のコードを変更して、もう一度playを押してください。 すばらしいでしょう。
このページについて
このページはラズベリーパイ財団が権利を保有するRaspberry Pi Documentationを五十嵐システムズが日本語訳したものです。
Creative Commons Attribution 4.0 International Licenceのもとで公開されております。
原文はhttps://github.com/raspberrypi/documentationの成果によって作成されています。
なお、このページは2015年6月に翻訳しており、それ以後の更新内容は翻訳に反映していないため、内容が原文とは異なる場合があります。