Arduinoでシンセ開発(part1)

こんにちは。田舎へ帰ってきてなんにも無さすぎて複雑な心持ちになっている私です。今回から、本格(?)的にシンセ作っていきますよ。まぁそんな難しいことはしてないんですけど。

その前に追加の部品を買おう

はい。実は前回の記事で買ったスターターキットには、イヤホンジャックがついていないので音が出ないのです。なんなら可変抵抗もひとつしかついてない。ということで、日本橋シリコンハウスへ行って材料を調達。とりあえず買ってきたのは、
・可変抵抗(10kΩ)×4(パネル実装用)
・可変抵抗(10kΩ)ひとつ(これはブレッドボード実験用)
・超音波センサー×1
・ブレッドボード端子(3端子)×1
・ステレオイヤホンジャック
・ちっちゃいユニバーサル基板
・赤外線距離センサ
・はんだごて等一式(実は引っ越すときに持ってくるの忘れた)
という具合です。写真撮り忘れたので勘弁ですが、とりあえずこれで音を鳴らせるとこまでいきたいと思います。

ではやってみよう


さて、まずイヤホンジャックをユニバーサル基板にはんだ付けします。これ、不親切なのが、パッと見てどこがGNDで、どこが音声なのかわからないんですよね。最初は中を覗いてどこがどれかっていうのを見て、線の色を分けてつけようとしたのですが、結局つけた後にGNDの線が思ってたのと違かったりして、もううんざりでした。

これ、一応GNDが黒で…とかってやろうとしたんですけど、間違って黄色がGNDになってたりとかして…繋げたとき最初音が鳴らなくてビックリしました。
さて、ここまで来たらもう鳴らすだけなのですが、さてさて、今度はプログラミングで発振器をつくらねばならんのです。まぁ、言うて余所のをパクるんですけど。
今回のシンセづくりでは、Arduino内のmozziというライブラリを使います。

これを、githubからダウンロードするんですが、久しぶりに見たらgithubってどこからダウンロードするんだっけ…となって少し迷子になりました()。codeのとこクリックしてzipでダウンロードですね。
これをArduinoIDE側で、「ライブラリをインクルード」から「zip形式のライブラリをインストール」で、インストール。zip自分で解凍しないので、慣れてる人は注意ですね…(解凍してても別の方法でインストールできるみたいですが)。
とりあえず、これで、シンセ作る用のライブラリが入ったので音を出してみます。

ここのページの説明がわかりやすくてよかったです(英語ですが)。とりあえずここのスケッチ(ArduinoとかProcessingなどではプログラムのことをスケッチを呼ぶ風習があるようです)を丸パクリして、音を出してみました。Mozziではデジタル出力の9番ピン(Arduino Unoの場合、ArduinoMegaだと11番だったかな?)が音声出力に割り当てられてるようなので、そこに先ほどのイヤホンジャックをジャンパケーブルでArduinoに繋げて、スピーカーで鳴らしたのがこちら。

(動画では超音波センサがブレッドボードに刺さってますが、これはその前にELGOOのマニュアルを読みながら実験した残骸です。)

さて、では大まかに説明を(詳しい説明は多分Mozziのページを見た方が分かりやすいので…)。Mozziの合成方式はいわゆるウェーブテーブル型で、あらかじめ用意された波形をoscil関数で呼び出します。その後のvoid update control部分でピッチなどを調整する命令を挟み、update Audioの部分で実際に出力するものを指定してloopのAudioHookで出力するというのが大まかな流れです。まあ、オシレーター→LFO、フィルター等→VCAというアナログシンセの流れをほぼ踏襲しているので、シンセサイザー(特にモジュラーシンセ)をいじったことがある人ならわりと扱いやすいのではないかなと思いました。
今回はここまで、次回はセンサーやフィルターを実装したときの話をしようと思います。
ではでは。

この記事が気に入ったらサポートをしてみませんか?