A curated list of awesome WebAudio packages and demos.
Inspired by the awesome list thing.
Please raise a Pull-Request to add an awesome WebAudio thing to this list.
- Tone.js – A framework for making interactive music in the browser.
- Gibberish – A JavaScript DSP library that creates JIT optimized audio callbacks using code generation techniques.
- lissajous – A tool for programmatic audio performance.
- SSSynthesiser.js – A wavetable synthesizer for interactive music and sound effects.
- Bap – A toolkit for making beats and composing sequences, inspired by the classic MPC60/2000.
- WAAX – Build Music Apps for browsers.
- Omnitone – Spatial audio on the web.
- reverbGen – A JavaScript library for generating artificial reverb impulse responses.
- TuneJS – A tuning library of microtonal and just intonation scales. Supports over 3,000 historical tunings.
- Beet.js – A sequencer library for creating euclidean rhythms and polyrhythms.
- AudioKeys – A QWERTY keyboard for web audio projects.
- smoothfade – A library for smoothly fading between two AudioNodes.
- web-audio-test-api – A Web Audio test library for CI.
- virtual-audio-graph – Library for declaratively manipulating the Web Audio API.
- javascript-karplus-strong – JavaScript/Web Audio implementation of Karplus-Strong guitar synthesis.
- XSound.js – Full stack library.
- osc-msg – OSC message decoder/encoder with fault tolerance.
- Meyda – Audio feature extraction library including a variety of widely used audio features.
- Pizzicato – A library that aims to simplify the creation and manipulation sounds in the browser.
- Mooog – Tools that simplify working with AudioNodes, inspired by jQuery and mixing tables.
- Wavesurfer.js – Interactive navigable audio visualization using Web Audio and Canvas.
- envelope-generator – Simple ADSR envelope generator for web audio.
- Audiojs – An object that enables you to store, read, and write PCM audio data more easily.
- audio contour – A 5 stage audio envelope generator.
- Tuna – An audio effects library.
- web-audio-recorder-js – A library that records audio input (Web Audio API AudioNode object) and encodes to audio file image (Blob object).
- audiolet – A JavaScript library for real-time audio synthesis and composition from within the browser.
- playnote – Play your favorite instrument in the browser, with complex note intervals and scales.
- Recorderjs – A plugin for recording/exporting the output of Web Audio API nodes.
- Rythm.js – A javascript library that makes your page dance.
- Howler.js – A comprehensive library with a fallback to HTML5 Audio.
- Circular Audio Wave – A JS library for audio visualization in circular wave using Web Audio API and ECharts
- midimessage – A simple MIDI Message parser.
- midi-ports – handy library to make it easier to work with attached MIDI devices.
- Midi Logger – This Midi Logger will print all midi input to your browser for debugging.
- JZZ – MIDI library for Node.js and all major browsers.
- JZZ-midi-Gear – Retrieve your MIDI device model and manufacturer.
- LoopDrop App – MIDI looper, modular synth and sampler app built using Web Audio and Web MIDI APIs.
- X Sound – Multi Sound Application that uses XSound.js.
- Molgav – Musical Step Sequencer for melodies exchange.
- Code Player – An experimental app that makes your codes sing for you.
- mod-synth.io – Create your own modular synthesizer, or emulate different synths.
- GridSound – A work-in-progress DAW (Digital Audio Workstation).
- Learning Music – Learn the basics of music making.
- Super Oscillator – An interactive, 3D music synthesizer for the Web.
- AudioNodes – Modular audio production suite with multi-track audio mixing, audio effects, parameter automation, MIDI editing, synthesis, cloud production, and more.
- waveform-playlist – Multitrack Web Audio editor and player with canvas waveform preview. Set cues, fades and shift multiple tracks in time. Record audio tracks or provide audio annotations. Export your mix to AudioBuffer or WAV! Project inspired by Audacity.
- SoundCycle – A Web Audio based Loopstation for musicians with effects and different looping modes.
- DSP.audio Worklet Editor – Online Audio Worklet editor for sketching and collaboration, with sampler, MIDI and analyzers. Like a JSFiddle, but for DSP.
- JavaScript for Sound Artists – A bottom up JavaScript / DOM course using Web Audio for all the examples.
- Web Audio API – Intended to be a springboard for web developers with little to no digital audio expertise. Geared towards game audio and interactive apps.
- Slack – A Slack for discussing Web Audio.
To the extent possible under law, Chinmay Pendharkar has waived all copyright and related or neighboring rights to this work.
A categorized collection of awesome music libraries, tools, frameworks and software.
Contributions and suggestions are always welcome! Please take a look at the contribution guidelines and quality standardfirst.
Thanks to all contributors, you’re awesome and wouldn’t be possible without you!
- Audacity – a free, cross-platform digital audio editor.
- Ardour – a cross-platform digital audio workstation emphasizing audio recording.
- LMMS – another cross-platform digital audio workstation, more oriented towards making beats.
- audio.js – audio.js is a drop-in javascript library that allows HTML5’s <audio> tag to be used anywhere.
- howler.js – a Javascript audio library for the modern web.
- JSyn – an audio synthesis software API for Java.
- Librosa – a python package for music and audio analysis, providing the building blocks necessary to create music information retrieval systems.
- midi.js – a framework for creating web-based MIDI apps.
- mxml – MusicXML parsing and layout library.
- PortAudio – a free, cross-platform, open-source, audio I/O library.
- RustAudio – an aggregate of free and useful Audio, DSP and music libraries written in Rust.
- Soundpipe – a lightweight DSP library written in C.
- Beets – a powerful command-line music organizer and manipulator.
- cyanrip – rips and encodes standard audio CDs with the least effort required from user. Cross platform.
- fre:ac – free audio converter. It supports audio CD ripping and tag editing.
- Jack – command-line CD ripper.
- K3b – is a full-featured CD/DVD/Blu-ray burning and ripping application.
- Koel – an open-source personal audio streaming server.
- Lame – a high quality, free and open-source MP3 encoder.
- lltag – automatic command-line mp3/ogg/flac file tagger and renamer.
- Musikernel – a futuristic audio production platform (hardware support, APIs, hosts, plugins and more)
- Rubyripper – is a secure digital audio extraction application (« cd ripper ») for Unix-like operating systems.
- SoX – a free open-source command line utility for playing, converting and manipulating audio files.
- split2flac – split flac/ape/wv/wav + cue sheet into separate tracks
- Whipper – Python CD-DA ripper preferring accuracy over speed.
- X Audio Copy – GTK and GNOME application for ripping CD-Audio and encoding in lossy and lossless audio formats.
- cellist/Lilypond-Sheet-Music – a collection of music typeset with lilypond (mostly chamber music and music for cello).
- ciconia/music – a collection of mostly baroque music, lots of sacred works by J. S. Bach, coded in lilypond/ripple.
- CPDL – the choral public domain library contains more than 20K free scores of vocal music.
- Éditions Nicolas Sceaux – baroque music scores (mainly French music), typeset using lilypond.
- IMSLP – the International Music Score Library Project is the largest collection of public domain scores and parts on the web.
- Mutopia – sheet music based on editions in the public domain.
- wbsoft/lilymusic – beautiful LilyPond scores under free licenses.
- Midifile – C++ library for parsing Standard MIDI Files.
- Timidity – an open-source command line synthesizer that plays MIDI files.
- Abjad – a Python API for Formalized Score Control, based on Lilypond.
- Denemo – a free music notation editor based on Lilypond.
- Jan Angermüller’s music fonts page – A listing and visual comparison of different music fonts.
- Frescobaldi – a free Lilypond sheet music editor.
- Guido – a generic, portable library and API for the graphical rendering of musical scores.
- Hacklily – online LilyPond-based sheet music editor (with optional GitHub integration).
- i-score – a software for interactive music notation, with DAW features.
- Inknote – free, open source, browser based music notation and composition software.
- LibMEI – a C++ library for reading and writing MEI files.
- Lilybin – an open source web-based LilyPond editor.
- Lilypond – free, open-source music engraving program, devoted to producing the highest-quality sheet music possible.
- Lilypond cook book – tips & tricks for getting the most out of lilypond.
- Lilypond Snippet Repository – an online database of Lilypond snippets ideas, features and hacks.
- Lilyvm – Lilypond version manager.
- Lydown – a modern language for music notation, based on Lilypond.
- Lyp – the Lilypond swiss army knife – easily install packages, manage multiple versions of Lilypond, and other tools for power users.
- MuseScore – free open-source music notation and composition software.
- MusicKit – Music sheet rendering for iOS and OSX.
- NOTATIO – a forum devoted to the practice of music notation.
- OpenLilyLib – LilyPond tools – snippets, templates, and extensions.
- Python-ly – a tool and library for manipulating LilyPond files.
- Ripple – DRY for Lilypond – generate scores and parts with minimal fuss.
- Scorelib – a C++ library for parsing SCORE data files.
- Tbon – Typographic Beat-Oriented Notation for music.
- Tunefl – LilyPond mini-score engraving and sharing service for musicians.
- Verovio – a library and a toolkit for engraving MEI music notation into SVG.
- Vexflow – a JavaScript library for rendering music notation and guitar tablature.
- Alda – a music programming language for musicians.
- Bach: Automated Composer’s Helper – a cross-platform set of patches and externals for Max, aimed to bring the richness of computer-aided composition into the real-time world.
- Chuck – strongly-timed, concurrent, and on-the-fly music programming language.
- CoffeeCollider – a language for real time audio synthesis and algorithmic composition in HTML5. « Write CoffeeScript, and be processed as SuperCollider. »
- Common Music – an open source music composition system.
- Csound – a user-programmable and user-extensible sound processing language and software synthesizer.
- Faust – a functional programming language specifically designed for real-time signal processing and synthesis.
- IanniX – a graphical open-source sequencer, based on Iannis Xenakis works, for digital art.
- Inscore – an environmnent for the design of interactive, augmented music scores.
- Leipzig – a composition library for Overtone.
- music21 – A Toolkit for Computational Musicology.
- Music Suite – a language for generalized music notation and theory, based on Haskell.
- Nyquist – a sound synthesis and composition language.
- OpenMusic – a visual programming language based on Lisp.
- Overtone – an Open Source toolkit for designing synthesizers and collaborating with music.
- Platonic Music Engine – an open-source music generation framework written in Lua.
- Pure Data – a visual programming language for audio and other multimedia.
- Sonic Pi – a live coding synth with an emphasis on educational use.
- Sporth – a small stack based audio language.
- SuperCollider – a programming language for real time audio synthesis and algorithmic composition.
- Tidal – a language built on Haskell for live coding patterns.
Other amazingly awesome lists can be found in the list.
To the extent possible under law, Sharon Rosner has waived all copyright and related or neighboring rights to this work.
FFmpeg is a cross-platform solution to record, convert and stream audio and video.
FFmpeg’s official docs are notoriously difficult for beginners to understand due to the scope and complexity of FFmpeg’s capabilities. With that being said, they’re still very useful as a reference.
- FFmpeg.org – Where it all starts.
- Filters – Docs for FFmpeg’s powerful filter chains (scaling, cropping, concatenating, merging, etc.). This is one of my most visited links when working with FFmpeg.
- Man page – Official FFmpeg man page.
- Wiki & Bug Tracker – Lots of great info on here.
- CLI flags – A comprehensive list of all FFmpeg commandline flags. Really useful for searching random flags that you come across in the wild.
- fluent-ffmpeg – A fluent API to FFmpeg. If you only use one tool from this list, it should be this one.
- ffmpeg-probe – Wrapper around ffprobe for getting info about media files.
- ffmpeg-concat – Concats a list of videos together using FFmpeg with sexy OpenGL transitions.
- ffmpeg-generate-video-preview – Generates an attractive image strip or GIF preview from a video.
- ffmpeg-extract-frame – Extracts a single frame from a video.
- ffmpeg-extract-frames – Extracts screenshots from a video using FFmpeg.
- gif-extract-frames – Extracts frames from GIFs including inter-frame coalescing.
- ffmpeg-extract-audio – Extracts an audio stream from a media file.
- ffmpeg-on-progress – Utility for robustly reporting progress with fluent-ffmpeg.
- ffmpeg.js – Port of FFmpeg to JavaScript via Emscripten. Allows for limited FFmpeg use on the client-side.
- ffmpeg-static – Provides static FFmpeg binaries for macOS, Linux, and Windows. Very useful for CI testing.
- tangerine – Webcam streaming service using Node.js, FFmpeg, WebSockets, and Lad.
Contributions welcome! Please read the contributing guideline first.
To the extent possible under law, Travis Fischer has waived all copyright and related or neighboring rights to this work.