Web Audio API, Web MIDI API - 2015 html5 conference

Ryoya Kawai
Ryoya KawaiR&D Manager at Yamaha Corporation of America
Web Audio API、 Web MIDI API
を使ったサウンドプログラミング
ヤマハ 株式会社 かわい りょうや
かわい りょうや
google.com/+RyoyaKawai
pepper x VOCALOID
Open Research Forum @KeioWeb Music ハッカソン
Web Audio API
Webブラウザ上で
信号処理を可能にした API
● API自体の特徴
○ JavaScript で音そのものを作成&加工
● Web Platformだから受ける特徴
○ 出どころが確実でOpenな仕様(W3C)
○ APIについてはPlatform依存がない
● API策定の方針
○ Developer 思考
○ Native と同等な API を目指す
○ モジュール思考(Web Audioでは ”Node”と呼ぶ)
特徴
モジュール(Node)思考
● オシレーター
● オーディオバッファソース
● ゲイン
● フィルター
● ディレイ
● スクリプトプロセッサー
● パン
● コンプレッサー
● コンボルバー
● アナライザー
● ウェーブシェイパー
用意されているNode
Node Graph
オーディオ
バッファソース
ディレイゲイン
デ モ
Node Graph
ディレイゲイン
ピッチシフト
変更点
AudioWorker (旧:ScriptProcessor)
● 遅延の軽減を目的
○ worker thread で動作させる
利用可能なブラウザ
Ready! NOT yet...Prepearing!
やってみよう!
● 音量と音階を変える
信号処理:その1
デ モ
音色を変更 = 波形を変える
アナログ シンセサイザー
● 波形を揺らしたり・削ったり・足したり
信号処理:その2
デ モ
信号処理:その2:コードの解説
<script type="text/javascript">
var ctx=new AudioContext() || webkitAudioContect();
var osc0, osc1, lfo, vcf;
osc0=ctx.createOscillator(), osc1=ctx.createOscillator();
lfo=ctx.createOscillator();
vcf=ctx.createBiquadFilter();
osc0.connect(vcf);
osc1.connect(vcf);
lfo.connect(osc0.frequency);
lfo.connect(osc1.frequency);
lfo.connect(vcf.detune);
vco0.start(0), vco1.start(0);
lfo.start(0);
</script>
● VCO(Voltage Controlled Oscillator):発振機
● LFO(Low Frequency Oscillator):低周波発振機
● VCF(Voltage Controlled Filter):電圧制御フィルタ
FM シンセサイザー
● 周波数をいじってみる
信号処理:その3
デ モ
信号を扱う:その3:コードの解説
<script type="text/javascript">
var ctx=new AudioContext() || webkitAudioContect();
var mod, car;
mod=ctx.createOscillator(), car=ctx.createOscillator();
mod.connect(car.frequency);
mod.start(0), car.start(0);
</script>
音色は以下の3つで決定
● Carrier、Modulatorの周波数の比率
● Carrierのアウトプットレベル
● Carrierのフィードバック
Web MIDI API
5DIN (Deutsches Institut Fur Normung)
音源モジュール
Webブラウザと
MIDI機器を直接接続する 為のAPI
MIDIコントローラ
● API自体の特徴
○ JavaScript で MIDI 機器と接続ができる
● Web Platformだから受ける特徴
○ 出どころが確実でOpenな仕様(W3C)
○ APIについてはPlatform依存がない
● API策定の方針
○ Developer 思考
○ Native と同等な API を目指す
特徴
利用可能なブラウザ
● iOSでのWeb MIDI API
○ Web MIDI Browser 上で動作します!!
web midi browser ios
MIDIって?
● Musical Instrument Digital Interface
○ 演奏データを機器間でデジタル転送する規格
■ 物理的な送受信回路
■ インターフェイス
■ プロトコル
■ ファイルフォーマット、等
MIDI
● Musical Instrument Digital Interface
○ 演奏データを機器間でデジタル転送する規格
■ 物理的な送受信回路
■ インターフェイス
■ プロトコル
■ ファイルフォーマット、等
Status Byte (80h-FFh) Data Byte (00h-7Fh)
● MIDIメッセージは16進数
● 最低限知ってるとよいメッセージ
○ 音を出力 noteOn 9xh <noteNo> <velocity>
○ 音を停止 noteOff 8xh <noteNo> <velocity>
○ 音色変更 programChange Cxh <no>
○ SysEx System Exclusive 0xF0 … 0x7F
MIDIメッセージ
midi メッセージ
約 487, 000件 (0.37秒)
残りのメッセージは検索で!
<script type="text/javascript">
var midiins=[], midiouts=[];
navigator.requestMIDIAccess.then({sysex:true})(function(access) {
var inputIterator=access.inputs.values();
for(var o=inputIterator.next(); !o.done; o=inputIterator.next()) {
midiins.push(o.value);
}
var outputIterator=access.outputs.values();
for(var o=outputIterator.next(); !o.done; o=outputIterator.next()) {
midiouts.push(o.value);
}
}, function(msg){ console.log(msg);});
</script>
<script type="text/javascript">
midiins[0].onmidimessage=function(event) {
console.log(event.data);
}
midiouts[0].send([0x90, 0x55, 0x7f], 0);
</script>
MIDIデバイスの接続:コードの解説
● デバイスを列挙する
● メッセージを処理する
x-webmidi
3秒でMIDIを使う準備を整えたい!
x-webmidi
WebMIDIのPolymerコンポーネント
- 機器のリスト、入力、出力を行うことが可能。
x-webmidi
やってみよう!
デ モ
アナログ・シンセに接続してみる
FM シンセに接続してみる
デ モ
Webブラウザ上に
楽器を作れちゃいました!
Photo by Ed Christensen
いや、ちょっと待てよ、、、
昔からできたよね?!
<embeded src=”gegege.mid”>
<audio src=”hoho.ogg”>
Photo by Giulia van Pelt
音楽系アプリが動作する
Platformが増えた!
Photo by Giulia van Pelt
● 開発環境
○ ブラウザ(debug 環境付き&実行環境)
○ テキストエディタ
● 言語
○ Web標準言語(HTML, CSS , JavaScript)
○ コンパイルなし!
● その他
○ APIが豊富
○ 進化が速い
○ オープンだから情報が豊富!!
WebというPlatformの特徴
● User視点
○ アプリのインストール不要
○ Nativeと変わらない(まだ制限が多いかも・・・)
● Developer視点
○ 開発のハードルが格段に下がった(自由化!)
○ 知識、ノウハウも得やすくなった
● マーケット
○ 音楽以外の分野との親和性が高まり、イノベー
ションが起きやすく、またそのスピードも上る
2つの視点とマーケット
まずは触ってみよう!
● Web Music Developers JPに相談だ!!
○ Google Groups
○ Google+
Web Music Developers JP
実装に困ったら...
ご静聴ありがとうございました!
アンケートにご協力お願いします。
http://bit.ly/html5C201501
1 of 40

Recommended

HTML5 Conference 2015 鹿児島 by
HTML5 Conference 2015 鹿児島HTML5 Conference 2015 鹿児島
HTML5 Conference 2015 鹿児島Ryoya Kawai
1.6K views46 slides
WEB MIDI APIをうまく使うための話 by
WEB MIDI APIをうまく使うための話WEB MIDI APIをうまく使うための話
WEB MIDI APIをうまく使うための話Shin Fujisawa
2.4K views16 slides
Web MIDI API 2nd WD by
Web MIDI API 2nd WDWeb MIDI API 2nd WD
Web MIDI API 2nd WDRyoya Kawai
3.1K views7 slides
AudioとガジェットをWebで遊ぶ - Web Audio/MIDI Web Bluetooth - by
AudioとガジェットをWebで遊ぶ - Web Audio/MIDI Web Bluetooth -AudioとガジェットをWebで遊ぶ - Web Audio/MIDI Web Bluetooth -
AudioとガジェットをWebで遊ぶ - Web Audio/MIDI Web Bluetooth -Ryoya Kawai
2K views35 slides
Web Audio APIの初歩 by
Web Audio APIの初歩Web Audio APIの初歩
Web Audio APIの初歩Shota Kubota
3.9K views26 slides
Web Audio API 入門 by
Web Audio API 入門Web Audio API 入門
Web Audio API 入門Sota Sugiura
1.8K views12 slides

More Related Content

Similar to Web Audio API, Web MIDI API - 2015 html5 conference

AngularとWeb Audio APIはじめてみました by
AngularとWeb Audio APIはじめてみましたAngularとWeb Audio APIはじめてみました
AngularとWeb Audio APIはじめてみましたpastelInc
1K views39 slides
20141115 fx os-codereading by
20141115 fx os-codereading20141115 fx os-codereading
20141115 fx os-codereadingNoritada Shimizu
1.6K views43 slides
自作ウェブ楽器の紹介 by
自作ウェブ楽器の紹介自作ウェブ楽器の紹介
自作ウェブ楽器の紹介aike
1.1K views11 slides
Web Audio API と IBM Watson Speech to Text の話 by
Web Audio API と IBM Watson Speech to Text の話Web Audio API と IBM Watson Speech to Text の話
Web Audio API と IBM Watson Speech to Text の話K Kimura
691 views11 slides
Web Audio APIで作る各種ウェブ楽器 by
Web Audio APIで作る各種ウェブ楽器Web Audio APIで作る各種ウェブ楽器
Web Audio APIで作る各種ウェブ楽器aike
2.7K views17 slides
オープンデータ Web API by
オープンデータ Web APIオープンデータ Web API
オープンデータ Web APIHironori Sakamoto
580 views30 slides

Similar to Web Audio API, Web MIDI API - 2015 html5 conference(20)

AngularとWeb Audio APIはじめてみました by pastelInc
AngularとWeb Audio APIはじめてみましたAngularとWeb Audio APIはじめてみました
AngularとWeb Audio APIはじめてみました
pastelInc1K views
自作ウェブ楽器の紹介 by aike
自作ウェブ楽器の紹介自作ウェブ楽器の紹介
自作ウェブ楽器の紹介
aike1.1K views
Web Audio API と IBM Watson Speech to Text の話 by K Kimura
Web Audio API と IBM Watson Speech to Text の話Web Audio API と IBM Watson Speech to Text の話
Web Audio API と IBM Watson Speech to Text の話
K Kimura691 views
Web Audio APIで作る各種ウェブ楽器 by aike
Web Audio APIで作る各種ウェブ楽器Web Audio APIで作る各種ウェブ楽器
Web Audio APIで作る各種ウェブ楽器
aike2.7K views
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望 by Atsushi Tadokoro
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
Atsushi Tadokoro14.1K views
日本Androidの会発表スライド androidのメディア機能の話 by Tatsuya Matsumoto
日本Androidの会発表スライド androidのメディア機能の話日本Androidの会発表スライド androidのメディア機能の話
日本Androidの会発表スライド androidのメディア機能の話
Tatsuya Matsumoto16.3K views
OSC 2010 Tokyo/Fall MSセッション by Masaki Takeda
OSC 2010 Tokyo/Fall MSセッションOSC 2010 Tokyo/Fall MSセッション
OSC 2010 Tokyo/Fall MSセッション
Masaki Takeda1.3K views
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム by Masayuki Abe
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラムDropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Masayuki Abe1.5K views
WebIntentsにより拓かれる次のWeb by Kensaku Komatsu
WebIntentsにより拓かれる次のWebWebIntentsにより拓かれる次のWeb
WebIntentsにより拓かれる次のWeb
Kensaku Komatsu7.4K views
WebAudio APIでブラウザ上で動くDJアプリケーションは作れるか? (WebAudio API アプリケーション作成入門) by Ryo Koizumi
WebAudio APIでブラウザ上で動くDJアプリケーションは作れるか? (WebAudio API アプリケーション作成入門)WebAudio APIでブラウザ上で動くDJアプリケーションは作れるか? (WebAudio API アプリケーション作成入門)
WebAudio APIでブラウザ上で動くDJアプリケーションは作れるか? (WebAudio API アプリケーション作成入門)
Ryo Koizumi2.2K views
DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~ by decode2016
DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~
DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~
decode201680 views
20150118 firefoxos-handson-helloworld by Noritada Shimizu
20150118 firefoxos-handson-helloworld20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworld
Noritada Shimizu3.1K views

More from Ryoya Kawai

Web musicdevelopersmeetup@sapporo by
Web musicdevelopersmeetup@sapporoWeb musicdevelopersmeetup@sapporo
Web musicdevelopersmeetup@sapporoRyoya Kawai
2.3K views32 slides
Web MIDI meets DIY #0 by
Web MIDI meets DIY #0Web MIDI meets DIY #0
Web MIDI meets DIY #0Ryoya Kawai
1.2K views27 slides
Making Music on the Web with MIDI Technology - Music China by
Making Music on the Web with MIDI Technology - Music ChinaMaking Music on the Web with MIDI Technology - Music China
Making Music on the Web with MIDI Technology - Music ChinaRyoya Kawai
921 views18 slides
Web music開発環境 by
Web music開発環境Web music開発環境
Web music開発環境Ryoya Kawai
1.3K views25 slides
Roppongi ArtTech Night #1 by
Roppongi ArtTech Night #1 Roppongi ArtTech Night #1
Roppongi ArtTech Night #1 Ryoya Kawai
6.6K views13 slides
ブラウザとmidiの出会いが拓くwebとmusicの新しい世界 by
ブラウザとmidiの出会いが拓くwebとmusicの新しい世界ブラウザとmidiの出会いが拓くwebとmusicの新しい世界
ブラウザとmidiの出会いが拓くwebとmusicの新しい世界Ryoya Kawai
9.3K views33 slides

More from Ryoya Kawai(10)

Web musicdevelopersmeetup@sapporo by Ryoya Kawai
Web musicdevelopersmeetup@sapporoWeb musicdevelopersmeetup@sapporo
Web musicdevelopersmeetup@sapporo
Ryoya Kawai2.3K views
Web MIDI meets DIY #0 by Ryoya Kawai
Web MIDI meets DIY #0Web MIDI meets DIY #0
Web MIDI meets DIY #0
Ryoya Kawai1.2K views
Making Music on the Web with MIDI Technology - Music China by Ryoya Kawai
Making Music on the Web with MIDI Technology - Music ChinaMaking Music on the Web with MIDI Technology - Music China
Making Music on the Web with MIDI Technology - Music China
Ryoya Kawai921 views
Web music開発環境 by Ryoya Kawai
Web music開発環境Web music開発環境
Web music開発環境
Ryoya Kawai1.3K views
Roppongi ArtTech Night #1 by Ryoya Kawai
Roppongi ArtTech Night #1 Roppongi ArtTech Night #1
Roppongi ArtTech Night #1
Ryoya Kawai6.6K views
ブラウザとmidiの出会いが拓くwebとmusicの新しい世界 by Ryoya Kawai
ブラウザとmidiの出会いが拓くwebとmusicの新しい世界ブラウザとmidiの出会いが拓くwebとmusicの新しい世界
ブラウザとmidiの出会いが拓くwebとmusicの新しい世界
Ryoya Kawai9.3K views
Breakout@TPAC 2013 (Entertain Web with Musical Instruments) by Ryoya Kawai
Breakout@TPAC 2013 (Entertain Web with Musical Instruments)Breakout@TPAC 2013 (Entertain Web with Musical Instruments)
Breakout@TPAC 2013 (Entertain Web with Musical Instruments)
Ryoya Kawai1.1K views
Web MIDI APIが拓くWeb音楽の世界 - 大音学会 2013 by Ryoya Kawai
Web MIDI APIが拓くWeb音楽の世界 - 大音学会 2013Web MIDI APIが拓くWeb音楽の世界 - 大音学会 2013
Web MIDI APIが拓くWeb音楽の世界 - 大音学会 2013
Ryoya Kawai10.3K views
Chrome+HTML5 Developers Live Japan #8 - Web MIDI API by Ryoya Kawai
Chrome+HTML5 Developers Live Japan #8 - Web MIDI APIChrome+HTML5 Developers Live Japan #8 - Web MIDI API
Chrome+HTML5 Developers Live Japan #8 - Web MIDI API
Ryoya Kawai2.2K views
Chrome Packaged Apps by Ryoya Kawai
Chrome Packaged AppsChrome Packaged Apps
Chrome Packaged Apps
Ryoya Kawai10.8K views

Recently uploaded

光コラボは契約してはいけない by
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
30 views17 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
154 views64 slides
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 by
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可Hitachi, Ltd. OSS Solution Center.
13 views22 slides
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PC Cluster Consortium
68 views12 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
110 views26 slides

Recently uploaded(7)

光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga30 views
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」

Web Audio API, Web MIDI API - 2015 html5 conference