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
- 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.
- MDN: Web Audio API
- 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
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
WebAudioPlugins
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://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.
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
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.
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.
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.