Jump to content

Poweramp builds 948-957


maxmp

Recommended Posts

Sorry for the delay, sent the email with some details and a sample file.

11 hours ago, maxmp said:

what 32bit flag decoding do you mean?

FLAC files made from S32 PCM, using FLAC 1.4+ version. Clarified this on the email but also doing it here so other people know what it is about. I haven't sent images on the email, but here are a few of them

Poweramp can see these files and even read its tags, but it won't play them. Note that this only happens for 32bit flac files, not all files made with FLAC 1.4+, a 24 or 16bit file made with these versions will work just fine, the issue is with 32bit files only.

Screenshot_20230131-204703.png

Screenshot_20230131-204714.png

Screenshot_20230131-204731.png

Link to comment
Share on other sites

  • Replies 429
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

2 hours ago, Aller2TeaM said:

Can this version read CUE for tags of songs to lyrics searching?

If you are asking whether a CUE file can specify separate lyrics content for each faux 'track' it creates in the Library, then I don't think so. Not sure whether 3rd-party Lyric Provider apps will get sufficient information on the created song to do external searches for lyrics though.

Andre 

Link to comment
Share on other sites

On 1/31/2023 at 5:53 AM, andrewilley said:

That was a typo (now corrected). Max's address for debug info is gpmaxmpz@gmail.com. Or you could temporarily use a file sharing site such as Dropbox or Google Drive and provide a public link. The issue of the first line of lyrics not displaying was fixed in build 949 I think though, please give the latest version a try (might need a Full/Lyrics Rescan).

Andre

Still not fixed in build 950. The file has been sent to the correct email address.

Link to comment
Share on other sites

@TheMegaXandy that file contains 3 lyrics tags (SYLT, USLT, TXX LYRICS), Poweramp prefers SYLT, but SYLT is in some weird non-standard form, so this is why first line is lost. (And your software shows you some other tags, not SYLT). Also I got your file after 950 was released. And I don't think it's a "fix", to support this a specific code should be developed to handle the non-standard SYLT tag. Unfortunately, I need more files like this to understand the "format" and not to break other good files.

Link to comment
Share on other sites

   Hi, uh, I think there's something a bit confused, it looks like this, I'll show you.

   So like, When I would like to play a song in this app, I'll have two of my way to get in position,but first I gotta get on this page,Screenshot_2023-02-02-21-33-35-077_com.maxmpz.audioplayer.thumb.jpg.39db32b5cb8909294ecc9cfea81975aa.jpg  so If I choose anything but not the "Playlist",  things would work almost properly, when I try the new function "Lyrics Area", I got 2 problems.

   The first one is that I can't really see the correct "Lyrics Background" in every situation, and the problem is here, When I play my music really out of the "Playlist", and which it means maybe I start a random song in the "Folder", the background looks like this.Screenshot_2023-02-02-21-34-32-436_com.maxmpz.audioplayer.thumb.jpg.2ded8273abae1acd2fa02ec7f61d3733.jpg   Exactly, the background shows the color from the album art just perfect, but when I start the same music in the "Playlist", it changes.Screenshot_2023-02-02-21-35-25-605_com.maxmpz.audioplayer.thumb.jpg.4152872735ea06a3929896808d63b213.jpg  The color of the background changed, and every song in the Playlist shows the same background color for no reason, at least it's a reason I can't figure out. So here's the first one.

  And the second, I'm pretty sure that you have noticed, is that the lyrics line can't show the Lyrics and the Translations in the same time,it almost like the app only pointed the Translations out, but  NO Lyrics, and here a photo of the LRC files.Screenshot_2023-02-02-21-54-41-791_com.xjcheng.musictageditor.thumb.jpg.891a12de5d14c8d8c0546e4c385619fe.jpg   The Lyrics and the Translations are not in the same line, I don't know if that can be solved, wish you guys could do it.

   Anyway, here is everything, Have a good day guys.

   By the way, I test it on two devices with the SAME UI, nothing has changed, my devices are Redmi Note 11 Pro and Mi 11 Lite, with MIUI, both Android 13.

Link to comment
Share on other sites

@Loweaul thanks for the report, background issue is not reproducible in build-950. What is your Poweramp build?

LRC format doesn't generally allow same timestamps for lines - as format is basically a text, some software can write anything to it and extend in any way possible, but supporting that is another matter, starting from documentation/information/test files. Please share the file(s) you think should be supported and I'll take a look - gpmaxmpz@gmail.com .

Thanks!

Link to comment
Share on other sites

42 minutes ago, maxmp said:

LRC format doesn't generally allow same timestamps for lines

This was discussed back when 948 was released, and I also referred to it in my summary of 949 too. It was mainly about original & translated lyrics in the same file:

The crux of the issue was that for exact duplicate timecodes, although from build 949 every line does now get sorted neatly and correctly displayed in order, only the final entry gets highlighted during playback. I think the simplest solution, and the one @UFOGO2 asked for, would be if all lines which refer to a specific timecode get highlighted at the same time - e.g. in cases where lyrics have been provided in two languages, the first line being the original "as sung" language and the second version being a translation, as originally documented here:


Also @有餅's other comment about the default display time of 5 seconds before lyrics fade out is perhaps a bit short. Maybe make the default fade-out time nearer 7 seconds or so? Currently even during continuous singing, sometimes one line of text has faded out before the next one gets to its trigger timecode.

Oh, and the minor issue that a couple of people mentioned about being able to swipe down to beyond the end of the actual lyric content is still present in 950.

Andre

Link to comment
Share on other sites

@andrewilley @Loweaul I need sample file, preferable few files to test and develop the solution for that. Granted users are expecting their tracks to be supported out of box, but in reality the only possible information about "format" used in those files are these files themselves.

The empty space under lyrics is by design - otherwise it's not possible to move the last lines to the "active" area (that is about 1/4 of the height of screen).

Link to comment
Share on other sites

Thanks for the update Max.

The spent lyric fadeout delay seems better now.
@有餅 is the new timeout delay (seems like about 7-8 seconds if no new lyrics are needed in the meantime) OK for you now?

Also PA now doesn't allow manual scrolling down so far that you end up with an empty screen - although I'm still not sure why unsynced lyrics need to be allowed to scroll beyond their final line at all.


However entries with the same timecode still don't all highlight at the same time - so only the last one ever gets lit up. I created a simple file to test this, with an exact same timecode quoted two extra times in the file (in the real world such duplicated timecodes would be for language translations etc.):

In foobar2000 plugin, all three [0:32.50] lines are highlighted together at the appropriate moment in playback:

image.png

But in Poweramp, although all three [0:32.50] lines are correctly displayed, only the final one gets highlighted, never the earlier two:

image.png

I can send you the file I created, but it's fairly explanatory from the screenshots, identical timecodes should ideally all highlight at the same time.

Andre

Link to comment
Share on other sites

@maxmp Just got up in morning. Anyway, I have downloaded the latest version you just send up, And for a quick look, the Second issue as I mentioned which is the Lyrics Highlighted issue are now sovled, in my opinions ,though. 

   So if I want to see 2 lines of lyrics with a same timecodes, the function would be just fine, And if I want to see 2 more lines, it works properly too,Screenshot_2023-02-03-09-59-20-060_com.maxmpz.audioplayer.thumb.jpg.380c18a70372a36551d1617908120e0e.jpgScreenshot_2023-02-03-10-03-30-271_com.xjcheng.musictageditor.thumb.jpg.61833eb6e7090ff05b88a4003ee7967f.jpg  So as you can see, 4 lines of lyrics with the same timecodes are now can be highlighted in Poweramp.

  And by the way, for the LRC files, I think it's my problem, because I have never really use a LRC files for lyrics, I just simply added the Lyrics in a Music Files.

  Sorry about not giving the correct issue, but the problem the I had are now sovled, thanks a lots.

  The First issue are still exist, wish you can handle it, thanks again.

Link to comment
Share on other sites

9 hours ago, Loweaul said:

So if I want to see 2 lines of lyrics with a same timecodes, the function would be just fine, And if I want to see 2 more lines, it works properly too. So as you can see, 4 lines of lyrics with the same timecodes are now can be highlighted in Poweramp.

That's interesting, that's exactly what I was talking about in my previous message last night. But it doesn't seem to be working for me on build 951 with some lyrics that I modified to test - either as a LRC file or when embedded into USLT. I wonder what the difference between our content is, as clearly it's working fine with your real-world example.

Andre

Link to comment
Share on other sites

22 hours ago, maxmp said:

@TheMegaXandy that file contains 3 lyrics tags (SYLT, USLT, TXX LYRICS), Poweramp prefers SYLT, but SYLT is in some weird non-standard form, so this is why first line is lost. (And your software shows you some other tags, not SYLT). Also I got your file after 950 was released. And I don't think it's a "fix", to support this a specific code should be developed to handle the non-standard SYLT tag. Unfortunately, I need more files like this to understand the "format" and not to break other good files.

Really? I threw the file into mp3tag and it just showed the same two tags as the screenshot I sent earlier. One called LYRICS, and another UNSYNCEDLYRICS. The first contains the timecode at the beginning of each line, and the second has "XXX||" and then the lyrics without the timecode. I did everything in mp3tag and for me it was the right way. But now that you said it's in a weird format, I wonder what I did wrong in my process, if you could explain it to me. Anyway, in build 951 the problem was fixed, and the first line of the lyrics now appears in the same file in question. If you still need more files, just let me know.

Link to comment
Share on other sites

6 minutes ago, TheMegaXandy said:

the second has "XXX||" and then the lyrics without the timecode.

The "xxx||" bit is a dummy language code in unsynced lyrics (USLT) tags. The xxx would otherwise be a reference for the language descriptor for the lyrics - e.g. "eng||" would be for English.

Andre

Link to comment
Share on other sites

On 2/2/2023 at 11:18 AM, maxmp said:

@TheMegaXandy that file contains 3 lyrics tags (SYLT, USLT, TXX LYRICS), Poweramp prefers SYLT, but SYLT is in some weird non-standard form, so this is why first line is lost. (And your software shows you some other tags, not SYLT). Also I got your file after 950 was released. And I don't think it's a "fix", to support this a specific code should be developed to handle the non-standard SYLT tag. Unfortunately, I need more files like this to understand the "format" and not to break other good files.

 

1 hour ago, TheMegaXandy said:

Really? I threw the file into mp3tag and it just showed the same two tags as the screenshot I sent earlier. One called LYRICS, and another UNSYNCEDLYRICS. The first contains the timecode at the beginning of each line, and the second has "XXX||" and then the lyrics without the timecode. I did everything in mp3tag and for me it was the right way. But now that you said it's in a weird format, I wonder what I did wrong in my process, if you could explain it to me. Anyway, in build 951 the problem was fixed, and the first line of the lyrics now appears in the same file in question. If you still need more files, just let me know.

After a very deep search, in fact the two software I use read the unsynced lyrics from the USLT tag, and the synced lyrics come from a custom text tag, not the SYLT tag. Both Foobar2000 (with EZLyric 0.3.6 component) and mp3tag, write synchronized lyrics to this custom text tag, with neither actually supporting the SYLT tag (which is why I found only two lyrics in my previous comment). The SYLT tag information you found in the file actually comes from the source the mp3 file came from, and that does indeed come with the first line deleted for some reason. I would delete that SYLT tag so Poweramp can use that custom text tag, but like I said, none of the software I use support it. But thankfully in build 951 the problem with the first line not showing up was fixed, so Poweramp is now reading that custom text tag. I would like, for convenience, Poweramp to tell you where the lyrics source it is reading from, and if there is more than one source, it can choose which lyrics source to display. Thank you for your work.

Edited by TheMegaXandy
Link to comment
Share on other sites

Still having the issue on any build above 939 where I cannot select hires output in Output as in build 939 and am forced to use openSL.

I can set 24/96 here as fixed output but as soon as a different player is used and say plays as 16/44 track and the user returns to Poweramp, the output is set to this output (in the sample rate section it is set to Defined by device with the only other options as 44.1 and 48)

Rebooted the device, played the same 24/96 tracks and device is now displaying 192K until players are switched and we are back down the same rabbit hole.

With this setting, instead of previously being locked at 24/96 as in build 939,  Poweramp is picking up whatever the sample rate was last played by either the stock FiiO player or say USB Audio Player Pro

This is on a FiiO M11.

 

Back to build 939 🙄

Edited by Airsculpture
Link to comment
Share on other sites

@TheMegaXandy The SYLT tag was defined in the ID3v2.3 spec way back in 1999 (I had no idea it was that old!) but still a lot of programs (such as MP3Tag and TagScanner) prefer to put lyric text into USLT anyway. USLT is much easier to use as it is just text string, so just adding a timecode as "[mm:ss.nn]" at the start of each line of text is fairly simple and a lot of apps understand it. SYLT requires more detailed encoding, see below.

TXXX is a user-defined free-format tag that any software can use to integrate its own content into an ID3 header. Some TXXX tags (such as ReplayGain) have become de facto standards of their own over time. If an app does not handle a specific TXXX reference, it is meant to ignore it.

For what it's worth, this is what the spec at https://id3.org/d3v2.3.0 says about USLT and SYLT:

4.9.   Unsychronised lyrics/text transcription

   This frame contains the lyrics of the song or a text transcription of
   other vocal activities. The head includes an encoding descriptor and
   a content descriptor. The body consists of the actual text. The
   'Content descriptor' is a terminated string. If no descriptor is
   entered, 'Content descriptor' is $00 (00) only. Newline characters
   are allowed in the text. There may be more than one 'Unsynchronised
   lyrics/text transcription' frame in each tag, but only one with the
   same language and content descriptor.

     <Header for 'Unsynchronised lyrics/text transcription', ID: "USLT">
     Text encoding        $xx
     Language             $xx xx xx
     Content descriptor   <text string according to encoding> $00 (00)
     Lyrics/text          <full text string according to encoding>

 

4.10.   Synchronised lyrics/text

   This is another way of incorporating the words, said or sung lyrics,
   in the audio file as text, this time, however, in sync with the
   audio. It might also be used to describing events e.g. occurring on a
   stage or on the screen in sync with the audio. The header includes a
   content descriptor, represented with as terminated textstring. If no
   descriptor is entered, 'Content descriptor' is $00 (00) only.

     <Header for 'Synchronised lyrics/text', ID: "SYLT">
     Text encoding        $xx
     Language             $xx xx xx
     Time stamp format    $xx
     Content type         $xx
     Content descriptor   <text string according to encoding> $00 (00)


   Encoding:   $00  ISO-8859-1 [ISO-8859-1] character set is used => $00
                    is sync identifier.
               $01  Unicode [UNICODE] character set is used => $00 00 is
                    sync identifier.

   Content type:   $00 is other
                   $01 is lyrics
                   $02 is text transcription
                   $03 is movement/part name (e.g. "Adagio")
                   $04 is events (e.g. "Don Quijote enters the stage")
                   $05 is chord (e.g. "Bb F Fsus")
                   $06 is trivia/'pop up' information

   Time stamp format is:

     $01  Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
     $02  Absolute time, 32 bit sized, using milliseconds as unit

   Abolute time means that every stamp contains the time from the
   beginning of the file.

   The text that follows the frame header differs from that of the
   unsynchronised lyrics/text transcription in one major way. Each
   syllable (or whatever size of text is considered to be convenient by
   the encoder) is a null terminated string followed by a time stamp
   denoting where in the sound file it belongs. Each sync thus has the
   following structure:

     Terminated text to be synced (typically a syllable)
     Sync identifier (terminator to above string)   $00 (00)
     Time stamp                                     $xx (xx ...)

   The 'time stamp' is set to zero or the whole sync is omitted if
   located directly at the beginning of the sound. All time stamps
   should be sorted in chronological order. The sync can be considered
   as a validator of the subsequent string.

   Newline ($0A) characters are allowed in all "SYLT" frames and should
   be used after every entry (name, event etc.) in a frame with the
   content type $03 - $04.

   A few considerations regarding whitespace characters: Whitespace
   separating words should mark the beginning of a new word, thus
   occurring in front of the first syllable of a new word. This is also
   valid for new line characters. A syllable followed by a comma should
   not be broken apart with a sync (both the syllable and the comma
   should be before the sync).

   An example: The "USLT" passage

     "Strangers in the night" $0A "Exchanging glances"

   would be "SYLT" encoded as:

     "Strang" $00 xx xx "ers" $00 xx xx " in" $00 xx xx " the" $00 xx xx
     " night" $00 xx xx 0A "Ex" $00 xx xx "chang" $00 xx xx "ing" $00 xx
     xx "glan" $00 xx xx "ces" $00 xx xx

   There may be more than one "SYLT" frame in each tag, but only one
   with the same language and content descriptor.

I tend to use Exiftool in Verbose mode to view tags in any type of file (it was originally for photos, hence the name, but it copes with all sorts of other media files now).

Andre

Link to comment
Share on other sites

2 hours ago, andrewilley said:

@TheMegaXandy The SYLT tag was defined in the ID3v2.3 spec way back in 1999 (I had no idea it was that old!) but still a lot of programs (such as MP3Tag and TagScanner) prefer to put lyric text into USLT anyway. USLT is much easier to use as it is just text string, so just adding a timecode as "[mm:ss.nn]" at the start of each line of text is fairly simple and a lot of apps understand it. SYLT requires more detailed encoding, see below.

TXXX is a user-defined free-format tag that any software can use to integrate its own content into an ID3 header. Some TXXX tags (such as ReplayGain) have become de facto standards of their own over time. If an app does not handle a specific TXXX reference, it is meant to ignore it.

For what it's worth, this is what the spec at https://id3.org/d3v2.3.0 says about USLT and SYLT:

4.9.   Unsychronised lyrics/text transcription

   This frame contains the lyrics of the song or a text transcription of
   other vocal activities. The head includes an encoding descriptor and
   a content descriptor. The body consists of the actual text. The
   'Content descriptor' is a terminated string. If no descriptor is
   entered, 'Content descriptor' is $00 (00) only. Newline characters
   are allowed in the text. There may be more than one 'Unsynchronised
   lyrics/text transcription' frame in each tag, but only one with the
   same language and content descriptor.

     <Header for 'Unsynchronised lyrics/text transcription', ID: "USLT">
     Text encoding        $xx
     Language             $xx xx xx
     Content descriptor   <text string according to encoding> $00 (00)
     Lyrics/text          <full text string according to encoding>

 

4.10.   Synchronised lyrics/text

   This is another way of incorporating the words, said or sung lyrics,
   in the audio file as text, this time, however, in sync with the
   audio. It might also be used to describing events e.g. occurring on a
   stage or on the screen in sync with the audio. The header includes a
   content descriptor, represented with as terminated textstring. If no
   descriptor is entered, 'Content descriptor' is $00 (00) only.

     <Header for 'Synchronised lyrics/text', ID: "SYLT">
     Text encoding        $xx
     Language             $xx xx xx
     Time stamp format    $xx
     Content type         $xx
     Content descriptor   <text string according to encoding> $00 (00)


   Encoding:   $00  ISO-8859-1 [ISO-8859-1] character set is used => $00
                    is sync identifier.
               $01  Unicode [UNICODE] character set is used => $00 00 is
                    sync identifier.

   Content type:   $00 is other
                   $01 is lyrics
                   $02 is text transcription
                   $03 is movement/part name (e.g. "Adagio")
                   $04 is events (e.g. "Don Quijote enters the stage")
                   $05 is chord (e.g. "Bb F Fsus")
                   $06 is trivia/'pop up' information

   Time stamp format is:

     $01  Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
     $02  Absolute time, 32 bit sized, using milliseconds as unit

   Abolute time means that every stamp contains the time from the
   beginning of the file.

   The text that follows the frame header differs from that of the
   unsynchronised lyrics/text transcription in one major way. Each
   syllable (or whatever size of text is considered to be convenient by
   the encoder) is a null terminated string followed by a time stamp
   denoting where in the sound file it belongs. Each sync thus has the
   following structure:

     Terminated text to be synced (typically a syllable)
     Sync identifier (terminator to above string)   $00 (00)
     Time stamp                                     $xx (xx ...)

   The 'time stamp' is set to zero or the whole sync is omitted if
   located directly at the beginning of the sound. All time stamps
   should be sorted in chronological order. The sync can be considered
   as a validator of the subsequent string.

   Newline ($0A) characters are allowed in all "SYLT" frames and should
   be used after every entry (name, event etc.) in a frame with the
   content type $03 - $04.

   A few considerations regarding whitespace characters: Whitespace
   separating words should mark the beginning of a new word, thus
   occurring in front of the first syllable of a new word. This is also
   valid for new line characters. A syllable followed by a comma should
   not be broken apart with a sync (both the syllable and the comma
   should be before the sync).

   An example: The "USLT" passage

     "Strangers in the night" $0A "Exchanging glances"

   would be "SYLT" encoded as:

     "Strang" $00 xx xx "ers" $00 xx xx " in" $00 xx xx " the" $00 xx xx
     " night" $00 xx xx 0A "Ex" $00 xx xx "chang" $00 xx xx "ing" $00 xx
     xx "glan" $00 xx xx "ces" $00 xx xx

   There may be more than one "SYLT" frame in each tag, but only one
   with the same language and content descriptor.

I tend to use Exiftool in Verbose mode to view tags in any type of file (it was originally for photos, hence the name, but it copes with all sorts of other media files now).

Andre

I'm surprised it's that old. And indeed, it's actually simpler to put the letter in the user-defined TXXX tag, though not the right way. I tried to read how the SYLT tag works and it seemed too complicated for me. Unless there is software that does all this work for itself, I won't dare mess with the Exiftool command line. Compuphase's SYLT Editor doesn't work on my computer for some reason.

Link to comment
Share on other sites

@TheMegaXandy in your sample file there are 3 lyrics tags: USLT (non synced text), SYLT (the tag Poweramp tries to read, non-standard header), TXXX LYRICS with text in LRC format (user defined text field with LYRICS name). Btw I added support to workaround possible non-standard header like in your file, but still it may fail for other files generated by that software as this file has non-compliant tags and I guess format just from that one file.

Also I added support for lyrics in the custom TXXX LYRICS, though this won't help files like your sample file as Poweramp still prefers SYLT tag first.

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...