Web Audio

From Things and Stuff Wiki
Jump to navigation Jump to search


Web Audio API

big mess


See also JS libs#Media


  • w3.org: Web Audio API - 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.



  • Web Audio Developers Community Group - brings together hackers and developers interested in using the emerging Web Audio API. By providing community support on using the API and surfacing issues with the draft standard, it complements the work of the W3C Audio Working Group where the specification is being developed. This group will not create specifications.


  • https://github.com/WebAudio/web-audio-cg - the repository for the W3C Audio Community Group.The Audio Community Group is to gather and incubate new features for the better audio functionality on web. It is also to make it easier for the community to engage with the Audio Working Group.




  • JavaScript Systems Music - In this guide we'll explore some of the history of systems music and the possibilities of making musical systems with Web Audio and JavaScript. We'll pay homage to three seminal systems pieces by examining and attempting to recreate them: "It's Gonna Rain" by Steve Reich, "Discreet Music" by Brian Eno, and "Ambient 1: Music for Airports", also by Brian Eno. [1]


  • Recreating the sounds of the BBC Radiophonic Workshop - Explore the BBC sound of the 1960s with our 4 demos of Radiophonic equipment, built with the Web Audio API standard. Each demo comes with commented code, so you can learn how to build your own audio applications.



Web MIDI




AudioWorklet


Plugin formats



Web Audio Modules


  • Embed WAMs into any web page with just a few lines of code
  • WAMs integrate easily with existing web APIs
    • Web Audio API
    • Web MIDI API
    • Web Components
  • and more



WebAudioPlugins



  • GMPI vs LV2 vs WAP - Google Docs - "This document lists the requirements from the GMPI Final Draft Proposal, the native audio LV2 host/plugin standard alignment to these requirements, along with the status of support in the WebAudio plugin proposal."

Extensions


to sort

  • genish.js - a library to help develop optimized audio callbacks employing per-sample processing techniques. This enables signal processing that is not possible using buffers.



  • https://wavesurfer-js.org/ a customizable audio waveform visualization, built on top of Web Audio API and HTML5 Canvas. With wavesurfer.js you can create anything from an HTML5 audio player to a sophisticated DJ application.




  • http://lowlag.alienbill.com/
  • Timbre.js provides a functional processing and synthesizing audio in your web apps with modern JavaScript's way like jQuery or node.js. It has many T-Object (formally: Timbre Object) that connected together to define the graph-based routing for overall audio rendering. It is a goal of this project to approach the next generation audio processing for web.


  • Band.js - Music Composer - An interface for the Web Audio API that supports rhythms, multiple instruments, repeating sections, and complex time signatures.








Examples


























Synth




  • https://github.com/cwilso/midi-synth - This application is a analog synthesizer simulation built on the Web Audio API. It is very loosely based on the architecture of a Moog Prodigy synthesizer, although this is a polyphonic synthesizer, and it lacks the oscillator sync and glide effects of the Prodigy. (AKA: this is not intended to be a replication of the Prodigy, so pleased don't tell me how crappy a reproduction it is! :)

Visual

LabSound

  • https://github.com/LabSound/LabSound - a C++ graph-based audio engine. LabSound originated as a fork of WebKit's WebAudio implementation, as used in Google's Chrome and Apple's Safari.LabSound implements many aspects of the WebAudio specification while extending its functionality with an improved API, new graph nodes, bugfixes, and performance improvements.The engine is packaged as a batteries-included static library meant for integration in many types of software: games, visualizers, interactive installations, live coding environments, VST plugins, audio editing/sequencing applications, and more.