こんにちは 作曲大好きスクラムマスターKDDIアジャイル開発センターのたかたにです。
普段はバンドマンしてたり、会社の部活の音KAG\部で作曲をしてます。
はじめに
本題ですが、1曲丸々作ってくれるSunoAIを使って作曲する人が最近、増えてます。
でも、それって気になったとこ直せなかったりかゆいとこに手が届かないことはありませんか?
また、作曲ソフトを使っている方は打ち込みが面倒なこと、打ち込みの案が思いつかないことは多々ありませんか?
そんな方に向けた記事を今回は投稿します。
譜面作成の手順
生成AIを使って、midi譜面を作ってみましょう。
手順は以下です。
- 生成AIと作りたい曲、必要なパート、そのテンポを壁打ちして、ABC記譜法(※1)の譜面を作成させる
- 生成AIにABC記譜法の譜面をpythonで実行する方法/ソースコードを聞いてみる
- music21(※2)をインストールする
- 生成AIに聞いたソースコードを環境に貼り付ける
- 作成したABC記譜法の譜面を貼り付ける
- 各パート分、実行
- 作曲環境に入れてみる。(テンポ等も壁打ちしておくのが大事)
完成!!!
※1 ・・・ ABC記譜法とは、アスキー文字を並べて譜面を表現できるように考案された記法
※2 ・・・ music21とは、MITによって開発された音楽情報処理ライブラリです。本ライブラリでは、楽譜の解析や編集など多岐にわたった処理を行うことが可能
それでは、手順を細かく説明していきます。
ABC記譜法の譜面を作成
普段はもっと細かくどんな曲を作りたいかを壁打ちするが、今回は「かえるのうた」を作ってもらうことにします。
chatGPTを立ち上げて、
あなたは音楽家です。かえるのうたのメロディーを教えてほしいな。ABC記譜法で作成することはできる?BPMもついでに教えてください。
それっぽいものが出てくる。
せっかくなのでドラムパートも作ってもらう。
なんとなく不協和音になる気がしてきたが、デモなのでヨシ!
ソースコードを作ってもらう
こう聞けばよしなにやってくれる。
ABC記譜法の譜面をpythonでmidiに変換したいんだけどできる?
music21をインストールして、、、
pip install music21
以下のコードのpythonファイルを作成
from music21 import converter, midi
def abc_to_midi(abc_notation, output_file):
# ABC記法の譜面を読み込み
score = converter.parse(abc_notation, format='abc')
# MIDIファイルに書き出し
mf = midi.translate.music21ObjectToMidiFile(score)
mf.open(output_file, 'wb')
mf.write()
mf.close()
# ABC記譜法のサンプル譜面
abc_notation = """
X:1
T:Simple Scale
M:4/4
L:1/4
K:C
C D E F | G A B c |
"""
# 出力するMIDIファイルのパス
output_file = 'output.mid'
# AABC記譜法の譜面をMIDIに変換
abc_to_midi(abc_notation, output_file)
midiの作成
ABC記譜法の譜面を上記コードのサンプル譜面部分に貼り付けて実行します。
それを読み込めば・・・
完成〜〜〜!!!
↓作成した曲のリンク↓
https://drive.google.com/file/d/1IAzNguN3iMvvGjJY6s30Dse9US_PDbe2/view?usp=drive_link
カオスだけど、キーがあってるので、それっぽい曲はできました。
感想
- 新曲作ってみるときの壁打ち相手としては悪くなさそう。
- 欲しいループ素材のmidiが作曲環境にない時に簡単なループ素材のmidiを作ってもらうのには良さそう。
- やっぱ曲は自分の手で作るのが楽しいよね!
以上、chatGPTを使用し、midi譜面を作成してみるでした〜
最近作った曲はこちら!
https://www.youtube.com/watch?v=qRmpwQokeLM