pub fn snap(pitch: u8, root: u8, offsets: &[u8]) -> u8
The pitch moved into the scale: kept when it is in, else the nearest scale pitch below or above, a tie going to the lower. A scale with no offsets keeps every pitch.