Pruning, simplifying, and small changes

The dictionary nposition mapped a note's name to it's position. The array notes already has this information because the notes were inserted in order so the index of a note's name in notes is equivalent to the value of the note's name in nposition.

range() takes 1, 2, or 3 arguments. range(stop) is equivalent to range(start, stop) and both are equivalent to range(start, stop, step)

An absolute value within an absolute value bothered me so I simplified it (or really Mathematica did).

The return statement I wrote for transpose only fails when both note and distance are 0. 

I chose to use many single-line comments so that you can more easily differentiate between my comments and yours since you seem to prefer multi-line comments.