Here's what I did to get an iTunes-Lame Version with LAME 3.98. Sorry for repeating things that are already written somewhere else on hydrogenaudio, but a few things are new, I hope ... The idea is to have all informations in one text.
1.) iTunes-LAME with LAME 3.98 for users who don't want to compile the sources themselves
- Get iTumes-LAME 2.0.9 (34)
here.
- Get LAME 3.98 compiled for Mac OS by hydrogenaudio member 'krmathis'
here.
- Replace the LAME binary in the iTunes-LAME package (Right-Click on iTunes-LAME -> show package content -> Replace contents/Resources/lame)
- Create an Alias of "Import with LAME....scpt" (Replace contents/Resources/Import with LAME....scpt) and move it to "/Library/iTunes/Scripts". Most likely you will have to create this folder.
- Done.
Problem: While importing the progress bar will jump wildly and the display of the remaining time is shifted and probably not readable at all.
Cause: LAME 3.98 displays a histogram of bitrates when encoding with VBR. The output of this histogram is not expected by iTunes-LAME.
Solution: Add ' --nohist' to the encoding options. This won't change the encoding but supresses the output of the histogram.
2.) iTunes-LAME with LAME 3.98 for those who want to use xcode to compile iTunes-LAME
- Get the iTunes-LAME source
here.
- Get LAME 3.98 compiled for Mac OS by hydrogenaudio member 'krmathis'
here and replace the lame binary in the lame-3.97 folder.
- Solve the histogram problem:
In 'BTEncoderController.m' find the code where the string with LAME options is built:
CODE
NSMutableArray *arguments=[NSMutableArray arrayWithCapacity:1];
[arguments setArray:[options componentsSeparatedByString:@" "]];
// [arguments addObject:@"--disptime"];
// [arguments addObject:@"0.5"];
[arguments addObject:source];
Add the '--nohist' option (in the example below I've also un-commented the '--disptime' option and set it to 1 second):
CODE
NSMutableArray *arguments=[NSMutableArray arrayWithCapacity:1];
[arguments setArray:[options componentsSeparatedByString:@" "]];
[arguments addObject:@"--disptime"];
[arguments addObject:@"1.0"];
[arguments addObject:@"--nohist"];
[arguments addObject:source];
- Solve the version problem:
Problem: iTunes-LAME will propably not display the LAME version in the about box.
Cause: iTunes-LAME searches for "LAME 32bits version " when querying the version. If LAME is not 32bit (e.g. 64bit), the search will fail.
Solution: Replace the original code in 'BTEncoderController.m'
CODE
NSScanner *versionScanner=[NSScanner scannerWithString:string];
[versionScanner scanString:@"LAME 32bits version " intoString:nil];
[versionScanner scanUpToString:@" " intoString:&versionString];
with
CODE
NSScanner *versionScanner=[NSScanner scannerWithString:string];
[versionScanner scanUpToString:@"version " intoString:nil];
[versionScanner scanString:@"version " intoString:nil];
[versionScanner scanUpToString:@" " intoString:&versionString];
That's it.
Cheers,
Thomas,
trying to write a useful first post ...