Coding Tranceの衝撃!Strudelでコードからトランス音楽を生成してみた | Futurismo の続き.

トップダウンではなくボトムアップのAI音楽制作へ

DTWとはソフトウェア開発におけるIDEのようなものであり、音楽エンジニアリングもソフトウェアエンジニアリングも、どちらも創作だ. すると、コーディングがClaude CodeのようなAIに駆逐されたので、当然音楽制作もAIができるはず.

AI音楽制作は、トップダウンの方向とボトムアップの方向がある気がする. トップダウンは言語から1曲丸ごと生成するアプローチ. 一方、ボトムアップは小さなMIDIを生成してそれらを組み合わせていくアプローチ.

ReaperをつかってDAWをClaude Codeから制御する

Claude Codeをつかった音楽制作を考えるとすると、基本的にはすべてターミナルから言葉を入力することで完結させたい. わたしはBitwig Studioをつかっているけど、これをやろうとするとまだ外部IFが充実してない.

そこで、OSSの Reaper だ. Reaperには APIがあり、それを動かすReaScript、及びそのPython wrapperであるreapyがある. これを駆使することで、理論上はDAWをClaude Codeから完全制御できるわけだ.

PythonでMIDI生成へ

ソフトウェアにおけるコード生成がAIで自動化できたならば、おなじアプローチでMIDI生成はAIが担うようになるだろう. MIDI生成はいろいろな手段があるかもしれないが、とりあえずは 素のpure pythonでいってみる.

オーソドックスなトランスビートをつくってみる

わたしはトランスがつくりたいんだが、全部いきなり完成させるのはたいへんなので、まずはその前段階のビートメイクから入ってみる.

もっともシンプルなトランスビートをつくってみる. 4つうちkickで、オフビートでhatとbass. bass は MIDIを生成して、残りはとりあえずサンプル音源をつかう.

  step:  1 e & a 2 e & a 3 e & a 4 e & a
  kick   x . . . x . . . x . . . x . . .   4つ打ち
  clap   . . . . x . . . . . . . x . . .   2拍4拍
  ohat   . . x . . . x . . . x . . . x .   オフビート・オープンハット
  bass   . . x . . . x . . . x . . . x .   オフベース (kickの裏)

まずはプロセス制御から

最初のコミットは作曲ですらなく REAPER を外から起動・停止できるかの検証. reaperアプリのstart/stop/restart/connect.

このあたり、エンドツーエンドテストに似ている1. 仮想環境ではないけれど、とりあえずおかしくなったら再起動出来るようにした. reaperのよいところは軽量なところ.

トラックをtomlで管理

トラック情報をtomlファイルで管理することにした。ここにbpm・小節数・各トラックのサンプル・リズム・音量を全部ここに宣言で書く。

[[tracks]]
name      = "kick"
group     = "drums"
sample    = 'Drum - Kick - One Shots/..._Acidtech.wav'
step      = 0.25
velocity  = 120
volume_db = -8.0
rhythm    = { type = "steps", pattern = "x...x...x...x..." }

AIは視覚や聴覚はないが画像解析と音響解析はできる!

感動したのは、自律的に視覚や聴覚に代替する手段を自分で考えて試しはしめたこと.

AIと視覚: スクショでみる

一番びっくりしたのは REAPER の GUI で日本語が豆腐(□□□)になる問題を質問したとき、私はスクショなんて指示していないのに、Claude Code が自分でスクリーンショットを撮って UI を観察し、原因を調べ始めたこと.

AIと聴覚: 音の数値化

ミックスについて、感覚的に自分で調整するよりも、計測していい感じに調整してもらいたい。そこで、サンプル音源をPythonスクリプトで解析した.

  • 各トラックの RMS / 短時間ラウドネス / ピーク、kick を基準にした相対 dB
  • mix 全体のピーク(クリップしてないか)
  • **kick と bass の低域(30–120Hz)の食い合い**を時間波形の相関で判定

また、Claude CodeからLimitterを当てたり、音割れ調査をしたり. このあたり、おそらく課金すれば有料プラグインはありそうだが、実験的に自分でやってみた.

考察

課題は楽曲展開か

このアプローチはまだビートメイクだからうまくいくのかもしれないが、トランスは曲展開をつくっていくのでそこで破綻するかもしれない。まだ実験段階でなんともいえない。

Bitwig Studioだと、これはクリップランチャーに相当するようなものであり、これだけでは曲を完成させることは難しいが、試行錯誤には適している.

GitHub Issueで管理しながら音楽制作エンジニアリング

ソフトウェア開発をするように、GitHub Issues でタスクを切って、コミットで差分を残しながらつくっていった.

もはやここまでくると、音楽制作とはソフトウェア開発の領域といえるのかもしれない. どちらもエンジニアリングという点については同じ.

生成AI時代の音楽制作を妄想してみる

しかし、わたしはもうAIの書いたコードすら読まない. たとえば、音響解析のPythonスクリプトはなにをしているのかみてない. ソフトウェア開発も、音楽制作も、チャット画面に収斂する未来はやってくるのか?

ソフトウェア開発が一番先行しているとすると、ソフトウェア開発はそうなりつつある. もう、2025年で人間がプログラムを書く時代は終わった.

小さな課題は 生成AI以前のDAWのAI対応だがそれは数年で片付く時間の問題だ.

やはりAIは聴覚が今の段階では画像解析よりも弱いのではないか?AIには耳がなく、ループを閉じて自律的な音楽制作はできない. しかし、それも数年の時間の問題なようにも思う.

するとあとは、サンプリングだろうか?コンピュータで完結する音の素材は手に入るが、世界にはたくさんの音がある.


  1. ミライの組込み開発!vagrant × sahara × minitestで実現する仮想エンドツーエンドテスト | Futurismo ↩︎