AIが作曲するための音楽フォーマットを作るよ(Mimi-Assemnbly. Mima! & LLMimi)
ネタバレ
github.com/AruihaYoru/LLMimi にあるREADME.mdをAIに読み込ませて、
Aruihayoru.github.io/LLMimi に打ち込んだらそれだけで曲作れます。
AIで曲を作りたい!!!
....でも、ほとんどのモデルはかねかかるし融通利かないからな~~~
せや!!!
この前、Mimiっていう音声フォーマット作ったんすけどそれがLLMとかAIが作曲するのにとっても向いているってことに気づいた!
だから、文字数制限があるLLMのためにそれ用の音声フォーマットを作ってあげよう。
コンテナ、と定義する。
これは、文字通りコンテナだ。
それ一つが単体のmimiファイルとして扱われる。
そのコンテナを、CSV形式どのタイミングで、どの順序で鳴らすかっていうものを定義させるための、メインループを作成する
それで、それをエンコード。mimi形式にエンコードする。あと、こんな軽量な作業はふつうに自動で動かしておこう。
各コンテナの形式はmimiに準拠。
ただし、ヘッダーは以下の通りに
# Mimi Raw Music Format (仮)
@track 00
# Length: 0x80
....trackは00~FF。これでコンテナ番号を定義する。
メインループは以下の通り
# Mimi Raw Music Format
# Title:
# Tempo: BPM
そして、Track, Start, pitchoffset, Volume, Pan。
これで指定。track00の長さが0x80だとした場合、
00, 00000000, 00, FF, 80
00, 00000081, 00, FF, 80
00, 00000102, 00, FF, 80
...
みたいな感じで指定させます。
pitchoffsetは、そのままpitchに加算ね。
規格名は~....
Mimi-Assembly。要するにmima。
ああ~~かわええ~~~
んで....LLMのためのmimi作曲ツールなのだから、LLMimi。
かわいいね。
ファイルコンテナはzipでいく。
.mimaって拡張子なだけの圧縮フォルダっていう....
Mysong.mima
├── main.s
├── 00.s
└── 01.s
....
これでいいね。.sでいいのかは疑問。
LLMimiのフォルダ構成も。
llmimi-project/
├── index.html # プレイヤー兼エディタ
├── compiler.js # mima -> mimi 変換ロジック
└── player.js # Web Audio API 再生エンジン
これでいいね。
あとAIは足し算間違えそうな気がするんだ
足し算を教えてあげたい。でもできないからな~
ぶっちゃけ、16進数のだいたいの範囲をカバーした表作ってあげてもいいんだな。
....10進数ならある程度ミス防げるだろうか。
なら、0xって書いてない場合、そこを16進数に変換してからmimiにしてみよう。
以上でした!!
github.com/AruihaYoru/LLMimi にあるREADME.mdをAIに読み込ませて、
Aruihayoru.github.io/LLMimi に打ち込んだらそれだけで曲作れます。
おやすみ。