Web Audio
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 API - Editor’s Draft
- https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API
- https://github.com/mdn/webaudio-examples/ - Code examples that accompany the MDN Web Audio documentation
- 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.
- https://github.com/WebAudio/web-audio-api-v2 - The Web Audio API v2.0, developed by the W3C Audio WG
- MDN: Web Audio API
- https://github.com/mdn/webaudio-examples - Code examples that accompany the MDN Web Audio documentation
- 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.
- https://github.com/spotify/web-audio-bench - a test suite for comparing web audio performance across devices and browsers. It is written in Javascript.
Web MIDI
- YouTube: Web MIDI Test
- [https://signal.vercel.app/ signal[ - Online MIDI Editor
AudioWorklet
- YouTube: AudioWorklet :: What, Why, and How - Hongchan Choi - at WebAudioPDX on October 24th, 2017, in depth about what the new AudioWorklet is, why it's a great step for Web Audio, and how it works!
- YouTube: Metaprogramming Strategies for AudioWorklets by Charles Roberts - Sep 2018
- YouTube: RustFest Barcelona - Niklas Reppel: Amp Up Web Audio Applications with Rust and WebAssembly - Nov 2019
Plugin formats
Web Audio Modules
- Web Audio Modules - synthesizers and audio effects processors for web browsers
- 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
- https://github.com/boourns/wam-community - A collection of prebuilt Web Audio Modules ready for use
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://github.com/gibber-cc/gibberish - Fast, JavaScript DSP library that creates JIT optimized audio callbacks using code generation techniques
- http://jsantell.github.io/dancer.js/
- http://joewlarson.com/thunderjs/demo.html
- https://github.com/jakesgordon/javascript-audio-fx/
- http://www.createjs.com/#!/SoundJS
- http://www.schillmania.com/projects/soundmanager2/
- http://oampo.github.io/Audiolet/
- http://lowlag.alienbill.com/ - .... now!
- 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.
- https://github.com/stuartmemo/qwerty-hancock - A keyboard for any musical eventuality. Works best with the Web Audio API.
- https://github.com/alemangui/pizzicato - Library to simplify the way you create and manipulate sounds with the Web Audio API.
- https://github.com/bbc/r-audio - A library of React components for building Web Audio graphs.
Examples
- http://nmf.cappel-nord.de/ - networked
- XSound - Web Audio API Library for Synthesizer, Effects, Visualization, Multi-Track Recording, Audio Streaming, Visual Audio Sprite ...
- https://github.com/Korilakkuma/audio-processing-by-wasm - Audio Processing by WebAssembly
- JS Rocks
- https://github.com/vitaliy-bobrov/js-rocks - Web Audio electric guitar effects and cabinets
- AudioMass - Audio Editor
- https://github.com/kunstmusik/webaudio-csound-samples-example - Example showing how to load samples from a server and use Csound writeToFS() to be able to read and load the samples from a Csound project.This project was bootstrapped with Create React App.
- Qwerty Hancock — vector JavaScript keyboard for web audio projects
Synth
- https://github.com/navelpluisje/synthzygy - A modular synthesizer in vanilla js. Due to the fact audioworklets are used, this will only work in Chrome.
- 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/t-sin/browser-mml-player - Code of the article "Syntheizer introduction with Web Audio API"
Visual
- https://github.com/calebj0seph/spectro - a real-time audio spectrogram generator for the web. It can visualise sound from your microphone or audio files on your device.
Piano
- Piano by GridSound - A virtual piano
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.