Uh oh!
There was an error while loading. Please reload this page.
Support multi-value TXXX/WXXX frames in ID3v2 - #11
Conversation
Four fixtures covering null-separated multi-value TXXX fields (2-value, 3-value, empty-slot, and single-value regression guard) plus the Python script that generates them. Signed-off-by: Rouzax <GitHub@mgdn.nl>
ID3v2.4 allows null-separated multiple strings in TXXX value fields. Audio::Scan previously read only the first value. Add a loop mirroring the existing STRINGLIST handler for standard text frames: returns an arrayref when multiple values are present, scalar when single. This enables plural tags like TXXX:ALBUMARTISTS written by Picard to reach consumers as arrays instead of being truncated. Signed-off-by: Rouzax <GitHub@mgdn.nl>
Tests cover: two values, three values, empty slot skipping, and existing single-value regression (covered by pre-existing tests). Signed-off-by: Rouzax <GitHub@mgdn.nl>
michaelherger
commented
May 13, 2026
Please note that we won't have new binaries for all possible platforms "automatically". I tend to only update recent, popular platforms by default. But I understand the change doesn't break existing installations, but rather adds a missing "feature" (support for multiple values). Therefore for users of outdated versions of this library nothing will change - neither good or bad. |
Rouzax
commented
May 13, 2026
Thanks for the note on platform coverage. That's completely fine. The change is indeed additive only. Installations running an older Audio-Scan will keep getting a single scalar for TXXX frames, exactly as today. Nothing breaks for them. On the slimserver side, the code that consumes these tags already needs to handle both scalars and arrayrefs anyway (some tag types already return arrays). So the scanner will work correctly regardless of which Audio-Scan version is installed: arrayref means multi-value support is available, scalar means it falls back to current behavior. |
Uh oh!
There was an error while loading. Please reload this page.
ralph-irving
commented
Jun 5, 2026
I plan to review another PR from Andy's Audio::Scan repository and include it here before making another release. andygrundman#16 |
Rouzax
commented
Aug 17, 2026
Any update on this one? You mentioned wanting to include andygrundman#16 before making another release. Asking because the Audio::Scan bundled with slimserver is still 1.10, in both No rush intended, I mostly want to know whether to plan around it. |
michaelherger
commented
Aug 17, 2026
What Perl version on what platform are you using? We are at Audio::Scan v1.13 for the most popular platforms. |
I see that I'm at Audio::Scan: 1.11 on my prodcution server |
michaelherger
commented
Aug 17, 2026
Windows is at v1.13 on 9.2. See: |
Summary
Context
Part of LMS-Community/slimserver#1555 (display_artist support). Vorbis/FLAC already deliver multi-value tags correctly; this closes the MP3 gap.
Forum discussion (post #133 in the thread): https://forums.lyrion.org/forum/user-forums/ripping-encoding-transcoding-tagging/1816764-lms-metadata-scaan-overrides-local-tags
Test plan