This specification describes a high-level JavaScript API for processing and synthesizing audio in web applications. The primary paradigm is of an audio routing graph, where a number of AudioNode objects are connected together to define the overall audio rendering. The actual processing will primarily take place in the underlying implementation (typically optimized Assembly / C / C++ code), but direct JavaScript processing and synthesis is also supported.
- W3C Abstract
Audio Context
Destination
Visualization
Gain
Analyser
BufferSource
User Control
Any application that can be written in JavaScript, will eventually be written in JavaScript.
- Jeff Atwood
Open DVS Demo
[.25, .5, .7, .8, .82, .7, .2, 0, -.2, -.5, -.7]
Sample Rate | Bit Depth | 4 minute song |
---|---|---|
44,100 | 16bit | 21MB |
Joseph Fourier
1768 - 1830
Open-DVS waveform / crossfade demo
1981
Companies such as Roland, Yamaha, Korg and Kawai start discussing coming up with a standard protocol
MIDI Specification finalized
1983
2015
Chrome implements the Web MIDI API
Web-MIDI API for Web browsers is the most significant advancement of MIDI since... MIDI itself
- The MIDI Association
1TTTCCCC 0AAAAAAA 0BBBBBBB
⏟
⏞
⏟
⏞
Message Type
Channel
1 - 16
Data Byte 1: 0 - 127
If type is "Note On" this represents the note number.
60 (0111100) === Middle C
Data Byte 2: 0 - 127
If Type is "Note On" this represents note velocity.
10110000 00000111 01000000
⏟
Control Change
⏞
Channel 1
⏟
111₂ === 7
Volume
1000000₂ === 64
⏞
Set channel 0 volume to 64/127
Open DVS MIDI Demo
Σ
∫
..., .25, .5, .7, .8, .82, .7, .2, 0, -.2, -.5, -.7, ...
Script
[.25, .5, .7, .8, .82, .7, .2, 0, -.2, -.5, -.7]
Open DVS Script Processor Node