Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/loov/jsfx
Javascript Sound Effect Generator
https://github.com/loov/jsfx
game-development javascript sound sound-effects
Last synced: 19 days ago
JSON representation
Javascript Sound Effect Generator
- Host: GitHub
- URL: https://github.com/loov/jsfx
- Owner: loov
- License: mit
- Created: 2011-01-22T17:17:52.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2017-05-13T19:12:07.000Z (over 7 years ago)
- Last Synced: 2024-11-15T23:06:00.445Z (26 days ago)
- Topics: game-development, javascript, sound, sound-effects
- Language: JavaScript
- Homepage:
- Size: 1.24 MB
- Stars: 575
- Watchers: 21
- Forks: 49
- Open Issues: 2
-
Metadata Files:
- Readme: README.markdown
- License: LICENSE-MIT
Awesome Lists containing this project
- fucking-awesome-web-effect - jsfx - This is a JavaScript library for sound effect generation and is supported on most current browsers. (🚀 A series of exquisite and compact web page cool effects / Other Effect)
- awesome-web-effect - jsfx - This is a JavaScript library for sound effect generation and is supported on most current browsers. (🚀 A series of exquisite and compact web page cool effects / Other Effect)
README
![](https://raw.githubusercontent.com/loov/jsfx/master/jsfx.png)
This is a JavaScript library for sound effect generation and is supported on
[most current browsers](http://caniuse.com/#feat=audio).Generation speed is approximately 1s audio = 10ms processing. Of course that
value can vary a lot, depending on the settings or browser that you use.### How to use it?
Open [index.html](http://loov.github.io/jsfx/) - this helps to pick out your samples.
Try clicking the presets and tweaking all the options. Once you are satisified
with your result click add button at top-right.Enter a name for the sound e.g. "select", repeat that as many times as you like. Tip: You can save your settings by making a bookmark of the page.
At the bottom of the page there is a Library section. There you can relisten
or remove sounds that you do not like.Once you are satisfied with your selection copy the JSON description
(it's inside the input box).It will look something like:
{"select":{"Volume":{"Sustain":0.1,"Decay":0.15,"Punch":0.55}}}
To use that library, you need to include `jsfx.js` in your code and use `jsfx.Sounds(libarry)` to initialize it. For example:
```html
var library = {
"select": {"Volume":{"Sustain":0.1,"Decay":0.15,"Punch":0.55}},
"long": {"Volume":{"Sustain":0.1,"Decay":0.5,"Punch":1}}
};
var sfx = jsfx.Sounds(library);Select
Long
```Note that it will load with a delay to avoid blocking the page load for too
long, so calling those function immediately may result in silence.### Using with AudioContext (experimental)
You can use AudioContext to procedurally generate the sounds, for example:
```html
var library = {
"static": {"Volume":{"Sustain":0.1,"Decay":0.15,"Punch":0.55}},
"dynamic": function(){
return {"Frequency": { "Start": Math.random()*440 + 220 }};
},
"coin": jsfx.Preset.Coin
};
var sfx = jsfx.Live(library);Static
Dynamic
Coin
```### Few notes...
It's recommended to copy the jsfx.js to your own project instead of
automatically downloading the latest version. Since every slight adjustment
to the audio generation code can affect the resulting audio significantly.The stable API is what is described in the README, everything else is
subject to change.### Thanks to
This project was inspired by [sfxr](http://www.drpetter.se/project_sfxr.html)
and was used as a reference for some algorithms and modes.