標準化を土台とする MIDIのプレゼンスの伸展 - Hi-HO

標準化を土台とする
MIDIのプレゼンスの伸展
(社)音楽電子事業協会
MIDI 規格委員会 技術研究部会
柿下正尋
MIDIの起源
MIDI( Musical Instrument Digital Interface )は1982年に策定されたシンセサイ
ザーとシンセサイザー/シーケンサーをつなぐプロトコル。
その後、MIDI規格協議会(現在AMEI)とMMA( MIDI Manufacture Association )
により標準化が進められた。
2012 年 テクニカル・グラミー・アワード受賞
音楽産業の発展において、世界共通規格「MIDI」
が評価され梯郁太郎氏(ローランド創業者)、
Dave Smith氏(元シーケンシャル・サーキット社
社長)が連盟で受賞
シーケンサーとは?
演奏情報を記憶する装置。いつ、どの鍵盤が押されたか、離されたかを記録する。
ミ
レ
ド
時間
シンセサイザーとシーケンサーをつなぐ?
1960年代、シンセサイザーを外から信号を送って音を出す為に、CV/GATE という技術
が使われていました。
IN
CV/GATE OUT
シンセサイザー
シーケンサー
CV/GATE
シンセサイザーの発振器(VCO:Voltage Control Oscillator)の発振周波数を、電圧で
規定する。
CV はControl Voltage の略。
発振周波数
ミ
レ
ド
電圧(V)
CV/GATE
GATE はいつ鍵盤が押されたか、離されたかを電圧で制御
V
CV
時間
V
GATE
時間
MIDIでは?
MIDI では鍵盤を押した、離したという情報を8ビット3バイトのイベント(Note On, Note
Off) で伝達する。
Note On
Note On
Note On
Note Off
Note Off
Note Off
MIDIで伝達する情報
鍵盤を押したか?離したか? ⇒ Status どの鍵盤を?
どんな強さ(速さ)で?
鍵盤を
押した
離した
Status
0x9n
0x8n
n : Channel
MIDIで伝達する情報
押したか?離したか?
どの鍵盤を? ⇒ Keycode
どんな強さ(速さ)で?
Keycode
0x7F
0x40
0x00
どの鍵盤?
MIDIで伝達する情報
押したか?離したか?
どの鍵盤を?
どんな強さ(速さ)で? ⇒ Velocity
Velocity
0x7F
0x40
0x00
鍵盤を押した速さ
Note On
Channel
9nH
48H
ステータスバイト データバイト
MSB=1
Status
Keycode
70H
データバイト
Velocity
Keycode
30H
3CH
48H
54H
Note Off
Channel
8nH
48H
ステータスバイト データバイト
MSB=1
Status
Keycode
00H
データバイト
Velocity
Keycode
30H
3CH
48H
54H
MIDIでは?
MIDI では鍵盤を押した、離したという情報を8ビット3バイトのイベント(Note On, Note
Off) で伝達する。
90H 4CH 30H
90H 4AH 50H
90H 48H 70H
90H 4C 00H
80H 4AH 00H
80H 48H 00H
MIDIなら複音が扱える
同じ時間に複数の音が鳴っている、という状態を再現することもできる。
90H 4CH 70H
90H 4AH 70H
80H 4CH 00H
90H 48H 70H
80H 4AH 00H
80H 48H 00H
MIDIの定義
ハードウェア
5pin DIN
MIDI ケーブル
通信プロトコル
UART 31.25kbps
フォーマット
8bit 2byte or 3byte が基本
SMF
MIDI データと時間情報をパッケージしたファイルフォーマット
1991 年 Standard MIDI FILE
数百kbyte のファイルサイズ
曲データを共有、送受信できる。
GM, GM2
曲制作環境と、再生環境で音色を一致させたい。
1991年 General MIDI (Level 1)
1999年 General MIDI (Level 2)
1
Acoustic Grand Piano
25
Acoustic Giutar (Nylon)
5
Electoric Piano 1
31
Distortion Guitar
7
Harpsichord
33
Acoustic Bass
12
Vibraphone
41
Violin
19
Rock Organ
43
Cello
22
Accordion
57
Trumpet
USB
1999年 Universal Serial Bus Device Class Definition for MIDI Devices
32-bit USB-MIDI Event Packet
USB-Audio インターフェース
USB-MIDI コントローラ
シンセサイザー
USB 接続
MIDIの物理層
MIDI ドライバーは、物理層、通信プロトコルに寄らずにMIDIデバイスを扱える共通
即ち、アプリケーションは物理層に応じて変更の必要が無い
複数の物理層を同時に扱うことも可能
アプリケーション
MIDI ドライバー
通信プロトコル
ドライバー
物理層
iOS/Android
2010 年 iOS4.2 でUSB-MIDI, RTP-MIDI (Apple-MIDI )に 対応
2014年 iOS8でBLE-MIDI に対応
2015年 Android 6.0 で、USB-MIDI、BLE-MIDI (draft )対応
16億台 のAndroid デバイス、10億台のiOSデバイスでMIDIを扱うことができる。
デバイスを音源として使う
楽器をコントロール
USB-MIDI コントローラ
Web MIDI API
W3C ( World Wide Web Consortium ) で策定を進めているAPI
ブラウザが直接MIDI を扱うことが可能となる。
Web MIDI API
Web MIDI APIの使用手順
接続されているMIDI デバイスを列挙する
入力デバイス、出力デバイスを選択する
MIDI を出力する
MIDI を受け取る
Web MIDI API の特徴
プラットフォーム非依存、ブラウザ非依存(*)でアプリケーションが開発可能
Javascript でプログラミングできる。
豊富なブラウザのAPIとMIDI を連動させることができる。
Web Audio API
Canvas
WebRTC
etc.
(*) 現状はChrome が対応済み
Web MIDI API の使用例
Web MIDI API
Generator
Web Audio API
Visualize
Canvas
Web MIDI APIの対応の現状
Google Chrome 実装済み
Windows, Android, Linux, MacOSX
IEC国際標準化の状況
Project:IEC 63035 ED.1.0
MIDI (MUSICAL INSTRUMENT DIGITAL INTERFACE) 1.0
SPECIFICATION(Abridged Edition, 2015)
標準化作業進行中、順調に行けば今年度中に発行の見込み