I've been making different types of music apps ever since I first learned JavaScript all those years ago. Chords, scales, and more. One thing I always struggled with was transposing though. It's difficult enough, there are so many different scales: Major, minor, chromatic, pentatonic to name a few. My music theory is good, but when it comes to transposing, there's a lot more to be learned. Then things come into play like transposing up or down. General rule of thumb for me is transposing up sharpens, transposing down flattens. Then that throws a few (potential) problems in. Some chords have two names (A#/Bb for example). Personally, I never use an 'A#' chord, it's always called 'Bb' to me. So do I take that into account in the transposing, or do I just leave it as 'A#' if it's up, or 'Bb' if it's down? Much ado about nothing, in reality. Just some perfectionism shining through. For the app, I've sort of generalised the...