re-implemented and refactored a bunch of stuff to get diatonic collection and
pitch-class functions to work with ANY pitch class (even weird ones people
would rarely use)