MIDI音源 VS1053B2026/07/01 21:17

今回は、USB MIDIキーボード接続して音を出せる機器を作った。

肝心の音源部分は、VS1053Bというチップを搭載した5cm x 5cmくらいのボードを利用した。
VS1053BはMP3やMIDIを再生できる多機能チップだ。
だが、このボードはリアルタイムMIDI再生を行う事が出来ない。
MIDI信号をリアルタイムに受け取る端子が、外部に出ていないのだ。

このボードを購入したのはかなり前だが、上記理由により死蔵していた。
だが最近、リアルタイムに受け取るように改造する動画を発見。
泣けるほど細かいハンダ作業を行って、なんとか改造成功した。
0.5mmピッチのICの足1本を狙ってハンダ付け・・・もうやりたくない。
(VS1053 and MIDI Revisitedでgooglr検索すると出てくる)

あとはコレと、前回のUSB-MIDI変換用のRP2040-ZEROを組み合わせれば、
USB MIDIキーボード → MIDI音源 までは出来る。
今回は、それにアンプとスピーカーも取り付けた。

あと、VS1053BはGM音源で音色が128色あるので、
これを切り替えられるようにする。
なので、音色名表示用のlcdキャラクタディスプレイと
4つのボタン(+1、-1、+1グループ、-1グループ)を付けた。
GM音源は8音色で1グループを形成しているので、グループ増減ボタンも。

vs1053-1

内部はこんな感じ。
vs1053-2

今回もケースは100均。
スピーカーの取って付けた感が半端ないが、音はいい感じなので良し。

MIDI音源 VS1053B その22026/07/02 21:07

前回、VS1053Bボードの改造方法を記載していたHPに、
無改造でリアルタイムMIDI可能にする方法が載っていた。

メーカーが提供する「ファームウェアパッチ」を利用する方法みたいで、
そのスケッチも紹介されていた。
ありがたい。

今回利用するのは、Arduino UNOに重ねて接続する事が出来る
VS1053シールドと言われているもの。
これも死蔵していた。

今回は単純に、VS1053Bを外部MIDI音源として利用できるようにする。
MIDI IN端子と、アンプに繋ぐLINE OUT端子があるだけの単純なもの。

ただ、MIDI INはMIDI規格に則りフォトカプラで絶縁する必要があるので
そこが少し面倒か。
今回はTLP2361を使った。

Arduino UNO互換機にVS1053シールドを重ね、
UNOのRX端子にTLP2361を介してMIDI IN信号を入れるようにすれば完成。
今回もケースは100均。

vs1053-3

前回と同じVS1053Bなんだけど、なんか響きが違う気がする。
リバーブかなんかのフィルター設定がONになってるのかな。
いずれ解決すべき宿題ってことにしよう。

USB - MIDI変換2026/07/03 20:46

前回作ったMIDI IN端子を持つ外部MIDI音源(VS1053B)だが、
パソコンと繋げるようにしたい。

一応、パソコン用のUSB-MIDI変換器Roland UM-2Gを持っているが、
Roland SC-88Pro用に常設しているので今回は使わない。
なので作る。

調べたらProMicro互換ボードを使って作成している人がいたので、
これをそのまま利用させてもらう。
ProMicro互換ボードは数枚持っていたので、これを機に消費した。
最近はESP32やRP2040を使うから、なかなか減らないんだよな。

MIDI INは不要なので、MIDI OUTのみ実装。

usbmidi

基盤の下半分はフリスクケース(上半分)で保護し、
下半分は100均のおゆプラ(黒)で覆った。
お湯で柔らかくなるプラスティックなのでいろいろと便利である。

USB端子がUSB Micro-Bなのでその点だけが不満だが、
ProMicro互換ボードは古いマイコンなので仕方ない。
機能には何の問題も無いし、
何より、自作による愛着度プラス補正が付くので良しとする。

MIDI音源 SAM26952026/07/04 21:13

M5Stack用MIDI音源ユニットを買ったので、
これでUSB MIDIキーボードを接続できるMIDI音源を作った。
GM音源チップSAM2695を搭載している。
今回は、チップに搭載されているフィルター機能もいじれるようにする。

SAM2695搭載機器はM5Stack用MIDI音源ユニットしか持っていないので、
USB MIDIキーボード入力とMIDI IN入力との切替スイッチを設けた。
これでパソコンなどから操作できる外部MIDI音源としても使える。

制御を行うマイコンは、今回もRP2040-ZEROにした。

sam2695

前面にUSB MIDIキーボード接続用のUSB-A端子、MIDI IN端子、
切替スイッチ、背面にUSB-C(電源用)とLINE OUT端子を設けた。

上面左上は、0.96インチOLEDと4つのボタンを搭載したディスプレイ。
GM音源の音色番号・音色名・フィルター名を表示。
OLED右側の白ボタンは、上から音色グループ+1、音色グループ-1、
フィルター変更、MIDIリセット信号ボタン。

左下は電源スイッチ、その右の赤ボタンは音色+1、音色-1ボタン。

右側の黒ボタン2つとボリューム4つはフィルター関連で、
ボタン1つと下2つのボリュームを1グループにした。
フィルターは4種類で、
 1.リバーブ(上からリバーブタイプ、レベル、フィードバック)
 2.コーラス(上からコーラスタイプ、レベル、フィードバック)
 3.ビブラート(上から-、周期、深さ)
 4.TVF(上から-、カットオフ周波数、レゾナンス)
起動直後は1.2.を操作出来て、
OLED右のフィルター変更ボタンで3.4.に切り替える。
なお、3.4.では黒ボタンは使用しない。

今回はフィルター関連のプログラム変更が面倒だった。
SAM2695にフィルター関連のMIDI信号を送ってやる必要があるのだが、
どんな信号か、そもそもSAM2695のフィルター関連仕様がどうなのか、
MIDIとSAM2695の仕様書両方とM5Stackのサンプルスケッチを見比べながら
なんとか動くようになった時の充実感よ。

なお、いろいろいじっていると変な音になったまま戻らなくなったので、
OLED右側の白ボタンの一つをMIDIリセット信号ボタンにした。

今回悲しかったのは、RP2040-ZEROのアナログ入力ピンの少なさ。
あと2つボリュームボタンを増やしたかった。

とはいえ、今の私には十分すぎる出来だったので満足度は高い。

MIDI音源 mt-32pi2026/07/05 23:08

mt-32piというものがある。
Raspberry Pi 3以降で動く、ソフトウェアMIDIシンセサイザーだ。

Roland MT-32という、40年近く前のシンセサイザーをエミュレートし、
また、サウンドフォントを追加して、好きなシンセに出来る。

私の中で一番嬉しかったのが、ベアメタルという点だ。

Raspberry Piは普通、OSが最初に起動し、その後に各ソフトが起動する。
なので、どうしても電源ON後、使えるようになるまで時間がかかる。
対して、ベアメタルはOSを介さずに直接ソフトが起動する。
RP2040-ZEROのように、ソフトが直接起動するイメージ。
実際、今回はRaspberry Pi 3 Model A+を使用したが、
数秒で起動してくれた。

mt-32pi

液晶画面は、今回も4ボタン付のOLEDを使用した。
ボタンは上から、
 ・シンセサイザーの切替、
 ・MT-32とサウンドフォントの切替、
 ・音量を下げる
 ・音量を上げる
mt-32piの設定そのまま。

DACはPCM5102Aを使用した。
5PinDINのMIDI IN端子も設置した。
Raspberry PiのUSB端子にUSB MIDI キーボードも接続できるし、
MIDI IN端子でPCとの接続もできる。

今回新たに買ったのは、100均で買ったケースのみ。
死蔵しているパーツ多すぎだな。

完成後の感想は素晴らしいの一言。
VS1053やSAM2695はピアノの音が不満だったが、
これは好きなサウンドフォントが入れられるので全然違う。

音色変更ボタンが無いので、USB MIDI キーボードを操作して
音色変更する必要がある点が少し残念だった。

また、悲しいことに開発は終了しているっぽいので
さらなる機能追加は望めないようだ。

とはいえ、このような素晴らしいソフトを開発して頂いた事には
感謝しかない。