ChatGPTとSonic Piで作曲してみた感想
🧩Udemy講座で学ぶ
受講した講座は「対話AIで音楽を作ろう!【ChatGPT+Sonic Pi】-生成AIと会話しながら作るAI楽曲」です。
内容的には、プログラミングがわからない方でもできる内容ですが、途中の説明はChatGPT頼りでイマイチ頼りないかも。
🧩Sonic Pi(ソニックパイ)
とある通り、Rubyの簡単なコードをデジタル音楽にしてくれるシンセサイザーです。
🧩「卒業」をテーマにした曲を作曲
講座中で課題として「卒業」をテーマにした曲を作曲してみる。とあったのでその通りChatGPTに頼んでみました。
# 卒業テーマの曲 - Sonic Piコード
use_bpm 60 # テンポを設定
define :play_chord_sequence do
# コード進行を演奏
play_chord [:c4, :e4, :g4]
sleep 1
play_chord [:a3, :c4, :e4]
sleep 1
play_chord [:f3, :a3, :c4]
sleep 1
play_chord [:g3, :b3, :d4]
sleep 1
end
live_loop :melody do
use_synth :piano
play_chord_sequence
end
live_loop :strings do
use_synth :blade
play_chord_sequence
sleep 4
end
live_loop :bass do
use_synth :fm
play :c2, release: 4
sleep 4
end
このようなコードを出してくれたので実際にSonic Piにこのコードを張り付けて「Run」してみると…
単調ではありますが、こんな曲を作ってくれました。
Sonic Pi上でWavで録音できるので便利です。(Noteに掲載するにはYouTubeに載せるために静止画を付けてMP4にして掲載する手間がありますが)
画像はChatGPTでDALL-Eに作成してもらいました。
詳しく見ると、音階はこんな感じで
Cは[ド]で60になります。
音のアレンジはこんな感じ
🧩ジングルベルをアレンジ?
次にChatGPTにクリスマスが近いのでの「ジングルベル」をSonic Piのコードで記述してください。できたのがこちら。
# ジングルベル - Sonic Piコード
use_bpm 120
define :play_jingle_bells_melody do
use_synth :piano
# 前半部分
play_pattern_timed [:e4, :e4, :e4], [0.5]
play_pattern_timed [:e4, :e4, :e4], [0.5]
play_pattern_timed [:e4, :g4, :c4, :d4], [0.5, 0.5, 0.5, 1.5]
play_pattern_timed [:e4], [1]
play_pattern_timed [:f4, :f4, :f4, :f4], [0.5]
play_pattern_timed [:f4, :e4, :e4, :e4], [0.5, 0.5, 0.5, 0.5]
play_pattern_timed [:e4, :e4, :e4, :e4], [0.5]
play_pattern_timed [:e4, :d4, :d4, :e4], [0.5, 0.5, 0.5, 0.5]
play_pattern_timed [:d4, :g4], [0.5, 1]
# 後半部分
play_pattern_timed [:g4, :g4, :g4, :g4], [0.5]
play_pattern_timed [:g4, :f4, :e4, :d4], [0.5, 0.5, 0.5, 0.5]
play_pattern_timed [:c4], [1]
play_pattern_timed [:g4, :g4, :g4, :g4], [0.5]
play_pattern_timed [:g4, :f4, :e4, :d4], [0.5, 0.5, 0.5, 0.5]
play_pattern_timed [:c4], [1]
play_pattern_timed [:g4, :g4, :g4, :g4], [0.5]
play_pattern_timed [:g4, :g4, :f4, :e4], [0.5, 0.5, 0.5, 0.5]
play_pattern_timed [:f4, :d4, :c4], [0.5, 0.5, 1]
end
live_loop :jingle_bells do
play_jingle_bells_melody
sleep 1 # 次の繰り返しまでの間隔
end
🧩まとめ
いかがでしたか?
作曲してというと、かなり単調なものばかり作ってくれるのでどのくらい使えるかは微妙ですが…曲のアレンジや最初のアイデアなどを作ってもらうにはなかなか楽しそうです。