Upload
takashi-toyoshima
View
813
Download
4
Embed Size (px)
DESCRIPTION
Slide present at the Web Music Meetup #1
Citation preview
Web MIDI API- the past, the present, and the future -
Takashi Toyoshima <[email protected]>
Web MIDI APIMIDI is a protocol to control music devices in real-time❏ AMEI / MMA - Invent and develop the MIDI❏ W3C Audio WG (http://www.w3.org/2011/audio/)
❏ Web MIDI: http://webaudio.github.io/web-midi-api/Why does the web need MIDI?
❏ HTML gots expressive features by HTML5❏ Web Audio API is really awesome!
❏ But we still miss a controller...
Chromium / BlinkThe Chromium Projects started Web MIDI API in 2013❏ Members
❏ Chris Rogers (Web Audio spec / implement)❏ Chris Wilson (Web MIDI spec)❏ Takashi Toyoshima (Web MIDI implement)
OS dependent impl.Chrome specific impl.
ChromeMIDIPermissionContext
RenderProcessHost
Render
RenderView RenderThreadImpl
Blink
Web MIDI Impl. in BlinkMIDIAccessor
dependsMIDIDispatcher :
WebMIDIClient, RVO
Blink Web API
MIDIMessageFilter :IPC::ChannelProxy::MessageFilter
RendererWebMIDIAccessorImplBlink Platform API
MIDIDispatcherHost :BrowserMessageFilter
MIDIHost :BrowserMessageFilter
ChildProcessSecurityPolicyAllow Check
ProfileImplContent API
ContentSettings UI Thread
MIDIManager
MIDIManagerMacMIDI Thread
Intent to Implement
Short HistoriesChrome 30 Input device for MacChrome 31 Output device for MacChrome 32 IAC driver for MacChrome 33 WindowsChrome 34 System / real-time messages, LinuxChrome 35 Promise, Chrome OSChrome 36 AndroidChrome 37 Android (UI), Chrome OS (Seq. API)...
Blink focus❏ 2013 mobile performance
➜ Speed➜ Memory➜ Graphics (GPU)
❏ 2014 performance and APIs➜ Yes, Web MIDI API is welcomed ;)
Source: Vision Mobile Blog
60hz, Speed Team, Juice
Device APIs, ServiceWorker
WebComponentsWebAnimationpolymer-project.org
developer.google.com/web
from Eric Seidel’s slideat BlinkOn 2
Platforms × Versionschrome://flags/#enable-web-midi
Platforms Versions Note
Mac OS X Chrome 36
Windows Chrome 36
Chrome OS / Linux Chrome 36 Seq API is on 37
Android Chrome 37 USB MIDI only
Under development issues❏ Device detection
❏ Device list is snapshotted at the first API call❏ New device does not appear (restart is needed)
❏ API is not up to date❏ OLD: http://goo.gl/vfj1xP❏ NEW: http://webaudio.github.io/web-midi-api/
Infobar Website settings
Icon & Bubble
Settings
User Interfaces
What’s the Next❏ Web MIDI API is depending on new JS features
❏ Promise => Done!❏ ECMA Script 6 (harmony)
❏ Map❏ MIDIInputMap, MIDIOutputMap
❏ Iterators❏ MIDIKeyIterator, MIDIEntryIterator, MIDIValueIterator
❏ Device detection❏ Depends on new API (Map and Iterators)
Web MIDI v2?❏ Worker❏ Software Synth framework❏ New device support?