電音の工場ブログ

趣味の電子工作を中心としたブログです.音モノの工作が多いです.

MIDI Controlled FX Switching System

MIDI Controlled FX Switching System

以前にPICマイコンで作ったエフェクト・ループ・プログラマを大幅にバージョンアップ*1しようとするのがこのMIDI Controlled FX Switching System、旧名からの連続性で言うと プログラマブル・エフェクト・ループ・スイッチング・システム。

まじめに検討開始(5回目ぐらいか)。この項は順次updateする。

名称案

組み合わせて使うものなのでシステムであるとは言える。「プログラムしたエフェクタのループのパッチをMIDIで切り替えるシステム」なので、MIDI Controlled FX Switching Systemだけれど、名前が長ったらしいのが難点。

システム仕様

  • プログラマ部と信号ルーティング部とを分離する
  • それぞれ独立した1Uラックに組む
  • プログラマ部からの制御信号は port0 (8ループ) / port1 (8ループ) が出力される
  • ルーティング部は1-port分の制御信号を受け、8ループのON/OFF(ないしはA/B)を切り替える
  • 制御信号はオープンコレクタ出力

信号ルーティング部仕様

  • プログラマからの信号に従って8ループを切り替える(サイズの関係)
    • 1ループあたりはA/B boxとなっている
    • ところどころ send-return を挿入可能とする。挿入個数はパネルレイアウトして決める
  • 切り替えはメカニカルリレーを基本とする
    • 採用するリレーとピンコンパチブルにしたアナログ信号切り替え子基板を用意し、アナログスイッチングも採用できるような余地を残す

プログラマ仕様

  • 16ループをプログラムできるようにする
  • 出力は8ループずつ port0/port1に分ける
  • パッチ切り替え(通常)モードとエディットモードをもつ
    • 状態は、INIT, SELECTION, EDIT, POWER DOWN を想定。POWER DOWN を採用するかは検討中
  • パッチ切り替えはMIDI program change(MIDI PC) から行う
    • MIDI chは起動時に設定値を読み込む
  • コントローラは BOSS GT-3 と Generic MIDI(128プログラム)を考える
    • BOSS GT-5/GT-6 対応もとりたいが、現物を持っていないので検証不能
    • コントローラ選択は起動時に設定値を読み込む
  • パッチ切り替えは内蔵ロータリ・エンコーダからも行う
  • 現在選ばれているパッチ番号を7セグメントLEDで表示する
  • そのパッチにおける16ループのON/OFF状態をLEDで表示する
  • エディットモード時に16ループのON/OFF選択をしてWRITEボタンで記録する
    • 記録したらパッチ切り替えモードへ移行する
    • 現在エディット内容のプログラム内容比較機能 →
    • エディットモード中のMIDI PCの取り扱い → 受信し表示を切り替えるが、プログラム内容を最終段レジスタにラッチしない。最終段レジスタはタクトスイッチでの選択内容を記録する
    • エディットモード中のロータリ・エンコーダ操作の取り扱い → MIDI PC によるものに順ずる
  • 電源断処理を行う
    • スーパーキャパシタでバッテリバックアップ (待機時消費電流しだい)
    • バックアップからの復帰と電源投入とで動作を変える
      • 完全に電源が切れているところからの Start-up RESET
      • バッテリバックアップに入っていて Power Down mode からの RESET

割り込み線は足りるのか? (シリアル(MIDI)、ロータリ・エンコーダ、スイッチ押されて wake-up、電源断検知)

プログラマ実装案

  • ポート数と内蔵EEPROMのワード幅に鑑み、マイコンは2個用意する
    • ひとつあたり8ループをプログラムできるようにする
    • clock/reset回路は共通のものを用いる
    • 2つのマイコンのプログラムは同一のもの
    • master/slave 動作をさせるかどうかは未定
  • 開発言語は avr gcc とする
  • MIDI ch/コントローラ選択のDIP SWは2つのマイコンで共有する(メドがたった)
  • マイコンAVRを選択する
    • AT90S8515 または AT90S8535。RTCを使いたいときに8535を選択する
  • 7セグLEDはシリパラしてラッチして表示するタイプとする(ピン数節約のため)
    • 74HC595で行う
    • 8ループ出力のLEDについても同じようにするべきか → やらない。点滅させるにしても動作は同期させる
  • ロータリSW を回しても、一瞬の不感時間をおいてプログラムが有効になるようにする。ロータリSWをぐるぐると回す使い方に対して、信号ルーティング部がメカニカルリレーであった場合の寿命に鑑みて。
必要な部品
  • AT90S8515 or AT90S8535 ×2
  • ロータリ・エンコーダ
  • LED内蔵タクトスイッチ (Prophet調) ×18
  • 3 digit 7seg. LED
  • 74HC595 ×3
  • TLP552
  • 5pin DINジャック
  • DIP SW 6P or 8P
  • スーパーキャパシタ
  • コネクタ
    • DF1B-*S-2.5R
    • DF1B-*P-2.5DSA
実装方針

部分に分けて、ライブラリを作りながら、少しずつやる (^^;)

メモ
  • 74HC595
    • I_{o} (source/sink): Q_{n} ±35mA、Q_{7}' ±25mA
    • I_{cc}, I_{GND} (source/sink): ±70mA

*1:ていうか作り直し