03-24-2023, 07:31 AM
Yes, your understanding of my planned changes is correct. I'm not really sure how what you have described differs from my plan though. It's already going to be set up so that there is one song entry, and it will be possible to switch versions depending on what you want. I'm also going to have to handle applying changes in one version to other versions, so the idea of having a "master" song is really just a detail in how you plan to use the versioning feature. I imagine you will be able to just say the first version is the "master" and treat it as such when applying changes to other versions. I'll have to make sure it's easy when making changes to fields to indicate which versions should be updated with the changes, as managing multiple versions will become really burdensome otherwise.
I do have one comment about this though based on your feedback - I still have to think through some of the implementation details, but when a song is added to a group type like collection, I haven't decided yet whether I'm going to allow multiple versions of the same song to show up in the list, or just one instance of the song but you can change which version to use. I'm thinking in order for it to make sense, each version of a song would have to show up in the list (as some versions of the song may be in the collection but not others). The other way of handling it would be to not allow different metadata for each version of a song, meaning each version still has to have the same collections, genres, albums, etc, assigned, but that would be very limiting in terms of how the versioning could be used, so I don't think I like that idea.
Assuming I choose to allow multiple versions of a song in the list (which is the direction I'm leaning), if you want to be able to search for certain versions of a song in a particular group, you will have to add all of the versions to that group. As I mentioned previously, I plan to make this easy so that you can apply metadata changes in one version to other versions, so it shouldn't require much extra effort to do this. I could also have a checkbox for each field or all fields that indicates whether the metadata is synchronized for all versions of the song - that may be the simplest way to handle it. So users can manually manage the metadata if desired with tools to make it easy to apply individual metadata fields to other versions, but the default will be to always use the same metadata for all versions.
I can imagine this will create scenarios where things get a little messy - let's say you have 20 versions of a song, and the option to keep the metadata is synchronized is active, and you had the song to a collection. Well now it's going to show that 20 versions of that song are in the collection, and if you click the option to "Load All" for the collection, it's going to load all 20 versions of the song. I doubt that is what most users would want though, so then I'm kind of stuck between whether I should show all versions, whether all versions should be loaded, and finding a way to support both scenarios where users can choose whether all versions should be present without having to manually manage the metadata for every version. The versioning is definitely going to be a major pain to implement.
Mike
I do have one comment about this though based on your feedback - I still have to think through some of the implementation details, but when a song is added to a group type like collection, I haven't decided yet whether I'm going to allow multiple versions of the same song to show up in the list, or just one instance of the song but you can change which version to use. I'm thinking in order for it to make sense, each version of a song would have to show up in the list (as some versions of the song may be in the collection but not others). The other way of handling it would be to not allow different metadata for each version of a song, meaning each version still has to have the same collections, genres, albums, etc, assigned, but that would be very limiting in terms of how the versioning could be used, so I don't think I like that idea.
Assuming I choose to allow multiple versions of a song in the list (which is the direction I'm leaning), if you want to be able to search for certain versions of a song in a particular group, you will have to add all of the versions to that group. As I mentioned previously, I plan to make this easy so that you can apply metadata changes in one version to other versions, so it shouldn't require much extra effort to do this. I could also have a checkbox for each field or all fields that indicates whether the metadata is synchronized for all versions of the song - that may be the simplest way to handle it. So users can manually manage the metadata if desired with tools to make it easy to apply individual metadata fields to other versions, but the default will be to always use the same metadata for all versions.
I can imagine this will create scenarios where things get a little messy - let's say you have 20 versions of a song, and the option to keep the metadata is synchronized is active, and you had the song to a collection. Well now it's going to show that 20 versions of that song are in the collection, and if you click the option to "Load All" for the collection, it's going to load all 20 versions of the song. I doubt that is what most users would want though, so then I'm kind of stuck between whether I should show all versions, whether all versions should be loaded, and finding a way to support both scenarios where users can choose whether all versions should be present without having to manually manage the metadata for every version. The versioning is definitely going to be a major pain to implement.
Mike