Skip to content
This repository has been archived by the owner on Sep 14, 2024. It is now read-only.
/ soundfont3 Public archive
forked from Mrtenz/soundfont2

A SoundFont3 parser for Node.js and web browsers

License

Notifications You must be signed in to change notification settings

MengLinMaker/soundfont3

 
 

Repository files navigation

soundfont3.js

GitHub npm version npm version

Parse and write SoundFont3 and SoundFont2.

pnpm i @menglinmaker/soundfont3

For examples and API details, visit the documentation website.

 

What does this solve?

Reduce CDN bandwidth up to 25x

SoundFont2 files contain audio samples in WAV format. SoundFont3 uses OGG VORBIS compression - at the cost of audio quality (if you can hear the difference).

Standard compliance

The parser and writer complies with SoundFont 2.01 specification.

However, this also means the SoundFont3 implementation deviates from the unofficial standard set by MuseScore. Nevertheless, editors like Polyphone can read this SoundFont3 file.

Note: MuseScore SoundFont3 breaks the RIFF file standard. This is the main reason for compatability issues.

Caveats

Besides the potential compliance issues, There are a few limitations:

  • SoundFont3 converter requires Node.js and FFMPEG.
  • The web SoundFont2 converter is UI blocking - AudioContext cannot initialise on a separate process (Web Worker).

Note: Try caching the processed file as memiosation.

About

A SoundFont3 parser for Node.js and web browsers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.8%
  • JavaScript 0.2%