Natural Preference for Minification
    Wondering what’s next for npm?Check out our public roadmap! »

    TypeScript icon, indicating that this package has built-in type declarations

    1.6.3 • Public • Published

    npm version Build Status


    Audify.js - Play/Stream/Record PCM audio data & Encode/Decode Opus to PCM audio data


    • Encode 16-bit integer PCM or floating point PCM to Opus packet using C++ Opus library.
    • Decode Opus packets to 16-bit integer PCM or floating point PCM using C++ Opus library.
    • Complete API for realtime audio input/output across Linux (native ALSA, JACK, PulseAudio and OSS), Macintosh OS X (CoreAudio and JACK), and Windows (DirectSound, ASIO and WASAPI) operating systems using C++ RtAudio library.


    npm install audify

    Most regular installs will support prebuilds that are built with each release. The prebuilds are for Node v10.17.x+, v12.11.x+, v13.x.x, v14.x.x, v15.x.x, v16.x.x and Electron v8.x.x, v9.x.x, v10.x.x, v11.x.x, v12.x.x., v13.x.x., v14.x.x.

    Requirements for source build


    Opus Encode & Decode

    const { OpusEncoder, OpusDecoder, OpusApplication } = require("audify");
    // Init encoder and decoder
    // Sample rate is 48kHz and the amount of channels is 2
    // The opus coding mode is optimized for audio
    const encoder = new OpusEncoder(48000, 2, OpusApplication.OPUS_APPLICATION_AUDIO);
    const decoder = new OpusDecoder(48000, 2);
    const frameSize = 1920; // 40ms
    const buffer = ...
    // Encode and then decode
    var encoded = encoder.encode(buffer, frameSize);
    var decoded = decoder.decode(encoded, frameSize);

    Record audio and play it back realtime

    const { RtAudio, RtAudioFormat } = require("audify");
    // Init RtAudio instance using default sound API
    const rtAudio = new RtAudio(/* Insert here specific API if needed */);
    // Open the input/output stream
    	{ deviceId: rtAudio.getDefaultOutputDevice(), // Output device id (Get all devices using `getDevices`)
    	  nChannels: 1, // Number of channels
    	  firstChannel: 0 // First channel index on device (default = 0).
    	{ deviceId: rtAudio.getDefaultInputDevice(), // Input device id (Get all devices using `getDevices`)
    	  nChannels: 1, // Number of channels
    	  firstChannel: 0 // First channel index on device (default = 0).
    	RtAudioFormat.RTAUDIO_SINT16, // PCM Format - Signed 16-bit integer
    	48000, // Sampling rate is 48kHz
    	1920, // Frame size is 1920 (40ms)
    	"MyStream", // The name of the stream (used for JACK Api)
    	pcm => rtAudio.write(pcm) // Input callback function, write every input pcm data to the output buffer
    // Start the stream


    Full documentation available here.


    This project is licensed under the MIT license.


    npm i audify

    DownloadsWeekly Downloads






    Unpacked Size

    5.31 MB

    Total Files


    Last publish


    • avatar