Web Audio

From Things and Stuff Wiki
Jump to navigation Jump to search


Web Audio API

big mess

See also JS libs#Media, Creative coding


  • 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

  • WebAudioFont - Use full GM set of musical instruments to play MIDI and single sounds or effects. Support for reverberation and equaliser. No plugins, no Flash. Pure HTML5 implementation compatible with desktop and mobile browser.


  • 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! :)



  • https://github.com/a-cordier/wasm-audio - This project aims to showcase the use of Web Assembly modules in AudioWorklets (amongst other things I wanted to give a try, like for instance the Web Midi API).

Visual


Piano / etc.


  • https://github.com/vongon/webaudio-organ - This webapp is an interactive emulation of the Farfisa Fast 3, a vintage analog organ that can be controlled with a USB-MIDI controller keyboard. The application was made possible with the Web Audio and Web MIDI api's. The Farfisa Fast 3 is a 1960's era analog transistor organ that is known for it's iconic vintage sound found on the records of artist such as Kraftwerk, Jackson 5, The Ventures, and more!

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.