Your SlideShare is downloading. ×
Web MIDI API - the paster, the present, and the future -
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

917
views

Published on

Slide present at the Web Music Meetup #1

Slide present at the Web Music Meetup #1

Published in: Software

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
917
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
2
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Web MIDI API - the past, the present, and the future - Takashi Toyoshima <toyoshim@chromium.org>
  • 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. 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. 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. 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. Blink focus ❏ 2013 mobile performance ➜ Speed ➜ Memory ➜ Graphics (GPU) ❏ 2014 performance and APIs ➜ Yes, Web MIDI API is welcomed ;)
  • 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. 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. 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. Infobar Website settings Icon & Bubble Settings User Interfaces
  • 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. Web MIDI v2? ❏ Worker ❏ Software Synth framework ❏ New device support?

×