目次
Claude3.7で楽曲を生成するためにLilypondを活用してみる実験メモ
テキストベースで音楽を記述できれば、ChatGPTやClaudeなどのLLMでも作曲ができるはず。 GNU Lilypondの形式で出力させることでCluade3.7でも、それっぽい曲が生成できたため実験メモとして残す。
環境
- OS: Windows11
- ビルド: lilypond-2.24.4-mingw-x86_64
プロンプト
記法のエラーが発生することを懸念し、2ステップに分けて生成させた。
LilyPond記法を用いて王道進行を記述し\midi {}の記述によりmidiを生成せよ
生成された成果物をsample.lyとして保存し、lilypond.exe sample.lyにてコンパイルされることを確認。
いい感じですね。少し傾向を変えて、ボーカロイド曲で病んでいる女の子の曲を作成して同じように記述してください
Claudeは褒めると伸びると個人的には思っている。
そして生成されたものがこれだ。midファイルをmidi2audioでサウンドフォントを使って演奏した結果のmp3を添付しておく。
歌詞
同時に生成されるPDFのスクショ
動かしてみたい人向けlyファイル (生成物本体)
所感
音楽的知識がないため評価しにくいところではあるが、歌詞と主旋律がマッチしていて、歌っているように聞こえる。 伴奏で一定のコードを奏でているし、ドラム、lower、upper、melodystaffと複数の楽器に分けて生成できている。
midiファイルなので、DTMの知識がある人が仕上げたらもっといい感じになりそうな感じはある。
Lilypond形式で記述するほうが、ドレミなどの音を自然言語で指定するより正確であるし、お互いに楽だ。 データ部分は記号の羅列に見えるが、Claudeにはしっかりと音を表す表現として認識されているように思う。
Claude Proに加入したついでに実験したものであるが、構文エラーを推論モードで解決できるのも便利だった。 Lilypondは比較的シンプルな記法だと思うので、プロンプトに例示をいれるとよく効く。
参考
Lilypondの使い方 https://qiita.com/keiarr/items/c6220c5ad2f234222874
midiを演奏してmp3にする方法 https://qiita.com/NoriakiOshita/items/7696ce5fa42d4cc02b0c