Native Node.js volume controls for Linux
A native binding to ALSA to control the default audio device on Linux. Supports set/get the volume and get the muted state and set the muted state.
How to Use
const volume = ; // the functions the volume controller exposesconst getVolume setVolume isMuted setMute = volume; // to get the system volumeconst currentVolume = ; // to set the volume to 43.; // to know if the system is muted; // to mute; // to unmute; // to toggle mute;
Note
Alsa takes as it's volume input a value between the mixer's min and max values which are not in the 0-1.0
scale. For this two volume sets with the value in the range of 0 < x < 0.02
might yield the same volume level. Setting a value grater x >= 0.02
does change the volume up. This might be an issue when implementing a for example volume sliders.
Development
The native module build depends on the package libasound2-dev. The build also uses pkg-config. To get the needed dependencies.
$ sudo apt-get install libasound2-dev pkg-config
After this you can build
$ node-gyp configure$ node-gyp build
The repository contains a demo of the usage
$ node demo.js
Next steps
- Expose the microphone API
Licence & Copyright
Copyright (c) 2018 Jarno Lonardi
The package node-audio-linux
is licensed under MIT license.