Copying latest vivi from musictheory.net, fixes #1, #2, #3, #4