https://github.com/petervdn/audiobuffer-loader
Simple function to load and decode soundfiles using the Web Audio API.
https://github.com/petervdn/audiobuffer-loader
audiobuffer mp3 web-audio
Last synced: 4 months ago
JSON representation
Simple function to load and decode soundfiles using the Web Audio API.
- Host: GitHub
- URL: https://github.com/petervdn/audiobuffer-loader
- Owner: petervdn
- License: mit
- Created: 2018-03-18T11:33:18.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-08-17T18:37:55.000Z (almost 8 years ago)
- Last Synced: 2025-11-23T20:25:13.458Z (7 months ago)
- Topics: audiobuffer, mp3, web-audio
- Language: JavaScript
- Homepage:
- Size: 215 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# audiobuffer-loader
Simple function to load and decode soundfiles using the Web Audio API. Supported filetypes are determined by the Web Audio API.
## install
```sh
npm install audiobuffer-loader
```
## usage
Loading a file requires an `AudioContext`, and results in an object containing both the decoded `AudioBuffer` and the size of the file that was loaded.
```typescript
import { loadAudioBuffer } from 'audiobuffer-loader';
const context = new AudioContext();
loadAudioBuffer(context, 'samples/orbit.mp3').then(result => {
// result.audioBuffer
// result.fileSize
});
```
Optionally, you can add a callback as the 3rd parameter to track the loading progress.
```typescript
loadAudioBuffer(context, 'samples/orbit.mp3', progress => {
// use progress
})
```
Note that this callback will not be fired at all during decoding (which happens after a file is loaded). This may not be noticable for smaller files, but when you have files containing many minutes of audio the progress will not change for a while.
## errors
The returned promise will be rejected when loading or decoding fails.
## load more files
If you need to load multiple files, you might be interested in this [sample manager](https://github.com/petervdn/sample-manager).