Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stonecypher/soundtrack.js
Make handling the soundtracks to your HTML5/JS games somewhat easier. ES6/JS2015 with CommonJS bindings.
https://github.com/stonecypher/soundtrack.js
background bgm game games javascript js library loop mit-license music songs soundtrack stonecypher vanilla-javascript
Last synced: about 2 months ago
JSON representation
Make handling the soundtracks to your HTML5/JS games somewhat easier. ES6/JS2015 with CommonJS bindings.
- Host: GitHub
- URL: https://github.com/stonecypher/soundtrack.js
- Owner: StoneCypher
- License: mit
- Created: 2016-03-31T03:00:30.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-01-15T13:14:01.000Z (11 months ago)
- Last Synced: 2024-10-04T03:41:00.272Z (3 months ago)
- Topics: background, bgm, game, games, javascript, js, library, loop, mit-license, music, songs, soundtrack, stonecypher, vanilla-javascript
- Language: TypeScript
- Size: 892 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# soundtrack.js
Make handling the soundtracks to your HTML5/JS games somewhat easier. ES6/JS2015 with CommonJS bindings.# TL;DR
```javascript
var soundtrack = require('soundtrack').soundtrack,
bg_track = new soundtrack([ 'song1', 'song2', 'song3' ]);bg_track.play('song2');
```# What's the point?
This library is primarily intended to make soundtracks out of loopable MP3s.Handling seamless looping music in JavaScript is surprisingly hard, because of the timing situation -
neither the HTML5 `Audio` object nor WebAudio `AudioContext`'s events fire fast enough to handle seamless looping (the spec allows 15ms to 250ms.) HTML5 `setInterval`, however, has been set to a floor of 4ms,
which is satisfactory.This library wraps up the ho-hum, teaches songs to know whether they loop, provides start, end, and loop
points for songs, offers high resolution (4-6ms in practice, though undefined) callbacks for hitting music
timings, and generally just makes it easier to deal with high resolution audio timing.Polemic :neckbeard:
-------------------`soundtrack.js` is MIT licensed, because viral licenses and newspeak language modification are evil.
Free is ***only*** free when it's free for everyone.