ts-easy-voicemeeter-remote
Version:
A easy Node.js voicemeeter remote
129 lines (87 loc) • 4.45 kB
Markdown
ts-easy-voicemeeter-remote is a Node.js typescript wrapper for the official voicemeeterRemote DLL available in the installation directory of [Voicemeeter][voicemeeter], [Voicemeeter banana][voicemeeter-banana], or [Voicemeeter potato][voicemeeter-potato]. More informations about the DLL is available [here](https://forum.vb-audio.com/viewtopic.php?f=8&t=346)
```sh
npm install ts-easy-voicemeeter-remote --save
```
```ts
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
```ts
// Connect
voicemeeter.login();
// Disconnect
voicemeeter.logout();
```
```ts
// Set the gain of the first Strip to -10db
voicemeeter.setStripParameter("gain", 0, -10);
// Mute the second Bus
voicemeeter.setBusParameter("mute", 1, true);
```
```ts
console.log("getAllParameter || ", await voicemeeter.getAllParameters());
```
```ts
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 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
```ts
voicemeeter.getLevelByID(mode, index);
console.log("Level || ", voicemeeter.getLevelByID(3, 6));
```
```ts
voicemeeter.getMidi();
console.log("MIDI || ", voicemeeter.getMidi());
```
```ts
// 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);
```
[`ffi-napi`][ffi] => Read and execute the VoicemeeterRemote DLL
[`ref-napi`][ref-napi] => Turn Buffer instances into "pointers"
[`ref-array-napi`][ref-array] => Create array (\*pointer) for `ffi` to return string from the DLL
[`winreg`][winreg] => Read the windows registery to find Voicemeeter installation folder and the DLL
---
MIT
[]: https://www.vb-audio.com/Voicemeeter/index.htm
[]: https://www.vb-audio.com/Voicemeeter/banana.htm
[]: https://www.vb-audio.com/Voicemeeter/potato.htm
[]: https://github.com/Mikatux/voicemeeter-api
[]: https://www.npmjs.com/package/ffi-napi
[]: https://www.npmjs.com/package/ref-napi
[]: https://www.npmjs.com/package/ref-array
[]: https://www.npmjs.com/package/winreg