3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XIAO MIDI シンセサイザーを PC から使う (MIDI モジュール化)

3
Last updated at Posted at 2026-09-12

概要

XIAO MIDI シンセサイザーのカスタムファームを作って、PC や iOS から鳴らせる超お手軽外部音源にした(BLE/USB MIDI)。

お品書き

  • ファームを更新するだけ、BLE MIDI
  • 内部ボードを換装して USB MIDI に

はじめに

Seeed Studio から発売された超小型の音楽ガジェット XIAO MIDI Synthesizer を購入しました。

122.jpg

初期ファームウェアでは本体ボタンを使った単体アプリ(メトロノーム等)が入っていますが、PC や iOS(iPhone/iPad)から MIDI データを送信して外部音源モジュールとして活用したかったため、カスタム ファームウェアを作成しました。

本記事では、ハードウェアの特徴から、ESP32C3 を活かした「BLE MIDI」化、さらに XIAO ESP32S3 へ換装しての「USB MIDI」化について記載します。


1. XIAO MIDI シンセサイザーのここがスゴイ!

最大の特徴は、「3Dプリンタ製のシェル(ケース)」と「SAM2695」、「スピーカ」がセットなっているです。

ケース付きですので取り扱いが非常に楽です。
しかも、スピーカ内蔵なので 電源用 USB-C の接続だけで済みます。
また、自作派におなじみの音源チップ「MIDI野郎」と同じ SAM2695 (最大64音ポリフォニー、数百種類の楽器音色)を搭載です。
そんでもって アリエクで 3,500円弱 + 送料です(過去のセールだと 2,500~3,000円くらい)。

つまり、USB-C を繋ぐだけでその場ですぐに再生できちゃう、超お手軽で素敵な MIDI 音源に仕上がっています。


2. カスタム ファームウェアの実装

PC や iOS から接続して一般的な外部音源として認識させるため、2つのアプローチでファームウェアを作成しました。

A. BLE MIDI で鳴らす(XIAO ESP32C3)

標準の XIAO ESP32C3 が持つBluetooth機能を活かし、BLE MIDIに対応させました。

単にデータを流すだけでなく、MIDIのタイムスタンプ(Timestamp)もきちんとパースして反映させる実装にしています。

動作確認環境

  • iOS: MIDI Wrench を使用して、問題なくMIDI信号を受信・発音できることを確認しました。
  • Windows: Windows では、KORG BLE-MIDI Driverをインストールすると、通常の MIDI デバイスとして認識します。

B. USB MIDI で鳴らす(XIAO ESP32S3 への換装)

XIAO MIDI シンセサイザーはバッテリー非搭載のため、給電用に必ず USB ポートを接続する必要があります。「どうせ USB ケーブルを挿すなら、そのまま電源供給 + USB MIDIデバイスとして1本で完結させたい」と考えました。

しかし、標準の ESP32C3 はネイティブなUSBデバイス(USB OTG)機能を持っていません。

そこで、ピン互換のある上位モデル XIAO ESP32S3 へマイコンごと差し替え、USB MIDI 化を行いました。
※XIAO ESP32S3は、国内なら秋月電子通商等で手軽に安く入手可能です。

これを書き込むことで、PC に USB 接続するだけで一発で「USB MIDI デバイス」として認識し、爆速で SAM2695 を鳴らせるようになります!


3. 技術的なハマりポイント(超重要)

開発にあたり、かなり泥臭い対応が必要だったポイントが2つあります。特にPC-98エミュレータなどをターゲットにする方は参考にしてください。

i. エミュレータの初期化時、通信速度無視で大量データが降ってくる

PC 側のアプリケーションとして、PC-98エミュレータである Neko Project II などを繋いでテストしたのですが、このエミュレータは起動・初期化時に MIDI の通信速度を完全に無視して、大量のデータを一瞬で送り付けてきます。

通常の OS の MIDI ドライバであれば OS 側がよしなにバッファリングしてくれますが、自作の BLE MIDI や USB MIDI の場合、届いた先からそのまま生データがマイコンへ送り付けられるため、そのまま受けると破綻します。非常にアレな挙動です。過去の自分を殴りたいです。

ii. SAM2695 への転送速度がボトルネックになり、XIAO 側でバッファフルになる

上記のように大量の MIDI シーケンスが一気に流れてきた際、音源チップである SAM2695 へのシリアル転送が物理的に間に合わなくなります。
結果として、手前の XIAO(ESP32C3/S3)側で受信バッファがフルになってしまい、データが溢れて音が化けたりストップしたりします。
あまり長時間ロックすると BLE スタックがアサート(正常動作)するので、このあたり調整するのが今回の開発で一番面倒くさく、過去の自分から20年越しで非道い仕打ちを受けました。


まとめ

XIAO MIDI Synthesizerは、最初から3Dプリンタ製シェルとスピーカーが付いているおかげで、「ちょっと自作ファームを書くだけで、デスクトップ用の超お手軽かつ最強のコンパクトMIDI音源」に変貌してくれます。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?