Enforces rules in Gabe's discord server
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Geometer1729 7e6807c787
make count more interesting
3 years ago
lib Add thicc node modules 3 years ago
src Add thicc node modules 3 years ago
LICENSE Add thicc node modules 3 years ago
Makefile Add thicc node modules 3 years ago
README.md Add thicc node modules 3 years ago
package.json Add thicc node modules 3 years ago



Emscripten (C++/JavaScript) bindings for libopus

A module to encode PCM data to and decode PCM data from Opus.


The lib folder includes a pre-compiled version. Requiring the Opus.js entrypoint file should be enough.


//Tries to mimic `node-opus` in syntax.
var encoder = new OpusEncoder( 48000, 2 );


var PCM = getPCMDataSomehow();
var encoded = encoder.encode( PCM );


var OPUS = getOPUSDataSomehow();
var decoded = encoder.decode( OPUS );

OpusEncoder#encodeUnsafe / OpusEncoder#decodeUnsafe

These two methods work just like the safe versions, however they don't do any error checking and they use .subarray() instead of .slice(). Because of this, it's a bit faster. It's relatively safe to use, just know that if an encoding error happens, it will return an empty Uint8Array (encode) or Int16Array (decode).



Since this is an Emscripten module (that also has to malloc), the memory also needs to be freed manually when finished. It's a small program, perhaps under 30KB of dynamically allocated memory, but that can add up.


The required packages for building (under Debian-based distros) are:

  • git
  • build-essential
  • libtool
$ git clone --recursive https://github.com/izy521/CJOpus.git
$ cd CJOpus
$ make