Today we’ll discuss several high-level javascript frameworks for digital audio as well as the WebAudio API, the lowest level interface for digital audio in the browser.

WebAudio

The WebAudio API presents a Graph/Dataflow paradigm whereby the programmer creates audio sources and sinks (called nodes) and connects them together to form an “Audio Graph.” The API includes many precompiled, optimized audio generators and effects processors, but also offers a specical kind of node called ScriptProcessor which allows the programmer to write javascipt to produce and process audio. ScriptProcessor is slow and runs in the same thread as the page, but even so, it forms the basis for many browser-based music/sound frameworks. It will soon be replaced by AudioWorklet.

Browser-based Music/Sound frameworks

  • timbre.js - functional processing and synthesizing audio in your web apps with modern JavaScript’s way like jQuery or node.js
  • tone.js - framework for creating interactive music in the browser
  • p5.sound - Wrapper for WebAudio for use in the Processing (p5.js) environment
  • Gibber - Browser-based live-coding environment
  • genish.js - Next level framework inspired by Max’s [gen~]; Uses code-generation and single-sample processing