# MIDI input/output plugin

# 導入

QLC+は MIDI protocolをサポートしています、しかし実際に使うためにはいくつかの設定をする必要があります。
QLC+ではMIDIコントローラのほか、シーケンサーなどのほぼ全てのMIDIデバイスに対応しています。
コントローラーであればボタンやフェダーを外部入力として使えます。

# 各種設定

設定ボタンからMIDI設定画面を開きます。
設定項目は以下の通りです。

- MIDI Channel: QLC+と通信するチャンネルを設定できます。MIDI チャンネルは1 ~ 16のどれかです。 デバイスの説明書などを参考にしてください。
- Mode: MIDIのモードを設定できます。 　３つのパラメータがあります。
  - Note velocity: MIDI notes velocityを使用します。MIDIのベロシティーは0~127ですが、DMXは0~255までの数値を持つので、MIDIのベロシティーを２倍し数値が使われます。
  - Control Change: デバイスとコンピュータ間の通信です。 　詳しくはデバイスの説明書をご覧ください。CCの範囲は0〜127で、0〜127の値を持つことができます。DMXは0~255までの数値を持つので、２倍した数値が使われます。
  - Program Change: プロトコルメッセージ等の設定です。 　詳しくはデバイスの説明書をご覧ください。PCの範囲は0〜127で、0〜127の値を持つことができます。DMXは0~255までの数値を持つので、２倍した数値が使われます。
- Initialization message：これは、QLC +が使用する前にMIDIデバイスを開くときに送信する初期化メッセージを含むプリセット（テンプレート）のリストです。

# Feedbacks

QLC+ではMIDIフィードバックをサポートしています。設定は簡単で入出力設定のフィードバックにチェックを入れるだけです。フィードバックとMIDI outputを同時に使うことはできません。
デバイスがフィードバックをサポートしている場合は、QLC+上の状況に合わせてデバイスも動作します。 Behringer BCF2000 などのモーターフェーダーがわかりやすい例です。
また、MIDI outputをしようして、外部のシーケンサなどのMIDIデバイスをQLC+からコントロールすることもできます。
こんな感じに

- Input: OSC ---> Output: DMX USB --> Feedback: MIDI
- Input: Enttec Wing --> Output: ArtNet --> Feedback: MIDI

# KORG nanoPAD のX座標の設定

このデバイスは工場出荷時の設定ではQLC+上にX座標のコントロールができません、KORGのホームページからユーティリティーツールをダウンロードし、設定を変更していきましょう。X座標にCC2(Control Change #2)を設定してください。 詳しくはこちら

# AKAI APC LED Feedbacks

このデバイスはフィードバックでLEDカラーを変更できます。
QLC+のデフォルトではvalue = 0: LED off, value = 255: LED greenが設定されています。
これらの設定は"Custom feedback"を使って変更できます。
２つの入力フィードが表示されます。 　デフォルトでは0と255に設定されています。
MIDIプロトコルでは0~127までしか設定できないので、MIDIデバイスに送信される際は1/2の数値が送信されます。

Value | LED color
--- | ---
0 | Off
2 | Green
4 | Green Blinking
6 | Red
8 | Red Blinking
10 | Yellow
12 | Yellow Blinking
14-255 | Green

0をより低い値にする必要は必ずしもないことに注意するのは興味深いことです。例えばlower = 6 and upper = 2に設定すると Function Off -> red LED, Function On -> green LED. になります。

# MIDI beat clock

QLC+4.5.0から実装された機能です。MIDI beat clock
MIDIタイムコードではないことに注意してください。
2つの特別なMIDIチャンネルがQLC +にマッピングされており、 仮想コンソールウィジェットをビートクロックで制御します。
特別なチャンネルについて簡単に説明します：

- チャンネル530 ：ビートクロックが開始または停止すると、このチャンネルに信号が送信されます。
- チャンネル531 ：この信号はBPMごとに送信されます。 QLC +は測定値の通知（例えば3/4、4/4、7/8）をとらないので、MIDIクロックを設定するときにQLC +がどのようにそれを処理するかを考慮する必要があります。

ヒント ：コントローラが高BPM（たとえば180-200）で動作するように設定されている場合は、開始信号をキャッチするのが難しい場合があります。これを行うための1つのトリックは、停止信号をキャッチすることです。例：

1. QLC +仮想コンソールウィジェットの自動検出を有効にする
2. MIDIビートクロックを生成するデバイスで再生をヒットします。QLC +はチャネル530を検出し、非常に迅速に531に切り替わります
3. MIDIビートクロックデバイスの再生を停止します。QLC +は再びチャネル530を検出する。
4. QLC +仮想コンソールウィジェットの自動検出を無効にする

同様の方法でビート信号もキャッチできます。ビートコントローラーの再生を停止する前に、自動検出プロセスを無効にしてください（ステップ3と4を逆にする）。

# MIDI initialization message

MIDIデバイスによっては、初期化メッセージを送信する必要がある場合があります。
MIDIプロトコルのSysExを指します。
これらのメッセージをQLC+上ではXMLファイルで記述しておくことができます。
記法は以下の通りです。

    <DOCTYPE MidiTemplate>
    <MidiTemplate>
     <Creator>
      <Author>Your name</Author>
     </Creator>
     <Description>A brief description of that the template does.</Description>
     <Name>Template name to be displayed by QLC+</Name>
     <InitMessage>F0 47 00 7B 60 00 04 41 09 00 05 F7</InitMessage>
    </MidiTemplate>

作成したファイルは、MidiTemplatesフォルダに入れておいてください。
あなたがこのファイルを作成したとき、ついでにQLC+ forumにも報告してくれませんか？みんなの手助けになります。

# QLC+ Channels map

さまざまなMIDIメッセージ（Notes、PC、CCなど）を処理するために、QLC +はそれらを順番に再マッピングします。
入力プロファイルエディタで使用するチャンネル番号：

チャンネル | MIDI message
--- | ---
1 | Control Change 1
... | ...
128 | Control Change 128
129 | NOTE ON/NOTE OFF 1
... | ...
256 | NOTE ON/NOTE OFF 128
257 | NOTE AFTERTOUCH 1
... | ...
384 | NOTE AFTERTOUCH 128
385 | Program Change 1
... | ...
512 | Program Change 128
513 | Channel Aftertouch
514 | Pitch Wheel
530 | MIDI Beat Clock: Start/Continue
531 | MIDI Beat Clock: Beat
532 | MIDI Beat Clock: Stop

In OMNI mode, add 4096 * Channel number