「たくさんEG」
「たくさんEG」
名称はどうしようかな。
先日のA’のEG2の拡張を検討中。
EG2は新規のオリジナル。ATmega88Pというフラッシュマイコンを利用。
これに取り組む際のコンセプトはふたつ。
(中略)
EG2もアタック期間以外でゲートが立つ End of Attack (or EOA) 信号を出力する。 はてなグループの終了日を2020年1月31日(金)に決定しました - はてなグループ日記 - 機能変更、お知らせなど
動作は以前に書いたことがある。
はてなグループの終了日を2020年1月31日(金)に決定しました - はてなグループ日記 - 機能変更、お知らせなど
- ゲート信号がきたらAttack状態として
- Attack担当PWMを動かし電源電圧(+5V)をチョップしながら充電。
- 充電電圧をマイコンのアナログコンパレータで監視して+4V を超えたらDecay状態へ移行し、
- Attack担当PWMを止め、Decay担当PWMを動かし、Sustain電圧へ向かって放電。
- ゲート信号が落ちたらRelase状態に移って、
- Decay担当PWMを止め、Relase担当PWMを動かし、EG OFF電圧へ向かって放電する。
EG波形の他に、End of Attack (EOA) のゲートを出力している。これはアタック以外の期間でHIGHになっている信号で、EGをカスケードにするときに使える。こういう信号が実はほかにも欲しい。End of Decay (EOD)、End of Release (EOR) である。しかしA’シンセの実装では諦めていた。
内部の動作をよくみるとわかっていただけると思うが、Attackはマイコンに内部状態*1があるので簡単にEOA信号を出すことができるのに対して、Decay や Releaseはそれを行うことが出来ない。マイコンからはDecayはSustain期間と区別がつかないし、同じくReleaseはGate Offと区別がつかない。なんとか区別をつけようとすると、コンパレータを用意して、
ということになる。そのコンパレータを用意するのを、実装面積が足りないとかマイコンのI/Oの空きが少ない、といったことから実施できなかった。
A’のEG2ではADSRのコントロールはマイコンの内蔵ADCでやっているが、これが「たくさんEG」になったら、一組のコントロールで全部のEGインスタンスをコントロールできるからその分I/Oに余裕ができる。さらに嬉しいことには、ADCを使わないときはADCのMUX部分がACMPに使用できて、電圧比較するポートをソフトで切り替え可能ということらしい。
EGをたくさん作るとしたら、ひとつあたりの部品点数*2はなるべく減らしたいと思っていたので外にコンパレータを用意しなくて済むのはとても助かる。たくさん(4~16個ぐらい)作るときはP板を起こすのかしら。マイコンとオペアンプは表面実装品がいいな…
EGの時定数も切り替えられるようにしたいかも… 結線も外からコントロールできるようにするべきか?
などと夢が広がる「たくさんEG」だが、プロジェクト名称案を思いついた。Many EGs ということで、“MEG”