NoiseGen

Beta Version

Clive Lansink

Accessible Information and Communications Limited

mailto:clive@aicomms.co.nz

September 2023

Description

NoiseGen is a simple utillity that installs into a PC running a recent version of Microsoft Windows to make a quiet noise in the background. There are reasons why a continuous background noise can help keep the PC's audio running, which in turn can help blind, deafblind and low vision people using screen readers.

People using screen readers need to hear the audio the instant it is produced. Screen readers use many different keys and key combinations on the keyboard to tell a blind user what they want to know about the content on the screen. Any delay or sluggishness in the audio simply acts to slow us down and make us less productive. Nowadays there are at least two situations which tend to inhibit instantaneous audio response.

Bluetooth speakers and headphones are becoming much more common. Often these devices run on batteries. To conserve battery power and make the battery last as long as possible, these products are often designed to silently go into standby mode when there is no audio, even after only a few seconds, and turn on again as soon as audio is present. For someone using a screen reader, this often means that when they press the keys to read a word, line or sentence, the first one or two syllables or even the first word might not be heard, because if the bluetooth device is in standby, it may take a split second to turn itself back on when the PC sends the audio.

Also the audio system on more recent computers, even desktop computers, might behave this way, again perhaps because a lot of design effort nowadays focuses on saving energy. We have here a standard desktop PC where the audio takes a split second to come on when audio starts after a period of no audio. This is not only annoying when using a screen reader, but it even interferes with the use of the Windows sounds many of us are familiar with.

Perhaps in the second situation other solutions exist, like rolling back the audio driver, but that's not for everyone. Both situations led me to realise that because of other work I have done involving audio, I have the building blocks I needed to quickly create a utility that makes noise. The idea is that by keeping noise going in the background that is soft enough to not be annoying but loud enough to keep the audio system going, the user should always get an instant response when they press the keys that generate sound.

NoiseGen can keep a quiet noise going continuously while it is running. But its normal operation is to turn the noise off after about 30 seconds of inactivity. In my experience this is much better than some devices I've used that go into standby after only a few seconds of no audio. For NoiseGen, inactivity means when you are not using the keyboard. So yes, NoiseGen keeps the noise going and your PC's audio running as long as you are typing on the computer keyboard. This is important because without NoiseGen, you could be typing at your normal speed until you want to stop and check something or correct a mistake. Your screen reader springs into action to tell you something, but you may not hear the beginning if your PC audio has gone into standby. But with NoiseGen running, you can work naturally and continuously on your keyboard and the audio will stay on and respond immediately when sound is needed. If you pause for half a minute's thought, or just get up to make coffee for example, the noise will quickly turn off. If you are using a bluetooth headset or similar, this will save your batteries when you are not actually active on your computer. The noise comes on again as soon as you press the first key on your keyboard, so chances are your audio device will already be on by the time you do something with your screen reader and need instant audio.

Recently I have started wearing a set of Shokz bone conduction headphones all day for my work. But I was annoyed at the glitchy audio response when using a screen reader, even after only a few seconds of silence. I created NoiseGen to solve this problem. It has been remarkably successful for me so I'm making it publicly available at no cost. Great if it also works for you, but I take no responsibility and offer no guarantee (see the license section below).

This utility is still in beta so I would appreciate any feedback. Be aware that I use this utility myself on Windows 10 Pro and I have extensively tested it in that environment. However it has not been tested on other Windows systems. If you do try it on other systems, particularly Windows 11, then please contact me to let me know how it worked for you.

Installation and Operation

You can download the installer from https://aicomms.nz/download/NoiseGenInstaller.exe.

Please be aware that nowadays browsers put a lot of roadblocks in your way if you want to download a .exe file, and then Windows also acts to stop you from running what appears to it to be an untrusted executable file. People have to pay a significant amount of money to Microsoft to become a trusted developer and I'm sorry I don't do this for a living so I'm not doing that. You'll have to fight your way through the roadblocks if you want to install and use this utility. You should always obtain the installer from the above link to ensure you have an authentic copy.

To install NoiseGen, just run NoiseGenInstaller.exe after downloading it. It should install without prompting and immediately start running. You should notice a dialog box to confirm it is installed and start to hear soft noise in the background come through your headphones or speakers. The noise is kind of quiet though, so you may not immediately notice it.

If you run the installer when you already have NoiseGen installed and possibly running, the installer will first stop NoiseGen before updating the installation files. Then it should start the newly installed NoiseGen. Any changes you made to your settings should not be affected.

Be aware that NoiseGenruns entirely in the background. Don't worry if you don't see it anywhere because it doesn't have a window and you won't find it in your running applications, nor in the taskbar or notifications area etc. This is quite deliberate, the idea being that you should just start or stop the noise and then forget about it. However If you know how to look at Windows processes, you will find it there as NoiseGen.exe if it is running.

The installer creates some shortcuts in a folder called NoiseGen in the start menu. These include shortcuts to start and stop the noise, to read this documentation, to configure some settings and to uninstall it. I won't describe the shortcuts in detail because of the different ways the start menu works in different versions of Windows, but the shortcuts are much the same as most other programs you have.

To start the noise, just activate the start button and then find and activate the shortcut to start NoiseGen. If you do this while NoiseGen is already running, it should stop itself and start afresh.

To stop the noise, activate the start button and find and activate the shortcut to stop NoiseGen.

If you don't want to use it, you can easily remove it completely from your computer. The simplest way is to press the start button and find the shortcut to uninstall NoiseGen. Also you can uninstall it from the apps section of your Windows settings, or for older systems in add/remove programs, or in the programs section of control panel, etc. In each case, once you confirm you want to uninstall it, the noise should stop and then it will completely remove itself from your system.

Configuring

You may well be able to use NoiseGen without changing anything as by default it will make a soft noise through whatever is your PC's default sound device. But for various reasons, you may want to change a few things, and there is a simple user interface for this purpose. It's up to you if you want to dig more into this.

To configure NoiseGen, just activate the start button and then find and activate the shortcut for configuring NoiseGen. This brings up a simple intervace with several settings and an OK button. The changes won't take effect until you activate OK. The following briefly describes each of the settings you can change.

The interface is probably a bit plain to look at but I didn't want to spend a lot of time on it and it does serve its purpose.

Using Audio Devices

The simplest arrangement is to select the Microsoft Sound Mapper device when you configure NoiseGen, and deselect all other audio devices. This is the default so I suggest you stick with that unless you want to play around with different audio devices. In this arrangement, NoiseGen will always play noise through whatever audio device is the default for your PC. For example, if you are using a speaker, and then pair up with a set of bluetooth headphones, chances are the headphones will become the default device and the noise will come through. When you turn the headphones off, or go out of range etc, Windows will probably choose your speaker to again be the default, and the noise will come through that. Of course it is a simple matter to use the shortcuts described above to turn NoiseGen off if the noise comes through when you don't want it, and turn it back on when you need it. Note that if you end up deselecting all the devices, the sound mapper device will be used by default.

But there are situations where you might want the noise to come through a particular device that is not the default. For example, you might have the audio from your screen reader going to an audio device that is not the system default. If that's you, you can choose to send the noise to that same device. Also if you only want the noise to work when using a particular device such as your favourite bluetooth headphones, but otherwise you don't want to hear the noise, you can do that too.

NoiseGen can remember multiple devices to use. NoiseGen will only play noise to whatever audio device or devices that were selected when you configured noiseGen, provided of course the device is connected. If the device NoiseGen is using is disconnected, it scans your PC's for any other audio devices you have selected for NoiseGen to use. It will play its noise through the first selected device it finds connected to your PC. If no device is found, it happily keeps going in the background, slowly scanning your PC's audio devices, waiting for one to be connected that you have selected for NoiseGen to use.

NoiseGen only knows how to list the audio devices currently connected to your PC and ready for use. But if you configured NoiseGen to use a particular device like bluetooth headphones that are turned off and not connected, noiseGen will still include that device in the list, with an indication that the device is selected but not present.

The best way to explain how NoiseGen works with different audio devices is to give an example. As mentioned earlier, I have a pair of Shokz OpenComm bone conduction headphones I wear most of the day. I wear them because my ears are completely open and the headphones has a reasonably good microphone on a short boom. So I often just leave them on. I can use my laptop at will, and go into Zoom and Teams calls etc just when I need. The battery lasts all day. I also have a set of Shokz OpenRun headphones, which doesn't have a microphone boom so I tend to have them when out walking or at meetings. I want the noise to come through automatically but only when waring either of these headphones. I don't want the noise to come through my laptop speaker because the laptop has an audio driver for its speaker that raises the volume of quiet audio. That makes my NoiseGen noise rather loud, which is not what I want.

NoiseGen will only list audio devices that are connected, but it also remembers devices it has been configured to use and it includes those in the list. So first I must turn on one set of headphones, let's say the Shokz OpenComm. When the headphones are working, I bring up the configure NoiseGen settings and go to the list of audio devices. I see the Shokz OpenComm in the list so I select it and deselect everything else, particularly the sound mapper device. Then click OK and the settings are updated. Now the noise is coming through my OpenComm headphones.

Now I turn off my OpenComm headphones. Windows switches its default back to my laptop speaker, so my screen reader is now coming through that. There is no noise coming through the speaker from NoiseGen, because noiseGen is now set to only play noise through the Shokz OpenComm headphones and they are not connected. Remember I deselected the sound mapper device and the speaker itself is not selected for noiseGen to use. That's just what I want.

Now I turn on my other headphones, the Shokz OpenRun. I know they are working because my screen reader voice now comes through them. I again bring up the configure NoiseGen settings and go to the list of audio devices. I notice that the Shokz OpenComm headphones are still listed and selected, even though they are now not connected. That's the way it should be because I previously told NoiseGen to use these headphones, so it remembers that and will use them when they are connected, though right now they are not connected and they are listed as not present. The Shokz OpenRun headphones are now in the list because they are now connected. They are not yet selected so I select them. Then click OK and the settings are updated. Now the noise has magically reappeared, coming quietly through my OpenRun headphones.

When I turn these headphones off, again my screen reader goes back to my laptop speaker but there is no background noise. Again, that's good. Right now neither of my headphones are connected. To confirm what I have done, I again bring up the NoiseGen settings. I can see both my Shokz headphones in the list of devices, both selected and both indicating as not present. NoiseGen is still running but it currently has no audio device to play through. That's ok, it will just wait until I turn on either of my headphones. When I do that, the noise will again come through.

The bottom line here is that if all this is confusing, just leave NoiseGen set to the sound mapper device and make sure other devices are deselected. It just means you may need to manually turn NoiseGen on or off depending on whether or not you need the background noise. But if you like, you can configure NoiseGen to only send noise to devices you selectfor it to use, when any such device is connected. That's really handy. You can forget NoiseGen is even there, but as soon as you connect an audio device it knows about, the quiet noise should soon come through and your audio should be more reliable.

Additional Notes

License

This software is copyright 2023 Accessible Information and Communications Limited, Auckland, New Zealand

Redistribution of the installer and/or any of the files it contains to anyone else is not permitted without the prior permission of the copyright holder.

However you are welcome to refer others to it and anyone is welcome to obtain the software installer from the link given above at no cost, and install and use the utility for non-commercial purposes.

This software is provided “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose, are disclaimed. In no event shall the copyright holder be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.