Released 0.09.
Better support for whole directories. Specifically, the -f switch now works on directories, and the -X switch works with single files. Plus, added support for an output directory.
The other addition is the -i switch, which should be of interest to psyllium. It outputs a whole bunch of info, then exits. An example of the output:
INFO:
MPEG1 layer 3
13963 frames
44100 Hz
38.28125 frames per second
364.747755102041 seconds
6582738 bytes in file (144.37896673351 kbps)
6582123 bytes in MP3 frames (144.365477959608 kbps)
6078362 bytes of payload data (133.316505228103 kbps)
6581030 bytes of MP3 data (144.341505228103 kbps)
1093 bytes of padding (0.023972731504691 kbps)
615 bytes outside MP3 frames (0.0134887739024565 kbps)
Bitrate distribution:
032: 27,0
040: 8,0
048: 7,0
056: 14,0
064: 28,0
080: 187,0
096: 812,0
112: 1976,0
128: 3834,0
160: 4810,0
192: 2082,0
224: 163,0
256: 15,0
Smallest bitrate for CBR is 192
The filst few lines should be self-explanatory. All the bitrates are calculated slightly differently:
1st bitrate: bytes in file / second. Includes the tags and non-frame data
2nd: This is the "normal" bitrate, consisting of all the frame data
3rd: The amount of MP3 payload data, without the header, side info, or padding
4th: Payload data + header + side info. This is the theoretical minimum bitrate that mp3packer can pack to.
5th and 6th: How much is used up by padding and non-MP3 data, respectively
Then comes the bitrate distribution: The number of unpadded, padded frames at each bitrate (The example file didn't use padded frames)
Then comes the really interesting part: It calculates the smallest possible CBR bitrate. Like the GUI's approach, it is calculated by iterating through the bitrates and seeing if they will produce a CBR file. However, everything happens in memory and is optimized for just printing out info, so it goes MUCH faster.