Learn To Type

This app is a prototype of a system in which a word is picked automatically for the user based on the text they have the most trouble typing. It takes the 3 most commonly miss typed characters collected over the course of a training session, and adapts future training by presenting a word for them which should challenge them to use the characters they miss type. This app doesn't save the training data for future reference, however this could be arranged easily. The goal of writing this was to practice working with priority queues and other data structures. Learn more at https://github.com/derekriemer/learnToType

Indentone has been deprecated

Say bye bye to the Indentone addon for NVDA! :-)

A few months ago, I wrote about indentone. The addon is now in NVDA 2016.4, and thus the addon is not necessary. To turn on line indent reporting with tones, select document formatting from preferences, and then select report line indentation using tones (Alt+i). The combobox has 4 options:
  •  Off: No indent is reported.
  • Speech: the old behavior. If you use indentone, you don't want this.
  • Tones: Just report indents with tones.
  • both speech and tones: Reports with both of them.
A tab is 4 spaces, this isn't configurable. If your indent gets beyond 72 spaces, or 18 tabs, you will hear speech not a tone. This is so that we don't hurt your ears. For the technically curious, the work happened on ticket #5906, and #6057 was the pull request.

Musically curious people will love that each space is represented with a quarter tone, giving a tab a whole tone. The first note, (0 indents) is an A3, at 220 HZ. There are 3 octaves of indents reported, and after that, the system resorts to speech. Mixed tab/spaces will report indents, which is something to be aware of. Also, stereo has been removed, as it is unnecessary and counterproductive on users who aren't using headphones.

With Indentone in NVDA, I wish my fellow coders a much more productive life coding. Please enjoy this feature. Thanks goes to Jamie from NV Access for helping me design the NVDA implementation, Mick from NV Access for helping me track down a bug in the NVDA implementation after I looked at it stumped on how to fix it, Chris Toth of Accessible apps for convincing me to get this thing out to as many coders as possible, and Camlorn for some help getting the correct equation for figuring out what tone to play and the volume hack in the addon but not in NVDA (Yes, I did look at how you did volume in unspoken originally). With Indentone, blind people now have a very natural way to visualize indentation in code, and the excuses about indentation being useless for blind people should be minimized since technology to avoid this has now  been mainstreamed.

Indentone, making NVDA read indents as musical spacial tones.

Attention: This addon has been deprecated. See The indentone deprecation post for details.

I have decided to make an addon that lets NVDA report indents as tones. This for now is not an official NVDA Add-on which has gone through community review (see future work for more reasons). Here is how it works. When you are reading some code or text with indents, if NVDA sees 4 spaces, or 1 tab, it plays a note. Each indent level we increase, the add-on plays the next whole tone up. Example: c3 all the way on your left (one octave below middle c), 0 tabs. D3, slightly farther right, 1 tab. for each level of indent NVDA sees, it plays a note farther to the right, and up that many levels on a whole tone scale. Then, when indent level decreases again, the notes pitch decreases, and the tone moves back to the left a bit. NVDA previously played no tone for no indent (technical reason) (fixed in indentone0.3.0).

The readme is pasted here. for those who don't care and just want a download link, go to the download heading level 2.

How to use:

Installation

Install this addon by pressing enter or double clicking it from the file manager. Then tell NVDA to install it by following the prompts.

Using

When NVDA  would normally speak indents, this addon should activate. If it doesn't, please contact me. This addon will detect changes in indent level and beep to inform you that an indent occurred. When the text you are reading is more indented than the last text you were reading, it beeps farther to your right than it did before. Also, the tone will play one whole tone higher  than the previous indent level would. For example, no tabs will be all the way to your left at one octave below a middle c. The first tab will cause NVDA to play a D3 (one step up), 2 tabs an E3 (two steps up), 3 tabs an fSharp3 (technically 3 steps), and so on. The 3 tabs will be slightly farther right of the C, and a middle c would be much closer to the center of your body than the c below that. When the text is less indented than it was before (assuming it was already indented), NVDA will do the opposite. For example, lowering the tone and moving it to the left. The farthest right tab level is 3 octaves higher than the no indent level.

Future work

I may play around with panning the audio dynamically. This would allow me to start the beep at your left, and move it 1 indent unit over a time of about 200 milliseconds. The advantage of this is you could judge the difference in indentation that just occurred, while in parallell hearing the code you are currently editing, even if you don't musically easily judge whole tone steps. I am also probably going to experiment with integrating this into NVDA core (I'm going to open up a ticket about this after finals). I spoke about Indentone at NVDACon 2016 in a session about my add-ons. I received much great feedback, and I am excited to continue work on this.

Download and links.

https://files.derekriemer.com/indentone-0.3.0.nvda-addon

Source Code:

https://github.com/derekriemer/nvda-indentone