MIDI 2.0プロトコルの受信

MIDI 2.0プロトコルの送信で MIDI 2.0プロトコルのNote OnとNote OffをZero2Wから送信し、 MacのCubase 14 Pro(体験版)で録音しました。

ここでは、Cubase 14 Proで 録音したデータを再生し、Zero2Wで受信します。 Cubase 14 ProがどのようにMIDI 2.0プロトコルを持っているのかを確認します。

aseqdumpコマンド

MIDI 2.0プロトコルを受信するには、ALSA Sequencer with USB MIDI 2.0 に記載のあるaseqdumoコマンドを使用します。コマンドのバージョンは1.2.11です。

> aseqdump -V
aseqdump version 1.2.11

aseqdumpのヘルプを見てコマンドを確認します。

> aseqdump -h
Usage: aseqdump [options]

Available options:
  -h,--help                  this help
  -V,--version               show version
  -l,--list                  list input ports
  -N,--normalized-view       show normalized values
  -P,--percent-view          show percent values
  -R,--raw-view              show raw values (default)
  -u,--ump=version           set client MIDI version (0=legacy, 1= UMP MIDI 1.0, 2=UMP MIDI2.0)
  -r,--raw                   do not convert UMP and legacy events
  -p,--port=client:port,...  source port(s)

入力のクライアントとポートを確認します。20:0のMIDI 2.0ポートをモニターします。

> aseqdump -l
 Port    Client name                      Port name
  0:0    System                           Timer
  0:1    System                           Announce
 14:0    Midi Through                     Midi Through Port-0
 20:0    ACMESynth                        MIDI 2.0
 20:1    ACMESynth                        Group 1 (Monosynth)

paseqdumpコマンドは -u 2とオプションを設定することで、MIDI 2.0 プロトコルを受信できます。

受信データ

aseqdumpを受信状態にします。

> aseqdump -p 20:0 -u 2

CubaseのMIDIトラックの送信ポートをMIDI2.0と設定します。


Cubase 14 Pro(体験版)で 先に録音したデータを再生します。以下のようなデータを受信することができます。 ここでは最後の20メッセージを表示しています。

> aseqdump -p 20:0 -u 2
20:1   Group  0, Note on                 0, note 106, velocity 0xc1cc, attr type = 0, data = 0x0
20:1   Group  0, Note off                0, note 106, velocity 0x21cc, attr type = 0, data = 0x0
20:1   Group  0, Note on                 0, note 107, velocity 0xc1d1, attr type = 0, data = 0x0
20:1   Group  0, Note off                0, note 107, velocity 0x21d1, attr type = 0, data = 0x0
20:1   Group  0, Note on                 0, note 108, velocity 0xc1d7, attr type = 0, data = 0x0
20:1   Group  0, Note off                0, note 108, velocity 0x21d7, attr type = 0, data = 0x0
20:1   Group  0, Note on                 0, note 109, velocity 0xc1dc, attr type = 0, data = 0x0
20:1   Group  0, Note off                0, note 109, velocity 0x21dc, attr type = 0, data = 0x0
20:1   Group  0, Note on                 0, note 110, velocity 0xc1e1, attr type = 0, data = 0x0
20:1   Group  0, Note off                0, note 110, velocity 0x21e1, attr type = 0, data = 0x0
20:1   Group  0, Note on                 0, note 111, velocity 0xc1e6, attr type = 0, data = 0x0
20:1   Group  0, Note off                0, note 111, velocity 0x21e6, attr type = 0, data = 0x0
20:1   Group  0, Note on                 0, note 112, velocity 0xc1eb, attr type = 0, data = 0x0
20:1   Group  0, Note off                0, note 112, velocity 0x21eb, attr type = 0, data = 0x0
20:1   Group  0, Note on                 0, note 113, velocity 0xc1f0, attr type = 0, data = 0x0
20:1   Group  0, Note off                0, note 113, velocity 0x21f0, attr type = 0, data = 0x0
20:1   Group  0, Note on                 0, note 114, velocity 0xc1f5, attr type = 0, data = 0x0
20:1   Group  0, Note off                0, note 114, velocity 0x21f5, attr type = 0, data = 0x0
20:1   Group  0, Note on                 0, note 115, velocity 0xc1fa, attr type = 0, data = 0x0
20:1   Group  0, Note off                0, note 115, velocity 0x21fa, attr type = 0, data = 0x0

これを見ると、Cubase 14は拡張されたベロシティを受け取ったそのまま値で保持しています。 しかし、アトリビュートとアトリビュート値はゼロになっていますのでCubase 14では保持されていないことがわかります。