There is a bug in FAAC 1.24 (and the CVS version from what I see) that causes it to not add track number tags to m4a files for tracks 08 and 09.

It's caused by the code in frontend/main.c which uses %i to read in the value. %i will try to intelligently decide if the number if hexadecimal, octal, or decimal/base 10. The leading 0 in track numbers will make it choose octal. The digits 8 and 9 are not valid in octal so the program isn't reading them.

To fix this, you can modify the source code. Lines 610 and 613 of frontend/main.c need to use %d and not %i. I've tested this fix and it works well for me.

Basically, these lines (609-614) in main.c:

CODE

       case TRACK_FLAG:
           sscanf(optarg, "%i/%i", &trackno, &ntracks);
           break;
       case DISC_FLAG:
           sscanf(optarg, "%i/%i", &discno, &ndiscs);
           break;


Should be the following:

CODE

       case TRACK_FLAG:
           sscanf(optarg, "%d/%d", &trackno, &ntracks);
           break;
       case DISC_FLAG:
           sscanf(optarg, "%d/%d", &discno, &ndiscs);
           break;


I'm working with the developers trying to get this change in, but I'm not sure how soon it will be. It is a very simple fix--4 characters. The bug is already in the bug tracker at SourceForge. I realize it isn't easy if you don't know how to edit and compile code from scratch. At least this provides a fix for some until that change is made.