Strict keyboard-style voice-leading