Skip to content

JavaScript tools, libraries and components for creating/managing audio, sounds and music

Notifications You must be signed in to change notification settings

sc0ttj/awesome-javascript-audio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Awesome JavaScript Audio

JavaScript tools, libraries and components for creating/managing audio, sounds and music.

Articles and videos

Music theory

Web Audio API

Web MIDI API

Books

Libraries: Web Audio API

Libraries: Web MIDI API

These can play MIDI files, and handle MIDI input/output messages from MIDI instruments, etc:

These are tools for managing MIDI instruments (hardware instruments/devices):

Developer tools

  • google/audion - adds a new tab to Chrome DevTools with a node editor to view your AudioNodes
  • Pure Data - develop your own synths and patches

Music theory

Tutorials and teachers:

  • harmonizer - interactive piano that teaches harmony and rhythm theory
  • play-along - learn the drums using a sequencer-like UI
  • Keystack - A web-based circular visualizer for keyboards (circle of fifths).
  • funklet - learn famous drum beats using an interactive sequencer
  • scribbletune/johann - Generate chord & scale charts to practice - for guitar, piano and PC keyboard (repo)

Sound assets

Sounds that can be downloaded and used in your JS applications:

SoundFonts

Instruments and sounds you can attach to MIDI notes (using the Web MIDI API):

Instrument recordings

High quality recordings of instruments, nicely organised into seprate files, in MP3, WAV or similar format.

  • ?

Sound creation

Programmatically create notes, chords, intervals, effects, etc:

  • Tone.js - A Web Audio framework for making interactive music in the browser
  • tonejs-instruments - instrument presets for Tone.js
  • teoria - create notes, chords, scales, intervals.. get notes form intervals, and more..
  • octavian - utilities for reasoning about musical notes, frequencies, and intervals
  • Flocking - declaratively create sounds, synths, effects, etc, as JSON objects, supports mouse/trackpad
  • scribbletune - generate chord progressions, scales, beats, save as MIDI clips, with a teacher app and sampler
  • btwael/zazate.js - make notes, tones, scales, chords, harmonies.. loads of functions
  • timbre.js - JavaScript library for objective sound programming (archived)
  • midiflip - transpose, flip, reverse notes, etc
  • note-parser - Given a string, obtain a hash with note properties (including midi number and frequency)
  • simpleTones - create tones of a specfic note - add sawtooth, sine, triangle, etc, to modify
  • beep.js - a JavaScript toolkit for building browser-based synthesizers
  • Also see LFOs and Synths sections.

Low frequency oscillators ("LFOs"):

These produce sounds which oscillate between two values on a low frequency, following a given waveform. LFOs are usually used to create effects like pitch wobble, tremelo, and wah-wah-wah stuff. These effect are then applied to notes, synths or instruments.

Pure Data (PD) patches

Sound editing

Sound effects/processing

  • alemangui/pizzicato - excellent sound shaping effects, nice demos showing guitar sounds
  • wad - advanced processing/manipulating of sound files
  • tuna - an audio effects library for the Web Audio API
  • scriptify/Chnl - makes it easy to attach lots of effects to a single AudioNode of any kind

Sound samplers:

Samplers make it easy to import, chop up, and extract parts of an audio file (usually WAV or MP3).

ADSR envelopes

Modify a sound with more/less attack, delay, sustain, release, etc.

  • audio-contour - A 5 stage audio envelope generator.. nice UI to edit WAV forms
  • adsr-envelope - attack, delay, sustain, release and MORE, lots of options
  • envelope-generator - nice and complete, lots of options
  • adsr - attack, delay, sustain, release envelopes

Sound equalizers

Vocoders

For Editing and adding effects to vocals.

MIDI instruments

Frontends and UIs to load & your play your sounds.

Drum pads / MPC / MPD

Guitar

Piano

Sequencers & Trackers

Use (often) grid-based, stepped/looping sequencer UIs to generate beats, riffs, bass-lines, loops and so on.

Synths

Generate and edit your own sounds, voices and sound effects.

Multi-instruments

These are more complete - they have multiple instruments.

Complete DAWs

A "DAW" is a digital audio workstation - an all-round music production app

  • gridsound - a lovely open source DAW, uses Web Audio API
  • audionodes - very user-friendly, node editor based DAW (not open source)
  • TReactor - a Traktor clone, written in React
  • XinDaw - a multiscreen Web-based DAW designed for audio&video live performances (Tone.js/React/Meteor)
  • zrythm - requires isgn up. A highly automated and intuitive DAW
  • audiotool - requires sign up. Lots of tools and features, also available as a Chrome extension
  • soundation - requires sign up. Sleek looking DAW, looks similar to Non-DAW

UI components and libraries

React components

Visual waveform generators

Node editors

Also known as "graph editors".

Link your sounds, effects, inputs & outputs together with a drag and drop interface:

Audio visualization

  • vudio.js - very nice bouncing bars, can place or align at top, bottom, left, right or center
  • pts.js - a powerful creative coding and visualization library
  • kelvinau/circular-audio-wave - circular audio waves powered by E-charts
  • party-mode - a d3 based visualizer with lots of options

Other UI

About

JavaScript tools, libraries and components for creating/managing audio, sounds and music

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published