電音の工場ブログ

当ブログは…

自作エフェクターシンセサイザ製作のネタや開発覚え書きなど、筆者の電音活動を記録しています。お探しの記事が見つからない方は、検索カテゴリ一覧をご利用ください。

現在、不用品放出中

2007-05-21

8pin AVR LFO完成(とする)

|  8pin AVR LFO完成(とする) - 電音の工場ブログ を含むブックマーク はてなブックマーク -  8pin AVR LFO完成(とする) - 電音の工場ブログ  8pin AVR LFO完成(とする) - 電音の工場ブログ のブックマークコメント

初めて妄想を晒したときからアルゴリズム検討したり、さぼったりしているうちに10ヶ月が経ち、ようやく8pin AVR LFO が完成。NGに続く8pin AVRシリーズ*1

出来たといいつつ、ブレッドボードに載っているだけ。今後はどのような展開にしようかと考え中。シンセのモジュールにしてもよし、エフェクタに組み込むことも考えられる。

マイコンには ATtiny45 を使用して、PWMにてCH0、CH1の2出力。内蔵A/Dコンバータ(ADC)で 周波数 / CH1のCH0に対する位相差 / 波形 を決定している。LFOの周波数は仕様では 7.5mHzから244Hz まで。

回路図はコチラ

ATtiny45のメインクロックは内蔵PLL発振の16MHz。出力は 62.5kHz 8bit のPWMで、回路図では1~2kHz程度のRCフィルタ*2で簡単に済ませている。このままの出力レンジは 0-5V。必要に応じてバファリング、電圧シフト、アクティブフィルタなどを試されたし。

また周波数と位相と波形は電圧ポテンショメータで指定するようになっているが、電圧制御も可能。ADCが10bitなので微妙に段階的な変化かも。しかも敷居の境目ではノイズによってこっちの波形になったりあっちの波形になったりということが起こってしまったが、これはこれで面白いのでそのまま採用。一応CH0に関しては波形が1周期変化したところで波形の切り替わりが行われるようにはしてある。

得られる波形はいろいろさまざま16種類。CVで波形選択できます(Doepfer的)。基本的には256アドレスの8bit語調のテーブルをいくつか持っていてそれを出力しているだけ*3なので、ご興味のあるムキにはテーブルを書き換えればOK!

ソースコード類はこちらからどうぞ。


以下 観測波形。

sine

rect

saw saw

tri

saw powered by 30 saw powered by 30 inverted

saw log by 10 saw log by 10 inverted

tri powered by 20 tri powered by 20 inverted

tri log by 10 tri log by 10 inverted

arc sine arc sine inverted

random


なんか見ていると、このLFOをカスケードにしても面白いような気がしてきた。そうなると16ステップの階段波形を入れなかったのが悔やまれる。矩形波をやめて階段波にしちゃおうかしら。

そうそう、当初案ではトリガで位相リセットという話があったけれど、それは止めて波形選択にしてしまった。リセットピンをポートに割り当てれば出来なくもないが、要望はありますかね? ちなみにリセットピンをdisabledにすると、あとで波形とかを書き換えたりしようと思ったときに苦労します。STK500とかのシリアルハイボルテージプログラマがあれば大丈夫だけど。

8pinモノとしてはだいたい仕様をつっこんじゃったかなと思う。もっとリッチな仕様についてはそのうちにやってくるV850 LFOへとネタを先送りしようと思う、今日この頃。

*1:シリーズだったのか? しかもNGはATtiny13だったし…

*2:しかもスチコン手持ちの関係で変な定数だわ、実測したら数割違う値だったり…

*3:補間処理は行っておりませぬ。

ふふふふふふ2007/05/20 20:07何に使おうか迷うほど波形が潤沢ですね〜。波形の選択がCVなので、連続的に変化するように見えるようなテーブルを仕込んでおいたりしても面白そうです。
トリガで位相リセットはそれはそれで非常に興味があります。ギターのアタックからトリガを取り出す等アナログ的に難儀な部分で苦労してみたいかも。
・・・てゆーかAVRを活用できる環境を構築せねば。ここまでお膳立てしてもらって手をつけないのは信義に悖るので。

analoganalog2007/05/20 21:11Chuckさん、お疲れさまです。すばらしいです!私も環境整ったら追試してみます。

RJBRJB2007/05/21 00:28さすがはChuckさん、仕様がスマートでいつも感心してます。波形がCVで制御できるというのはなかなか面白いアイデアです。あと、たとえばCV変化で波形をシームレスに変化させられるというのはハードルが高そうですかね?

ChuckChuck2007/05/21 07:02追試していただけるととても嬉しいので、時間のできたときにお願いします >ふふふさん、analogさん。
実際の音楽活動を伴わずに仕様を練っているので、大枠だけ作って、あとは使う人で工夫を!としたいのですが、マイコンものは追製作難易度が高いですよねぇ…

RJBさん:
波形モーフィングですかっ!考えていませんでしたが、演算的にはそんなに重くないのでインプリしてみましょう。

ChuckChuck2007/05/21 08:27モーフィングまでやったら、次はDCOへ…

ChuckChuck2007/05/21 21:16LFO波形モーフィングできました。まとめて、明日にでもコードをあげようっと。

takedatakeda2007/05/21 22:25うー。RJBさんの、
PWMでEG
http://www.rjblog.net/archives/2005/e000141.php
PWMでEGその2
http://www.rjblog.net/archives/2005/e000142.php
も気になってる記事のひとつなんだけど、PICだったー。
Tiny45って4つ1000円だから、ノイズ用に1発(波形選択はブルダウンしちゃえばいいのかなプルアップかな?)LFOにこれを使ってさらに、EGもTiny45で動いて、さらに、「さんハイ、ペダル」がTiny45で動けば4つ買うぞ。
そうそう、アイディアだけど、周波数の設定、サンハイペダルみたいにタッピングに対応するとか。周波数の設定の電圧が、0Vになったときとそれ以外のときとで、スイッチして、タッピングでスピードが設定できるとか。
しかかりのプロジェクト多すぎて、今すぐは試せないー。むっきー!

r0r0r0r02007/05/21 22:40すんまへんWinAVRのバージョンは何でしょか?
Tiny2313でメイクできるかしらなんてやったところ名句通りませんでした。
そこでTiny45に戻してメイクしてみるもやはり通りませんでした・・・orz
僕のは20060421です。
フェイズシフタにLFO乗せるのらくだなぁなんて・・・・

RJBRJB2007/05/21 23:33わぉ、ちょっとつぶやいたのにもう出来てるし > モーフィング
これはもう作るっきゃないって感じですね!(なぜかTiny45ころがってるし…)
EGも簡単にAVR化出来るんじゃないかな > takedaさん

funaxfunax2007/05/22 17:04はじめまして。いつも拝見してます。
IPプラザでtiny45を買ってきてブレッドボード上で組んでみました。
楽しいですね。ありがとうございます。
WinAVR 20070122 (AVR STUDIO 4.13 build528)で
サクッとビルドできました。操作性のいいポテンショメータを
買いに行きたいな~。

ChuckChuck2007/05/22 21:14funaxさん、こんにちは。追試していただきありがとうございます。動いたとのことでホッとしてます。マイコンはハードルが高いのか参入者が突然増えるということもないですが、こういう小ネタでもOKというメッセージを込めてやっております。
ATtiny45ネタということであれば、ELM ChaNさんや小山先生のオルゴールが秀逸で参考になりますのでご紹介します。
http://elm-chan.org/works/mxb/report.html
http://siva.cc.hirosaki-u.ac.jp/usr/koyama/mymelo/

ところで、もしや 船田戦闘機さん ですか?

funaxfunax2007/05/23 01:48> もしや 船田戦闘機さん ですか?
あ、ハイ、それですw
さいきんマイコンの面白さを発見してしまい、遅ればせながら皆さんの活動を追っているところです。追いつくのはムリそうですけどw

ChuckChuck2007/05/23 07:55追いつき追い越すというよりは、マイコンという手段を得てみんなそれぞれ独自の楽しいことを追求しましょう~

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20070521