This time, prototyping an electric music instrument by Arduino.
今回は、Arduino の PWM 出力を使って電子楽器オモチャの試作をしています。PWM の原理、ナイキストの定理などは理解していたつもりなのですが、実際にやってみると問題多発で、一時は「Arduino の PWM 出力で楽器は無理なんじゃないか」と諦めかけたのですが、なんとか聞けるレベルまで実現できました。
PWM の原クロックは 16MHz(Arduino の CPU クロック)で、それを Timer 2 の 256段階 PWM を通して出力を得ています。現在、3音ポリフォニックのエンベロープ付きです。波形は矩形波です。のこぎり波やサイン波もできると思うのですが、矩形波が、昔懐かしい PSG 音源に似ているような気がして満足してみます。(のこぎり波も試してみたいと思います。)
スペクトラムはこんな感じです。
矩形波なので倍音が乗ってます。エンベロープは、こんな感じです。楽器理論には弱いのですが、とりえあずエネルギーが 1/exp() で減衰することを考えて振幅をいじっています。
あとは、これに鍵盤なんかを付けてみたいと思っています。