Jump to content

Poweramp not reading local .lrc files


Go to solution Solved by andrewilley,

Recommended Posts

Currently, my .LRC files are on the same folder as the music with the same file name except the extension.

For some reason forcing a rescan or even changing any of the lyrics settings doesn't seem to read the lyrics for some of my music tracks.

In contrast, Foobar2000 (PC) and Plexamp doesn't seem to have any issues with scanning the local lyric file.

Any help regarding local lrc files will be helpful.

Edited by azuriye
Link to comment
Share on other sites

Also, if these LRC files contain synced lyrics, please check that the header lines at the start of each file (if present) match with the song metadata (Artist, Title, Album, duration, etc). If they are present but don't match, Poweramp will ignore the file.

Andre

Link to comment
Share on other sites

6 hours ago, andrewilley said:

Also, if these LRC files contain synced lyrics, please check that the header lines at the start of each file (if present) match with the song metadata (Artist, Title, Album, duration, etc). If they are present but don't match, Poweramp will ignore the file.

Andre

Could there be an option to ignore the headers and instead verify using the filename of the lrc file with the music filename?

Link to comment
Share on other sites

1 hour ago, azuriye said:

Could there be an option to ignore the headers and instead verify using the filename of the lrc file with the music filename?

There could, but it would not be a good idea because the text content of the file might not match with the content of the song (e.g. different lead-in length, different mix, etc).

You can simply delete the header details ("Ti:", "Ar:", "Al:", etc) though, and with nothing to verify against, PA should accept a similarly named file in the same directory as the audio file. It then may or may not match correctly.

Andre

Link to comment
Share on other sites

48 minutes ago, andrewilley said:

There could, but it would not be a good idea because the text content of the file might not match with the content of the song (e.g. different lead-in length, different mix, etc).

You can simply delete the header details ("Ti:", "Ar:", "Al:", etc) though, and with nothing to verify against, PA should accept a similarly named file in the same directory as the audio file. It then may or may not match correctly.

Andre

This is possible but then I'd need to mass convert all of my lrc files just so that it's compatible with Poweramp.

Excluding foobar since I use the music player itself to download lrc files but could there be an approach similar to how Plex reads local lrc files? I remember them having a very specific criteria to meet to have lyrics enabled... Probably that very criteria could aid in here?

Link to comment
Share on other sites

14 hours ago, andrewilley said:

@azuriye Try with one file first (remove any header lines in a text editor) and see if that's actually the problem, and what field is causing the problem. May need to do a Rescan between edits.

Andre

Hello, sorry for the late reply. But removing the [length] field from the lrc file and rescanning the library fixed the issue. Poweramp displays the lyrics just fine now. But this was only for one song track, I am not sure if there might be other fields which might prove to be later problematic.

EDIT: After looking through the priority from the post you've linked it looks like folder + filename matches but length did not, probably why it didn't scan.

Edited by azuriye
Link to comment
Share on other sites

@azuriye If you think about it, duration is a pretty important factor when deciding whether the contents of a LRC file properly match with a song file. If the person who transcribed the lyrics was listening to a different mix of the song - different intro, longer bridge, even just a brief period of silence at the start of the file - then the words won't appear in time with the music.

If it's just something like a bit of silence, or a longer intro, then adding an "[offset:<time>]" header item might fix it, but if the song is a completely different recording with different timings - or perhaps a live concert recording - then it might not be possible to match it up at all. Which is why those header tags are present, to make sure the displayed lyrics are for the same song/artist, and more importantly the same version of the song.

Andre

Link to comment
Share on other sites

1 hour ago, andrewilley said:

@azuriye If you think about it, duration is a pretty important factor when deciding whether the contents of a LRC file properly match with a song file. If the person who transcribed the lyrics was listening to a different mix of the song - different intro, longer bridge, even just a brief period of silence at the start of the file - then the words won't appear in time with the music.

If it's just something like a bit of silence, or a longer intro, then adding an "[offset:<time>]" header item might fix it, but if the song is a completely different recording with different timings - or perhaps a live concert recording - then it might not be possible to match it up at all. Which is why those header tags are present, to make sure the displayed lyrics are for the same song/artist, and more importantly the same version of the song.

Andre

 

But wouldn't the filename take care of it being the same music? Currently my music is tagged as such:

(track no.) [vocal artist] music name.ext

Regarding it being not the same music wouldn't the user decide that rather than Poweramp? Let's say if the lyrics are for a different release then the user can easily catch it and replace the lyric file with something more appropriate.

Link to comment
Share on other sites

Adding more to this. On foobar there's a plugin which searches lyrics using online sources and you can set it up to either autosave them or manually inspect and save them.

If the user were to autosave without inspecting, it might be correct for the first 5 times before it falls apart. But with manually inspecting it the user is sure that the lyrics are actually matching with the song albeit it being slower. If I am not wrong Poweramp already does this as well by searching up online sources and probably does a much better job than this? But Plex seems to work just fine with the lyric file it's given so could something similarly be done with Poweramp? probably ignore header tags or something of that sort?
 

image.png

Edited by azuriye
Link to comment
Share on other sites

@azuriye You seem to insist on ignoring the points made by @andrewilley about how Poweramp handles lyrics and makes an effort to ensure they match the correct Artist, Song, and eveen version.

10 hours ago, andrewilley said:

If you think about it, duration is a pretty important factor when deciding whether the contents of a LRC file properly match with a song file. If the person who transcribed the lyrics was listening to a different mix of the song - different intro, longer bridge, even just a brief period of silence at the start of the file - then the words won't appear in time with the music.

Poweramp is already doing it's job in trying to identify the correct version of lyrcis for each track. If you have downloaded and attached the wrong lyric file for the song version or length on your phone, then that needs to be corrected on your end.

Link to comment
Share on other sites

18 minutes ago, MotleyG said:

@azuriye You seem to insist on ignoring the points made by @andrewilley about how Poweramp handles lyrics and makes an effort to ensure they match the correct Artist, Song, and eveen version.

Poweramp is already doing it's job in trying to identify the correct version of lyrcis for each track. If you have downloaded and attached the wrong lyric file for the song version or length on your phone, then that needs to be corrected on your end.

I didn't ignore... I mentioned how Poweramp probably does a much better job than Foobar. But if I were to correct it from my end I'd need to go to the source (in this context the website where the user has uploaded from) and implement my changes over there.
Either that or manually inspect all my lyrics file just so that it's in accordance to Poweramp which would be painstakingly huge for a library as big as 10k+. Maybe a simple toggle option just so that the lyric scanner can ignore the header tags and warn the user of possible mismatch between the song and lyrics?

Edited by azuriye
Link to comment
Share on other sites

I'm still not clear why you think that Poweramp should display known incorrect lyrics in cases where its validation process clearly indicates that the metadata in the LRC file says it intended for a different piece of music. The validation process is there to avoid precisely that situation from occurring - and the subsequent user complaints.

Poweramp does not download any lyrics at all by the way. It can pass the song details to third-party apps (including asking for a basic Google search) but the results are sourced and displayed by the external application.

There is an API that would allow apps to return text back to Poweramp for display within the PA native interface, but so far I don't think anything else uses it yet.

Andre

Link to comment
Share on other sites

9 hours ago, andrewilley said:

I'm still not clear why you think that Poweramp should display known incorrect lyrics in cases where its validation process clearly indicates that the metadata in the LRC file says it intended for a different piece of music. The validation process is there to avoid precisely that situation from occurring - and the subsequent user complaints

 

Currently only the length field seems to be problematic preventing Poweramp from scanning it thinking it's not the same music.

- folder + file name + length if exists (LRC should be in the same folder as track)

The lyrics file is under the same folder and the same filename but only thing stopping it is the length field. An option where you could either strip the length field or ignore it would be easier to work with since the first two conditions already meet.

Regarding the length field being incorrect and basing that as the wrong lyrics for the music. I am not sure if any lyrics platform standardizes the length field to match to the music. Upon inspecting the length field of the lyrics file I found out that it's 5:14 while the actual music is 5:18, the 4 second difference could very well be just white noise.

Suppose if we ignore the length field outright then it's up to the user to make sure that the local lyrics file matches the same folder and filename. I understand when you talk about music tracks which have been either re-released or slightly remixed but won't that mean the lyrics file which is for Folder 1 (probably Album in this case?) won't be the same for Folder 2?

Regarding Plex, it looks like the scanner is a bit more sophisticated to work with. The lyrics file should have the same filename (Track Number - Track Name) and should reside in the same ArtistName/AlbumName/ directory. Currently my music library doesn't have an ArtistName directory but only an AlbumName directory which cannot be the same between different re-releases of a music track. Even if it's a remix and resides in the same album I think the track number and name (the filename of the music ultimately) should indicate that as it differs?

Screenshot_20241012_095931_Firefox Nightly.png

Edited by azuriye
Link to comment
Share on other sites

  • Solution

Plex perhaps enforces a more rigid library format. PA doesn't care at all about folder layouts though, and mostly uses embedded tags to generate Library Categories - Genres, Artists, Albums, etc. One of the categories is Folders (plus Folders Hierarchy, which I tend to use more often) but it doesn't matter what's in them, PA just sees a subfolder full of audio files. I have a "Singles" folder for example which is filled with completely random Tracks and Artists.

If a LRC file was supplied with an audio file at source, the durations would obviously match, but in that case the words would probably have been tidily embedded as SYLT / USLT / LYRICS tags anyway. However most people download LRC files from online repositories, and have perhaps ripped the audio content themselves from a CD, so there is much more potential for mismatches. PA allows 2 seconds variance in the duration, but if it's too far out the LRC file will be rejected as belonging to some other audio file.

The simplest solution is the one I mentioned right back at the start: if you don't want them validated, just remove the [length:] tags from your LRC files. Any decent batch text editor should be able to do this pretty easily. For example in Notepad++  something like:

image.png

I'm rubbish at writing good regex, might need to tweak my search string a bit, but I think this should work for most cases:
^[[]length: *[0-9:]+]\n
Try it on a test folder first though!

Andre

Link to comment
Share on other sites

10 minutes ago, andrewilley said:

Plex perhaps enforces a more rigid library format. PA doesn't care at all about folder layouts though, and mostly uses embedded tags to generate Library Categories - Genres, Artists, Albums, etc. One of the categories is Folders (plus Folders Hierarchy, which I tend to use more often) but it doesn't matter what's in them, PA just sees a subfolder full of audio files. I have a "Singles" folder for example which is filled with completely random Tracks and Artists.

If a LRC file was supplied with an audio file at source, the durations would obviously match, but in that case the words would probably have been tidily embedded as SYLT / USLT / LYRICS tags anyway. However most people download LRC files from online repositories, and have perhaps ripped the audio content themselves from a CD, so there is much more potential for mismatches. PA allows 2 seconds variance in the duration, but if it's too far out the LRC file will be rejected as belonging to some other audio file.

The simplest solution is the one I mentioned right back at the start: if you don't want them validated, just remove the [length:] tags from your LRC files. Any decent batch text editor should be able to do this pretty easily. For example in Notepad++  something like:

image.png

I'm rubbish at writing good regex, might need to tweak my search string a bit, but I think this should work for most cases:
^[[]length: *[0-9:]+]\n
Try it on a test folder first though!

Andre

Thanks, the regex seems to pickup the length field. I'll see if there is a way to automate the removing of length field whenever downloading lyrics. Will mark this as resolved.

Link to comment
Share on other sites

You could write a command-line batch script file to do the job, saves messing around in Notepad++ each time.

Still won't guarantee that the found lyrics will actually display in sync of course, in fact they probably won't, but at least they will show.

Andre

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...