Skip to content

zackurben/beepbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ac5a814 · Aug 15, 2024

History

19 Commits
Oct 3, 2018
Oct 3, 2018
Aug 15, 2024
Oct 2, 2018
Aug 15, 2024
Oct 3, 2018
Aug 15, 2024
Oct 2, 2018
Oct 2, 2018
Oct 2, 2018
Oct 2, 2018

Repository files navigation

Beepbox

Note: This package was originally called beepbox, but I've renamed it as beepbox-lite to give access to the rightful owner of Beepbox!

A simple library for playing beepbox songs. This library is a more polished version of what I made for my 2018 JS13kGames entry!

This is an open source project under the MIT license, see LICENSE.md for additional information.

Usage

Create an audio context and load a song

import Audio from 'beepbox';
import song from './song.json';
const player = new Audio(song);

Play a beepbox song (once)

/**
 * Play the loaded clip once.
 *
 * @returns {Object}
 *   The generic node from Audio.generateNode() for this sequence.
 */
player.play();

Loop a beepbox song (infinitely)

/**
 * Play the loaded clip infinitely.
 *
 * @returns {Object}
 *   The generic node from Audio.generateNode() for this sequence.
 */
player.loop();

Play a single note

/**
 * Play a single note with the given params.
 *
 * @param {Number} freq
 *   The note frequency to play.
 * @param {Number} len
 *   The duration to play the note (seconds).
 * @param {Number} off
 *   The time offset to play the note (seconds).
 * @param {String} type
 *   The OscillatorNode type to use; https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode/type
 * @param {Number} gain
 *   The gain (volume) to play the note at (0.0 - 1.0).
 *
 * @returns {Object}
 *   The generic node from Audio.generateNode() for this sequence.
 */
player.note(freq, len, off, type, gain);

Example

'use strict';

import Audio from 'beepbox';
import song from './song.json';

const player = new Audio(song);
player.play();

Contact

About

A simple beepbox player!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published