« AVR - MMLでPSG音源 | トップページ | ポケコン - CASIO VX-4のRAM増設 »

AVR - chiptune

以前、kryo氏によるAVRを使ったチップチューンを見て、そのうち是非やってみたいと思っていた

The hardware chiptune project

その回路では、DAコンバータの部分にR-2Rラダーのパーツを使っているのだけど、これがなかなか国内ですぐに手に入らない
そもそもR-2Rとはなんぞや?という元も子もないような感じだったのでsweat02、いろいろ調べて同じものをブレッドボードで作ってみる

Avrimg0017_2

更に Analog DevicesAD557 というDAコンバータも使って鳴らすことにも挑戦

まず R-2R による回路(8bit)

Avrchiptuner2r_5

Avrimg0015

PD0からPD7のポートに8bitのデータが流れ、その先に接続されているのが R-2R によるラダー回路、これがDAコンバータとなっている
10kのR-2Rとなっているけど、20kの部分は10kを2本でも可能で、つまり2倍の抵抗値になっていれば良いわけです
抵抗は金皮を利用し、100本から同一値のものを選定
8bit目のラインがオーディオ出力で、スピーカーまたはアンプに接続してやれば音が出るようになる仕組み

細かい部分は省いているけど、無事に再生出来た
感動note
更に2つのLEDは音の出力に応じて光る(2トラック分)

曲を作るにはkryo氏のオリジナルTracker(実際にはlft氏作)を使う必要があるのだけど、完全に専用設計になっているので音色作りから作曲まで一貫してこれで作り上げないとならない
但し、フォーマットは分かりやすいしソースも公開されているので、パターンだけならインポート機能なりを追加しても良さそう
4トラック構成で、問題は音色の作り方がイマイチわからん・・・

ちなみに電源は5Vだけど、電池駆動にしているので単3×3の4.5V
しかし、電圧計ったら4.75Vもあった・・・ダイソーのアルカリ電池なんだけど、意外と電圧あるんだ
電源を全て一緒にしているので、単3×2の3Vだと、音は出るけど不安定だった
9V(006P)等を使用する場合は、レギュレータを入れる必要がある

 

AVRについては、バイナリのサイズがほんの少し4KBをオーバーするので、曲のサイズを小さく編集すれば、4KBのAVRでも再生可能だと思う(あくまでも曲をそのまま再生する場合)

クロックは内臓の8MHzで駆動しているので、1MHzの場合はヒューズビットを書き換える必要がある
元々kryo氏は1MHzで再生していたようで、それでは処理が厳しいらしく8MHzに変更したらしい
逆にATmega168など容量が大きく、外部に20MHzなどのクロックを取り付けてソースを書き換えてあげれば、4トラック以上の再生も出来そうだけど、より小型に作るという意図には反してしまう

今回は取り敢えずkryo氏と同じATmega88を使用しているけど、更にコンパクトにするなら ATtiny861 でもいけるかな
扱っているショップが少ないので、いつか手に入ったら試してみようと思う

 

Ma739

オリジナルの回路にはアンプまで搭載されいるけど、今回アンプ部には共立のWonderKitとして出ている低電圧オーディオアンプ「MA-739」というのを使ってみた
名前の通り低電圧でも動作し、USBの5V動作までサポート出来るので、こういう工作にはぴったり

共立エレショップ - AVキット

 

今度は AD557 を使用した回路

Avrchiptunead557

Avrimg0014

ただ置き換えただけだけど、こちらも問題無く再生出来た

出音についてはFFTで細かく見ない限り、両方ともほとんど同じだと思う

ChiptunefftBlue=AD557,Orange=R-2R

FFTだとこんな状態で、青がAD557で橙がR-2R
同じと言っても良いくらい
というより16bitならまだしも、8bit程度なら比べるまでもないかな

ADD557を使えば回路を簡素化できるけど、デメリットは価格
例えば秋月で500円くらいだっと思うけど、R-2Rで組むなら抵抗16本で20円もしない

1種類の抵抗を使うなら、100本1袋100円として、AD557が約4個分稼げる
2種類なら12個分は稼げるのだ(抵抗値のバラつきはあるけど)
逆にスペースは取るけど・・・

DACとはどんなものか基礎から知りたい人は、まずR-2Rで実験して、実際の製作時にチップ化するのもありかと思う

両方の音をMA-739経由でPCへダイレクトに録音し、MP3にしたのでサンプルとしてどうぞ(kryo氏のHPのものと同一曲でノーマライズ等の加工は一切無し)

chiptune_r2r-ad557.zip

 

2008.08.30追記
このプロジェクトに含まれるlft氏作のTrackerを使いやすく改良しました。
続きは AVR - chiptune 2 にて!

 

Avrimg0016

古い携帯電話に搭載されている YMU759 という、いわゆるYAMAHAの MA-2 音源チップ

これを使って音源にしたいのだけど、データシートはあれど、レジスタマップとかが掲載されていないので使いようがない・・・
MA-2以降のデータシートには全て省かれてしまっているみたい

MA-1のデータシートには書いてあるんだけどなあ・・・MA-2くらいなら同じでいけるかな

ついで出来たら、YMZ294とchiptuneを組みあわせてみたい
あ、でもMMLは使えなくなるか・・・

このMAシリーズはシーケンサーを内蔵していて、バッファに流したデータを順次演奏していくだけ
なのでリアルタイムに鳴らすことは出来ないようで、例えばMIDI音源のような用途には結局不向きっぽい
更にデータもSMAFだっけ?それに準拠したデータでないとダメ

まあ1つ音を出したらバッファを埋めて空にして、また送るということを繰り返せばいいのだけど、音がずれるのは確実そうだ
シーケンサーをオミット出来るようにして直接音源部とやりとり出来れば良かったのに・・・

|

« AVR - MMLでPSG音源 | トップページ | ポケコン - CASIO VX-4のRAM増設 »

電子工作」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/204580/41288516

この記事へのトラックバック一覧です: AVR - chiptune:

« AVR - MMLでPSG音源 | トップページ | ポケコン - CASIO VX-4のRAM増設 »