Skip to content

jfrancos/oggmented

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oggmented

oggmented extends AudioContext and overrides decodeAudioData to use an Emscripten transpiling of libogg-1.3.4 and libvorbis-1.3.6 when it encounters ogg vorbis data.

This allows you to decodeAudioData ogg vorbis buffers correctly in any browser. This is especially useful in Safari and iOS browsers, which don't decodeAudioData(oggVorbisBuffer) at all.

In addition, Blink (Brave, Opera, Chrome) uses ffmpeg, which has a bug that slightly bloats the end of decoded vorbis audio, resulting in clicks when audioContext.createBufferSource().loop === true. Using this package fixes that (assuming of course that the waveform begins and ends at the same place etc).

Installation

npm install oggmented

Usage

Use it like you would regular AudioContext:

import oggmentedAudioContext from 'oggmented'

const audioCtx = new oggmentedAudioContext()
// instead of 
// const audioCtx = new (window.AudioContext || window.webkitAudioContext)()

License

MIT © jfrancos

About

decodeAudioData(oggVorbisBuffer) in any browser

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published