Jump to content

Poweramp does not support embedded track information (CUESHEET)?


Recommended Posts

Hi guys,

I was surprised... AAC/Vorbis/FLAC, they can all hold internal track information (embedded cuesheet, I think in case of AAC it's called chapters), while being one single file. For me this is useful at times, for several reasons. It's nice to have a folder with files like at the bottom, also an advantage: embedded album art is only in that one monolithic file, saves some space.

To my regret I found, PA does only display one file upon playback and it does not even display the embedded album art.

Isn't that interesting for the dev, or maybe you heard there's plans to support embedded cue?

Thx guys

En Saga, Op. 9 (Järvi - GSO).m4a
In Memoriam, Op. 59 (Vänskä - LSO).m4a
Kullervo, Op. 7 (Segerstam - HPO).m4a
Lemminkäinen Suite, Op. 22 (Järvi - GSO).m4a
Luonnotar, Op. 70 (Järvi - GSO).m4a
Nightride and Sunrise, Op. 55 (Segerstam - HPO).m4a
Pohjolas Daughter, Op. 49 (Järvi - GSO).m4a
Symphony No. 01 (Blomstedt - SFS).m4a
Symphony No. 02 (Blomstedt - SFS).m4a
Symphony No. 03 (Blomstedt - SFS).m4a
Symphony No. 04 (Segerstam - HPO).m4a
Symphony No. 05 (Segerstam - HPO).m4a
Symphony No. 06 (Järvi - GSO).m4a
Symphony No. 07 (Segerstam - HPO).m4a
Tapiola, Op. 112 (Karajan - BPO).m4a
The Bard, Op. 64 (Järvi - GSO).m4a
The Dryad, Op. 45, No. 01 (Vänskä - LSO).m4a
The Oceanides, Op. 73 (Segerstam - HPO).m4a
The Wood Nymph, Op. 15 (Vänskä - LSO).m4a
Violin Concerto, Op. 47 (Salonen - PO).m4a


Edited by Squeller
Link to comment
Share on other sites

Hmm I'm not sure about AAC/ALAC chapters since I never used them on Poweramp, but I use embedded cue sheets fairly often and it does work, for FLAC, WavPack and TAK, they all work perfectly fine for me. Might be something specific to AAC chapters or something on your Poweramp settings...

One thing I noticed though is that if you are playing a track from any cue sheet split file (so not only embedded), if you go to the info/tags screen it is pretty lacking, only showing a few fields, but on the player screen it shows what it needs to

Link to comment
Share on other sites

29 minutes ago, ScarletNeko said:

Hmm I'm not sure about AAC/ALAC chapters since I never used them on Poweramp, but I use embedded cue sheets fairly often and it does work, for FLAC, WavPack and TAK, they all work perfectly fine for me. Might be something specific to AAC chapters or something on your Poweramp settings...

I have tried OPUS, AAC and now OGG Vorbis (lossless makes no sense on my smartphone) - e.g. in case of OGG it shows one file. Starting it, it shows a weird waveform, and there's no way to skip to a second track. Tapping somewhere on the waveform makes it stopping playback.

I'd say it's unsupported there.

Don't want to try or use mp3, too ancient format when it comes to saving space.

So, I am aware there are some tag related limitations on embedded CUEs. That's not my problem here. My problem is, I cannot even play tracks No. 2...n

I've attached a file for you to test. It's just <1 Min. excerpt per track. It has 3 tracks. Source is https://exmat.bandcamp.com/album/pas-de-point-e-p

Edited by Squeller
Link to comment
Share on other sites

18 minutes ago, ScarletNeko said:

You might want to try WavPack in hybrid mode in the meantime until Poweramp supports embedded cue sheets on these formats if it ever does.

Hi, OK, I have no knowledge about the quality of WV lossy. It seems cbr, right?
I also tried mpc now.
mpc and wv, both can be played, but PA treats them as just one track. How do you manage to navigate the internals tracks?

Edited by Squeller
Link to comment
Share on other sites

I've been using WavPack for a long time, really like it so I might be a bit biased. I dont use the hybrid mode too often, but to me they do sound better than the alternatives... I'll refrain from speaking too much about it else I'll invoke the wrath of someone for sure.

To encode, you can use "wavpack -h -x4 -b'2.0' input.file output.wv", that's the basic of it and will give a file of about 200kbps of bitrate (for 16bit 44.1kHz input), can't go lower than that.

On Poweramp, enable "Settings > Library > Scanner > Parse CUE files" (this will create the virtual folders with the split tracks)

And disable "Settings > Library > Lists > Show CUE disc image files" (this will hide the big unsplit file, leaving only the virtual folder)

Link to comment
Share on other sites

49 minutes ago, ScarletNeko said:
51 minutes ago, ScarletNeko said:

On Poweramp, enable "Settings > Library > Scanner > Parse CUE files" (this will create the virtual folders with the split tracks)

And disable "Settings > Library > Lists > Show CUE disc image files" (this will hide the big unsplit file, leaving only the virtual folder)


Awesome options, thanks! Unfortunately now it seems there is no lossy alternative for me here. Opus, Aac, mpc, they all don't work this way. In my scenario (casual listen to dynamics limited files, fb2k, vlevel dsp that is) I want a target bitrate around 120, ideally aac tvbr. wv at 200 is too much as for disk space.

PA definitely should support lossy file formats here. 

Link to comment
Share on other sites

31 minutes ago, andrewilley said:

@Squeller Just use a separate CUE sheet file with those file formats. I knew FLAC supported embedding them, and MP3 doesn't (well, not officially in the spec anyway) but not sure of the rest of the more esoteric ones. That's the great thing about "standards", there are so many to choose from...

I was already thinking about that. Problems. a) fb2k does not support creating external CUEs in its converter. b) I didn't find a way to batch export CUE from existing tracks. Batch operation is necessary, because I am talking about mass conversion, not just a few albums.

The existing tracks would ideally be AAC, Opus, MPC or Vorbis, my preference in that order.

Link to comment
Share on other sites

That is a bit janky but you can convert it with foobar and use "merge all tracks into a single file" option, this will merge the files and dont make any cue files

Then do the same process but convert to wav instead, and use the "create multi track file", this will make a wav+cue (since wav apparently doesnt support embedded cue sheets)

Then you open the cue file with a text editor and change the extension of the file it is looking for: .m4a or .aac instead of .wav

It is a 3 step process but it does work...

Link to comment
Share on other sites

13 hours ago, ScarletNeko said:

I think qaac can export cue sheets embedded on aac/m4a/mp4 files, but I never tried

Might he worth looking at, not around my pc now so I can't check, but I'm almost sure it can be done, and can be batched as well

Your solution the posting before, thx - I'd find a way for single files, but I'd need it in my batch processing...

I looked into qaac already, there seems to be no export option.

qaac 2.76
Usage: qaac [options] infiles....

"-" as infile means stdin.
On ADTS/WAV output mode, "-" as outfile means stdout.

Main options:
--formats              Show available AAC formats and exit
-a, --abr <bitrate>    AAC ABR mode / bitrate
-V, --tvbr <n>         AAC True VBR mode / quality [0-127]
-v, --cvbr <bitrate>   AAC Constrained VBR mode / bitrate
-c, --cbr <bitrate>    AAC CBR mode / bitrate
                       For -a, -v, -c, "0" as bitrate means "highest".
                       Highest bitrate available is automatically chosen.
                       For LC, default is -V90
                       For HE, default is -v0
--he                   HE AAC mode (TVBR is not available)
-q, --quality <n>      AAC encoding Quality [0-2]
--adts                 ADTS output (AAC only)
--no-smart-padding     Don't apply smart padding for gapless playback.
                       By default, beginning and ending of input is
                       extrapolated to achieve smooth transition between
                       songs. This option also works as a workaround for
                       bug of CoreAudio HE-AAC encoder that stops encoding
                       1 frame too early.
                       Setting this option can lead to gapless playback
                       issue especially on HE-AAC.
                       However, resulting bitstream will be identical with
                       iTunes only when this option is set.
-d <dirname>           Output directory. Default is current working dir.
--check                Show library versions and exit.
-A, --alac             ALAC encoding mode
-D, --decode           Decode to a WAV file.
--caf                  Output to CAF file instead of M4A/WAV/AAC.
--play                 Decode to a WaveOut device (playback).
-r, --rate <keep|auto|n>
                       keep: output sampling rate will be same as input
                             if possible.
                       auto: output sampling rate will be automatically
                             chosen by encoder.
                       n: desired output sampling rate in Hz.
--lowpass <number>     Specify lowpass filter cut-off frequency in Hz.
                       Use this when you want lower cut-off than
                       Apple default.
-b, --bits-per-sample <n>
                       Bits per sample of output (for WAV/ALAC only)
--no-dither            Turn off dither when quantizing to lower bit depth.
--peak                 Scan + print peak (don't generate output file).
                       Cannot be used with encoding mode or -D.
                       When DSP options are set, peak is computed
                       after all DSP filters have been applied.
--gain <f>             Adjust gain by f dB.
                       Use negative value to decrese gain, when you want to
                       avoid clipping introduced by DSP.
-N, --normalize        Normalize (works in two pass. can generate HUGE
                       tempfile for large piped input)
--drc <thresh:ratio:knee:attack:release>
                       Dynamic range compression.
                       Loud parts over threshold are attenuated by ratio.
                         thresh:  threshold (in dBFS, < 0.0)
                         ratio:   compression ratio (> 1.0)
                         knee:    knee width (in dB, >= 0.0)
                         attack:  attack time (in millis, >= 0.0)
                         release: release time (in millis, >= 0.0)
--limiter              Apply smart limiter that softly clips portions
                       where peak exceeds (near) 0dBFS
--start <[[hh:]mm:]ss[.ss..]|<n>s|<mm:ss:ff>f>
                       Specify start point of the input.
                       You specify either in seconds(hh:mm:ss.sss..form) or
                       number of samples followed by 's' or
                       cuesheet frames(mm:ss:ff form) followed by 'f'.
                       When negative value is given, instead of trimming,
                       specified amount of silence is prepended.
                         --start 4010160s : start at 4010160 samples
                         --start 1:30:70f : same as above, in cuepoint
                         --start 1:30.93333 : same as above
--end <[[hh:]mm:]ss[.ss..]|<n>s|<mm:ss:ff>f>
                       Specify end point of the input (exclusive).
--delay <[[hh:]mm:]ss[.ss..]|<n>s|<mm:ss:ff>f>
                       Same as --start, with the sign reversed.
                       Positive value will prepend silence.
                       (This option exists due to historical reason)
--no-delay             Compensate encoder delay by prepending 960 samples
                       of silence, then trimming 3 AAC frames from
                       the beginning (and also tweak iTunSMPB).
                       This option is mainly intended for resolving
                       A/V sync issue of video.
--num-priming <n>      (Experimental). Set arbitrary number of priming
                       samples in range from 0 to 2112 (default 2112).
                       Applicable only for AAC LC.
                       --num-priming=0 is the same as --no-delay.
                       Doesn't work with --no-smart-padding.
--gapless-mode <n>     Encoder delay signaling for gapless playback.
                         0: iTunSMPB (default)
                         1: ISO standard (elst + sbgp + sgpd)
                         2: Both
--matrix-preset <name> Specify user defined preset for matrix mixer.
--matrix-file <file>   Matrix file for remix.
--no-matrix-normalize  Don't automatically normalize(scale) matrix
                       coefficients for the matrix mixer.
--chanmap <n1,n2...>   Rearrange input channels to the specified order.
                         --chanmap 2,1 -> swap L and R.
                         --chanmap 2,3,1 -> C+L+R -> L+R+C.
--chanmask <n>         Force input channel mask(bitmap).
                       Either decimal or hex number with 0x prefix
                       can be used.
                       When 0 is given, qaac works as if no channel mask is
                       present in the source and picks default layout.
--no-optimize          Don't optimize MP4 container after encoding.
--tmpdir <dirname>     Specify temporary directory. Default is %TMP%
-s, --silent           Suppress console messages.
--verbose              More verbose console messages.
-i, --ignorelength     Assume WAV input and ignore the data chunk length.
--threading            Enable multi-threading.
-n, --nice             Give lower process priority.
--sort-args            Sort filenames given by command line arguments.
--text-codepage <n>    Specify text code page of cuesheet/chapter/lyrics.
                       Example: 1252 for Latin-1, 65001 for UTF-8.
                       Use this when bogus values are written into tags
                       due to automatic encoding detection failure.
-S, --stat             Save bitrate statistics into file.
--log <filename>       Output message to file.

Option for output filename generation:
--fname-from-tag       Generate filename based on metadata of input.
                       By default, output filename will be the same as input
                       (only different by the file extension).
                       Name generation can be tweaked by --fname-format.
--fname-format <string>   Format string for output filename.

Option for single output:
-o <filename>          Specify output filename
--concat               Encodes whole inputs into a single file.
                       Requires output filename (with -o)

Option for cuesheet input only:
--cue-tracks <n[-n][,n[-n]]*>
                       Limit extraction to specified tracks.
                       Tracks can be specified with comma separated numbers.
                       Hyphen can be used to denote range of numbers.
                       Tracks non-existent in the cue are just ignored.
                       Numbers must be in the range 0-99.
                         --cue-tracks 1-3,6-9,11
                           -> equivalent to --cue-tracks 1,2,3,6,7,8,9,11
                         --cue-tracks 2-99
                           -> can be used to skip first track (and HTOA)

Options for Raw PCM input only:
-R, --raw              Raw PCM input.
--raw-channels <n>     Number of channels, default 2.
--raw-rate     <n>     Sample rate, default 44100.
--raw-format   <str>   Sample format, default S16L.
                       Sample format spec:
                       1st char: S(igned) | U(nsigned) | F(loat)
                       2nd part: Bitwidth
                       Last part: L(ittle Endian) | B(ig Endian)
                       Last part can be omitted, L is assumed by default.
                       Cases are ignored. u16b is OK.

Options for CoreAudio sample rate converter:
                       Arguments followed by '=' are optional.
                       First argument before comma is complexity from
                       one of the following:
                         line: linear (worst, don't use this)
                         norm: normal
                         bats: mastering (best, default)
                       Second argument after comma is integer quality
                       between 0-127 (default 0).

Tagging options:
 (same value is set to all files, so use with care for multiple files)
--title <string>
--artist <string>
--band <string>       This means "Album Artist".
--album <string>
--grouping <string>
--composer <string>
--comment <string>
--genre <string>
--date <string>
--track <number[/total]>
--disk <number[/total]>
                      By default, iTunes compilation flag is not set.
                      --compilation or --compilation=1 sets flag on.
                      --compilation=0 is same as default.
--lyrics <filename>
--artwork <filename>
--artwork-size <n>    Specify maximum width or height of artwork in pixels.
                      If specified artwork (with --artwork) is larger than
                      this, artwork is automatically resized.
--copy-artwork        Copy front cover art(APIC:type 3) from the source.
                      When --artwork is also given, this option is ignored.
--chapter <filename>
                      Set chapter from file.
--tag <fcc>:<value>
                      Set iTunes pre-defined tag with fourcc key
                      and value.
                      1) When key starts with U+00A9 (copyright sign),
                         you can use 3 chars starting from the second char
                      2) Some known tags having type other than UTF-8 string
                         are taken care of. Others are just stored as UTF-8
--tag-from-file <fcc>:<path>
                      Same as above, but value is read from file.
--long-tag <key>:<value>
                      Set long tag (iTunes custom metadata) with
                      arbitrary key/value pair. Value is always stored as
                      UTF8 string.


Link to comment
Share on other sites

I found, that tag.exe (which I use since the beginning of the universe, and the development is dead) of CASE/Neil Popham from the HA forum - it does not support ogg/mpc/opus/aac(expectedly). A solution would be:

1.: Encode my music to flac, export all CUESHEETs in batch via tag.exe, batch replace the file names extension inside the CUESHEET files
2. Encode my music to desired lossy format with similar file names


I loved the idea of single file containers, which hold the track markers, tags and album art. But it's still a long way I guess...

Link to comment
Share on other sites

You could use the Export feature in MP3Tag or Tagscanner, assuming they can read all the exotic audio file formats.

For example, this crude little batch script for Mp3Tag's 'Export' option creates a text file containing each selected track's filename followed by its embedded CUE contents.

$loop(%_filename_ext%)%_filename_ext% --- %cuesheet%

I'm not very familiar with its scripting options, but even that single file output should be pretty trivial to parse eternally into multiple separate CUE files. And I'm sure it wouldn't be too hard to write something better.


Link to comment
Share on other sites

I just encoded a song to aac TVBR 127 and the resulting file has about 340kbps, 10mb

Wavpack at the minimum can go to about 200kbps, same song has 5.9mb

Now aac ABR at 128kbps really had about 128kbps, with a file of 3.9mb

TVBR 91 also has about 200kbps and gave a file of 6mb

To get a bitrate of about 128kbps using TVBR you need to use TVBR 63

You could also try lossyWAV + FLAC, TAK or WavPack (which are all variable bitrate btw) using the portable or extra portable presets. This same song in lossyWV and lossyFLAC had 10mb, lossyTAK had 9.6mb. This is all possible to use with Foobar2000 converter including all its capabilities.

Sorry if that sounds rude, it's not my intention, but is that difference big enough to disrupt things? Maybe you could get away with an album or two less? I'm constantly out of storage as well but I still have a lower threshold and would rather be missing some songs than going lower bitrate than a certain amount... Plus with wavpack you can get the convenience of having one single file with the cue sheet and album arts embedded.

Again sorry if that sounds bad, it really is not the intention.


Encoders used: qaac64.exe v2.76 (64bit), wavpack.exe v5.5.0 (64bit), flac.exe v1.4.1 (64bit), takc.exe 2.3.3 (32bit), lossyWAV.exe v1.4.2 (??bit)

WavPack was done with -h -x4 -b'128', FLAC was done with --best, TAK was done with -p5m, lossyWAV was done with --quality portable --analyses 4 --shaping hybrid

Foobar2000 version 2.0 beta10, 64bit (just to confirm things do work on its converter)

The song used was "Egao Sing a Song" from BanG Dream's "Hello, Happy World!" Group. Duration of 4m9s, the 16bit 44.1kHz 2ch LPCM of it has 42mb with a bitrate of, obviously, 1411.2kbps constant

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