Yeah, using PWM at 50% gives it plenty of scope - I worked out the notes are roughly 5% apart but not exactly - sometimes it's 6%, it all varies depending on the note frequency you need to get. But it only needs to go about 12% faster or slower at maximum, so that shouldn't pose a problem.
I'm thinking it might be best to do this with MIDI input to the Arduino - can be controlled by any 2 octave keyboard then, or even a sequencer.
I'm not quite sure where I'd start with a motor controller, I was hoping to use something pre-built to save making things more complex
Same for detecting motor speed - might be a bit beyond my scope of ability (well perhaps the whole thing is really but it's a learning project
)