DCOの制作
先月からシンセサイザの制作に取りかかったはいいが、なかなか進まない。
とりあえずはArduinoを用いてDCO(Digital Controlled Oscilator)を作ってみた。
Arduinoとは言いつつも、中身はAVR言語でタイマーをバリバリ使用したものであるため、プログラムを後で読み返すと『?』となることもしばしば。自分が書いてるのに。
今回はArduinoを二台使っている。一台はMIDIを待ち受けてただのシリアル信号としてDCOに送る役割を担っている。もう一台はDCOそのものであり、設定された波形をMIDI規格に準じた音階で生成している。
↓生成した波形。正弦、三角の他に矩形、鋸歯状波も生成できる。
内部の処理としてはDDS方式を採用しており、ウェーブテーブルは8bit*256個で一波形を格納している。空いたメモリの分だけ波形は増やせるため、プリセットの強化もできるが、当分はこのまま他のモジュールを作成するつもりである。
ちなみに、Arduino(というよりATMega328)のアナログ変換を利用して疑似VCOとして動作させることも計画中であるため、FM変調もできるかもしれない。多分できる。