ChatGPTを使った「音作成」(その2) | 貯え 小道具 興味ない?

貯え 小道具 興味ない?

「貯えもの」とは、いってもお金をご想像の方は、ご遠慮くださいまし。
Storage = Data Storage
関わってお仕事したり、使ってて感じたことなり
記すBlogでございます。
トラックバックを時折頂きますが、削除する場合がございます。

ChatGPTを使った「音作成」(Pythonプログラミング)」という記事を先日書いたのですが、その元になった書籍(電子書籍)を読み進めています。この記事を書いた時に試した「ChatGPT」の利用も継続しています。

 

 

まだ読んでいる途中ですが、目次を見る限りこの書籍では幅広くPythonによる音楽のプログラミングを取り扱っている様です。今は第3章(コンピューターミュージック)を読み終えたところなのですが(第4章が「MIDI」)、「ChatGPTを使った「音作成」(Pythonプログラミング)」での正弦波合成から発展してオルゴールを例にとり、自動で「音楽」を演奏する(言わば簡単な自動作曲プログラム)を取り扱っています。(取り扱っているのは音楽の用語では「カノン進行」)

 

なので、

カノン進行の10小節の長さの譜面を書いてみて」

とプロンプトを書いてみたところ

「C - G - Am - Em - F - C - F - G」

を使って、

「この8小節を基礎にして、10小節版にする場合、最後に2小節の終止(たとえばG→C)を加えるのが自然です。」と回答してきました!

更に

MIDI / MusicXML / PDF 譜面 の形でも生成できます。」

と追加の回答があったので、

 

midiデータとして演奏できるデータ列で書いて!」

 

とプロンプトを与えたところ

 

「カノン進行(10小節)MIDIイベント列(テキスト表記)」

 

を回答してきたのですが、(今の環境ではMIDI作成用ライブラリ(midiutilmido)が使えないため、)「直接MIDIファイルを生成することができません。」という回答だったのですが、

 

「私がPythonスクリプトを示すので、
あなたのPC上で実行すると canon_10bars.mid が生成されます。
(Windows・Macどちらでも動きます)」

 

という方法は取れるそうなので、Pythonのスクリプトを実行することにしました。

 

# ファイル名: make_canon10_midi.py
from midiutil import MIDIFile

midi = MIDIFile(1)
track = 0
tempo = 120
channel = 0
volume = 90

midi.addTempo(track, 0, tempo)

note_map = {
    "C3": 48, "C#3": 49, "D3": 50, "D#3": 51, "E3": 52, "F3": 53, "F#3": 54, "G3": 55, "G#3": 56, "A3": 57, "A#3": 58, "B3": 59,
    "C4": 60, "C#4": 61, "D4": 62, "D#4": 63, "E4": 64, "F4": 65, "F#4": 66, "G4": 67, "G#4": 68, "A4": 69, "A#4": 70, "B4": 71
}

chords = [
    ("C4", "E4", "G4"),
    ("G3", "B3", "D4"),
    ("A3", "C4", "E4"),
    ("E3", "G3", "B3"),
    ("F3", "A3", "C4"),
    ("C4", "E4", "G4"),
    ("F3", "A3", "C4"),
    ("G3", "B3", "D4"),
    ("G3", "B3", "D4"),
    ("C4", "E4", "G4"),
]

start = 0
for chord in chords:
    for note in chord:
        midi.addNote(track, channel, note_map[note], start, 4, volume)
    start += 4

with open("canon_10bars.mid", "wb") as f:
    midi.writeFile(f)

print("canon_10bars.mid を生成しました。")
 

(# プログラムここ迄)

 

更に実行方法も回答に含まれていたので

「pip install midiutil
python make_canon10_midi.py」

と実行してみました。

すると「canon_10bars.mid」が出来上がりました。

 

MIDIファイルとして再生することもできるのですが、WAVファイルに変換して再生することができるかを調べてみたのですが、この段階はChatGPTの回答は実行するにも他のツールをインストールしないといけなかったりして試してもエラーが出てしまいました。最終的にはMacで以前使ったことのある「LMMS」のWindowsを版をインストールしてサウンドフォントの設定を行い(参考にした記事:「音がなりました(LMMS)」)、再生確認して「LMMS」の[ファイル]-[エクスポート...]を使って「WAV」ファイルに変換しました。

 

今回の「ChatGPT」の活用では、「カノン進行」という音楽の用語を元に「MIDIデータ」という「PCでの音楽表現」を活用し「WAVファイル」というPCでの音のファイル形式の1つを指定して、書籍の「音のプログラミング」を実現しました。音楽の知識もプログラミングの知識もそれほど無くてもそれなりに音のプログラミングが出来るので、使うほどに「ChatGPT」の実力には驚かされています。

 

#追記(2025/10/09)

AIを使った作曲に関しては、以前記事を書いたことがあります。幾つかあるのですが「AI作曲の本を買ってきました」とか「「Flow Machine」で自動演奏」などです。今回とは違う部分も多いのですが参考に記します。