I was fairly involved in the addition of the external lyrics support and since we’ve talked about the offset tag specifically I assumed it to be implemented in the same way as Symfonium and my script.
And my assumption is correct.
I added a new song to a lms test instance and gave the lyrics an offset of -4000.
[offset:-4000]
[0:09.117]It's all there in the gospels, the Magdalene girl
[0:13.617]Comes to pay her respects, but her mind is awhirl
[0:17.997]When she finds the tomb empty, the stone had been rolled
[0:22.797]Not a sign of a corpse in the dark and the cold
[0:27.177]When she reaches the door, sees an unholy sight
[0:31.197]There's this solitary figure in a halo of light
Then scanned lms, synced to my phone and played it there.
As you can see from the screenshot and the response:
2024-11-16 18:29:37.202 Verbose/SubsonicLogger: <-- [418] {"subsonic-response":{"openSubsonic":true,"serverVersion":"6","status":"ok","type":"lms","version":"1.16.0","lyricsList":{"structuredLyrics":[{"lang":"xxx","offset":-4000,"synced":true,"line":[{"start":9117,"value":"It's all there in the gospels, the Magdalene girl"},{"start":13617,"value":"Comes to pay her respects, but her mind is awhirl"},{"start":17997,"value":"When she finds the tomb empty, the stone had been rolled"},{"start":22797,"value":"Not a sign of a corpse in the dark and the cold"},{"start":27177,"value":"When she reaches the door, sees an unholy sight"},{"start":31197,"value":"There's this solitary figure in a halo of light"},{"start":35517,"value":"He just carries on floating past Calvary Hill"},{"start":40017,"value":"In an almighty hurry, aye but she might catch him still"},{"start":44817,"value":"\"Tell me where are you going Lord, and why in such haste?\""},{"start":49497,"value":"Now don't hinder me woman, I've no time to waste!"},{"start":53817,"value":"For they're launching a boat on the morrow at noon"},{"start":58077,"value":"And I have to be there before daybreak"},{"start":62217,"value":"Oh, I can not be missing, the lads will expect me"},{"start":66957,"value":"Why else would the good Lord himself resurrect me?"},{"start":71277,"value":"For nothing will stop me, I have to prevail"},{"start":75537,"value":"Through the teeth of this tempest, in the mouth of a gale"},{"start":80037,"value":"May the angels protect me if all else should fail\n"},{"start":84837,"value":"And the last ship sails\n"},{"start":88797,"value":"Oh, the roar of the chains and the cracking of timbers"},{"start":94797,"value":"The noise at the end of the world in your ears"},{"start":98637,"value":"As a mountain of steel makes its way to the sea\n"},{"start":103437,"value":"And the last ship sails"},{"start":108417,"value":""},{"start":118437,"value":"It's a strange kind of beauty"},{"start":121497,"value":"It's cold and austere"},{"start":123477,"value":"And whatever it was that you've done to be here"},{"start":127677,"value":"It's the sum of your hopes, your despairs and your fears\n"},{"start":131997,"value":"And the last ship sails\n"},{"start":136377,"value":"Well the first to arrive saw these signs in the east"},{"start":140637,"value":"Like that strange moving finger at Balthazar's Feast"},{"start":145497,"value":"Where they asked the advice of some wandering priest"},{"start":150237,"value":"And the sad ghosts of men whom they'd thought long deceased"},{"start":154617,"value":"And whatever got said, they'd be counted at least\n"},{"start":158757,"value":"And the last ship sails\n"},{"start":162837,"value":"Oh, the roar of the chains and the cracking of timbers"},{"start":168837,"value":"The noise at the end of the world in your ears"},{"start":172857,"value":"As a mountain of steel makes its way to the sea"},{"start":177537,"value":"And the last ship sails"},{"start":181257,"value":"And whatever you'd promised, whatever you've done"},{"start":186237,"value":"And whatever the station in life you've become"},{"start":190677,"value":"In the name of the Father, in the name of the Son"},{"start":194997,"value":"And whatever the weave of this life that you've spun"},{"start":199367,"value":"On the Earth or in Heaven or under the Sun\n"},{"start":204227,"value":"And the last ship sails"}]}]}}}
The offset was detected and passed on.
HOWEVER:
I had no such luck when editing .lrc files that lms had already scanned.
@itm I suspect there’s some caching going on in lms that prevents local changes in the .lrc file from making it into lms and subsequently Symfonium.
Btw.:
I found the discussion over at poweramp that Tolriq mentioned. Adding a toggle to invert the offset would be a sensible solution imho.