このページは現在更新していません。「私だけの電子オルゴール」のページに移行しましたのでそちらをご覧ください。
2002.6.29-2005.3.20 小山智史(弘前大学)
以下、AVR版の電子オルゴールです。C言語[1]で5つのプログラムを作ってみました。音楽データは、インターネットで入手した着メロデータから自動生成しました。3和音やピアノ音や正弦波音の音楽が楽しめます。正弦波音の作り方は[2]の資料を参考にしました。2kBのAVR(AT90S2313)に3和音で5曲、単音で16曲入りました。曲の数というよりも、合計の音符の数で制限されます。AT tiny2313版も作ってみました。
なお、正弦波音では圧電素子からの音が小さく、大型の圧電素子を使うか外部アンプに接続する必要があります。
○実装例(左がAT90S2313版、右がAT tiny2313版):

○回路図(左がAT90S2313版、右がAT tiny2313版):

○プログラム:
注 ATtiny2313版はクロック周波数が8MHzとなるにもかかわらず、音階データ(melotab*.c)を従前のものと共用しているので、音程が低くなります。
|
ソースプログラム(WinAVR20060421, WinAVR20100110対応) (batファイルはコンパイルと書き込みの参考) | 説明 | ||
|---|---|---|---|
| AT90S2313版 | AT tiny2313版 | 共通部分 | |
| melo1.c, melo1.bat | melo1tn.c,melo1tn.bat | melotab1.c |
矩形波単音1曲(楽譜をプログラム中に記載) |
| melo2.c, melo2.bat | melo2tn.c,melo2tn.bat | melotab2.c, bach.c, condol.c, ... | 矩形波単音15曲 |
| melo3.c, melo3.bat | melo3tn.c,melo3tn.bat | melotab3.c, bach.c, condol.c, ... | ピアノ単音15曲 |
| melo4.c, melo4.bat | melo4tn.c,melo4tn.bat | melotab3.c, violin.c, yesterda.c, mizuiro.c, oncemore.c, takefive.c | 矩形波3和音4曲(主旋律はピアノ音) |
| melo5.c, melo5.bat | - | melotab5.c, violin.c, yesterda.c, mizuiro.c, oncemore.c, takefive.c | 正弦波3和音4曲 |
○楽譜データファイル作成プログラム(参考): meloc.bat, meloc.awk
楽譜ページgakufu.htmをホームページで入手し、
C>meloc gakufu
と操作すると楽譜データファイルgakufu.cが作られます(別途jgawk.exeが必要)。楽譜データファイルを数曲分作成し、そのファイル名に応じてプログラムの先頭部分を書き換えます。なお、このプログラムは不完全なもので、うまく作成できた楽譜データのみを使いました。
(参考)
[1] WinAVR, http://sourceforge.net/projects/winavr/
[2] AVR314: DTMF Generator, http://www.atmel.com/atmel/acrobat/doc1982.pdf
2000.8.31-2001.6.18 小山智史(弘前大学)
PIC版の電子オルゴールです。音楽データは、インターネットで入手した着メロデータから自動生成し、3和音の音楽が楽しめます。PIC16F84Aに3曲入りました。
○実装例:

○回路図:

○プログラム:melo4.asm, melotab.asm, macro.asm, ...
○楽譜データファイル作成プログラム(参考): melopic.awk
