This add-on redefines the way of manage the beep tones in NVDA to do the process more eficient.
Also, this add-on implements several wave generators, to let the user to customize the beep sound. It allows you to implement more generators very easily.
If you are interested in creating your own wave generator and integrating it into this add-on, see the developer section.
The last two features allow for more pleasant sound when using features like sound mouse tracking.
The latest release is available to download in this link
This add-on was created to solve some issues with specific soundcards, those issues are less common now that we have better soundcard drivers. But some people reported that those issues are still present, like high delays when playing the tones, or not playing the first tones at all. Now, this add-on has more features, so this can be useful even if you don't have issues with the native tone generation. Try this yourself and see if it works for you.
To be in context. When NVDA beep a tone, it does the following:
This can be problematic in some sound cards, like high delays when playing the tones, or not playing the first tones at all. Seems that the issue happen by stopping the player, especially when this is repeated quickly. I had this issue in the past with one of my computers. So, that was the reason to create this add-on. My add-on doesn't stop the player, and that fixed the issue.
By this way, the output player is never stopped and the process is more efficient.
If you try this add-on, even if you don't have issues with the original way of tone generation, you can see that the tones are more fluid, especially in fastly repeated tones.
Also, this add-on implements several tone generators, sine generator is enabled by default. But you can change it to the NVDA's tones generator. My custom tone generators are written purely in Python. So, they are less eficient than the NVDA tone generator, but the difference is not noticeable.
I decided to create other tone generators to let users to customize the beep sound and some people liked it, including myself. An user with hearing loss reported that he felt more comfortable with sine tone generator.
Note: Tone generation is not the same as the function to output the tones to your sound card. So even if you use NVDA's native tone generator, you will still see improvements.
The latest release is available to
You need NVDA 2018.3 or later.
Just install it as a NVDA add-on.
The add-on functionality will be enabled once you install it.
To enable or disable it, go to NVDA settings and select "Enhanced tones". In that category you can set the following parameters:
If you want to implement new tone generation waveforms, just make a class similar to the tone generators available in the code, and register it using the registerGenerator function.
For each generator class you must provide an id, name, startGenerate and nextChunk methods.
you can implement the AbstractGenerator class that implement the most important methods. The minimum steps to extend this class correctly is to implement the sampleGenerator function, and you need to provide an ID and name to create a valid generator. It's easier than create a generator from scratch.
If you like my project or this software is useful for you in your daily life and you would like to contribute in some way, you can donate via the following methods:
If you want to fix bugs, report problems or new features, you can contact me at: dhf360@gmail.com.
Or in the github repository of this project: Enhanced tones on GitHub
You can get the latest release of this add-on in that repository.