BandNavigatorBandNavigator
Back to BandNavigator
BandNavigator — Less Chaos, More Music

The MP3 encoder in your browser

When you upload a WAV, or any audio file too large to send as it is, your browser converts it to MP3 before the upload so that only a small file ever leaves your machine. That conversion is done by lamejs, a JavaScript port of the LAME MP3 encoder, used under the GNU Lesser General Public License, version 3. lamejs is not built into BandNavigator's own code. It is served as a separate file, unmodified from the published @breezystack/lamejs package, and loaded only when a conversion starts.

Replacing the encoder

The LGPL guarantees that you can use your own build of the library. BandNavigator loads the encoder from the single address above with a standard browser import and uses only its Mp3Encoder class: a constructor taking channel count, sample rate and bitrate, an encodeBuffer method, and a flush method. Any interface-compatible build served at that address, for example one you substitute with a browser extension or a local proxy, is used in its place. BandNavigator has not modified lamejs.

Everything else

The other libraries in the web application are under licences such as MIT, Apache-2.0, BSD, ISC and MPL-2.0, which ask for their notices to travel with the code. They do, in BandNavigator's source tree, where a register of every library and its licence is kept and reviewed.

If a notice is missing

If you believe a library's notice is missing from this page or a licence is not being honoured, tell us through the contact route on the Privacy page. We will correct the page and, where a licence requires it, the way the software is distributed.