DIY Wave Lab.

空いた時間でコツコツと。空かなくてもつくる。

DCOの制作

f:id:yoroheihei:20150429000050j:plain

 先月からシンセサイザの制作に取りかかったはいいが、なかなか進まない。

とりあえずはArduinoを用いてDCO(Digital Controlled Oscilator)を作ってみた。

 Arduinoとは言いつつも、中身はAVR言語でタイマーをバリバリ使用したものであるため、プログラムを後で読み返すと『?』となることもしばしば。自分が書いてるのに。

 今回はArduinoを二台使っている。一台はMIDIを待ち受けてただのシリアル信号としてDCOに送る役割を担っている。もう一台はDCOそのものであり、設定された波形をMIDI規格に準じた音階で生成している。

 

↓生成した波形。正弦、三角の他に矩形、鋸歯状波も生成できる。

f:id:yoroheihei:20150429000051j:plainf:id:yoroheihei:20150429000038j:plain

内部の処理としてはDDS方式を採用しており、ウェーブテーブルは8bit*256個で一波形を格納している。空いたメモリの分だけ波形は増やせるため、プリセットの強化もできるが、当分はこのまま他のモジュールを作成するつもりである。

 

ちなみに、Arduino(というよりATMega328)のアナログ変換を利用して疑似VCOとして動作させることも計画中であるため、FM変調もできるかもしれない。多分できる。