memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

sonic pi 素晴らしすうぃ。。。

コードを書いて音楽を制作するツールというか環境です。詳しい紹介は素晴らしい記事がQiitaにありますのでそちらをどうぞ。

qiita.com

音楽制作の新しい方法論であり、言語であり、ツールそのものが完成度が高いのでそのまま音楽制作に使えるのではないかと想像します。

ダウンロードは以下から。

Sonic Pi - The Live Coding Music Synth for Everyone

プログラミング教育のツールとしても考えられているようで、授業での取り入れ方、教師向けの資料なども公開されています。

SONIC PI: LIVE & CODING

そのためか、WindowsMac以外に、Raspberry Piでも動作します。教育向け環境として予算が少ない小中学校などでも導入がしやすいように考えられているようです。

音楽といえば、歌を歌ったり、楽器を演奏したり、楽譜が読めるようにしたり、様々な分野があることや歴史を学んだり、することが教育の中心にあるように思います。それに加えてですね、音楽を数字やプログラムコードとして捉えることができる。。。そういう機会を提供してくれているのだと思います。間口は広い方がいいですね。何かを始めるときには。これじゃなきゃいけないってのは面白くありません。

昨日、インストールして初めて動かしてみて。。。ずーっと以前に遊んだことがあるChuckに似ているなと思いました。

chuck.cs.princeton.edu

これを知ったときに以下のような遊びをした覚えがあります。積極的に関わっていると記憶に残るもので。

youtu.be

講義も終わったので、少し遊んでみました。。。決してかっこよくはありませんが、音楽を数字で捉える難しさというか面白さを実感します。あとRubyでかけますので、Rubyの遊びにもなったりするところがオモシロイですね。

a = scale :g, :ionian

live_loop :a do
  use_synth :fm
  play a.shuffle.tick
  sleep (1/2.0)
  sleep (1/2.0) if rand > 0.3
end

live_loop :b do
  sample :drum_bass_hard
  sleep (1/2.0)
end

live_loop :c do
  sample :drum_cymbal_pedal
  sleep (1/6.0)
end

言語的なことはまだよくわかっていませんが、sleepを入れることで、直前までにplayあるいはsampleで指定した音を伸ばすことができます。sleep (1/2.0)は1小節(4分の4拍子)の半分と考えて2分音符という感じで、sleep (1/6.0)は1小節に6個音符が入るので2分音符の3連符になる感じです。音楽は算数でもありますので。。。DTMをやっていると自然と身につくことですね。

ちなみにlive_loopと書くことで、それぞれのloopを並列で動作することができます。ちなみにloopと書くとそこで処理がループしますので、それ以下にはプログラムが進みません。つまり並列実行しないという仕掛けのようです。

ちなみに上記を実行すると以下のような音になります。

soundcloud.com

sonic piを知った当初、新しいmidi程度に思っていたのですが、ツールとして非常に完成度が高いですし、触っているうちに組み合わせを楽しめるところもあり「ああ、これって楽器に近いな。。。」と感じるようになりました。

もう少し遊んで、何かイベントでもできたらいいなぁ。。。と思います。

英語ですが、作者によるイントロがわかりやすいように思います。どんなことができるのか説明してくれています。

youtu.be

これで楽曲を作るとなると大変そうですが、いじりながら偶然できる音楽を楽しむのもオモシロイです。

いや、楽しいです、はい。