Hi Alistair,
Thanks for your thoughts! I'll explain my thinking behind the key/set keys/etc.
I think you know these, but added here for others reading:
- Variation - a copy of a song that is embedded into a set. This file can be edited, transposed and ultimately embedded in the set file (as a custom item). When the set is loaded, the variation file is extracted from the set file and saved to the /Variations/ folder.
- Temporary variation (key change required for a set item) - a temporary copy of a song that is purely transposed to match the key of the set. It isn't saved to the set other than keeping a note of the key it should be in. When the item is first viewed, a temporary files is created in the /Variations/_cache/ folder. You can't edit this file as it is purely a key changed copy of the original. Because this is a temporary variation, any edits are made on the original song and the temporary variation should be created again with the transposed chords - it sounds like this isn't happening though? If you want to edit lyrics, this will change the original. This is where a standard variation should be used.
- The original key is designed to be a reminder of the key the song was originally in (e.g. when recorded, or when you first create it). This doesn't change and can be used to quickly transpose a song back to this key if required.
- The key (preferred/default key) is the key the song file is saved as. This is the default key that is used when creating new sets, or when displaying the song outwith a set.
Why the need for different keys in sets? I play in several different bands and they play many of the same songs, but in different keys - sometimes to make it easier for the guitarist, the singer, or just because they want to. I keep the original file as my default key. I don't want to keep manually changing back this songs, so when I load up a set for that band gig, the set keeps a record of which key I should be using and when I call up the song in that set, it shows me it in the key I need. If that is the same as the original key, it just displays the original song, otherwise it makes a temporary variation (not a normal variation that gets saved with the set) and saves it to the /Variations/_cache/ folder and puts this into the correct key. When I'm not playing in those bands and I'm skimming through songs to play, I expect to see the key as my preferred one. I try to avoid overwriting the original song wherever possible.
I often use the original key to remind me of the recording key, even if I never actually use that key. This is probably the only reason that I not sold on having a song revert back to the original key when viewing it when it isn't in a set. I never want to see it in that key, just know for reference that the recording is different!
Firstly it sounds like I need to check in on the temporary variations not being updated properly. I created these temporary files as creating them once then loading them is quicker than transposing every time in the background, particularly for larger songs. If the file exists, use it. If not, create it then use it. I wonder if the edit isn't overwriting that temporary file properly.
Also, it might make sense for me to offer the option when editing the temporary key changed song, to allow the song edit to be shown with either the key changed chords or the original chords. The save should be made to the original, but with the preferred key (specified in the song, requiring a transpose) and a fresh temporary variation created as well. i.e. edit original song in the preferred/default key or edit original song while displaying the key used for this set.
Does that make sense?
Gareth