Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Web MIDI API - the paster, the present, and the future -

1,747 views

Published on

Slide present at the Web Music Meetup #1

Published in: Software

Web MIDI API - the paster, the present, and the future -

  1. 1. Web MIDI API - the past, the present, and the future - Takashi Toyoshima <toyoshim@chromium.org>
  2. 2. Web MIDI API MIDI 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...
  3. 3. Chromium / Blink The 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)
  4. 4. OS dependent impl.Chrome specific impl. ChromeMIDIPermissionContext RenderProcessHost Render RenderView RenderThreadImpl Blink Web MIDI Impl. in Blink MIDIAccessor depends MIDIDispatcher : WebMIDIClient, RVO Blink Web API MIDIMessageFilter : IPC::ChannelProxy::MessageFilter RendererWebMIDIAccessorImpl Blink Platform API MIDIDispatcherHost : BrowserMessageFilter MIDIHost : BrowserMessageFilter ChildProcess SecurityPolicy Allow Check ProfileImpl Content API Content Settings UI Thread MIDIManager MIDIManagerMacMIDI Thread Intent to Implement
  5. 5. Short Histories Chrome 30 Input device for Mac Chrome 31 Output device for Mac Chrome 32 IAC driver for Mac Chrome 33 Windows Chrome 34 System / real-time messages, Linux Chrome 35 Promise, Chrome OS Chrome 36 Android Chrome 37 Android (UI), Chrome OS (Seq. API) ...
  6. 6. Blink focus ❏ 2013 mobile performance ➜ Speed ➜ Memory ➜ Graphics (GPU) ❏ 2014 performance and APIs ➜ Yes, Web MIDI API is welcomed ;)
  7. 7. Source: Vision Mobile Blog 60hz, Speed Team, Juice Device APIs, ServiceWorker WebComponents WebAnimation polymer-project.org developer.google.com/web from Eric Seidel’s slide at BlinkOn 2
  8. 8. Platforms × Versions chrome://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
  9. 9. 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/
  10. 10. Infobar Website settings Icon & Bubble Settings User Interfaces
  11. 11. 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)
  12. 12. Web MIDI v2? ❏ Worker ❏ Software Synth framework ❏ New device support?

×