ハードウェアの構成
推奨回路
図を参照(RC回路による1次LPFで、PWM出力をなまらせている)
概要
USBケーブルでPCと接続し、USBシリアルで制御(38400 bps)
D6ピンから62.5 kHzの単極PWMで、ラインレベルのオーディオ出力(スケッチで#define SUBSTITUTE_PIN_D5_FOR_D6_AS_AUDIO_OUTを有効にすると、D5ピンから出力)
USBからのノイズを減らすため、ACアダプターの使用を推奨
部品リスト
A1:Arduino Uno Rev3
U1:オーディオジャック(3.5 mm)
R1:100Ω抵抗
R2:100Ω抵抗
C1:100 nFコンデンサ
ジャンパー線
実際の配線例
オーディオジャックは、写真のような「ネジ止め式」の変換アダプタータイプがオススメ(ハンダ付け不要)
別構成A:MIDIシールドを使用
以下の設定で、MIDIシールドも使用可能(写真ではMIDIブレークアウトを使用)
USBのノイズを排除でき、音質もアップ
スケッチで#define SUBSTITUTE_PIN_D5_FOR_D6_AS_AUDIO_OUTを有効にして、D5ピンからオーディオ出力
#define LFO_LED_OUT_ACTIVE (LOW) と書き換えて、D6ピンで制御するLFO表示LED用に極性を修正
何らかの方法で、Arduinoからオーディオ出力とGNDを引き出す(写真ではネジシールドを使用)
スケッチで#define SERIAL_SPEED (31250) を有効にして、MIDIで制御
別構成B:シンプルな構成
配線
D6(またはD5)ピンを、ジャックのチップに直結
GNDピンを、ジャックのスリーブに直結
説明
これだけで動作するが、RC回路によるLPFがないので、アンプやスピーカーによってはPWM出力が原因の「ピー」という音が目立つかもしれない
オーディオ出力は、アンプ、アクティブスピーカー、オーディオインターフェース等に接続すること(パッシブスピーカーやヘッドフォンに直接接続すると、出力電流が最大定格を超える可能性が高い)
USBからのノイズを減らすため、ACアダプター使用を推奨
その他の情報
https://risgk.github.io/
https://github.com/risgk/digital-synth-vra8-n
ソフトウェアのインストール
https://github.com/risgk/digital-synth-vra8-n/releases/latest
からスケッチをダウンロード、展開、"DigitalSynthVRA8N.ino" をArduino Unoに書き込む
https://projectgus.github.io/hairless-midiserial/
から
Hairless MIDI<->Serial Bridge
をダウンロード、展開
https://www.tobias-erichsen.de/software/loopmidi.html
から
loopMIDI
をダウンロード、インストール
Arduinoのバージョンについての注意
正常動作のために、Arduino IDE 1.8.5、正確には
Arduino AVR Boardsコア1.6.20
の使用を
強く推奨
(複数のバージョンのArduino IDEをインストールしておくと便利)
ただし、macOS Catalina 10.15ではこれを使用できないので、Arduino IDE 1.8.10以降でAVR Boardsコア1.8.1を使用する(プログラムサイズを減らすため、"osc-table.h" を削除し、"osc-table.h.REDUCE_OSC_TABLE_SIZE_1.txt" を "osc-table.h" にファイル名を変更する必要がある)
USBシリアル制御の準備(Windows用の説明のみ)
以下の設定は、MIDIシールドを使用する場合には不要
loopMIDI
を実行
Hairless MIDI<->Serial Bridge
("hairless-midiserial.exe")を実行
Serial Portで
Arduino Uno (COM*)
を選択
MIDI Inで
loopMIDI Port
を選択
[File] > [Preferences] > [Baud rate] を
38400
bpsに設定