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.

MIDI is Staging a Comeback… in Your Browser!

241 views

Published on

Presented at FITC Toronto 2017
More info at http://fitc.ca/event/to17/

Presented by Jean-Philippe Côté, TangibleJS

Overview

If you own an electronic music instrument made in the last 3 decades, it most likely supports the MIDI protocol. What if we told you that it is now possible to interact with your beloved keytar, drum machine or MIDI software directly from your browser? You would go crazy, right? Well, prepare to do so…

With built-in support inside Chrome and Opera, upcoming support in Firefox and plugins for other platforms, this possibility is now a reality. This talk will introduce the audience to the Web MIDI API and to a library that will help you get the most out of it called WebMidi.js.

Web devs, man your synths!

Objective

Kickstart the development of web-based, MIDI-driven projects.

Target Audience

Web developers who want to make some noise and musicians paying bills doing front-end dev gigs

Assumed Audience Knowledge

Basic knowledge of the world’s top 4 languages: HTML, CSS, JavaScript and MIDI

Five Things Audience Members Will Learn

What the Web MIDI API is and what it can be used for
What the current support level for MIDI in browsers is
Why the Web MIDI API is too low-level for the average web developer and what can be done about it
How to send MIDI commands to MIDI devices and how to react to incoming MIDI events
How it sounds when a web developer transforms into an electronic musician

Published in: Internet
  • Be the first to comment

  • Be the first to like this

MIDI is Staging a Comeback… in Your Browser!

  1. 1. Original art by Raul Taciu. Used with permission.
  2. 2. WEB MIDI API « the Web-MIDI API is the most significant advancement of MIDI since… MIDI itself! » — midi.org Source: https://www.midi.org/articles/about-web-midi
  3. 3. Source: caniuse.com/#search=midi
  4. 4. jazz-soft.net
  5. 5. Firefox v52+ NPAPI https://addons.mozilla.org/en-US/firefox/addon/jazz-midi/
  6. 6. Sources: caniuse.com/#search=midi and http://gs.statcounter.com/browser-market-share/desktop/worldwide 92%DESKTOP BROWSER COVERAGE
  7. 7. Web MIDI API Polyfill: http://cwilso.github.io/WebMIDIAPIShim/
  8. 8. Source: https://www.midi.org/specifications/item/table-2-expanded-messages-list-status-bytes
  9. 9. #%?*&$#!
  10. 10. https://github.com/cotejp/webmidi
  11. 11. Web MIDI Library: https://github.com/cotejp/webmidi
  12. 12. • decrementRegisteredParameter • incrementRegisteredParameter • playNote • send • sendActiveSensing • sendChannelAftertouch • sendChannelMode • sendClock • sendContinue • sendControlChange • sendKeyAftertouch • sendPitchBend • sendProgramChange • sendReset • sendSongPosition • sendSongSelect • sendStart • sendStop • sendSysex • sendTimecodeQuarterFrame • sendTuningRequest • setMasterTuning • setModulationRange • setNonRegisteredParameter • setPitchBendRange • setRegisteredParameter • setTuningBank • setTuningProgram • stopNote Functions for outgoing MIDI messages
  13. 13. Events for incoming MIDI messages • activesensing • channelaftertouch • channelmode • clock • continue • controlchange • keyaftertouch • noteoff • noteon • pitchbend • programchange • reset • songposition • songselect • start • stop • sysex • timecode • tuningrequest
  14. 14. What about latency? Native Instruments Battery 4+ VS.
  15. 15. Pad Hit 440Hz Tone LATENCY
  16. 16. 9ms16ms Native Instruments Battery 4+ Numbers reflect the time between hitting a pad on AxiomPro controller and hearing the sound come out of the computer. Tests performed on MacBook Pro (macOS Sierra). Buffer size was 128 samples. VS.
  17. 17. What about latency? Path A Path B
  18. 18. How much slower? 0ms
  19. 19. https://github.com/cotejp/webmidi
  20. 20. THIS SLIDE INTENTIONALLY LEFT BLACK
  21. 21. 1988 Roland Octapad II (PAD-80)
  22. 22. CODE DEMO
  23. 23. LET’S HEAR IT OUT!
  24. 24. HOMEWORK
  25. 25. QUESTIONS ?
  26. 26. Vote for Web MIDI API Support in Microsoft Edge https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/6508429-web-midi-api Follow Web MIDI Development in Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=836897 Web MIDI API Specification https://webaudio.github.io/web-midi-api/ WebMidi Library https://github.com/cotejp/webmidi Web MIDI API Polyfill http://cwilso.github.io/WebMIDIAPIShim/ Web MIDI API Shim for iOS https://github.com/mizuhiki/WebMIDIAPIShimForiOS Web MIDI Browser http://www.taktech.org/takm/WebMIDIBrowser/ Tone.js Web Audio Framework https://github.com/Tonejs/Tone.js/ Source Code From This Talk https://github.com/cotejp/fitc-2017-midi-talk Jazz-MIDI Extension for Firefox https://addons.mozilla.org/en-US/firefox/addon/jazz-midi/ Links from this talk

×