No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 266 commits ahead, 2 commits behind pshinghal:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


jsaSound is an interactive sound library that uses the Web Audio API to provide playable interative sound models. The code is entirely modular, and allows asynchronous loading of different modules.


jsaSound is built using the RequireJS JavaScript loader. To use RequireJS, follow the instructions at Simply include the path to the "jsaSound" directory in your require config, and you can play with the sounds, as shown in index.html

Basic Description

jsaSound is organised as a set of sound models, that you may use in your application. When you require a sound model, the module returns a constructor for the sound model. The sound model created from this constructor may be played, and its parameters may be set using simple calls to the play, release and set methods of the model. Detailed examples of the usage of these methods may be found in the sliderBox example (see index.html) or in jsaPhoneControl.

You can also create your own sound models. For guidance, just look at any of the jsa-prefixed sound models.

The code is distributed under the GNU Lesser General Public License 3.


Some of the sound models use microphone input. These models only work when run on a proper web web server (thought one on the localhost will work fine). Also, when the user opens one of these models, the ALLOW/DISALLOW buttons show up on the main browser window, not the sound model slider box window so it is easy to miss. If the user doesn't push the ALLOW button, the model will not work properly.


play() release() stop()

setParam([name, number],val) setParamNorm([name, number], val)

getParam([name, number], ["name", "type", "val", "normval", "min","max"]) // type can return "range" or "url"

getNumParams() getAboutText();


This library is built using other open-source libraries:

From Matt Diamond:

From Srikumar Subramanian:

Chris Wilson