npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

audio-context-polyfill

v1.0.0

Published

Just code for one API by enjoying this polyfill for the Web Audio API.

Downloads

70,845

Readme

AudioContext

Just code for one API by enjoying this polyfill for the Web Audio API at W3, following the upgrade path outlined at MDN.

Why this is useful

First, as the Web Audio API evolved, many method names were changed from what we find in older Chrome and Safari browsers (e.g. buffer.start() was bufferNode.noteOn()). Second, older browsers retained a vendor prefixed Audio Context method (e.g. window.AudioContext was window.webkitAudioContext).

Which browsers this will effect

Including this polyfill will improve your experience coding for Chrome 10-30, Firefox v23-25, Opera 15-16, Safari 6-7, iOS Safari 6-7, and potentially later versions of these browsers as well.

Examples of the Audio API

Let’s load a sound and autoplay it.

var
// create the audio context
context = new AudioContext(),
// create the http request
request = new XMLHttpRequest();

// request the MP3
request.open('GET', 'sound.mp3');

// request as an array buffer
request.responseType = 'arraybuffer';

// when the request loads
request.addEventListener('load', function () {
	// decode the array buffer
	context.decodeAudioData(request.response, function (buffer) {
		var
		// create the audio source
		source = context.createBufferSource(),
		// create the audio volume
		volume = context.createGainNode();

		// set the buffer to the audio source
		source.buffer = buffer;

		// set the volume to half
		volume.gain.value = 0.5;

		// connect the audio source to the audio volume
		source.connect(volume);

		// connect the audio volume to the output
		volume.connect(context.destination);

		// play the audio source
		source.start(0);
	});
});

// begin the request
request.send();