【AIと自作】マイギターコードアプリが完成!~複雑なDAWを補う「自分専用の介助ロボット」~

はじめに 

曲に豊かな表情をつける方法の一つに「和音の工夫」があります。今や生成AIが自動的に曲を作ってくれる時代ですが、AIが作った曲は何度聴いても心に刺さらない…そう感じるのは私だけではないはずです。 やはり自分で和音を工夫して音楽を作りたい。そう思ってDAW(CubaseやGarageBand)に向かうのですが、高齢になってくると、ますます複雑化するDAWの操作がどんどん億劫になってしまいます。特にDAWには「ギターの指板型エディタ」が搭載されていません。高機能なギター音源(Ample Soundなど)を使えば指板入力も可能ですが、そこへ辿り着くまでの操作すら遠く感じてしまいます。

「複雑怪奇な装置から、自分に必要なことだけを抜き出した簡単な仕組みを作りたい。まるで介助ロボットのようなアプリが欲しい」。そんな思いから、生成AIの力を借りて、Macで動く自分専用の「マイギターコードアプリ(Python/Tkinter)」を自作しました。

字幕一覧(クリック)

(00:00:00) 今回は、コードはコードでも、ギターのコードの作成というテーマです。
(00:00:08) 曲に表情をつける方法の1つに、和音の工夫があります。
(00:00:16) 和音の構成も、今や生成AIが自動的に作ってくれる時代になっています。
(00:00:26) ただし、生成AIで作った曲は何度聴いても心に刺さらない。
(00:00:34) そういうふうに感じるのは、私だけではないはずです。
(00:00:41) 久しぶりに昔のように自分で音楽を作ろうと思ってCubaseに向かうのですが、
(00:00:49) こっちがどんどん高齢になって頭が弱くなっているところへ輪をかけて、
(00:00:56) 最近のDAWはますます複雑になってきています。
(00:01:03) だから、どんどん億劫になってしまう。
(00:01:08) この複雑怪奇な装置やアプリから、必要なことだけを抜き出して、
(00:01:15) 簡単な仕組みを作ることができればいいわけですね。
(00:01:21) だから、介護ロボットとか介助ロボットのようなものが欲しいわけです。
(00:01:28) それを自分で作るということです。
(00:01:32) そこに力を貸してくれるのが、生成AIなのですね。
(00:01:38) 1つ1つの音をノートと言いますけれども、
(00:01:44) そのノートをトラックに書き込む道具をエディターと言いますが、
(00:01:50) DAWはキーエディター、ドラムエディター、
(00:01:56) スコアエディターの3つは用意されているんですが、
(00:02:01) ギターの指板エディターは、
(00:02:06) 少なくともCubase、GarageBandには搭載されていません。
(00:02:13) そこで掘り下げてギター音源アプリに注目すると、有名なものにAmple Soundがあります。
(00:02:25) Ample Soundの中の、Strumという機能の中に、指板をポチポチ押して、
(00:02:39) ここのところですね。さらにストロークの長さを決めると。
(00:02:47) そういう仕組みがあるので、これを使うという方法はあります。
(00:02:54) しかし、なんか遠いんですね、そこまでが。
(00:03:00) 私が作りたいこと、つまり介助アプリに求めることは3点です。
(00:03:08) 指板を押しながら和音を作る、そのコードネームを調べる、DAWへMIDI出力する。
(00:03:20) こういった3点だけですね。そんな単純な仕組みを作りたいんです。
(00:03:28) それでアプリ作りにはいったんですが、介助アプリと言ったらいいですかね。
(00:03:39) マイギターコードアプリですが、これを作るのにお金はかかりません。
(00:03:46) Mac標準のGarageBandがあればいいです。
(00:03:52) 私はCubaseを使いますが、GarageBandやCubaseのことをDAWと呼びます。
(00:04:05) 介助アプリの機能は、指の位置からコードネームを取得する。
(00:04:16) 押さえた場所の音を再現する。押さえた指板の画像を作成する。
(00:04:24) 生成AIへコードネームの調査を依頼して取得、登録をする。
(00:04:31) DAWへMIDIの出力をする。以上になります。
(00:04:39) それでは次に、具体的にアプリの動きを説明します。
(00:04:46) アプリを立ち上げますと、最初は追加モードでスタートします。
(00:04:57) それで、指板のボタンを押すと音が出ます。
(00:05:08) Shiftを押しながらボタンを押すと、和音で音が出ます。
(00:05:14) そうやって指の位置を決めていきます。
(00:05:20) その指の位置を決めたら、2番目に指の位置確認ボタンを押します。
(00:05:34) すると、Aki's Factoryというサイトからコードネームを取得します。
(00:05:41) こういうサイトですね。ここのサイトのところに、
(00:05:46) コードネームが出るんですね。ルート順、適合順ということで出ます。
(00:05:56) この情報を取得して、サイト提供コードネームというところに表示します。
(00:06:06) 次に4番目にギターの音が出力されます。
(00:06:12) 5番目に、指板プレビューが表示されます。こういうやつです。
(00:06:18) C欄に自分調査コードネームというところがあります。というのは、
(00:06:29) ベース音を追加した分数コードの形で解釈ができないこともあって、
(00:06:38) コードネームなしとなることも結構あります。
(00:06:44) そこで、生成AIのGemを使って、分数コードを含めたコードネームを解析してもらいます。
(00:06:54) Gemに貼り付ける画像は、指板プレビューに出てくるものをスクショして、
(00:07:04) ここにペーストするのが楽です。
(00:07:11) そしてその結果が、このように表示されます。
(00:07:17) その中身を見て、必要に応じてC欄に書き込みます。
(00:07:24) それでは次に変更モードに入ります。変更モードを選ぶと、
(00:07:32) 画像ファイルの選択を通じてコードが選択できるようになって、
(00:07:39) このC欄の修正だとか、さらにMIDIの出力ができるようになります。
(00:07:48) 一覧のサムネイルから、あるいはリストから、指板画像ファイルを選ぶことができます。
(00:08:00) サムネイル型ですけれども、残念ながらこのサムネイルの拡大が、
(00:08:08) MacOS標準では困難ということで、
(00:08:14) この場所では少し我慢するしかないです。
(00:08:20) 音楽制作を続けている中でしたら、その画像がそれほど遠くない場所に、
(00:08:27) 固まって近くにあると思うので、欲しいサムネイルが見つかるはずです。
(00:08:34) それほどのストレスにはならないと思います。
(00:08:39) コードネームを指定する時の悩みですけれども、
(00:08:45) 前に作ったあの和音はどこにある?と探すのが結構面倒ですよね。
(00:08:51) コードネームからの音の表情はなんとか連想はできるのですが、
(00:08:57) 指板の方が音の表情は、より豊かに連想ができます。
(00:09:03) 結局、実際に指を置いて出せる音なので、
(00:09:10) 指が疲れる押さえ方だなとか、体の動きと出てくる音が、
(00:09:17) 自分の脳のどこかに記憶されているわけですね。
(00:09:24) そこで単発的な使い方にはなるんですけれども、ご覧のFinderから、
(00:09:32) 指板画像のファイルの入っているフォルダを開いて、
(00:09:38) その中からファイルを選んで、クイックアクションから、
(00:09:45) このマイギターコード起動および試聴のアプリをクリックします。
(00:09:52) 立ち上げ以降の操作は全く同じです。
(00:09:58) あとそれから、このMIDI出力用のボタンを押しますと、
(00:10:06) フォルダが開いてMIDIファイルがハイライトされますので、
(00:10:13) これをDAWのトラックにドラッグアンドドロップします。
(00:10:19) こういった形でフォルダが開きますので、
(00:10:26) このファイルをトラックにドラッグアンドドロップします。
(00:10:33) これはGarageBandへドロップしたMIDIノートです。
(00:10:38) それから次に、これはCubaseにドロップしたMIDIノートです。
(00:10:47) 以上で全体の説明は終わりですが、このアプリを使って、
(00:10:54) Cubaseに出力した音を再生してみます。
(00:11:40) まだまだ改善点は出てくると思いますけれども、ひとまずは完成にしておきます。

要約:「マイギターコード」は、ギターコードの管理と自動化を行うPython製Macアプリです。ローカル上のExcel DBと連携し、画像選択時に指位置データやコードネームを自動表示します。Playwrightをヘッドレスで利用し、バックグラウンドでWebからコード情報を取得・自動同期。MacのGUIバグ回避のためtk.Entryを採用しています。ローカルMIDI機能が充実しており、mido仮想ポート経由でGarageBand/Cubase等のDAWへ和音や単音を発音。アルペジオ再生とMIDIファイル生成、Finderでのハイライト表示も可能です。オートセーブ、Excel行と画像ファイルの物理削除に対応。画像パスを引数に受け取り、自動モード切替・DB読込・MIDI発音を可能にする外部連携エンジンを搭載。Stream DeckやAutomatorのクイックアクションからの起動に対応し、クイックアクションでは既存アプリを終了しGarageBand/Cubase起動後に指定画像でアプリが立ち上がります。
内容に関するお問い合わせは以下へ↓

介助アプリに求めた「3つの必須機能」 

このアプリの目的は非常にシンプルです。以下の3つのステップで、音楽制作を強力にサポートしてくれます。

ステップ1:指板を押しながら和音を作る(本物のギター感覚) 

アプリ上の指板をクリックすると、まるで本物のギターの弦を押さえたようにその「単音」が即座に鳴ります。「Shiftキーを押しながらクリック」すると、全体の「和音」がジャラーンと鳴ります。画面が固まることもなくサクサクと音を探れるため、直感的にコードの響きを作っていくことができます。

ステップ2:コードネームを調べる(自動取得&AI解析) 

指の位置が決まったら、「指位置確認」ボタンを押します。すると、裏側で外部サイトと通信し、適合するコードネームを自動で取得してくれます。 しかし、ベース音を追加した分数コードなど、既存のサイトでは「コードネームなし」と判定されてしまうこともあります。そんな時は、アプリ上の指板画像をコピーして生成AI(Gemini)に解析を依頼します。「最も一般的な解釈としては E13sus4、または分数コードの Bm11/E です」といった見事な回答が得られるので、それを自分専用のコードネームとして登録しておきます。

ステップ3:DAWへMIDI出力する(ドラッグ&ドロップ連携) 

作った和音をCubaseやGarageBandなどのDAWで使いたい時、「MIDI出力」ボタンを押すと、自動生成されたMIDIファイル(.mid)がMacのFinderでハイライト表示されて手前にポップアップします。あとはそれをDAWのトラックへ直接ドラッグ&ドロップするだけ。クリップボードの制約を受けない、確実でストレスフリーな連携です。

使い勝手を向上させる裏側のインフラ設計 

さらに、過去に作ったコードを効率よく再利用するための「インフラ設計」にもこだわりました。

  • 右クリック一発で画像ロード&全自動発音 

「前に作ったあの和音、どんな響きだったかな?」と思った時、わざわざアプリを立ち上げる必要はありません。Finderに並んだ指板画像(サムネイル)を右クリックし、自作のクイックアクションを選ぶだけ。裏側でDAWが立ち上がり、アプリが該当画像を読み込んでフワッと起動し、全自動でギターが「ジャラーン」と鳴る流麗な連携を実現しました。

  • ファイル名がそのまま音符に!データとMIDIの直結設計
    例えば guitar_fretboard_30-25-22-18-14-n.jpg というファイル名。この「30-25-22-18-14-n」という文字列は、1弦から6弦までの指板の絶対値を表しています。アプリはファイル名からこの文字列を抽出した瞬間、「絶対値+35=MIDIノートナンバー」というシンプルな計算式で、即座にMIDIデータへ変換します。これにより高速で音が鳴ります。
  • 意識させないデータベース自動同期
    変更を加えたり別の画像を選んだ瞬間に、画面と裏側のExcelデータベースが100%自動で同期します。いちいち「保存ボタン」を押す手間を省くオートセーブ機能を搭載しました。

開発の裏側:AIバケツリレー

このアプリはPythonで600行を超える大規模なものですが、すべて自分でプログラミングしたわけではありません。私が構築している「AIバケツリレー」が役に立ちました。 まずNotebookでシステム全体の作戦を練り、設計図を書かせます。そして、いざ大規模なコードを生成する際は、Google AI Studioという「絶対にコードを省略しない重装備のAI」へ指示書を渡して一括で出力させました。適材適所でAIを使い分けるこのエコシステムのおかげで、複雑なアプリも無事完成に漕ぎ着けました。

おわりに

歳を重ねるにつれ、既存の高機能すぎるツールに合わせるのが辛くなることがあります。しかし、AIをパートナーに据えることで、必要な機能だけを抽出した「自分専用の介助ロボット」を自作できるようになりました。 このアプリのおかげで、再び楽しく音楽制作に向かうことができそうです。

以上