HarmonyKit is an exploration in Swift of how to build a library to generate scales and chords. While there are several open source libraries that do this already, I've noticed that many of them do not account for enharmonics. They instead just adopt an all flats or sharps representation of their music constructs. This code tries to keep the enharmonics consistent with their musical intent. It's not perfect yet and I'm not completely satisfied with some of the ideas, but I doubt I'll be exploring this further anytime soon.
Special call out to some projects that inspired me and that I referenced during this exploration:
- cemolcay/MusicTheory - https://github.com/cemolcay/MusicTheory
- benzguo/MusicKit - https://github.com/benzguo/MusicKit