とりあえず 
モーターフェーダーを使わずにポテンショメーターを使ったコントローラーのイメージ図を。
チャンネル毎のLCDも外して7SEG-LEDに置き換えました。
とりあえず、作る!ということを重視した外部仕様への置き換えです。

KeyboardCenter02

 
基本的な考え方として、1ファンクションにつき1物理コントロールを基本にしてます。
 
マルチファンクションにすると、設定とかが間違えていた場合に 
表示が別のファンクションになっていると、ライブのステージ上でそれが見えない。 
つまりは「ああー!!あそこ設定間違ってて違う音出ちゃってた!」とか・・・。 
人間はうっかり間違う生き物なので、1ファンクション1コントロールで、現状が全て見渡せる 
ように、ということを大事に考えてます。 

入力段に
チョットでも音が鳴れば点灯するシグナルチェック用のLEDと、ピークを警告するLEDを取り付けます。
ステージで「音が出ない!」って時に、どこが問題で音が出ないのかってのはかなり解りづらいです
とりあえずピークLEDしかないと本当に音が出ないのか、ピークに達してないから音が出ないのかが判断が付かない。そのためにシグナルチェックLEDを付けました。
で、今気づいたんですけど、これステレオで1chに2個づつ付けないと駄目ですねw


タイミングチャートを描いてみました。 
実はかなりマニアックな図なので単独で見てもさっぱり解らんと思うので、ブロック図見ながら見てもらえると・・・ 
たぶんそれでも解らん!って人が多いかと思いますがw 

KeyboardCenter Module
キーボードセンタータイミングチャート

マルチスレッドアプリやらリアルタイムOS 
さらにはマルチCPUなんかの処理の際はこういう時間軸と通信を図に描いて 
シミュレーション、整理します。 

組み込み形ソフトウェアの世界では 
リアルタイムOSではタスク、マルチスレッドOSではスレッドのライフタイム(生成、削除) 
なんかもこの図に表したりするんですが、Arduinoではマルチスレッドに対応していないので 
CPU1個で一本。 
つまりはArduino1個でプログラム作る場合は真ん中の赤い線一本しかないのでこんな図は書くことはないんですが、 
今回はMIDIをパラで出すためにそれぞれのボードが個別に処理をする作りにするので、それを集中的にコントロールするCPUから制御します。 

こんな図を作るのは面倒、って思う人もいるんだと思うんですが、単純でもタイミングチャートを書くようにしておくと、思考が整理されるのでいいですよー。 
そのうちタイミングチャートがソースコードに見えてきますw 

ワタシはμTronやらiTronやら、Nucleas、Lynx等リアルタイムOS系を結構長く使ってきてるので 
フローチャート書くよりもこのタイミングチャートの方が現実的で解りやすいです。 

フローチャートは実際リアルタイムOSには向かないんですよね 
シングルスレッド、シングルタスク、シングルCPU向けって感じですかね。 


話が逸れましたが、タイミングチャートですけど、将来的にはMIDIクロックもここから集中的に管理出来るようにしようとタイマー割り込みとクロック生成の処理も含めてます。 

ちなみにMIDIクロック生成とメトロノーム機能はウチのバンドで使う可能性が高いかな?w