MIDI is Staging a Comeback... In Your Browser!

55
Original art by Raul Taciu. Used with permission.

Transcript of MIDI is Staging a Comeback... In Your Browser!

Page 1: MIDI is Staging a Comeback... In Your Browser!

Original art by Raul Taciu. Used with permission.

Page 2: MIDI is Staging a Comeback... In Your Browser!
Page 3: MIDI is Staging a Comeback... In Your Browser!
Page 4: MIDI is Staging a Comeback... In Your Browser!

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

Page 5: MIDI is Staging a Comeback... In Your Browser!

Source: caniuse.com/#search=midi

Usually based on Chromium (the open source, seed version of Chrome)

Page 6: MIDI is Staging a Comeback... In Your Browser!

jazz-soft.net

Page 7: MIDI is Staging a Comeback... In Your Browser!
Page 8: MIDI is Staging a Comeback... In Your Browser!

Source: caniuse.com/#search=midi

natively or with plugin

Page 9: MIDI is Staging a Comeback... In Your Browser!

electron.atom.io nwjs.io

Page 10: MIDI is Staging a Comeback... In Your Browser!
Page 11: MIDI is Staging a Comeback... In Your Browser!
Page 12: MIDI is Staging a Comeback... In Your Browser!
Page 13: MIDI is Staging a Comeback... In Your Browser!

Source: websynths.com

Page 14: MIDI is Staging a Comeback... In Your Browser!

Web MIDI API Polyfill: http://cwilso.github.io/WebMIDIAPIShim/

Page 15: MIDI is Staging a Comeback... In Your Browser!
Page 16: MIDI is Staging a Comeback... In Your Browser!
Page 17: MIDI is Staging a Comeback... In Your Browser!
Page 18: MIDI is Staging a Comeback... In Your Browser!

Source: https://www.midi.org/specifications/item/table-2-expanded-messages-list-status-bytes

Page 19: MIDI is Staging a Comeback... In Your Browser!
Page 20: MIDI is Staging a Comeback... In Your Browser!
Page 21: MIDI is Staging a Comeback... In Your Browser!
Page 22: MIDI is Staging a Comeback... In Your Browser!

#%?*&$#!

Page 23: MIDI is Staging a Comeback... In Your Browser!

WEBMIDI LIBRARY https://github.com/cotejp/webmidi

Page 24: MIDI is Staging a Comeback... In Your Browser!

Web MIDI Library: https://github.com/cotejp/webmidi

Page 25: MIDI is Staging a Comeback... In Your Browser!
Page 26: MIDI is Staging a Comeback... In Your Browser!
Page 27: MIDI is Staging a Comeback... In Your Browser!

• 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

Page 28: MIDI is Staging a Comeback... In Your Browser!

Events for incoming MIDI messages

• activesensing • channelaftertouch • channelmode • clock • continue • controlchange • keyaftertouch • noteoff • noteon • pitchbend

• programchange • reset • songposition • songselect • start • stop • sysex • timecode • tuningrequest

Page 29: MIDI is Staging a Comeback... In Your Browser!

WEBMIDI LIBRARY https://github.com/cotejp/webmidi

BETA

Page 30: MIDI is Staging a Comeback... In Your Browser!

THIS SLIDE INTENTIONALLY

LEFT BLACK

Page 31: MIDI is Staging a Comeback... In Your Browser!
Page 32: MIDI is Staging a Comeback... In Your Browser!

1988

Roland Octapad II (PAD-80)

Page 33: MIDI is Staging a Comeback... In Your Browser!
Page 34: MIDI is Staging a Comeback... In Your Browser!
Page 35: MIDI is Staging a Comeback... In Your Browser!
Page 36: MIDI is Staging a Comeback... In Your Browser!
Page 37: MIDI is Staging a Comeback... In Your Browser!

CODE DEMO

Page 38: MIDI is Staging a Comeback... In Your Browser!
Page 39: MIDI is Staging a Comeback... In Your Browser!
Page 40: MIDI is Staging a Comeback... In Your Browser!
Page 41: MIDI is Staging a Comeback... In Your Browser!
Page 42: MIDI is Staging a Comeback... In Your Browser!
Page 43: MIDI is Staging a Comeback... In Your Browser!
Page 44: MIDI is Staging a Comeback... In Your Browser!
Page 45: MIDI is Staging a Comeback... In Your Browser!
Page 46: MIDI is Staging a Comeback... In Your Browser!
Page 47: MIDI is Staging a Comeback... In Your Browser!
Page 48: MIDI is Staging a Comeback... In Your Browser!
Page 49: MIDI is Staging a Comeback... In Your Browser!
Page 50: MIDI is Staging a Comeback... In Your Browser!
Page 51: MIDI is Staging a Comeback... In Your Browser!
Page 52: MIDI is Staging a Comeback... In Your Browser!

LET’S HEAR IT OUT

Page 53: MIDI is Staging a Comeback... In Your Browser!

HOMEWORK

Page 54: MIDI is Staging a Comeback... In Your Browser!
Page 55: MIDI is Staging a Comeback... In Your Browser!

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/

Code From This Talk https://github.com/cotejp/web-unleashed-2016-midi-talk