電子オルゴール
一つのICとスピーカと少数の部品のみで音が鳴る電子オルゴールです。パッヘルベル「カノン」フルコーラス3和音、強弱記号搭載です。電池、スピーカを含めず部品代は200円程度となっており、市販のオルゴールICに勝るとも劣らないものになっていると思います。


AVRで何か音の出るものを作りたという考えから始まり、せっかくだから和音を作ろうと思い「カノン」を選び、終わりどころがわからず最後まで作ってしまったという形です。
楽譜は全て手打ちで、音階を変換用プログラムに一つずつ打ち込み、その出力をAVRに書き込むというようにしました。MIDIからの変換などにすれば良かったと今になって思いますが、最初はここまで長くなると思わずこの方式にし、合計で数十時間を費やしてしまいました。プログラム製作に掛けた時間では自己最長です。
楽譜データは1音符1byteになっており、上位3bitが長さ、下位5ビットが音階データになっています。また強弱記号や♯、♭も一つの音符として楽譜上に書いています。
音を出す方式は、あらかじめ用意した波形テーブルを順番にPWMで出力しています。これをフィルタ回路に通すことで、下図のような波形を電圧で得ることができます。ここでは典型的なフィルタ回路ではなく、それから素子を減らした「フィルタもどき」になっていますが、これはスピーカを直接駆動する出力を得るためで、効果は少し低いです。データ容量の問題で一周期40プロットとなっており、音質はあまり良くありません。
まずはあらゆる波の基本となる正弦波で作って見ました。フルートなどはこの波形だそうです。
せっかくなのでバイオリンのような音を出したいと思い、色々調べましたが、音質の要素である「減衰」、「ゆらぎ」などは容量の問題で実装できません。波形だけでも似せようと倍音の合成波を作るなどし色々試しましたが、それらしくはなりませんでした。試行錯誤しているうちに「オルガン」のような音が出たのでこれも採用しました。

正弦波 合成波
これを、出したい周波数により読み込む周期を変え、音程を変えます。また和音を出す際は、旋律それぞれで出力すべき数値を求め、それらを足し合わせることで波形の合成を行います。
スピーカは基本的には大きいほど低音がしっかり出るという印象ですが、回路が小さいのでスピーカも小さいものを付けました。何かを分解して得たものですが、結構良い音質と音量が出ています。これを錫メッキ線で配線兼固定し、これを紙筒で巻きました。これにより、スピーカ裏から出る逆位相の音との干渉を防ぎ、特に低音の音の出を良くします。この作品以外でも、裏面の音の処理をするかしないかで音量・音質は大分違います。

錫メッキ線固定 部品面 紙筒
スピーカの出力をマイクで拾って録音しました。mp3では容量オーバーとなってしまうため、動画でアップしました。
sin波によるカノン
合成波によるカノン
回路図

アートワーク

プログラム
kanon1
kanon2
hexファイルはアップロードの都合上拡張子を変えてありますので、「.txt」を「.hex」に変更してご利用ください。
ヒューズビット
楽譜は全て手打ちで、音階を変換用プログラムに一つずつ打ち込み、その出力をAVRに書き込むというようにしました。MIDIからの変換などにすれば良かったと今になって思いますが、最初はここまで長くなると思わずこの方式にし、合計で数十時間を費やしてしまいました。プログラム製作に掛けた時間では自己最長です。
楽譜データは1音符1byteになっており、上位3bitが長さ、下位5ビットが音階データになっています。また強弱記号や♯、♭も一つの音符として楽譜上に書いています。
音を出す方式は、あらかじめ用意した波形テーブルを順番にPWMで出力しています。これをフィルタ回路に通すことで、下図のような波形を電圧で得ることができます。ここでは典型的なフィルタ回路ではなく、それから素子を減らした「フィルタもどき」になっていますが、これはスピーカを直接駆動する出力を得るためで、効果は少し低いです。データ容量の問題で一周期40プロットとなっており、音質はあまり良くありません。
まずはあらゆる波の基本となる正弦波で作って見ました。フルートなどはこの波形だそうです。
せっかくなのでバイオリンのような音を出したいと思い、色々調べましたが、音質の要素である「減衰」、「ゆらぎ」などは容量の問題で実装できません。波形だけでも似せようと倍音の合成波を作るなどし色々試しましたが、それらしくはなりませんでした。試行錯誤しているうちに「オルガン」のような音が出たのでこれも採用しました。


正弦波 合成波
これを、出したい周波数により読み込む周期を変え、音程を変えます。また和音を出す際は、旋律それぞれで出力すべき数値を求め、それらを足し合わせることで波形の合成を行います。
スピーカは基本的には大きいほど低音がしっかり出るという印象ですが、回路が小さいのでスピーカも小さいものを付けました。何かを分解して得たものですが、結構良い音質と音量が出ています。これを錫メッキ線で配線兼固定し、これを紙筒で巻きました。これにより、スピーカ裏から出る逆位相の音との干渉を防ぎ、特に低音の音の出を良くします。この作品以外でも、裏面の音の処理をするかしないかで音量・音質は大分違います。



錫メッキ線固定 部品面 紙筒
スピーカの出力をマイクで拾って録音しました。mp3では容量オーバーとなってしまうため、動画でアップしました。
sin波によるカノン
合成波によるカノン
回路図

アートワーク

プログラム
kanon1
kanon2
hexファイルはアップロードの都合上拡張子を変えてありますので、「.txt」を「.hex」に変更してご利用ください。
ヒューズビット
Low | High | Ext |
FF | DB | FF |
スポンサーサイト