-
Notifications
You must be signed in to change notification settings - Fork 88
Options for Audio Libraries
Dethe Elza edited this page Oct 23, 2015
·
2 revisions
Goals for Waterbear audio blocks
- Make a sound from:
- An audio file (wav, mp3, ogg)
- A sampled array (could be programmatically generated/manipulated)
- A synthesized source (sine/square/triangle waves, etc.)
- A list of notes and rests
- Concatenation of two sounds
- Mixing of two sounds
- Microphone
- ???
- Manipulate any of these sounds:
- Play (with optional looping) one or more sounds simultaneously
- Pause and resume a sound (tricky with Audio API)
- Change balance, play sounds to different channels
- Arrange sounds in 3D space?
- Set reverb
- Set echo
- Filter a sound
- Add feedback
- Set attack and decay
- Change volume
- Bend pitch
- Add dissonance
- Use function to modify sample array
- Create music
- Create a list of notes and rests
- Choose instruments?
- Ideally it would play in all modern browsers, both desktop and mobile.
Loosely this becomes the following:
- Playback files
- Generate sound effects
- Manipulate samples
- Record and save
- Build songs from notes
Some Libraries under consideration:
- WAD Wad provides a simple interface to use many features one would find in a desktop DAW (digital audio workstation). Billed as "jQuery for Audio". https://github.com/rserota/wad
- Playback: Yes
- Effects: Yes
- Samples: Maybe (see External FX)
- Record: Yes (uses Record.js)
- Play notes: No (but can read MIDI input)
- Musical JS a tiny library with a sequencing WebAudio synthesizer that supports ABC notation. https://github.com/PencilCode/musical.js
- Playback: No
- Effects: No
- Samples: No
- Record: No
- Play notes: Yes, with rich control
- Timbre.js functional processing and synthesizing audio. https://mohayonao.github.io/timbre.js/
- Playback: Yes
- Effects: Yes
- Samples: Yes
- Record: Yes
- Play notes: Yes, with rich control
- Flocking audio synthesis framework designed for artists and musicians who are building creative and experimental Web-based sound projects. It claims wide compatibility across browsers, including mobile. http://flockingjs.org/
- Playback:
- Effects: Yes
- Samples: Yes (I think)
- Record:
- Play notes:
- P5.Sound extends p5 with Web Audio functionality including audio input, playback, analysis and synthesis. Requires P5. http://p5js.org/reference/#/libraries/p5.sound
- Playback: Yes
- Effects: Yes
- Samples: Yes
- Record: Yes
- Play notes: Yes
- SoundManager 2 provides simple, reliable cross-platform audio under a single JavaScript API. http://www.schillmania.com/projects/soundmanager2/
- Playback: Yes
- Effects: No
- Samples: No
- Record: No
- Play notes: No
- Audiolet https://oampo.github.io/Audiolet/
- IonSound http://ionden.com/a/plugins/ion.sound/en.html
- SoundJS http://www.createjs.com/soundjs
- WebAudiox.js http://blog.jetienne.com/blog/2014/02/18/webaudiox-a-dry-library-for-webaudio-api/
- Howler.js http://goldfirestudios.com/blog/104/howler.js-Modern-Web-Audio-Javascript-Library
- Buzz http://buzz.jaysalvat.com/
- Pedalboard https://dashersw.github.io/pedalboard.js/
- Band.js https://github.com/meenie/band.js
- Subcollider https://github.com/mohayonao/subcollider
- Sound.js This is the library we are using right now https://github.com/kittykatattack/sound.js
- Music.js http://code.gregjopa.com/javascript/audio/musicjs/demo/
- VexFlow Not music playing, but for printing nice scores, could be an interesting addition. www.vexflow.com/