How to trigger System Bell from NodeJS code
A system Beep bell is a sound that plays when a new device is connected or disconnected in Operating System(Windows and macOS)
Sometimes, If you are running batch scripts, you need to initiate System bell after completing node scripts.
This tutorial shows multiple ways to trigger the System beep bell sound in Windows from the Nodejs program.
Making sound is a part of an underline operating system’s native calls. So you need to make native calls to trigger the bell sound. This also makes a sound when an error occurred.
How to initiate System bell sound from Nodejs Code
The system bell is dependent on underline hardware and sound settings.
There are multiple ways we can do it.
- print the
BEL
character
BEL
character is represented in escape code character (\u0007
or \x07
)
console.log('\x07')
console.log('\007')
console.log('\u0007')
or you can also use process.stdout.write
to log BEL character
process.stdout.write('\x07');
process.stdout.write('\007');
process.stdout.write('\u0007');
It works in the native terminal. However, It does not work in terminals used in Editors such as Visual studio code and Intelli IDE.
- Call windows MessageBeep API
Sometimes, the above BEL character will not work on terminals.
This method is to call PowerShell executable beep sound in Windows and play the Glass.aiff
file in MACOS.
It uses and imports the child_process
node module
Here is a code example
const childProcess = require("child_process");
// Winndows code
childProcess.exec("powershell.exe [console]::beep(500,1200)");
// MACOS code
childProcess.exec("afplay /System/Library/Sounds/Glass.aiff");
Conclusion
To summarize, Learned multiple ways to trigger the System Bell sound from the nodejs application.