Skip to content

Klathmon/Beep.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Beep.js

Simple wrapper around the WebAudio API

Usage:

var Beep = require('beepjs')

var volume = 1 // Volume is a float. 0 is silenced, 1 is full volume
var waveType = 'square' // WaveType is a string that describes the shape of the sound wave. Options are 'square', 'sine', 'triangle', or 'sawtooth'.

var beep = new Beep(volume, waveType)

/**
 * You need to call init() to create the `AudioContext` for the system.
 * On iOS init() must be called from a user action (onClick, onMousedown, onKeyDown, etc...)
 * On all platforms this will be automatically called for you on your first call of beep()
 */
beep.init()

/**
 * Beep takes an array of sound/duration tuples. Each tuple is a single "note".
 * It returns a promise that will be resolved when the entire beep is done.
 * The call below will do a single note at 1000hz for 100 milliseconds
 */
beep.beep([[1000, 100]])
  .then(function () {
    // The next call will do 3 beeps each right after the other in increasing pitch for 100ms each (300ms total)
    return beep.beep([[1000, 100], [2000, 100], [3000, 100]])
  })

Notes:

  • Whenever possible use the built-in array format for creating multiple tones. Callbacks in javascript are not precise enough and you will end up getting strange delays inbetween beeps.
  • A frequency of 0 will be 'silence' and can be used as breaks in the beep array method
  • the beep.init() call must happen from user interaction on iOS before any attempts to call beep.beep(...)
  • This is written in ES6, if you want to include the source file, use include Beep from 'beepjs/src/beep'
  • A pre-minified version is available at beepjs/build/beep.min.js

License:

The MIT License (MIT)

See LICENSE.txt for details

About

Simple wrapper around the WebAudio API

Resources

License

Stars

Watchers

Forks

Packages

No packages published