(05-06-2025, 07:48 AM)Zubersoft Wrote: erhe - the one thing I'm unsure about is what you are proposing from a UI perspective here. All of your examples and the script are taking two inputs for every chord you have transposed, but does that mean the UI should be asking for two separate inputs as well? Your algorithm asks for a letter offset as well as a semitone offset - does that mean I would then be applying those same offsets to every chord in the entire song? Is that what most users would expect when using a transpose feature?
It's all here in the Transpose dialog, nothing more is needed:
[attachment=3483]
The musical interval can be calculated from the two key centers that the user specifies in the Transpose dialog. Because the key centers are specified as letter-named pitches, it is possible to get a full musical interval. For example from G to E it's either a minor third down (-2, -3), or a major sixth up (+5, +9).
If someone specifically wants to transpose by a named musical interval, like for example in the Sibelius notation software, there could be an alternative way to say, say, "minor 3rd down", but I don't think most MobileSheets users need that.