こんにちは。スマートキャンプの郷田です。
本記事はスマートキャンプ Advent Calendar 2019 - Qiitaの24日目の記事です。
私は普段から趣味で楽器演奏や曲作りをしているので、前から少し気になってたSoundPiを使ったサウンドプログラミングで簡単なループ音源を作ってみようと思います!
SonicPiとは?
コードベースで音楽制作のできる無料ツールです。
Windows、macOS、Raspberry Piで実行することができます。
利用時の画面はこちら
作成したものはこちら
今回は3時間でできるところまでを目指して作成してみました。
最初の1時間でチュートリアル、ヘルプを読み、残りの2時間でコーディングをしました。
チュートリアルはダウンロードしたアプリケーション内で閲覧でき、日本語に翻訳されているため始めるには十分な情報量です。
曲の題材として、この記事はクリスマスイブの公開のため、ジングルベルを選曲しました。
作成した時の気分でEDM風?なアレンジにしてみました。
曲
※10秒程度の音源が再生されます soundcloud.com
コード
SonicPi
# Sonic Pi v3.1 ## setting use_bpm 132 ## main live_loop :ch_lead do with_fx :octaver do lead_s :E4, 0.5 lead_s :E4, 0.5 lead_s :E4, 1 lead_s :E4, 0.5 lead_s :E4, 0.5 lead_s :E4, 1 lead_s :E4, 0.5 lead_s :G4, 0.5 lead_s :C4, 0.75 lead_s :D4, 0.25 lead_s :E4, 2 lead_s :F4, 0.5 lead_s :F4, 0.5 lead_s :F4, 0.75 lead_s :F4, 0.25 lead_s :F4, 0.5 lead_s :E4, 0.5 lead_s :E4, 0.5 lead_s :E4, 0.25 lead_s :E4, 0.25 lead_s :G4, 0.5 lead_s :G4, 0.5 lead_s :F4, 0.5 lead_s :D4, 0.5 lead_s :C4, 2 end end live_loop :ch_bass do 2.times do bass_s :C1, 0.5 end sleep 3 3.times do bass_s :C1, 1 end sleep 1 2.times do bass_s :F1, 0.5 end sleep 3 2.times do bass_s :G1, 1 end bass_s :C1, 2 end live_loop :ch_beat do with_fx :reverb, mix: 0.5 do 2.times do sample :bd_haus sample :bd_klub sleep 0.5 end sleep 1 sample :drum_snare_soft, amp: 5, rate: 1.7 sleep 2 2.times do sample :bd_haus sample :bd_klub sleep 1 end sample :drum_snare_soft, amp: 5, rate: 1.7 sample :bd_haus sample :bd_klub sleep 2 end end live_loop :ch_hh do 2.times do sample :drum_cymbal_closed, rate: 2.4 sleep 0.5 end sample :drum_cymbal_open, rate: 1.4, amp: 0.5, start: 0.2, finish: 0.7, release: 1 sleep 1 8.times do sample :drum_cymbal_closed, rate: 2.4 sleep 0.25 end end ## sounds define :bass_s do |n, crotchet| use_synth :dsaw play n, amp: 2 sleep crotchet end define :lead_s do |n, crotchet| use_synth :saw play n, amp: 0.7, sustain:0.2, release: 1.2 * crotchet use_synth :noise play n, amp: 0.5, sustain:0.2, release: crotchet sleep crotchet end
コードはSonicPiにコピペすれば、そのまま再生できるはずです!
SonicPiを使ってみた感想
DTMのUIで行える音楽と比べて、SonicPiでできることがプログラミングであるため「抽象化も具体化もとても高い音楽を作ることができそう!」という可能性を感じました!
波形の選択、ADSRを数値での設定、Fxの設定といったシンセサイザー機能や、サンプリング音源の再生速度や逆再生といったサンプラー機能等がとても楽しいです!
逆に DTMやシンセサイザーといった音楽の知識が全くない人だと、楽しみ方がわからないかと思います。
今回のコードはかなり煩雑になってしまっているのですが、先人が沢山いらっしゃるので、学んで趣味の一つとして楽しんで行きたいと思います!
今の所、仕事では使えなさそうです。
最後に
私の作った曲はいかがだったでしょうか?
SonicPiの詳細ついてはググれば色々と記事がでてくるので、ご自身でお調べください!
そして、プログラミングと音楽制作(DTM)が好きな方であれば、直感的にコードで音楽を表現できるので、是非1度は触って見ることをおすすめします!