2008年のシンセフェスタに出品する打楽器モノを動かすのに、お客さんが好きなパタンを打ち込めるように作ったステップシーケンサーです。5トラック16ステップのパタンを打ち込んで、このパタンにしたがって、MIDI信号を出力します。
ブログを見てみたら、基板のパタンが起きたのが開催の4日前でした。そこから部品を載せてプログラムを書いて筐体を作って...今でも体がキツさを覚えている突貫プロジェクトでありました。突貫だけに、あちこち変なところもあります。が、改善に手がつかないので、手直しせずそのまま公開します。
仕様
- 16ステップシーケンス
- 5ドラムトラック (MIDI チャネル10、バスドラム、スネアドラム、ロー・タム、オープンハイハット、クローズドハイハット)
- テンポ固定、120BPM
- 全トラック、全ステップにボタンと LED がついている。ボタンを押すとパタンの ON/OFF がトグルする
ブロックダイアグラム
以下が、ステップシーケンサーの構成です。スイッチ・LED と、それを駆動するスキャナー、および CPU からできています。また、MIDI出力インタフェースを持っています。基板は2ブロックで構成されています。
回路
基板4枚に分けて設計しました。メインボードとコントロールボードが二枚一組で、メインボードが2種類、コントロールボードは共通です。
まずは、メインボード1 の回路図から。CPU と MIDI 出力部が載っています。CPU は ATMega88を使いましたが、ATMega48 でも問題ありません。あとは、コントロールボード上の LED をドライブするためのトランジスタアレイと、スイッチやLED を切り替えるマルチプレクサがいます。コントロールボードに余計な部品を置かないようにするため、スイッチやLEDをドライブする回路は全てメインボードにおかれています。
このメインボードにつなぐコントロールボードが以下です。コントロールボードは、ユーザが触る基板なので、LED・スイッチ以外に余計なものをおかないようにしてあります。二個のコネクタでメインボードと接続します。
上の二枚だけで、8ステップのシーケンサとして動かすこともできますが、16ステップに拡張するため、さらにメインボード2を用意しました。メインボード2では、メインボード1のCPUからアドレス情報だけをもらって、それをマルチプレクサに入れています。マルチプレクサの4051 は、3bit で振り分けを行い、イネーブルビットを 1bit 持っています。イネーブルビットは、アドレスの MSB に割り当て、メインボード1 と 2 で反転させています。このため、メインボード2には、インバータが入っています。Q1 と Q2 がそれです。コントロールボードはメインボード1用と全く同じです。
CPU のピンアサインはこちら→pin_assign
上下基板をつなぐピンヘッダの割り当てはこんなんなってます→connector_assign
ソフトウェア
見てのとおり、回路は、一見ごちゃごちゃしていますが単純な構成です。ややこしい仕事、といってもたいしたことないのですが、は、ソフトウェアでこなしています。
ソースコード→ step_sequencer
シーケンスパタンの入力・表示・パタンの再生機能を持ったプログラムです。テンポはなんと固定。突貫工事のための手抜きです。