Skip to content

jlonardi/node-audio-linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

npm npm

How to Use

const { volume } = require('node-volume-linux');

// the functions the volume controller exposes
const { getVolume, setVolume, isMuted, setMute } = volume;

// to get the system volume
const currentVolume = getVolume();

// to set the volume to 43.
setVolume(0.43);

// to know if the system is muted
isMuted();

// to mute
setMute(true);

// to unmute
setMute(false);

// to toggle mute
setMute(!isMuted());

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.

About

A Node.js tool to control system volume on Linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published