目次

目次

かんたんAI作曲「カメレオンノーツ」で使われている技術

木村拓也
木村拓也
最終更新日2025/11/26 投稿日2024/11/26

はじめに

株式会社レコチョクでNX開発推進部という部署に所属している木村です。

レコチョクは2023年に「新しい音楽体験研究所」プロジェクトを立ち上げ、Maker Faire Tokyo(以下、MFTと記載)へ初出展しました。

今年も「新しい音楽体験研究所」の継続した発信を目的にMFT2024へ出展をしました。

カメレオンノーツ紹介

今回MFT2024に出展したカメレンノーツという作品は、エモブロック(感情を表した顔文字ブロック)を並べることで、選んだ感情にあった曲をAIが作曲してくれる体験型の作品です。

スクリーンショット 2024-11-18 18.27.53.png

当記事では「カメレオンノーツ」の全体構成と作品製作における技術選定について解説します。

※作品タイトルにも含まれるカメレオンやエモブロックなど、作品全体のデザインコンセプトは別の記事で改めてご紹介させていただきます。

アイデア出しから体制決めまでの流れ

作品の方針が決まるまで

MFTへの出展を決めたあと、どんな作品を作るかを決めるため、アイデアソンを実施しました。 昨年の経験からお子さまも多く来場するイベントであったことから、「大人も子どもも楽しめる」をコンセプトとして複数チームに分かれてアイデアを出し合いました。 様々なアイデアが出ましたが、子どもが楽しめる「ブロック」と大人が技術的にも楽しめる「AI作曲」というアイデアがコンセプトに合っていることから、これらの技術を組み合わせた作品を制作することに決めました。

「ブロック」と「AI作曲」を用いてどんな体験ができる作品を提供するのか?について多くの議論を重ね、紆余曲折を経て「ブロックを組み合わせるだけで、すぐにAIが作曲し、その場で聴くことができる」という作品の方向性が固まりました。

チーム編成と役割分担

作品を作るにあたり、3つの領域に分け、チームを編成しました。

チーム 役割
チームインプット AI作曲をするための情報をブロックを使って入力する装置の開発。また、作曲中の状況を可視化する役割も持つ。
チームAI作曲 入力された情報を元にAI作曲を行うシステムの開発。作曲の進捗状況や作曲結果を他のチームに伝える。
チームアウトプット 出来上がった楽曲を再生し、視覚的に楽しめるように表現する装置の開発。楽曲をダウンロードして持ち帰れる機能も提供する。

技術選定

次に領域毎の要件決定や技術選定について解説します。

領域間通信

チーム割りが決まったあと、各領域間の通信手段を検討しました。 領域間のやり取りは以下の図のような流れを想定しています。

スクリーンショット 2024-11-17 23.23.46.png

インプットから情報を受け取ってAI作曲を行い、ステータスをインプットとアウトプットに伝えるという非常にシンプルな流れではありますが、インプットとアウトプットのデバイスを分ける必要があり(理由は後述)、非同期で通信できることが望ましいと考えました。

いくつかの選択肢を検討しましたが、個人的に利用経験があったことから複数デバイス間の非同期通信においてPub/Sub形式でメッセージング処理のできるMQTTを利用することとなりました。 MQTTは様々な言語でもライブラリが用意されており、容易に導入しやすいことも選定のポイントです。 バックエンドにはAWSを利用することになったため、AWSが提供しているMQTTブローカーであるAWS IoT Coreを採用しました。

チームインプット

インプット領域では「ブロックを組み合わせるだけで、AI作曲に必要な情報を入力することができる」がミッションです。また、作曲開始後に進捗状況を見えるようにする必要があります。

ブロックによる入力の実現

一言にブロックで入力といっても様々な方法があります。 MFTというイベントの特性上、小さいお子さまでもわかりやすい手順で入力を実現できるようにしました。

  1. ブロックを選んで土台にある丸い溝にハメ込む
  2. 土台にある4箇所の溝全てにブロックをハメ込んだ後にボタンを押して作曲開始

この要件を満たした以下の入力装置を開発しました。

  • ブロック
    • 土台との設置部分にブロック毎に異なった情報が書き込まれたRFIDタグシールを貼り付け
    • ブロックは3Dプリンターで印刷
  • 土台
    • ブロックとの設置箇所にRFIDリーダーをはめ込み出来るようになっている
    • 土台は3Dプリンターで印刷
  • ボタン
    • ボタン部分は市販のものを利用
    • ボタンの筐体部分は3Dプリンターで印刷
  • 入力制御デバイス
    • M5Stackに入力用プログラムを実装
    • 4つのRFIDリーダーとボタンの入力を制御

置いたブロックを読み取るという要件はお子さまでも操作に迷わないよう、RFIDタグをリーダーで読み取る機構にしています。3Dプリンタによる印刷とM5Stackを使ったセンサーの制御は昨年のMFTでも利用実績があったことから引き続き選定しています。

作曲状況の可視化

入力装置だけでは何をしたらよいのかがわからないため、モニター上に進捗状況を表示する仕組みを作ります。作品のモチーフであるカメレオンや感情を表現するために3Dモデルの制御をしやすいUnityを採用しています。

  • 入力装置からの入力情報を画面に表示する
    input1.jpg
  • 入力情報の進捗を画面に表示する

    input2.gif

チームインプット構成

ブロックからの情報を読み取る入力制御デバイスと、状態表示を行う入力用PC間はシリアル通信を行うことで入力領域における装置が完成しました。

スクリーンショット 2024-11-18 18.37.09.png

木村拓也

目次