All right, I think this is good enough. I just released version 1.00 of mp3packer, freshly rewritten in OCaml. It works a bit differently from the Perl version. * Full-directory parsing is no longer available. This will be fixed in the near future. * Ditto for the "-X" delete input file option. * No runtimes or Perls or extra downloads required. * The "-m" switch is no longer needed or supported. The new version reads the file once (like the old "-m" mode) but uses about the same amount of memory as the 2-pass normal mode. * The arguments can no longer be tacked together. In the Perl version, "-st" meant "-s -t". Now "-st" will throw an error. * New "-debug" switch for... debugging. Use "-debug all" to print out heaps o' data. Also, the "-b" switch has been modified slightly. If an exact bitrate is given (like "-b 128") the program will change the smallest bitrate per frame to allow a more exact bitrate. For example "-b 128" will limit the first frame to an unpadded 128kbps frame, wheras the second frame will be limited to a padded 128kbps frame. The result of this is that if all frames are the smallest possible, it follows the standard CBR dithering pattern. If you give a number to "-b" which is one more than a valid bitrate, then the smallest bitrate would be a padded frame of that bitrate. All other bitrates round up to the next highest unpadded bitrate. For example:130 -> Unpadded 160 129 -> Padded 128 128 -> Unpadded, padded, padded... 128 (depending on frame) 127 -> Unpadded 128 126 -> Unpadded 128 113 -> Padded 112 112 -> Unpadded, padded padded, unpadded... 112 One of the results of this is that the highest bitrate possible is actually obtained with "-b 321" which results in a bitrate of 320.03 kbps.ALSO NOTE: The Perl versions were public domian, the new versions will be GPL. This means it can still be distributed with closed-source applications like psyllium's winmp3packer, but it should point out the copyright holder (me!) and contain a copy of the GPL.