You possibly have the knowhow, hence I dare to ask here
Concrete Question
What exact metadata format must synced lyrics comply to in MP3 and AAC (M4A) files so that Apple Music on macOS shows them indeed as synced lyrics?
ID3 in MP3?
XMP in M4A container with AAC audio codec?
What text character encoding? (I'd prefer UTF-8)
What timecode: Milliseconds or MPEG frames?
My failed experiments
With Kid3 I added this metadata to the ID3 metadata of a WAV file
Lyrics Nr.1, Language: "ger" (German), Title "Viennese German", as audible in the song, UTF8
Lyrics Nr.2, Language: "ger" (German), Title "High German" (the translation for those not familiar with the Viennese dialect), UTF8
Synchronized Lyrics, Language: "ger" (German), Title "Viennese German", milliseconds as time units, UTF8
During playback in Kid3 the editor/preview windows jumps to the corresponding timestamped lines, so the timing is correct.
I also managed to export those synced lyrics as a .LYR file, should that be needed.
Convert WAV to MP3 and AAC and preserve all metadata
The basic ffmpeg -i input.wav output.mp3 || output.m4a carries over most metadata (Artist, Title, Album) but not all:
.mp3 (MP3 file with metadata in ID3 which ideally is preserved from the WAV file as-is)
Lyrics "Viennese German" and "High German" are copied over, but the synced lyrics not.
.m4a (MP4 container with AAC audio + metadata as XMP)
No Lyrics copied at all.
Also manual postprocessing attempts with Kid3 failed
Copy tag from WAV and paste to MP3 or M4A file
Inspecting this mediainfo frontend "InvisorLite" on macOS shows me this:
M4A
Lyrics: Shows the Viennese German version, the High German version is dropped.
Those M4A/XMP allow only one lyric record possibly?
In the source I had two lyric tags, both using language code "ger", only differing in the titles
So overall: In ID3 this seems to work, but in M4A/XMP only one seems to "make it"
SYLT - Synchronized lyric/text: Viennese German, whether only the title makes it, or also the content, I tried to determine by also inspecting with a Hex editor
Certain unique text phrases which are identical in German and Viennese German, occured only once. So this is a strong proof that this file has no 2 static lyrics + 1 synced lyrics., but rather only 1 static lyric. Unless ofc the "atomization" of the lyrics makes even ASCII text hard to find.
MP3
Contains a Field Lyrics Which shows: "High German: all High German lines // Viennese German: all Viennese German lines".
You possibly have the knowhow, hence I dare to ask here
Concrete Question
My failed experiments
With Kid3 I added this metadata to the ID3 metadata of a WAV file
Convert WAV to MP3 and AAC and preserve all metadata
ffmpeg -i input.wav output.mp3 || output.m4a
carries over most metadata (Artist, Title, Album) but not all:Also manual postprocessing attempts with Kid3 failed
Lyrics
: Shows the Viennese German version, the High German version is dropped.SYLT - Synchronized lyric/text: Viennese German
, whether only the title makes it, or also the content, I tried to determine by also inspecting with a Hex editorLyrics
Which shows: "High German: all High German lines // Viennese German: all Viennese German lines".Synced Lyrics
at allThanks for any directions!