22 November, 2010, 01:10:23 AM

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 formattracknumber[space]tracktitle.m4aand 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.

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

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.

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.

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.

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.

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.

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.

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.

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.wav2. Decode the result ALAC file.3. Check spectrogram of the result with softwares like sox.