Skip to content
This repository has been archived by the owner on Feb 10, 2022. It is now read-only.

audiojs/audio-context

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

audio-context Build Status unstable Greenkeeper badge npm license

DEPRECATION NOTICE

Since AudioContext depends on particular web-audio engine, it cannot be used as solid base for other audio components.

Besides:

  • There's no necessarily common API between OfflineContext and AudioContext;
  • Chrome requires interaction to enable AudioContext;
  • spec fluctuates;

Better use WebAudioAPI, web-audio-api, web-audio-js or other engine directly in your app. If you need just a convention for your component, implement simple context chache defaulting to {sampleRate: 44100}.


Creates a WebAudio context singleton with the given options. Returns null if not supported.

Example

var audioCtx = require('audio-context')()

You can also create an OfflineAudioContext in case you would like to process (faster) without any rendering.

var offlineContext = require('audio-context')({offline: true})

Usage

npm install audio-context

ctx = createContext(options|sampleRate)

Returns a singleton audio context for the given sampleRate.

The options:

  • sampleRate - if specified, will set the context sampleRate.
  • latencyHint - if specified, will control latency. One of 'balanced', 'playback', 'interaction' (default) or number.
  • offline - if specified, will create OfflineAudioContext.
  • length - if specified, will set number of frames for offline context.
  • channels - if specified, will set number of channels for offline context.
  • {...contextAttributes} any other options for the context.

Handles vendor prefixing for audio contexts. Returns null if we are not in a browser, or if the context is not available, or if there was an error creating the context.

Running tests

# Run tests in tape-run's default browser
npm test

# Run in a specified browser.
# See https://github.com/juliangruber/tape-run#runopts for options
npm test -- --browser firefox

License

MIT