見出し画像

ChatGPTとSonic Piで作曲してみた感想

🧩Udemy講座で学ぶ

受講した講座

受講した講座は「対話AIで音楽を作ろう!【ChatGPT+Sonic Pi】-生成AIと会話しながら作るAI楽曲」です。
内容的には、プログラミングがわからない方でもできる内容ですが、途中の説明はChatGPT頼りでイマイチ頼りないかも。

🧩Sonic Pi(ソニックパイ)

Sonic Piは、音楽デジタルプログラミングシンセサイザーの一つ。音を扱うオープンソースのプログラミング環境。 Rubyをベースにした記法で、コンピューターや音楽の学習に適したシンプルさと、プロの音楽家が扱うにも十分なパワフルさを謳っている。

ウィキペディア

とある通り、Rubyの簡単なコードをデジタル音楽にしてくれるシンセサイザーです。

Sonic Piをダウンロード

🧩「卒業」をテーマにした曲を作曲

講座中で課題として「卒業」をテーマにした曲を作曲してみる。とあったのでその通りChatGPTに頼んでみました。

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

🧩まとめ

いかがでしたか?
作曲してというと、かなり単調なものばかり作ってくれるのでどのくらい使えるかは微妙ですが…曲のアレンジや最初のアイデアなどを作ってもらうにはなかなか楽しそうです。

この記事が気に入ったらサポートをしてみませんか?