2007年05月23日

I2CSND:はじめに

作ってみようと思っている装置で書いた

(4)I2C で制御する音を出すなにか
電子工作のテーマとして音を出すものを作るのは楽しい。I2Cドライバも作ったので、ATtiny45 (かひょっとすると 85) を複数個つかって音を出すなにかを作ってみたい。
プログラム次第で簡単なものから高度なものまで作れると思うが、バーチャルアナログシンセなんてものにもトライしたい。外部クロック入力にして正確なA音程を目指すのも良いが、RC発振器をキャリブレーションして使うというのも味があってよいかも知れない。電源ノイズが載るのだけは避けたいので、電源だけは専用のレギューレータをつけてやりたい。

についてボチボチ取り組みたいと思う。

バーチャルアナログシンセについて

一言で書くと、DSP でアナログシンセをシミューレートするタイプのシンセサイザ。WikiPedia には、こういう説明がある。

AVR でバーチャルアナログシンセを作った草分け的な作品は、SYN8535で、8MHz の AT90S8535 の上で作られていた。今は、ATmega16/ATmega32 に移植されて、AVRSYNに進化している。
AVRマイコンによるMIDIシンセサイザーの製作なんていうページもある。バーチャルアナログシンセについて、わかりやすく説明されているので紹介しておく。

どんなものを作りたいのか

USB や I2C が自由に扱えるようになったので、
AVRマイコンによるMIDIシンセサイザーの製作のようなPWMでサウンドを生成するものを、I2C スレーブとして実装して、複数のスレーブをマスターコントローラに接続し、USB で PCと接続して制御するようなものを作りたいと思う。

もちろん本格的なバーチャルアナログシンセを作るわけではない。音作りそのものを楽しむなら、PC で作ったほうがよさそうだ。ググるとZynAddSubFXなんていうオープンソースのものも見つかるし、他にもあるだろう。

本格的なものを作るなら、AVR では力不足で、AT90SAM7Sなどで作るのが良さそうだ。
ちなみに、AT90SAM7SはDMAを持っているので、シリアルDACに接続してもCPUの負荷にならないし、内蔵メモリも多い。AT90ARM7S開発ボードとしては、ベストテクロノジーの BTC090や Olimex の SAM7-H256(ソリトンウェーブが扱っている。)あたりがよさげ。


でも、AVRという限られたリソースでどれぐらいのものが作れるのか挑戦したい。そのために、まずはベースとなるものを作る。バーチャルアナログシンセそのものは、すぐには完成しないだろう。..というかいくらでも工夫の余地がありそうなので、完成しないかも知れない。

追記:
オープンソースのシンセサイザで、設計するとき参考になりそうなものをピックアップしてみた。
the Linux MIDI-HOWTOを見て、spiralmodular
Source Forge で検索してみつけた TetraHead Sound System。Java で書かれている。(英語ですらないが)pdf のドキュメントがあって、わかりやすくまとめられていて参考になりそうだ。
posted by すz at 21:38| Comment(0) | TrackBack(0) | I2CSND
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/30760392
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック