GithubHelp home page GithubHelp logo

ben-dyer / jsfxr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from chr15m/jsfxr

0.0 0.0 0.0 439 KB

JavaScript sound effects generator.

Home Page: http://sfxr.me

License: The Unlicense

JavaScript 73.79% HTML 26.21%

jsfxr's Introduction

Quick 'n' easy game sound effects generator.

App ๐Ÿ‘‰ https://sfxr.me

About | Library

About

A port of sfxr to HTML5 by Eric Fredricksen. Maintained by Chris McCormick.

jsfxr screenshot

Library

You can use the jsxfr library to generate and play sounds in your JavaScript game code.

Node

Install it:

npm i jsfxr

Require it:

const sfxr = require("jsfxr").sfxr;

See API below for usage examples.

Browser

Include the scripts in your page:

<script src="https://sfxr.me/riffwave.js"></script>
<script src="https://sfxr.me/sfxr.js"></script>

You can then directly use the sfxr namespace without requiring it.

API

Generate a sound effect using a preset algorithm and play it using webaudio API.

const sfxr = require("jsfxr").sfxr;

const preset = "pickupCoin";
const sound = sfxr.generate(preset);

sfxr.play(sound);

Available presets are pickupCoin, laserShoot, explosion, powerUp, hitHurt, jump, blipSelect, synth, tone, click, and random.

You can also use the interface at https://sfxr.me to find the sound you want and then use the sound definition. Click the "serialize" button and copy the JSON code for the sound you want. You will get a datastructure that you can use like this:

var sound = {
  "oldParams": true,
  "wave_type": 1,
  "p_env_attack": 0,
  "p_env_sustain": 0.31718502829007483,
  "p_env_punch": 0,
  "p_env_decay": 0.2718540993592685,
  "p_base_freq": 0.2612<F2>6191208337196,
  "p_freq_limit": 0,
  "p_freq_ramp": 0.43787689856926615,
  "p_freq_dramp": 0,
  "p_vib_strength": 0,
  "p_vib_speed": 0,
  "p_arp_mod": 0,
  "p_arp_speed": 0,
  "p_duty": 1,
  "p_duty_ramp": 0,
  "p_repeat_speed": 0.7558565452384385,
  "p_pha_offset": 0,
  "p_pha_ramp": 0,
  "p_lpf_freq": 1,
  "p_lpf_ramp": 0,
  "p_lpf_resonance": 0,
  "p_hpf_freq": 0,
  "p_hpf_ramp": 0,
  "sound_vol": 0.25,
  "sample_rate": 44100,
  "sample_size": 8
};

var a = sfxr.toAudio(sound);
a.play();

You can also use the short URL compressed version of the sound:

var a = sfxr.toAudio("5EoyNVSymuxD8s7HP1ixqdaCn5uVGEgwQ3kJBR7bSoApFQzm7E4zZPW2EcXm3jmNdTtTPeDuvwjY8z4exqaXz3NGBHRKBx3igYfBBMRBxDALhBSvzkF6VE2Pv");
a.play();

You can also access an array of samples. By default the buffer contains audio rendered at a sample rate of 44100.

var buffer = sfxr.toBuffer(sound);
console.log(buffer);

You can convert between the base58 short-url encoded format and JSON using b58encode and b58decode:

var b58string = sfxr.b58encode(sound);
var sound = sfxr.b58decode(b58string);

You can also access the lower level classes SoundEffect and Params if you need to. This can be useful for caching the internal representation for efficiency, or mutating the sound with params.mutate().

links

Thanks

jsfxr's People

Contributors

charasyn avatar chr15m avatar grumdrig avatar rparrett avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.