You have some consts declared along with a whole bunch of vars, for consistency's sake I would suggest doing away with the vars and use let instead.
For your own mental health I would highly suggest using factory functions instead of constructors. There are many benefits for doing this but most importantly, there's no need to use 'this'.
In your allKeys const it appears that you have a bunch of major key tonics listed: If I'm reading this correctly, then you have included keys with double sharps (D#, G#, A#) which might make things confusing for your users and complicate things as far as generating your tone lists / rendering (I didn't dig too deeply to see how you're doing this tbh). You also neglected to include relative minors which makes 'allKeys' kind of a misnomer doesn't it? My last MAJOR gripe (c what I did there?) is that you left out Cb and have C nat listed under sharps where it has all natural notes.
I'd be glad to submit a PR if you're interested. Super looking forward to where this is going.
You have some consts declared along with a whole bunch of vars, for consistency's sake I would suggest doing away with the vars and use let instead.
For your own mental health I would highly suggest using factory functions instead of constructors. There are many benefits for doing this but most importantly, there's no need to use 'this'.
In your allKeys const it appears that you have a bunch of major key tonics listed: If I'm reading this correctly, then you have included keys with double sharps (D#, G#, A#) which might make things confusing for your users and complicate things as far as generating your tone lists / rendering (I didn't dig too deeply to see how you're doing this tbh). You also neglected to include relative minors which makes 'allKeys' kind of a misnomer doesn't it? My last MAJOR gripe (c what I did there?) is that you left out Cb and have C nat listed under sharps where it has all natural notes.
I'd be glad to submit a PR if you're interested. Super looking forward to where this is going.