ヘルプ電音の工場ブログ当ブログは...自作エフェクターやシンセサイザ製作のネタや開発覚え書きなど、筆者の電音活動を記録しています。お探しの記事が見つからない方は、検索やカテゴリ一覧をご利用ください。スパマーが来訪すると、ときどきコメントをはてなユーザのみに絞ったり開放したりすることがあります。|ここんとこしばらくは部屋の整理に邁進しておるです。部屋がまったく使えない状態、散らかりまくり。そんななか、「みんなで自らの作業を見せ合う」という怪しい会が催され、行ってきた。やって場所と時間をひねくり出して使えない部屋からの逃亡。ものだから、作業会の前に秋葉原で買ってきて、合わせて単三2本の電池ケースも買ってきてアリゲータクリップで繋いで実験くん。見事にDAT動いて嬉しい。電池ケースに#1プラグをはんだづけして常用しようと思う。持ち込んでオシロを借りてパルス計測。振ってパルスの周波数を観測してきた。LFOがどんな波形で揺すっているのかはパルスを見ているだけではわからなかった。F/V変換器を作って調べてやる必要があるかなぁ。ESM-2を箱入れしようと通販でタカチのFC-5-20-20を購入。事前に設計しておいて、作業会の現場でケがいてオプティカルセンターポンチの実演まで。あれだ、他の人と話をしながらやっていたら穴をあけないはずのところにまでポンチしてしまった。ポカを避ける段取りが不十分だったなぁ。これまた作業が止まっているギタマガの回路図採り。くやしい、早々に回路図採取しなくては。|BBDのドライバの方は実機フランジャのCP周波数を測定しようということにして、しかし部屋が片付かないのでペンディングしている。E-Musicグループ)。前回こんな図面を出した。PCKの分周比とトグルモードのPWMにしてBBDドライブ用のパルスを生成するとこんな感じの周波数になりそうですよ、と。16)にしてOCR1C値(0~255)に対応するクロックパルスの発振周波数をグラフ化したものだ。logスケールで線形となっている。することができて、最も分周すると15Hzまで作ることができる(分周比16384)。グラフの一本化パラメータ化されたままでは逆関数の定義ができないし扱いづらいので、定義域をひとつに、グラフを一本化した。範囲拡張して以下のとおり定義域を場合分けしている。IN[11:4]これで散布図を描くと以下のようになる。ディジタル設定なので得られる値は離散的なものになります。1MHzの次は969.7kHzとかですね。ある程度OCR1C設定値が大きいほうが値間隔が細かくなります。分周比が1以外のところでは、入力範囲が分周比に応じて飛び飛びになる。1024の次は、ここは分周比が8の領域であり、1032になる。入力範囲は表中のルールで丸められる(510も511も、分周比2、OCR1C値255となる)。使うことが出来ないとわかった。最悪値は分周比1、OCR1C=64、OCR1A=32とした984kHz)。これもあまり問題にならないでしょう。同時にONして、アナログスイッチが筒抜けになることのほうが(音的に)イマイチでしょう。大きいサイズ入力設定値と得られる遅延量の関係は線形となっていることがわかる。グラフ中で入力設定値の定義域は16~4095とした。入力設定値16はCPでは2MHzにあたる(その時の遅延量は1.024msec)。入力設定値4095では約260msecの遅延量が得られる。入力設定値の分解能が最も細かい(分周比が1だから)定義域を16~255とした部分を拡大表示してみると、次の図のとおりとなる。大きいサイズ得られたグラフの逆写像を利用して、どれだけの遅延量が欲しい時の設定値はいくつにすれば良いか、ということがわかる。今後は、実際のエフェクトで必要な遅延時間とその変化の度合いを調べ、マイコンで生成できるようマッピングアルゴリズムを考えていく。内蔵PLLに依っている。内部RC発振したものをPLLで逓倍して64MHzが出ているので、温特やら電圧特性やら影響を受けて発振周波数は変化するものと思われる。消費電流は12mAだった。debug可能状態では電流が多めに出るらしいとは聞いているが、現状こんなものということで。矩形波生成を確認した(うちのオシロだと16MHzは鈍っているが)。二相のパルスが出力でき、さらにデッドタイムも付けられることも確認。これらはペリフェラルだけで出来て*1CPUはまるまる別のことができる。これならじゅうぶんBBDのドライバになると思われる。マッピングを考える必要があります。16:21素晴らしい!!せっかく作っていただいたアンチログ出力付きLFOですが、これに期待して、組み込みはちょっと待ちます。なんつってもドライバが不要になるのが魅力!16MHzまでは要りませんよ。BBDは動かんでしょ、高すぎて。これまでの機材では、BBDクロックの最高は1MHzでした。2MHzくらいまで、矩形波がきれいに出れば、まったく問題無しです。2MHzならナマらないですよね?嬉しいな嬉しいな、っと。11:54どうもです。1MHz、2MHzはしっかりした矩形波でしたのでイケルと思います。机上検討ではなんとなくいけそうな気がしてきました。きっかけはtwitterだった。titleとツイート*1していたので見てみたところから始まる。最近目が疲れるので英語は苦しいのだが、ざっと1分でスキミングした理解によれば、ROMに波形データ書いておいて、MIDIノートのピッチに合わせて回して読みたい、マイコンを使いたいということのようだった。クロッキングはどうするんだ?というあたりから話がそれたのか、アセンブリ言語だ、FPGAだという話にも飛んでいた。残念ながらフェーズアキュームレータでDDSという話には行かなかったようであったので、私としては追跡をやめた。いやー、ときどき読むデータを飛ばさないと高音で苦しいでしょう。真面目に1周期分のROMテーブルを全部読み出していたら高音ではずいぶんと高速クロックになってしまう。LSIで逓倍したクロックでカウンタ回してアドレッシングするのが無難じゃね?とか思うわけであった。この問題は、実は、私にも無関係とは云えない。いえATtiny45でBBDドライバを作ろうとすると似た問題に当たるんだよね。シンセのBBDモジュールについて言及したが、そのなかでマイコンでBBDドライバをできないかという点にも触れており、コメント欄でも燃料を投下していただいていた。ひとつのスキームでやるのは難しいという印象だった。いうやり方を発振周波数によって切り替えることになるかなぁと考えていた。OCR1Cの値をトップ値としてカウンタをリセットできる。トグルで使えば64MHzのクロックをカウントしてパルスを出せるはず。PWMの波形生成はトグルモードにしてやれば値管理も楽。timeも付けられる。これらは全部マイコン内部のハードウェアモジュールがやるのでソフト側ではLFO関連処理に集中できる、と。PCKの分周比とトグルモードのPWMにしてBBDドライブ用のパルスを生成するとこんな感じの周波数になりそうですよ、と。大きいサイズはこちらさっそくテスト用にコードを書き始めました。マイコン側で演算しないといけないね、というところ。A/Dコンバータが豊富なのでピン数は足りる。いうかぎりぎりぴったり。OC1A_n)、電源、GND、RESET。美味しい値はどうなのか、そのときクロックパルスはいくつだったらいいのか、といったあたりを探らなくてはいけません。|シンセ用にBBDモジュールをいつか作りたいと考えていて、ここのところBBDに気が向いたのであらためてデータシートを眺めている。MN3007(1024段BBD)。家にいくつかストックがあるので。コーラスにするというよりは微妙に遅延させた波形を加算してフィルタ的な色付けをすることが目的で、どういう回路がいいのかいまのところ検討もつかない。いうわけでよく見る回路よりもぐっとシンプルにして、まずは遅延部分+制御部だけで実験してみるのでいいのではないか。前後のアンチエイリアシングフィルタは無し、あるいはモジュラシンセなんだからVCFを使えばいい原音ミックスやフィードバックも外にミキサをつければいいぐらいに割り切りたい。その割にはVo―Vi図では-10dBm~+10dBmまで入れてて、+7.5dBm過ぎたあたりから歪んでいるご様子。BBDで歪ませろと...(言ってない)。それはそれとして遅延量は電圧制御したいところだ。電圧制御で使うのだろうけど、これもまぁ探せば回路はあるはず...と、BBDの参考書についてはその昔記事を書いたことを思い出した。E-Musicグループとくに後者は強力*1。これらの本さえあれば勝てる、じゃない書ける(回路を)。なければオークションで、オークションで負けても図書館で。出力の二相クロックのデューティもいい具合に調整されているらしいという話も聞くのでドライバにはMN3101一択!(MN32xx系BBDにはMN3102ね)って感じなのだけど、マイコンで出来ないものかなと。参照)もBBDドライバを揺するためのものだったわけで、LFOとBBDドライバを一体化できてしまったらいいのになぁと思うわけです。CPLDとかハードウェアの分周器を使う手もあるがここは一般部品率を高めたいので、例によってしばしば使うマイコン、ATtiny85でシステムクロック16MHzとするとして、MN3007の動作条件の10k~100kHzということであれば、800~80クロックに1回ポートをトグってやればいい計算になる。100kHzよりも倍・4倍速いクロックパルスでBBDをドライブするとなると難しくなってきそう。クロックの振幅も15Vスイングしないといけないようだし。BBDモジュールを作る際にはマイコンドライブも視野に入れることにするか。13:11LFOとdriverがマイコン化されるとflangerも相当シンプルになりますね。3207でチャレンジしてみたいです。14:18BBDクロックは1MHzていどまで充分いけます。1024段だと最短ディレイ時間は5msでしょ。2相クロックは、まあ専用ドライバがいいけれど、普通の50%デューティーでも大丈夫(っていうか、問題なし)。BBDでキモなのはバイアスだけです。合ってればとりあえず音は出ます。後段のフィルタは、やっぱりあったほうがいいと思います。波形を見ると卒倒しそうになりますよ。マイコン使うなら、BBDの直接ドライブがいいかもしれない。07:13コメントありがとうございます。いつになるかわかりませんが「LFOとドライバでマイコンひとつ」にチャレンジしてみたいと思います。発振周波数は対数軸で直線になるように揺すればいいのでしょうか。1MHzの生成となるとグンとハードルが上がりますね。波形生成できてもLFO部が動けなさそう、15Vスイングにするにもオープンコレクタだと1MHzが大変そう...など。遅めのクロックパルスを生成してCMOSの4046でPLL逓倍したくなってしまいます。単体でどこまで行けるか取り組んでみます。PWMの波形生成はトグルモードにしてやれば値管理も楽。timeも付けられる。ツイートするAnalog2.0Ganさんが開発された手作り向けシンセサイザーシステム。設計と作り方が公開されている。...TopHatenar。