added strictSteps option and shiftOctave