Skip to content
A browser-based tool to create sound effects for games.
JavaScript CSS HTML
Branch: master
Clone or download

Latest commit

Latest commit b117931 Aug 4, 2019


Type Name Latest commit message Commit time
Failed to load latest commit information.
app v0.13.0 Aug 4, 2019
lib v0.13.0 Aug 4, 2019
.eslintrc.js Replace grunt-contrib-jshint by eslint-loader in the app too Oct 25, 2018 Fire an event when the controller is ready (#35) Oct 31, 2018

Jfxr is a browser-based tool to generate sound effects, for example for use in games. It was inspired by bfxr, but aims to be more powerful and more intuitive to use.

Start using it right now at


Can I use these sounds commercially?

Yes! Any sound you create with jfxr is entirely yours, and you are free to use it in any way you like, including commercial projects. If your project is commercially successful, I would really appreciate a donation (see below).

Is attribution required?

Attribution is not required, but I would really appreciate if you could link back to jfxr in some way. I would also be delighted if you send me a link to your creation!

Can I send you money?

Thanks for asking! If you want to express your appreciation for this project, you can send donations via the in-app donation button or this PayPal link.

How does it compare to sfxr/bfxr?

Compared to bfxr, the only missing feature is the mixer (which mixes multiple generated sounds together). There is an open issue to address that. Some filters also have a slightly different meaning, most notably the bit crunch, which is a real bit crunch rather than a downsample.

What are the system requirements?

Jfxr has been tested on the latest Chrome and Firefox, on Linux and OS X. In other modern browsers, I guarantee that the sliders will look broken, but hopefully everything else will still work.

Reporting bugs

Please report any issues you find to the issue tracker on GitHub.

Technical details

Jfxr uses Angular.js for its UI and module dependency management. It relies on several modern web technologies: WebAudio, canvas2d, local storage and of course CSS3.


To assemble the JavaScript files into a runnable whole, you need Node.js installed.

To install the development dependencies, run:

cd app
npm install

Then, to build the app:

npm run build

This produces output in the app/dist directory, which can be used locally or copied to a webserver.

Use as a library

The sound synthesis code can be used as a standalone library. To build it separate from the app:

cd lib
npm install
npm run build

This produces an npm package in the lib/dist directory, which can be used as-is or published to the npm registry.

For development, there is also a script to continuously rebuild on change:

npm run watch

For further details, see lib/ or the documentation on


The code itself is under a three-clause BSD license; see LICENSE for details.

Any sound effects you make are entirely yours to do with as you please, without any restrictions whatsoever.

You can’t perform that action at this time.