Bug 462188 - "Arranger" tag only accepts a string with at least 2 '|' separated strings
Summary: "Arranger" tag only accepts a string with at least 2 '|' separated strings
Status: RESOLVED NOT A BUG
Alias: None
Product: kid3
Classification: Applications
Component: general (show other bugs)
Version: 3.9.x
Platform: Kubuntu Linux
: NOR minor
Target Milestone: ---
Assignee: Urs Fleisch
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-24 03:44 UTC by Justin
Modified: 2022-11-24 17:04 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Example of tag entry with single arranger noted. In this instance, the method to remove the error is to instead have the tag be "Arrangement:|noaon". The "heading" is redundant, but removes the error. (1.95 KB, image/png)
2022-11-24 03:44 UTC, Justin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Justin 2022-11-24 03:44:12 UTC
Created attachment 153986 [details]
Example of tag entry with single arranger noted. In this instance, the method to remove the error is to instead have the tag be "Arrangement:|noaon". The "heading" is redundant, but removes the error.

SUMMARY
***
Entering data for the "Arranger" tag with the ID3v2.3.0 type metadata requires a list of '|' separated strings. In concept this is fine, but if there is only one arranger, then only one string can be inserted. If only one string is put in without any '|' symbols, the field turns red to note an error and the tooltip popup reiterates that the field must be a list of '|' separated strings.
Entering one at the beginning or end doesn't work, since empty (and whitespace) strings are truncated and it's reverted to its original state. Works normally with songs with multiple arrangers or if you try a workaround where one of the strings is a "header".
Most likely not discovered since the "Arranger" tag isn't used often and most software (ie VLC, Elisa, Dolphin file manager) doesn't read and display it.
***


STEPS TO REPRODUCE
1. Add the "Arranger" tag.
2. Enter any string without any '|' symbols (either through the "Edit" button or manually entering it and hitting enter).
3. Save the file.

OBSERVED RESULT
The field turns red to signify that the field isn't formatted properly, as described above.

EXPECTED RESULT
The field should be normal and without error since the intended edit was to denote that the song only had a single arranger.

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: Kubuntu 22.04
(available in About System)
KDE Plasma Version: 5.24.7
KDE Frameworks Version: 5.92.0
Qt Version: 5.15.3

ADDITIONAL INFORMATION
Files still save regardless of the state of the tag, so the bug is more annoying than inhibiting.
Comment 1 Urs Fleisch 2022-11-24 17:04:01 UTC
As you can see in the handbook https://docs.kde.org/trunk5/en/kid3/kid3/commands.html#frame-list, "Arranger" is mapped to an IPLS frame for ID3v2.3 and TIPL for ID3v2.4. Below the table you find the following item:

The frames Arranger and Performer use a particular format for their contents: "involvement 1|involvee 1|involvement 2|involvee 2|...", for instance "Chorus Master|Ernst Dunshirn|Soprano Vocals|Anna Netrebko". This will create IPLS (ID3v2.3) or TIPL/TMCL (ID3v2.4) frames with a string list in the specified format (the "|" is used as a separator between the strings). Values in this format are also set when importing data from servers which offer this information.

Another item might also be interesting with ID3v2.3:

The mappings are not always bijective. So ID3v2.3 uses an IPLS frame for both Arranger and Performer. When reading back, both frames are displayed as "Arranger".

The specification is in section 4.4 of https://id3.org/id3v2.3.0. Since IPLS needs a sequence of involvement|involvee pairs, it has to be a string list, and this is not a bug.