voicemeeter-rmc
v1.0.0
Published
A powerful API to remote control your voicemeeter
Downloads
5
Readme
Voicemeeter Node.js API
This project provides a Node.js API for interacting with Voicemeeter using the VoicemeeterRemote64.dll DLL. It allows you to control audio inputs and outputs, manipulate Voicemeeter parameters, and interact with macro buttons.
🚀 Setup
To use this API, you must have Voicemeeter installed on your Windows system. The path to the DLL (VoicemeeterRemote64.dll) is determined automatically based on Voicemeeter's registry keys.
📦 Dependencies
🛠️ Configuration
Ensure that Voicemeeter is installed and that the VoicemeeterRemote64.dll file is accessible. The API will automatically find the DLL based on the registry settings of Voicemeeter.
📋 Features
Here’s what you can do with the API:
Initialization and Connection
init(): Initializes the API and loads the DLL.login(): Logs in to Voicemeeter.logout(): Logs out from Voicemeeter.
Voicemeeter Control
runVoicemeeter(runVoicemeeterType): Runs Voicemeeter with a specified type.showVoicemeeter(): Displays the Voicemeeter interface.shutdownVoicemeeter(): Shuts down Voicemeeter.restartVoicemeeterAudioEngine(): Restarts the Voicemeeter audio engine.ejectVoicemeeterCassette(): Ejects the Voicemeeter cassette.resetVoicemeeterConfiguration(): Resets the Voicemeeter configuration to default.saveVoicemeeterConfiguration(filename): Saves the current Voicemeeter configuration to a file.loadVoicemeeterConfiguration(filename): Loads a Voicemeeter configuration from a file.lockVoicemeeterGui(lock): Locks or unlocks the Voicemeeter GUI.
Macro Buttons
setMacroButtonState(button, state): Sets the state of a macro button.setMacroButtonStateOnly(button, state): Sets the state of a macro button, without affecting other buttons.setMacroButtonTrigger(button, trigger): Sets the trigger for a macro button.setMacroButtonColor(button, color): Sets the color of a macro button.
Audio Device Management
getOutputDeviceNumber(): Gets the number of output devices.getInputDeviceNumber(): Gets the number of input devices.updateDeviceList(): Updates the list of input and output devices.
Parameters Management
getRawParameterFloat(parameter): Gets the float value of a parameter.getRawParameterString(parameter): Gets the string value of a parameter.setRawParameterFloat(parameter, value): Sets the float value of a parameter.setRawParameterString(parameter, value): Sets the string value of a parameter.setRawParameters(parameters): Sets multiple parameters at once.
Strip and Bus Control
setStripParameter(stripNumber, name, value): Sets a parameter for a specific audio strip.getStripParameter(stripNumber, name): Gets a parameter value for a specific audio strip.setBusParameter(busNumber, name, value): Sets a parameter for a specific bus.getBusParameter(busNumber, name): Gets a parameter value for a specific bus.
Level Control
getLevel(type, channel): Gets the level of a specified type and channel.
⚙️ Enums
The API provides enums to help with configuration:
VoicemeeterTypeRunVoicemeeterTypeInterfaceTypeLevelTypeDeviceTypeMacroButtonStateMacroButtonTriggerMacroButtonColor
📝 Usage Example
Here's a basic example of how to use the API:
const voicemeeter = require('path/to/voicemeeter-api');
// Initialize the API
await voicemeeter.init();
// Login to Voicemeeter
voicemeeter.login();
// Show Voicemeeter interface
voicemeeter.showVoicemeeter();
// Get the level of the first bus
const busLevel = voicemeeter.getBusLevel(0);
console.log(`Bus 0 Level: ${busLevel}`);
// Set the mute state of the first strip
voicemeeter.setStripMute(0, true);
// Logout from Voicemeeter
voicemeeter.logout();