Skip to main content

Topic: QAAC: discussion, questions, feature requests, etc. (Read 357514 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • twinspex
  • [*]
QAAC: discussion, questions, feature requests, etc.
I have been producing my own modified version of REACT for use in ripping my CDs and have nearly finished the task. I wanted to be able to produce iTunes compatible and tagged .m4a files for individual tracks from the react image.cfg script having ripped to a one-big-file album image with cuefile. I managed to do this with the NeroAAc Encoder, acdir and atomic parsley. I then came across QTAACENC and QAAC which looked very promising as they allow use of the Quicktime dlls.

I totally failed to get either encoder working with ACDIR passing the split wave files into the encoder via STDIN in the analogous manner to that I successfully managed with the Nero encoder. No great loss though because I found QAAC alone can process a OBF wave image and associated cuefile into separate .m4a tracks - and it even tags the .m4a filees with the information taken from the cuefile. Fantastic!

I am left with a problem though. When processing from a cuefile QAAC outputs the track files in a format
tracknumber[space]tracktitle.m4a
and this cannot be changed. I like my files to be formatted thus:
tracknumber-tracktitle.m4a.
I think I am a competent enough batch file programmer to handle the necessary file rename (just!  ), but the problem arises with various artists compilations. I really would like to use the naming format:
tracknumber-trackartist-tracktitle.m4a in such an instance.

I have looked online for a commandline based rename utility that would read the artist field from the embedded tag and alow me to use that field to rename the files QAAC produces. Unfortunately I haven't found one. (I know I could use something like mp3tag to do the job from a GUI later, but I would like to be able to do it as part of the REACT-based rip operation. I have looked at using the cuefile to extract track based wave files, which come out correctly named, and then to encode the track based wave files without using the cuefile. This results in no embedded tags and quite complicated scripting.)

I have no idea how difficult it would be to implement the output of m4a files to a specified filename format with QAAC cuefile processing, but if it is possible, please could the author please consider this as an enhancement request? I had a look at the source code but it is way beyond my skills to make myself an amended version! Thank you very much in advance.

(By the way I plan to use the NeroAAcTag utility to add cover art and albumArtist and compilation meta-user tags to the QAAC encoded .m4a files to finish the ripping task. I will be using OBF flac with embedded cover art and cuefile for archiving, and m4a for day to day usage).

Incidentally, if one uses QAAC cuesheet processing to produce .m4a files and then inspects the embedded tags with the neroAActage.exe -meta-list command on *.m4a I have noticed that the tools field may have a bug. On a three track CD single, using --ignorelength and --tvbr=125, the note of the tvbr setting is repeated one more time in the field for every successive track in the cuesheet. I don't hink this is a problem with the neroAActag.exe utility because the same repeated data is visible with the Audio Shell v1.3.5 utility! This problem is not a showstopper so far as I can see, but I haven't tried to do a sizable encoding task, and I wondered if it might cause a field overflow in such a situation.

example from Audio Shell v1..3.5 for the m4a file produced as track "03 Tracktitle" from the cuesheet:
Encoder: qaac 0.20, Quicktime 7.6.8 TVBR Quality 125,  TVBR Quality 125,  TVBR Quality 125,

I am using windows XP SP3 (up to date fixes), QAAC 0.20 and Quicktime 7.6.8 The quality setting was merely an experiment.

To bring a verbose post to an end. Thank you for producing this utility. I will find a workaround if you can't help. 

  • nu774
  • [*][*][*][*][*]
  • Developer
QAAC: discussion, questions, feature requests, etc.
Reply #1
Hi. I'm author of qaac.
I'm a Japanese, so please excuse my poor English.
Quote
I have noticed that the tools field may have a bug. On a three track CD single, using --ignorelength and --tvbr=125, the note of the tvbr setting is repeated one more time in the field for every successive track in the cuesheet.

Thank you to let me know that. I fixed the bug, and released 0.21.
Now I have opened qaac's repository at github, therefore you can use it's built-in issue tracker, or you can just email me.
Quote
I have no idea how difficult it would be to implement the output of m4a files to a specified filename format with QAAC cuefile processing, but if it is possible, please could the author please consider this as an enhancement request?

This is not too difficult, but will take some time. I will consider of it.
For now, I cited your request in the github as a "feature request", so I won't forget about it

  • nu774
  • [*][*][*][*][*]
  • Developer
QAAC: discussion, questions, feature requests, etc.
Reply #2
Released 0.22 with new --fname-format option.
The spec is fairly simple and not rich, but I hope you'll like it.
Please read usage page for details.

  • twinspex
  • [*]
QAAC: discussion, questions, feature requests, etc.
Reply #3
Thank you for your efforts. I will try out v0.22 and I will give you feedback.

Your English is infinitely better than my Japanese!  But courtesy of Google translate - Arigatō!

All the best,
Twinspex

  • twinspex
  • [*]
QAAC: discussion, questions, feature requests, etc.
Reply #4
I just found out I don't have permission to edit my last post  , so here is the revised version! 

Thank you for your efforts.

I downloaded v0.23 and here is some feedback after a quick initial test:
The --fname-format option does just what I wanted
--fname-format ${tracknumber}-${artist}-${title}
seems to work fine. I can use the internal REACT2 variable @various@ as a flag for my REACT-image.cfg script to determine whether to use the above for a Various Artists compilation, or to use
--fname-format ${tracknumber}-${title} format for a single artist cd rip.
(For the benefit of others, the .m4a extension is added automatically).

I will be doing some more extensive rips in the future with greater file numbers and will give more feedback then, but for the moment I am happy to report that the tools/encoder tag problem reported earlier seems to be resolved.

It would be nice to be able to set the compilation tag from the cuesheet, but I can see this would not be an easy thing to do unless there were a specific "REM COMPILATION TRUE" or "REM COMPILATION FALSE" line in a standard EAC cuesheet, the reason being the wide variation in how the PERFORMER field is set for compilations - Various Artists, Various, VA, and so on, which would make the program logic to recognise a compilation rather hit and miss.

OT: I actually use "@" to indicate a various artists in cuesheets, folder names and tags because I wanted to keep folder names short due to display problems with long folder names on now-obsolete mp3 devices. It has caused me no end of batch file rewrites and enforced workarounds. Some day I will get around to retag and rename compilations as "VA" - always assuming that a Pop Group with that as a name does not turn up! It is a shame that seemed to be no particular standard when I started ripping CDs when EAC first became available. I recount this as an advice to anyone just starting out with ripping a CD collection - try to find out what the established standards are and stick to them, and you will save yourself from problems in the future.

It would be nice to be able to pick up and embed a cover thumbnail jpeg from the source folder (if present). Expecting the file to be called cover.jpg or folder.jpg might make the task simpler. I don't see this as a top priority request though as neroAactag.exe can do this task when run from a REACT2mod REACT-image.cfg or REACT-track.cfg script after the QAAC encoding.

I am also keen to include apple lossless (ALAC) in the modified REACT scripts as an option now I have seen that QAAC supports it.
In general I prefer to look at at using the Quicktime DLLs via QAAC because of the Apple encoder support for gapless playback on supporting aac players, which I believe is not currently supported by the Nero AAC encoder. Also, it is great that because of QAAC I no longer have to use itunesencode.exe and have iTunes installed and popping up maximised whenever I do an encode.

Your English is infinitely better than my Japanese!  But, courtesy of Google translate - Arigatō  !

All the best,
Twinspex

  • Anakunda
  • [*][*][*][*][*]
QAAC: discussion, questions, feature requests, etc.
Reply #5
Hello,

can I choose a better level of compression for ALAC mode, if I simply state qaac -A -o out.m4a in.wav, I get a pretty big file, almost as big as wav.
I believe apple lossless codec can compress better, but didnot figure out how to change the level.

  • mixminus1
  • [*][*][*][*][*]
QAAC: discussion, questions, feature requests, etc.
Reply #6
I don't think anyone can figure out how to change the level.

AFAIK, Apple doesn't expose a compression level parameter in their ALAC encoder.  For instance, even under OS X with XLD, which has direct access to CoreAudio, there's no setting for compression level.

IME, ALAC usually compresses comparably to FLAC -5, maybe -4, so if you're getting an ALAC file that's close to the original WAV, I would guess that it's just some material that's difficult to compress, like metal or industrial music with lots of strong, uncorrelated high-frequency content.
"Not sure what the question is, but the answer is probably no."

  • Anakunda
  • [*][*][*][*][*]
QAAC: discussion, questions, feature requests, etc.
Reply #7
OK thanks. Dealing with QAAC I wanted yet to know if the writting library for AAC is the very same as iTunes UI uses since I can see different strings in the metadata (QuickTime vs. iTunes), and as last thing if theres conversion table between Nero and QAAC true VBR quality factor or between average bitrate and tvbr value.

  • nu774
  • [*][*][*][*][*]
  • Developer
QAAC: discussion, questions, feature requests, etc.
Reply #8
It should be the same at the AAC bitstream level (that is, you obtain the same audio).

However, MP4 container (where metadata or something go) is written in a different way.
As far as I know, there's no documented way to directly write AAC bitstream into MP4 container via QuickTime. AudioFile API is not usable on Windows.
Therefore, qaac uses opensource mp4v2 library for the work.

About Nero/QuickTime comparison...No.
The topic for qtaacenc might helps you.

  • dpr
  • [*]
QAAC: discussion, questions, feature requests, etc.
Reply #9
Hi,

I'd like to request that support is added to all artwork to be embedded into the m4a file.  I know this it is possible to have artwork in the file as React2 is able to use itunesencode to add artwork. I'm assuming that the quicktime apis support this.

Thanks
Dpr

  • nu774
  • [*][*][*][*][*]
  • Developer
QAAC: discussion, questions, feature requests, etc.
Reply #10
Hi,
Thanks for suggestion.
Technically, qaac uses not QuickTime but an open source mp4v2 library for MP4 muxing (of course, AAC encoding is done with QuickTime).
Artwork support is possible through the library, but I will need some time to implement that.
  • Last Edit: 09 September, 2011, 12:42:12 PM by db1989

  • dpr
  • [*]
QAAC: discussion, questions, feature requests, etc.
Reply #11
Thanks for considering the request
  • Last Edit: 09 September, 2011, 12:42:16 PM by db1989

  • ShotCaller
  • [*]
QAAC: discussion, questions, feature requests, etc.
Reply #12
Does anyone know why QAAC comes with speex for resampling? Is there any advantage or situation where it should be used over the native resampler?

  • subinbar
  • [*]
QAAC: discussion, questions, feature requests, etc.
Reply #13
Just a heads up - looks like qaac now reorders multichannel files correctly for QT 7.7 so you don't have to bother with older DLL's:
http://sites.google.com/site/qaacpage/news/qaacrelease058

QAAC: discussion, questions, feature requests, etc.
Reply #14
Just a heads up - looks like qaac now reorders multichannel files correctly for QT 7.7 so you don't have to bother with older DLL's:
http://sites.google.com/site/qaacpage/news/qaacrelease058


[qaac] release 0.61
Sorry for inconvenience, fixed bugs in previous releases.
* Channel remapping of 0.58 was insufficient for 7.1ch, and fixed now. 7.1 audio has two similar mapping (L R C LFE Ls Rs Lc Rc) and (L R C LFE Ls Rs Rls Rrs), and only the latter with explicit channel mask was working.

http://sites.google.com/site/qaacpage/news

  • subinbar
  • [*]
QAAC: discussion, questions, feature requests, etc.
Reply #15
nu774 - is it possible to use qaac in dbPowerAmp?

nevermind - figured it out

Code: [Select]
-V 45 -o "[outfile]" - --no-optimize


That works well for about 96kbps.
  • Last Edit: 10 September, 2011, 03:43:23 AM by subinbar

  • nu774
  • [*][*][*][*][*]
  • Developer
QAAC: discussion, questions, feature requests, etc.
Reply #16
Does anyone know why QAAC comes with speex for resampling? Is there any advantage or situation where it should be used over the native resampler?


Hi,
Personally I don't think QuickTime's native resampler has pretty good quality. It seems that on QuickTime 7.7 it's still unchanged.
I once picked secret rabbit code resampler, and it's quality was decent (in exchange for very slow resampling speed). Then I dropped SRC due to license issue (qaac cannot choose GPL), and picked speex resampler.
It seems that speex resampler is not as good as SRC in quality, but it's acceptable (still better than QT native) and runs fast.

However, I don't wanna force this on you. Therefore I made it optional so that you can always choose which resampler to use, and I think you'd better check and see resampler quality by yourself:
1. Encode some sweep sample with qaac like this:
  qaac -A --rate=44100 sweep96k.wav
2. Decode the result ALAC file.
3. Check spectrogram of the result with softwares like sox.

  • lvqcl
  • [*][*][*][*][*]
  • Developer
QAAC: discussion, questions, feature requests, etc.
Reply #17
According to my tests, QT resamples with different quality for lossless and lossy encoding. I encoded a sweep sine file with the following command lines:

qaac -A --rate=44100 sweep96.wav -o A.m4a
qaac --cbr 320 --rate=44100 sweep96.wav -o cbr320.m4a

  • nu774
  • [*][*][*][*][*]
  • Developer
QAAC: discussion, questions, feature requests, etc.
Reply #18
According to my tests, QT resamples with different quality for lossless and lossy encoding. I encoded a sweep sine file with the following command lines:

qaac -A --rate=44100 sweep96.wav -o A.m4a
qaac --cbr 320 --rate=44100 sweep96.wav -o cbr320.m4a


Oh, I didn't know that. Thanks to let me know.

  • ShotCaller
  • [*]
QAAC: discussion, questions, feature requests, etc.
Reply #19
Perhaps the quality is better, but I am having a problem with Speex when I use this command in Subsonic streamer

qaac -V 127 --adts --no-optimize -o - %s

For some reason this is failing when streaming 24 bit 96 kHz FLAC, and yes, I do have libFLAC and libsndfile.

  • lvqcl
  • [*][*][*][*][*]
  • Developer
QAAC: discussion, questions, feature requests, etc.
Reply #20
When qaac uses Speex it creates temporary file with resampled content (and it takes time) and then encodes it to AAC.

  • nu774
  • [*][*][*][*][*]
  • Developer
QAAC: discussion, questions, feature requests, etc.
Reply #21
[qaac] release 0.63

Fixed problem in --downmix option. Thanks to b66pak, as always, for reporting this.

This was found only when you specified --downmix to downmix multichannel source into mono/stereo, and source contains explicit channel mask (for WAV files, this means that it's in extensible format).

Also I have uploaded fixed qaac_sample.reg, which contains qaac.reg. Previous one didn't work for HE encoding.

  • Boulder
  • [*][*]
QAAC: discussion, questions, feature requests, etc.
Reply #22
While testing qaac 0.91 with commandline

Code: [Select]
eac3to.exe "d:\temp\test.dts" stdout.wav | qaac.exe --tvbr 87 --quality 2 --ignorelength - f:\temp\captures\test_qaac.m4a


I got this error:
Code: [Select]
initializing QTML...done

qaac 0.91, QuickTime 7.7.0

<stdin>
5.1 (L R C LFE Lsd Rsd) -> 5.1 (C L R Ls Rs LFE)

01:58:36.992 (9.0x)
341615616/-1 samples processed in 13:12.360
Overall bitrate: 480.431kbps
7099/7099 chunks written (optimizing)

test_qaac.m4a
_wfopen: f:\temp\captures\test_qaac.m4a: No such file or directory


It seems that the AAC file is encoded as stdin.m4a in the eac3to directory but was never moved to the final destination and renamed.

  • lvqcl
  • [*][*][*][*][*]
  • Developer
QAAC: discussion, questions, feature requests, etc.
Reply #23
use -o switch for output filename:

qaac.exe --tvbr 87 --quality 2 --ignorelength - -o f:\temp\captures\test_qaac.m4a

  • Boulder
  • [*][*]
QAAC: discussion, questions, feature requests, etc.
Reply #24
Thanks!