Arduino UNOだけで作るシンセサイザー「VRA8-U」を動かしてみた


今年もなんとかMaker Faire Tokyoを見に行けたのですが、Musicコーナーで目ならぬ耳を奪われたのがこちらの展示でした。

ISGK Instruments | Maker Faire Tokyo 2022 | Make: Japan
ISGK Instruments Digital Synth VRA8-U Arduino Unoの限界に挑戦する、Digital Synth VRA8シリーズ第8弾。8ビットCPUひとつで音を合成す…

Ryo Ishigakiさんの作品で、一聴してとても良い音(シンセサイザーとして)がしていて、お話を伺うとArduino UNO単体+PWMによる簡易的なDACと聞いてビックリ。
ソースコード等すべて公開されているということだったので、是非作ってみようと思いました。

ざっくりスペックとしては

・2 OSC + 1 Sub OSC
 または4音パラフォニック
・1 LPF
・2 EG(フィルタ、AMP)
・1 LFO
・コーラス内蔵

となります。

というわけで、パーツケースで眠っていたArduino UNOを数年ぶりに引っ張り出してきて、動かしてみました。
上で「とても良い音(シンセサイザーとして)」と書きましたが、ハイファイな音ではないのですが、なぜか鳴らしていて気持ちの良い音がします。

製作については、詳細な製作ガイドがあるので、この通りに作れば大丈夫だと思われます。

Digital Synth VRA8-U(Arduino Uno用) by risgk
VRA8-U:Arduino Unoの限界に挑戦する、Digital Synth VRA8シリーズ第8弾。8ビットCPUひとつで音をå...

必要なパーツはArduino UNO以外には、PWM用のLPFとカップリング用に以下の6つのパーツ、

・100nF(0.1μF)のコンデンサ×2
・220オームの抵抗×2
・10μFの電解コンデンサ×2

および配線材(ブレッドボード、オーディオジャック等)だけです。

Arduinoのソフトウェアは基本ライブラリだけが使われていて、追加で必要なものはありません。
Arduino Coreは1.8.5を使ってくださいということでしたが、Arduino IDEをインストールしたら何故か1.8.3が入っていたので、手動で更新しました。

スケッチを書き込むと、Arduino UNOのシリアルポートがMIDI入出力ポートになります。
デフォルトでは、昔のDTM音源でよくあった38.4KbpsのシリアルMIDIになっています。

上記の製作ガイドに書かれていますが、PC等からこの音源にシリアルMIDIで信号を送るには、Hairless MIDIというツールが使えます。
このツールはPC内部のMIDI信号をシリアルポートへ送受信します。

また、HTML(+JavaScript)で書かれたコントローラが提供されており、これをChromeで開くことによってMIDIコントロールメッセージ経由で音色パラメータを制御できます。
この場合はHairless MIDIとChromeを中継するための仮想的なMIDIデバイスとしてloopMIDIというソフトを使います。

パラメータをいろいろいじってみた感じでは、パラフォニックも良いですが、やはり単音で厚みのある音が出るのが魅力的です。Ryo Ishigakiさんの長年の試行錯誤の賜物だと思います。減衰系の音ではノイズがやや気になるので、OSC2のノイズをうまく使うなど工夫が必要かもしれません。

ともあれ、オシレータ、フィルタ、エンベロープに加えてLFOやコーラスまで備えた本格的なシンセサイザがArduino UNO一個で簡単に作れますので、ぜひ試してみていただきたいと思います。

2022/10/2追記

VRA8-UはMIDIシールドにも対応していますが、MIDIシールドは手持ちが無かったので「MIDI-UARTインタフェースさん」で動作確認しました。ソースコードの通信速度を312500bpsに修正し、D0(RX)ピンをインタフェースさんのINと接続します(写真のオレンジ色の線)。
特に問題なく動作しました。

ちなみにMIDI-UARTインタフェースさんもMFT2022で購入したのですが、5V/3.3V両対応で、ステレオミニ-DIN5変換アダプタが2つ付属して来ますので、なかなかお得だと思います。

コメント