Skip to content

vulcanoio/audio-correction

 
 

Repository files navigation

audio-correction

npm version dependencies Build Status

Audio stream correction utilities.

Installation

Install audio-correction by running:

$ npm install --save audio-correction

Documentation

Stream audioCorrection.skew(Object options)

Audio skew correction based on an specific date. It'll make sure an audio stream keeps playing on time.

Useful to keep multiple audio players in sync.

options

  • start is a date representing the intended audio start time.
  • format is a PCM format object.
  • maximumSkew is a number (in milliseconds) representing the maximum skew allowed.
  • onSkew(skew, maximumSkew) is a function called when a skew occurs.

Example:

Speaker = require('speaker')
Lame = require('lame')
audioCorrection = require('audio-correction')

decoder = new Lame.Decoder()

# stream is an audio stream from somewhere
stream.pipe(decoder)

decoder.on 'format', (format) ->
	speaker = new Speaker(format)

	decoder
		.pipe audioCorrection.skew
			start: new Date()
			format: format
			maximumSkew: 300
			onSkew: (skew, maximumSkew) =>
				console.warn("Error: Exceeds maximum skew of #{skew} (#{maximumSkew}ms.)")
		.pipe(speaker)

Tests

Run the test suite by doing:

$ gulp test

TODO

  • Improve unit testing in some areas of the code.

Contribute

We're looking forward to support more operating systems. Please raise an issue or even better, send a PR to increase support!

Before submitting a PR, please make sure that you include tests, and that coffeelint runs without any warning:

$ gulp lint

Support

If you're having any problem, please raise an issue on GitHub.

License

The project is licensed under the MIT license.

About

Audio stream correction utilities.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CoffeeScript 75.4%
  • JavaScript 24.6%