MIDI ファイルを選択
ここに .mid ファイルをドロップ
MIDI Format 0 / Format 1 に対応しています
ファイル名
—
フォーマット
—
トラック数
—
PPQN
—
MIDIファイルサイズ
—
変換結果
—
イベント数
—
演奏時間 (秒)
—
MIDBサイズ (KB)
—
サイズ比 (対MIDI)
SD カード — ファイル管理
デバイスに接続すると SD カードのファイル一覧が表示されます。
UIAPduino デバイスログ
MidbPlayer.ino を書き込んだ UIAPduino SD を USB 接続し、「デバイスに接続」を押してください。
.midb ファイルフォーマット
ヘッダー(4 バイト)
オフセット
バイト数
内容
0x00
4 bytes
マジック
"MIDB" (0x4D 0x49 0x44 0x42)イベントレコード(繰り返し、EOF まで)
フィールド
バイト数
型
説明
delay_ms
2 bytes
uint16_t LE
前のイベントからの待ち時間(ミリ秒)
length
1 byte
uint8_t
続くMIDIデータのバイト数(0 = 待ちのみ)
data
length bytes
uint8_t[]
UARTに送信するMIDIバイト列
ランニングステータスは展開済みです。各レコードは必ずステータスバイトから始まります。
65535ms を超える待ちは
SysEx イベント(GM リセット等)は変換時に除外します。GM リセットは MidbPlayer が再生前に自動送信します。
65535ms を超える待ちは
length=0 のレコードを複数挿入して表現します。SysEx イベント(GM リセット等)は変換時に除外します。GM リセットは MidbPlayer が再生前に自動送信します。
UIAPduino スケッチ
FQBN: UIAP_HID:ch32v:CH32V003:pnum=V14,usb=webhid,opt=oslto
/ SDmin.h はボードパッケージに含まれます。
ルートディレクトリ内の
.midb ファイルを自動検出して順番に再生します。BTN_PIN はスケッチ冒頭の #define で変更できます。
変換の仕組み
このツールがやっていること
INPUT
.mid ファイル
マルチトラック
デルタタイム
デルタタイム
→
PROCESS
ブラウザで変換
全トラックをマージ
テンポ変化を反映
絶対時刻に変換
テンポ変化を反映
絶対時刻に変換
→
OUTPUT
.midb ファイル
シングルシーケンス
待ち時間ms付き
待ち時間ms付き
→
UIAPduino SD
delay() + write()
MIDIデコード不要
16KB Flashに収まる
16KB Flashに収まる
SAM2695 について
SAM2695 — GM/GS 対応 MIDI 音源 IC
SAM2695 は Dream 社製の MIDI 音源チップです。 GM(General MIDI)および GS 規格に対応した 128 音色+ドラムセットを内蔵しており、 UART で MIDI データを受信するだけで音声を出力します。 外付け部品は少なく、マイコンとの接続も UART TX 1 本と GND だけで済みます。
MIDI 入力
UART(31250 baud)
標準 MIDI ボーレート
標準 MIDI ボーレート
音色数
GM 128 音色
GS 拡張 + ドラムセット
GS 拡張 + ドラムセット
同時発音数
最大 64 音
音声出力
ステレオ DAC 内蔵
アンプは別途必要
アンプは別途必要
UIAPduino SD との接続
PD5(D15)TX → SAM2695 RX
GND 共通
GND 共通
初期化
GM リセット SysEx を送信
F0 7E 7F 09 01 F7