標準化を土台とする 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) 標準化作業進行中、順調に行けば今年度中に発行の見込み
© Copyright 2024 Paperzz