Skip to content

Jaggernaut555/ts-easy-voicemeeter-remote

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ts-easy-voicemeeter-remote

ts-easy-voicemeeter-remote is a Node.js typescript wrapper for the official voicemeeterRemote DLL available in the installation directory of Voicemeeter, Voicemeeter banana, or Voicemeeter potato. More informations about the DLL is available here

First install it

npm install ts-easy-voicemeeter-remote --save

How to use it ?

import VoiceMeeter from "easy-voicemeeter-remote";

const voicemeeter = new VoiceMeeter();

voicemeeter.init().then(() => {
  voicemeeter.login();
});

After the login method is successful you can use all the methods to interact with the instance of VoiceMeeter

Connect and disconnect with the Voicemeeter software

// Connect
voicemeeter.login();
// Disconnect
voicemeeter.logout();

Set parameters like : 'mono', 'solo', 'mute', 'gain', 'gate', 'comp' for each Strip and Bus

// Set the gain of the first Strip to -10db
voicemeeter.setStripParameter("gain", 0, -10);
// Mute the second Bus
voicemeeter.setBusParameter("mute", 1, true);

Get All available Parameters form all Strips and Buses. like : 'mono', 'solo', 'mute', 'gain', 'gate', 'comp' ...

console.log("getAllParameter  || ", await voicemeeter.getAllParameters());

Get Multiple Parameters form Strips and Buses.

var data = await voicemeeter.getMultiParameter([
  { type: InterfaceType.strip, id: 0, getVals: ["mono", "Mute", "solo", "gain"] },
  { type: InterfaceType.bus, id: 0, getVals: ["mono", "mute", "gain"] },
]);

console.log("getMultiParameter  || ", data);

/* { strips: [ { type: 'strip', id: 0, mono: 0, mute: 0, solo: 0, gain: -10 } ], 
buses: [{ type: 'bus', id: 0, mono: 0, mute: 0, gain: -18.614171981811523 }]} */

Get Current Level

  • Get Level by Strip or Bus ID
  • mode = 0= pre fader input levels. 1= post fader input levels. 2= post Mute input levels. 3= output levels.
  • index strip or bus id
voicemeeter.getLevelByID(mode, index);

console.log("Level || ", voicemeeter.getLevelByID(3, 6));

Get Midi Data

voicemeeter.getMidi();

console.log("MIDI || ", voicemeeter.getMidi());

Get all input/output devices

// Get all devices from the DLL
// They will be stored into an array in the voicemeeter-remote instance
voicemeeter.updateDeviceList();
// Get input devices
console.log(voicemeeter.inputDevices);
// Get output devices
console.log(voicemeeter.outputDevices);

Dependencies

ffi-napi => Read and execute the VoicemeeterRemote DLL

ref-napi => Turn Buffer instances into "pointers"

ref-array-napi => Create array (*pointer) for ffi to return string from the DLL

winreg => Read the windows registery to find Voicemeeter installation folder and the DLL


License

MIT

About

A Node.js voicemeeter remote wrapper

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%