1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; I; Linux 2.2.12-20 i686) [Netscape]">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>LAME Changelog</title>
</head>
<body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" alink="#bbbbbb" link="#888888" vlink="#555555">
<center>
<h1>History</h1>
</center>
Starting with LAME 3.0: <br>
<font color="#ff0000">red = features and bug fixes which
affect quality</font> <br>
<font color="#3366ff">blue = features and bug fixes which
affect speed</font> <br>
black = usability, portability, other
<hr>
<hr>
<h3>LAME 3.98.4 March 22 2010</h3>
<ul>
<li>Joseph Flynn
<ul>
<li>Improvements for LAME DirectShow filter:
<ul>
<li>Added support for the DirectShow IAMStreamConfig Interface to the LAME encoder filter output pin.
</li>
<li>Modified the DirectShow filter registration section so that the LAME Encoder filter is correctly registered in the Audio Compressors filter category. This will allow third-party encoding applications using the DirectShow System Device Enumerator Interface to correctly detect the LAME encoder when querying the Audio Compressors filter group.
</li>
<li>Modified the filter registration information so that the MP3 audio subtype is correctly reported as being supported on the encoder output pin. This will allow third-party encoding applications using the DirectShow IFilterMapper2 Interface to recognize that the LAME encoder supports MP3 output.
</li>
<li>Altered the Filter Merit Value that was being used when the filter was registered so that it is now using the standard DirectShow compressor filter merit value of MERIT_DO_NOT_USE (0x200000). Previously, the filter was being registered using a value of MERIT_SW_COMPRESSOR (0x100000), which was at a lower priority (i.e. worse priority) than MERIT_DO_NOT_USE. This prevented the LAME Encoder filter from being selected for use by some third-party encoding applications.
</li>
<li>Added code to calculate the frame length of the audio frames used for the nBlockSize element of the WAVEFORMATEX output structure. Previously this value was simply hard-coded to 1.
</li>
</ul>
</li>
</ul>
</li>
<li>Robert Hegemann
<ul>
<li><font color="#ff0000">Fix for Bugtracker item <i>[ 2973877 ] A problem regarding the new drain code</i></font>
</li>
</ul>
</li>
</ul>
<h3>LAME 3.98.3 February 27 2010</h3>
<ul>
<li>Rogério Brito:
<ul>
<li>Update the debian packaging for the new release.
</li>
</ul>
</li>
<li>Robert Hegemann
<ul>
<li>The <b>ignore-tag-errors</b> switch had no effect when embedding album art, fixed.</li>
<li>Library API change: lame_decode functions are now obsolete but still present, please use hip_decode instead.
The reason for this change is: lame_decode functions use a single global variable within the library
to store decoder setup, hip_decode functions don't.
The encoder now uses hip_decode internally and it is now possible to use <b>clipdetect</b>
feature while reencoding mp3 to mp3.
</li>
<li>Workaround for FFMPEG bug, which uses to call lame_encode_flush more than once in a loop.
</li>
<li>Windows: program icon and version info added (when building with VC9)
</li>
<li>Fix for Bugtracker item <i>[ 2688413 ] lib name problem in Microsoft Visual Studio 6</i>
</li>
<li>Fix for Bugtracker items <i>[ 2051870, 2423650, 2928684 ] several small documentation issues</i>
</li>
<li>Fix for Bugtracker item <i>[ 2723518 ] resampling in 3.98 and 3.99alpha</i>
</li>
<li>Fix for Bugtracker item <i>[ 2891879 ] Because of Windows API change, there was a problem with the <b>prority</b> switch.</i>
</li>
<li>Fix for Bugtracker item <i>[ 2893101 ] Access Violation in BladeMP3EncDLL if UNICODE was defined.</i>
</li>
<li>Fix for Bugtracker item <i>[ 2887359 ] Wrong length in ID3v2 tag when num_samples isn't set</i>
</li>
<li>Fix for Bugtracker item <i>[ 2872590 ] LameTAG: "Music length" missmatch in LAME 3.98</i>
</li>
<li>Fix for Bugtracker item <i>[ 2824296 ] wrong enc_padding value in LAME 3.99a and 3.98.3 (from CVS)</i>
</li>
<li><font color="#ff0000">Revisiting the FhG decoder problem (FhG V1.5 build 50, ships with MS Windows):
enabling the new-drain-code seems to solve that issue better, than restricting the buffer size (see below: 3.98 beta 1, May 16 2007).</font>
</li>
<li>Patch submitted by Bernhard Doebler, tracker item <i>[ 2807676 ] Error when building Lame with NASM support</i>
</li>
<li>Patch submitted by Mancuso Raffaele, tracker item <i>[ 2406420 ] compile lame_enc.dll under cygwin</i>
</li>
</ul>
</li>
</ul>
<h3>LAME 3.98.2 September 22 2008</h3>
<ul>
<li>Robert Hegemann</li>
<ul>
<li>Fix for Bugtracker item <i>[ 2123206 ] lame 3.98.1 segfaults with -h</i>
</li>
</ul>
</ul>
<h3>LAME 3.98.1 September 21 2008</h3>
<ul>
<li>Rogério Brito:
<ul>
<li>More fixes for the abx tool for Unix systems:
<ul>
<li>Plugged a memory leak.</li>
<li>Fixed an endianness problem: users of big-endian machines
can now do abx tests.</li>
</ul>
</li>
<li>Fixed history's HTML doctype</li>
<li>
Fixed history so that it <em>finally</em> validates
at <a href="http://validator.w3.org/">W3's validator</a>
</li>
<li>
Fixed compilation of frontend <code>mp3rtp.c</code>. Thanks to Kris Karas.
Bugtracker item <i>[ 2015432 ] mp3rtp missing uint16_t in lame 3.98</i>
</li>
</ul>
</li>
<li>Robert Hegemann:
<ul>
<li>Fix for Bugtracker item <i>[ 2031704 ] --id3v1-only didnt work in 3.98-final</i></li>
<li>Fix for Bugtracker item <i>[ 2022035 ] encoder_padding value and resampling</i></li>
<li>Fix for Bugtracker item <i>[ 2029282 ] Frequency filtering API broken in 3.98</i></li>
<li>Fix for Bugtracker item <i>[ 2039648 ] potential memory leak in parse_args() function in parse.c</i></li>
<li>Fix for some tagging issues:
<ul>
<li>Made search for ID3v1 genres more sloppy, abbrevations may match more often as some simple typos.
Examples:<ul><li>--tg "Alt. Rock" matches genre "Alternate Rock"</li>
<li>--tg "acapela" matches genre "A Cappella"</li>
</ul></li>
<li>New switch --pad-id3v2-size "n": adds ID3v2 tag with n padding bytes.</li>
</ul></li>
</ul>
</li>
</ul>
<h3>LAME 3.98 July 4 2008</h3>
<ul>
<li>Anton Sergunov:
<ul>
<li>Frontend DirectShow: enabling LAME dshow filter to connect to "File Writer Filter".
</li>
</ul>
</li>
<li>Rogério Brito:
<ul>
<li>Updates to the Debian Packaging</li>
<li>Fixes to the abx tool for Unix systems (so that more people
can evaluate LAME's compression against the original files)</li>
</ul>
</li>
<li>Alexander Leidinger:
<ul>
<li>explicitely link the math lib to the lame lib</li>
<li>add switch to disable the use of the compaq optimized math lib</li>
</ul>
</li>
</ul>
<h3>LAME 3.98 beta 8 April 13 2008</h3>
<ul>
<li>Robert Hegemann:
<ul>
<li>LAME now accepts a floating point value in the range [0,...,10[ as VBR quality setting, like <b>-V5.678</b>
</li>
<li>Found and fixed some suspicious code in additive masking calculation for VBR-NEW
</li>
<li>bug-fix:<font color="#ff0000">experimental code was defaulted by accident for VBR-NEW</font>
</li>
<li>fix for some endianess problem on big-endian machines
</li>
</ul>
</li>
</ul>
<h3>LAME 3.98 beta 7 April 6 2008</h3>
<ul>
<li>Robert Hegemann:
<ul>
<li>libmp3lame API: allow frontends to separately retrieve LAME/Xing and ID3 data, because the old library automatism
makes it impossible to make fully buffered encodes.
</li>
<li>libmp3lame API: added some experimental unicode ID3 tagging code.
</li>
<li>frontends: write itself final ID3 tags and LAME/Xing header frame
</li>
<li>lame_enc.dll: writes itself final LAME/Xing header frame
</li>
<li>Latest changes to the new VBR psymodel:
<ul>
<li>uses a different spreading function
</li>
<li><font color="#ff0000">bug-fix for out-of-bounds array access (program stack corruption possible)</font>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>LAME 3.98 beta 6 December 16 2007</h3>
<ul>
<li>Robert Hegemann:
<ul>
<li>Feature request <i>[ 1811483 ] WAVE_FORMAT_EXTENSIBLE support (PCM)</i>
</li>
<li><font color="#ff0000">Fix for some rare scalefactor selection issue the newer vbr code had at low compression levels
</font></li>
<li>Fix for Bugtracker item<i>[ 1813496 ] AIFF parsing bug</i>
</li>
<li>Latest changes to the new VBR code:
<ul>
<li><font color="#3366ff">it now has its own psy model, a derivation from NSPSY.</font>
</li>
<li><font color="#ff0000">some more tuning has been done for this new psy model.</font>
Many thanks to Horst Albrecht and Myles Thaiss.
</li>
<li><font color="#ff0000">the "out-of-bits" strategy is reworked</font>
</li>
</ul>
<li><font color="#ff0000">It was possible, that the "interchannel masking effects feature"
was used by the dual-channel-mode for bi-lingual encodings too. It was meant to work
on stereo L/R channels only.</font>
</li>
</ul>
</li>
</ul>
<h3>LAME 3.98 beta 5 August 12 2007</h3>
<ul>
<li>Jonathan Stott:
<ul>
<li>Bug tracker items: <i>[ 1590693 ] ID3v2 tag not writing, [ 1636267 ] ID3v2 tags overwritten</i><br>
If the output file is opened 'write-only', then LAME can't update the LAME tag.
In this case LAME silently overwrote the first bytes of the file and an
optional ID3v2 tag disappeared. Now an error message will be printed and
no data is written in this case.
</li>
</ul>
</li>
<li>Robert Hegemann:
<ul>
<li>Fix for Bugtracker item <i>[ 1719593 ] Track numbers > 255 not allowed even with --id3v2-only</i>
<li>Fix for Bugtracker item <i>[ 1742623 ] fail(lame --mp3input -m m -b 128 --resample 8 *.mp3 **.mp3)</i><br>
The problem here was, the input files are MPEG-1 Layer2 files named as MP3s. Even if you leave out
the --mp3input switch LAME tried to decode the input files as Layer3 files because of the file name
extension and because it found some valid looking Layer3 synchronization header.
The fixed LAME version does not assume the file name extension is always correct and treats the files
depending on the first found MPEG sync word. The files in question are now correctly detected as
Layer2 files and transcoding does succeed.
</li>
<li>Fix for Bugtracker item <i>[ 1445175 ] Input being stdin fails in Windows on WAV files</i><br>
The problem here was, seeking on pipes shows some different behaviour depending on C-Library
implementations. The workaround tries to detect it's working on a pipe and doing some
reading instead of seeking in that case.
</li>
<li>Fixing some memory leak in the 'lame_enc.dll'.
</li>
<li>Fix for Bugtracker items <i>[ 1160757, 1160741 ] --little-endian / --big-endian not working</i><br>
These switches where originally intended to be used together with Libsndfile only.
</li>
<li>Fix for Bugtracker item <i>[ 1746336 ] Incorrect Bitrate with ABR und --resample, LAME 3.98b4</i><br>
Some earlier bug-fix had some typo. As a result, when adding a '--resample 123' switch,
the average bitrate rised upto maximum bitrate.
</li>
</ul>
</li>
</ul>
<h3>LAME 3.98 beta 4 June 23 2007</h3>
<ul>
<li>Dennis Lambe Jr: Added support for total track count (id3v2) in the frontend
</li>
<li>Nyaochi:
<ul>
<li>Ability to set user-defined ID3v2.3 frame</li>
<li>Ability to include albumArt in ID3v2.3 tag</li>
</ul>
</li>
<li>Robert Hegemann:
<ul>
<li>Bugfix: the "play length in ms", which is stored in the ID3v2 tag TLEN, was not correctly computed.
Some hardware and software players were confused by this garbage data.</li>
<li><font color="#ff0000">Out of bits strategy for the newer VBR code overhauled</font></li>
<li>LAME API: the ID3 tag functions do not store the pointers passed anymore,
they do make deep copies of strings passed as parameters.
</li>
<li>Changes in LAME frontend switches regarding ID3 tags:
<br><tt>--tg "MyGenre"</tt> will route unknown ID3v1 genres to "Other" for ID3v1 tags
and will be stored as plain text "MyGenre" for ID3v2 tags. Genres given by known
ID3v1 numbers will be stored as its corresponding text in ID3v2 tags.
<br><tt>--tn "02/02"</tt> will store the track number specified as plain text as-is
for ID3v2 tags.
</li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.98 beta 3 May 22 2007</h3>
<ul>
<li>Robert Hegemann:
<ul>
<li>Fixes regarding max number of bits limitation</li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.98 beta 2 May 20 2007</h3>
<ul>
<li>Robert Hegemann:
<ul>
<li>Bug tracker item: <i>[ 1693461 ];</i>
Fixed memory leaks in ACM codec</li>
<li>Fixed encoding of non-standard sampling rates in CBR</li>
<li><font color="#ff0000">Improved VBR strategy when running out of bits</font></li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.98 beta 1 May 16 2007</h3>
<ul>
<li>Alexander Leidinger:
<ul>
<li>Add TLEN (ID3v2) support (Submitted by: Linus Walleij).</li>
<li>Add number of total tracks per album (ID3v2) support
(Submitted by: Kyle VanderBeek).</li>
<li>Some seatbelts for overflowing arrays in the ID3v2
support.</li>
<li>Update the RPM spec (Submitted by: Kyle VanderBeek).</li>
<li>Fix some mem-leaks in the error case.</li>
<li>Update to newer autotools versions.</li>
<li>Update to use a recent libsndfile (submitted by
libsndfile author).</li>
<li><font color="#3366ff">Intrinsics support
enabled for gcc</font></li>
</ul>
</li>
<li>Robert Hegemann:
<ul>
<li><font color="#3366ff">The newer VBR code is now LAME's default
VBR routine</font></li>
<li><font color="#ff0000">Fixed: in case of
not enough bits the new vbr code incorrectly used old vbr routine</font></li>
<li><font color="#ff0000">Improved ATH
adjustment in low volume cases</font></li>
<li><font color="#ff0000">Fixed (PSY model): mapping from convolution bands
to partition bands was broken since we replaced tables by own calculation
several years ago</font></li>
<li><font color="#ff0000">Fixed (PSY model): loss of fraction in equal loudness weighting</font></li>
<li><font color="#ff0000">Fixed (PSY model): in NSPSY highpass filter, out of bounds access in fircoef</font></li>
<li><font color="#ff0000">Known problem samples for the new VBR code:
many of them are at an acceptable quality level now;</font>
with a big <b>'Thank You'</b> to Francis Niechcial</li>
<li><font color="#ff0000">Modified VBR strategy to handle out of bits cases</font></li>
<li>Restricted bitreservoir size for 320 kbps frames to
the size used for sideinfo, because of decoding problems
with FhG decoders installed on almost every Windows system</li>
<li>LAME aborts on unsupported input files
or unrecognized parameter options passed more often now </li>
<li>Bug tracker item: <i>[ 1596306 ] "fatal error during initialization";</i>
an invalid MPEG samplerate was returned by optimum_samplefreq function</li>
<li>Bug tracker item: <i>[ 1585942 ] lame not --silent when TERM not set;</i>
in case LAME was build with TERMCAP defined and no TERM
environment is defined, now we do not issue an error message and
silently fallback to the default behaviour as if LAME was
compiled without TERMCAP defined.</li>
<li>Bug tracker item: <i>[ 1711980 ] LAME writes invalid Xing header when ID3 tags exist;</i>
LAME was sometimes writing an invalid Xing/Info header</li>
<li>Feature request: <i>[ 1588283 ] Flushing output stream in lame.exe;</i>
'flush' option added</li>
<li><font color="#3366ff">Added FFTSSE and FFT3DNOW assembler code from
Lame4 branch</font></li>
<li>Changes in lame frontend switches:
-k removed, add lowpass and highpass switches if you need to change
them; --short/noshort/allshort - degraded into DEVELOPER ONLY switches
normal users shouldn't use them; -X -Z degraded to
DEVELOPER ONLY switches, -X is too tough to communicate to
end users and -Z isn't used actualy</li>
<li>Fixed some console printing problems</li>
<li>Windows: ACM code now uses LAME library API only, all
references to private include files are removed</li>
<li>Windows: DirectShow code now uses LAME library API only, all
references to private include files are removed</li>
<li>Windows: disabled code that resets processor affinity,
because this doesn't belong to LAME, but seems to work around
some problems the parent process has (in most cases EAC)</li>
</ul>
</li>
<li>John33:
<ul>
<li>Fixed mp2 and mp3 decoding: For mp3 and mp2 decoding,
this now yields the same output as foobar2000 but the error checking
remains unchanged</li>
</ul>
</li>
<li>Gabriel Bouvigne:
<ul>
<li>VC8 project files</li>
<li>Added support for x64 under VC8</li>
<li>Restricted MPEG 2.5 to 64kbps frames</li>
</ul>
</li>
<li>Takehiro Tominaga:
<ul>
<li><font color="#3366ff">SSE version of FFT</font></li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.97 September 24 2006</h3>
<ul>
<li>3.97 beta 3 becomes 3.97 </li>
</ul>
<br>
<h3>LAME 3.97 beta 3 August 19 2006</h3>
<ul>
<li>Gabriel Bouvigne:
<ul>
<li><font color="#ff0000">Workaround against a
short blocks detection issue</font></li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.97 beta 2 November 26 2005</h3>
<ul>
<li>Gabriel Bouvigne:
<ul>
<li>Fixed an initialization error when input is not using a
standard sampling frequency</li>
<li>Fixed a possible assertion failure in very low bitrate
encoding</li>
<li><font color="#ff0000">Slight change
regarding ATH adjustment with V5</font></li>
<li><font color="#ff0000">Reinstated bit
reservoir for 320kbps CBR</font></li>
<li><font color="#3366ff">ReplayGain analysis
should now be faster when encountering silent parts</font></li>
</ul>
</li>
<li>Takehiro Tominaga:
<ul>
<li>Fixed a possible link problem of assembly code</li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.97 beta 1 September 12 2005</h3>
<ul>
<li>Takehiro Tominaga:
<ul>
<li>Fixed an out of array access in mp3rtp </li>
<li><font color="#ff0000">Fixed a quality
setting in DLL</font></li>
<li>Fixed display when using --silent</li>
</ul>
</li>
<li>Vitaly Ivanov:
<ul>
<li>Updated DirectShow interface</li>
</ul>
</li>
<li>Robert Hegemann:
<ul>
<li><font color="#ff0000">Fixed an out of
array access</font></li>
<li><font color="#ff0000">Fixed some small
rounding problem in vbr-new quantization routines</font></li>
<li><font color="#ff0000">Fixed a bug in
vbr-new regarding high frequencies (sfb21) when using -Y</font></li>
<li><font color="#ff0000">Fixed a few bugs in
vbr-new when using -Y</font></li>
<li><font color="#ff0000">Updated scalefactors
allocation scheme in vbr-new</font></li>
<li>Fixed mingw32 configure problems</li>
<li>Resolved some compiler warnings</li>
<li>Updated command-line visualisation</li>
</ul>
</li>
<li>Gabriel Bouvigne:
<ul>
<li>Changed some FLOAT8 to FLOAT</li>
<li>Added project files for VC7</li>
<li><font color="#ff0000">Reworked -q1 and -q0</font></li>
<li><font color="#ff0000">Updated presets</font></li>
<li><font color="#ff0000">Fixed an error in
ISO quantization on systems not using the IEEE754 hack</font></li>
<li><font color="#3366ff">Faster quantization</font></li>
<li><font color="#3366ff">SSE version of
init_xrpow</font></li>
</ul>
</li>
<li>Rogério Brito:
<ul>
<li>Updated Debian packaging</li>
<li>Documentation work</li>
</ul>
</li>
<li>Chris Miller:
<ul>
<li>Support for x64 platform SDK in makefile.msvc</li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.96.1 July 25 2004</h3>
<ul>
<li>Robert Hegemann:
<ul>
<li><font color="#ff0000">Fixed a rare bug in
vbr-new (could lead to crashes or data corruption)</font></li>
</ul>
</li>
<li>Gabriel Bouvigne:
<ul>
<li>some fixes in ACM codec</li>
<li>fixed padding when encoding to 320kbps</li>
<li><font color="#ff0000">fixed block size
selection for mid and side channels</font></li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.96 April 11 2004</h3>
<ul>
<li>Gabriel Bouvigne:
<ul>
<li><font color="#ff0000">new quantization
selection mode (used in ABR/CBR)</font></li>
<li><font color="#ff0000">set sfscale for
ABR/CBR up to 160kbps</font></li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.96 beta 2 March 28 2004</h3>
<ul>
<li>Takehiro Tominaga:
<ul>
<li><font color="#3366ff">removed unnecessary
integer convertion in resampling</font></li>
</ul>
</li>
<li>Robert Hegemann:
<ul>
<li><font color="#ff0000">reworked scalefactor
allocation in vbr-new</font></li>
<li>fixed a freeformat decoding problem</li>
</ul>
</li>
<li>Gabriel Bouvigne:
<ul>
<li><font color="#ff0000">updated minimal
bitrate for V1 and V2</font></li>
</ul>
</li>
<li>Aleksander Korzynski:
<ul>
<li>added ability to disable ReplayGain analysis</li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.96 beta March 7 2004</h3>
<ul>
<li>Takehiro Tominaga:
<ul>
<li>fixed decoding issue</li>
</ul>
</li>
<li>Aleksander Korzynski:
<ul>
<li>changed internal ReplayGain handling</li>
<li>fixed some issues when ReplayGain is used with
resampling</li>
</ul>
</li>
<li>Robert Hegemann:
<ul>
<li>added standard ISO quantization for vbr-new, used at
lower quality settings</li>
<li><font color="#3366ff">faster count_bits
for vbr-new</font></li>
<li><font color="#3366ff">faster
find_scalefac_ave function for vbr-new</font></li>
<li><font color="#ff0000">fixed an out of
array access in psychoacoustic models; this bug could make some psy
calculations worthless and sometimes let lame crash</font></li>
<li><font color="#ff0000">fixed an error on
silent scalefactor bands; this bug resulted in huffman data overrun
problems while decoding, resulting in audible glitches</font></li>
<li>fixed a freeformat decoding bug</li>
</ul>
</li>
<li>Gabriel Bouvigne:
<ul>
<li><font color="#ff0000">adjusted short block
thresholds</font></li>
<li>fixed some array addressing bugs</li>
<li>made ReplayGain analysis reentrant</li>
</ul>
</li>
<li>David Chandler: fixed a crash in quantize_xrpow </li>
<li>Michal Bacik: fixed a crash when using 8kHz </li>
<li>Goran Markovic: fixed some decoding bugs </li>
<li>John Edwards: fixed a too small buffer in ReplayGain code</li>
</ul>
<br>
<h3>LAME 3.95.1 January 12 2004</h3>
<ul>
<li>Gabriel Bouvigne:
<ul>
<li>fixed a crash when using vbr-new</li>
<li>changed ReplayGain reference level to 89dB</li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.95 January 11 2004</h3>
<ul>
<li>Gabriel Bouvigne:
<ul>
<li><font color="#ff0000">fixed lowpass values
when using vbr with mono files</font></li>
<li><font color="#3366ff">faster quantization
loops</font></li>
<li><font color="#3366ff">faster count_bits</font></li>
<li>fixed a buffer requirement error in ACM codec</li>
</ul>
</li>
<li>Takehiro TOMINAGA:
<ul>
<li>fixed mpglib and other decoding support code to prevent
the crash when invalid mp3 input</li>
</ul>
</li>
<li>removed Layer I decoding support</li>
<li><font color="#3366ff">use FastLog and IEEE 754
hack on PowerPC too (approx. 10 percent faster)</font></li>
</ul>
<br>
<h3>LAME 3.94 beta December 15 2003</h3>
<ul>
<li>Takehiro Tominaga:
<ul>
<li><font color="#ff0000">fixed block
switching of nspsytune</font></li>
<li><font color="#ff0000">best huffman divide
in the inner loop.</font> This should improve the quality, but
PAINFULLY slow. So it is not enabled by default. Use -q0 to use it.</li>
<li>Changed -q option mapping. "-q2" until version 3.93 is
now "-q3".</li>
<li><font color="#ff0000">saving bits by
better scalefactor storing</font></li>
<li>removed Vorbis support</li>
<li><font color="#ff0000">substep quantization.</font>This
should help breaking the SFB21 bloating problem</li>
<li><font color="#ff0000">made psychoacoustic
model aware of ATH adjustements</font></li>
<li><font color="#ff0000">use ATH value as
short block masking lower limit</font></li>
<li><font color="#ff0000">several fixes in
psychoacoustic model</font></li>
<li>more robust decoding</li>
</ul>
</li>
<li>Mark Taylor / Gabriel Bouvigne: fixed issues in VBR header</li>
<li>Mark Taylor: workaround against some hardware decoder
defficiencies</li>
<li>Aleksander Korzynski: ability to compute the "Radio"
ReplayGain and detect clipping on the fly. The ReplayGain value is
stored in the Lame tag.</li>
<li>Gabriel Bouvigne:
<ul>
<li><font color="#ff0000">work on presets</font></li>
<li><font color="#ff0000">use presets by
default for cbr/abr</font></li>
<li><font color="#ff0000">use presets by
default for vbr</font></li>
<li><font color="#ff0000">analog silence
detection in partitionned sfb21</font></li>
<li><font color="#3366ff">do not compute noise
in upper 0 part of the spectrum</font></li>
<li><font color="#3366ff">only compute noise
in modified scalefactor bands</font></li>
</ul>
</li>
<li>Guillaume Lessard:
<ul>
<li>nogap related changes</li>
</ul>
</li>
<li>Alexander Leidinger:
<ul>
<li>prevent closing the input fd prematurely if the input
is a named pipe</li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.93.1 December 1 2002</h3>
<ul>
<li>Gabriel Bouvigne:
<ul>
<li>preset medium added to the dll interface</li>
<li><font color="#ff0000">fix for abr/cbr
presets</font></li>
<li><font color="#ff0000">fix -q0 switch</font></li>
</ul>
</li>
<li>Alexander Leidinger: fix link problem on systems where
socket() resides in libsocket</li>
</ul>
<br>
<h3>LAME 3.93 November 16 2002</h3>
<ul>
<li>Takehiro Tominaga:
<ul>
<li><font color="#ff0000">bit allocation for
pre-echo control improved for single channel encodings</font></li>
<li><font color="#ff0000">substep noise shaping</font></li>
<li><font color="#3366ff">optimizations by
changing data structure</font></li>
<li><font color="#ff0000">noise shaping model
2 fix</font></li>
<li><font color="#3366ff">nspsytune FIR filter
clean up</font></li>
<li><font color="#ff0000">fix small psymodel
bugs(DC current estimation, preecho detection of non-VBR mode, and
nspsymode initialization)</font></li>
<li>portability fixes for Tru64 UNIX</li>
</ul>
</li>
<li>Albert Faber: some fixes in the DLL</li>
<li>Simon Blandford: fixes for channel scaling in mono mode</li>
<li><font color="#3366ff">Dominique Duvivier: some
optimizations and a faster log10 function</font></li>
<li>Mark Taylor:
<ul>
<li>some tag related fixes in the direct show filter and in
the ACM codec</li>
<li><font color="#3366ff">fixed a mono
encoding bug found by Justin Schoeman</font></li>
<li>calc_noise bug fix</li>
<li>other fixes</li>
</ul>
</li>
<li>Alexander Leidinger:
<ul>
<li>update to autoconf 2.53, rewrite some configure tests</li>
<li>Akos Maroy: determine gcc version even with gcc 3.1</li>
<li>Andrew Bachmann: compile shared libs on BeOS (and
perhaps other arches)</li>
<li>ultrasparc switches for gcc 3.1</li>
<li>fixes for SunOS 4.x</li>
<li>fixes for 64bit arches</li>
<li>CFLAGS fix for IRIX</li>
<li>don't override CFLAGS if exptopt isn't requested</li>
</ul>
</li>
<li>Robert Hegeman:
<ul>
<li><font color="#3366ff">some fixes</font></li>
<li><font color="#ff0000">some fixes for VBR</font></li>
</ul>
</li>
<li>Gabriel Bouvigne:
<ul>
<li>--noasm switch. Might help Cyrix/Via users</li>
<li><font color="#ff0000">presets and
alt-presets merged</font></li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.92 April 14 2002</h3>
<ul>
<li><font color="#ff0000">Alexander
Leidinger: add non linear psymodel (compile time option,
disabled by default)</font>, workaround a bug in gcc 3.0.3
(compiler options, based upon suggestions from various people, see
archives and changelog for more)</li>
<li>Steve Lhomme: ACM wrapper (MS-Windows codec)</li>
<li><font color="#3366ff">Steve Lhomme:
less memory copying on stereo (interleaved) input</font></li>
<li> <font color="#ff0000">Takehiro Tominaga:
Inter-channel masking, enables with --interch x option</font></li>
<li> For buggy versions of gcc compiler (2.96*), back off on
some of the advanced compiler options<br>
</li>
</ul>
<br>
<h3>LAME 3.91 December 29 2001</h3>
<ul>
<li><font color="#ff0000">Darin
Morrison: Bugfix for --alt-preset (for content with low
volume, clean vocals), only important for the "fast standard" preset</font>
</li>
<li>Alexander Leidinger:
<ul>
<li>add some missing files to the distribution</li>
<li>add --alt-preset to the man page</li>
</ul>
</li>
</ul>
<br>
<h3>LAME 3.90 December 21 2001</h3>
<ul>
<li><font color="#ff0000">Many small improvements
and bug fixes not added to history</font></li>
<li><font color="#ff0000">John
Dahlstrom: more fine tuning on the auto adjustment of the ATH</font></li>
<li><font color="#3366ff">Robert
Hegemann: small speed and quality improvements for the old
VBR code (--vbr-old).</font> </li>
<li><font color="#ff0000">Robert
Hegemann: some short block bug fixes</font> </li>
<li><font color="#ff0000">Robert
Hegemann: Big improvements to --vbr-mtrh, now encodes much
more frequencies over 16khz</font> </li>
<li><font color="#ff0000">Robert
Hegemann: --vbr-new code disabled (outdated and lower
quality) and replaced with --vbr-mtrh (Both --vbr-new and --vbr-mtrh
now default to mtrh)</font> </li>
<li>Robert Hegemann: reordering of --longhelp to give
more information, --extrahelp dropped </li>
<li>Darin Morrison: Totally revamped and extremely
high quality unified preset system and other general quality
improvements now available with --alt-presets:
<ul>
<li> <font color="#ff0000">some improvements
to psychoacoustics (vast improvements over default L.A.M.E. modes) when
--alt-preset is used including:</font>
<ul>
<li> <font color="#ff0000">Improved tuning
of short block usage.</font></li>
<li> <font color="#ff0000">Improved
quantization selection usage (the -X modes), now adapts between
appropriate modes on the fly. Also helps on "dropout" problems and with
pre-echo cases.</font></li>
<li> <font color="#ff0000">Improved joint
stereo usage. Thresholds are better tuned now and fix some "dropout"
problems L.A.M.E. suffers from on clips like serioustrouble.</font></li>
<li> <font color="#ff0000">Improved noise
shaping usage. Now switches between noise shaping modes on the fly
(toggles -Z on and off when appropriate) which allows lower bitrates
but without the quality compromise.</font></li>
<li> <font color="#ff0000">Clips vastly
improved over default L.A.M.E. modes (vbr/cbr/abr, including --r3mix):
castanets, florida_seq, death2, fatboy, spahm, gbtinc, ravebase, short,
florida_seq, hihat, bassdrum, 2nd_vent_clip, serioustrouble, bloodline,
and others. No degraded clips known.</font></li>
<li> VBR bitrates are now more "stable" with less
fluctuation -- not dipping too low on some music and not increasing too
high unnecessarily on other music. "--alt-preset standard" provides
bitrates roughly within the range of 180-220kbps, often averaging close
to 192kbps.</li>
</ul></li>
<li> --alt-presets replace the --dm-presets and "metal"
preset is removed and replaced with generic abr and cbr presets.</li>
<li> --alt-preset extreme (note the 'e') replaces xtreme to
help eliminate some confusion</li>
<li> --alt-preset vbr modes now have a fast option which
offers almost no compromise in speed.</li>
<li> --alt-preset standard (and "fast standard") are now
much lower in bitrate, matching --r3mix with an overall average, though
offering higher quality especially on difficult test samples.</li>
<li> --alt-presets are no longer just "presets" as in a
collection of switches, instead they are now quality "modes" because of
special code level tunings (those mentioned above).</li>
<li> Use --alt-preset help for more information.</li>
</ul>
</li>
<li>Roel VdB: more tuning on the --r3mix preset </li>
<li>Jon Dee, Roel VdB: INFO tag</li>
<li>Alexander Leidinger, mp3gain@hotmail.com: added
--scale-l and --scale-r to scale stereo channels independantly </li>
<li>Takehiro Tominaga: <font color="#ff0000">new
noise shaping mode, offering more "cutting edge" shaping according to
masking, enabled via -q0</font> </li>
<li>Mark Taylor: More work on --nogap </li>
<li>Gabriel Bouvigne: Small changes to abr code for
more accurate final bitrate </li>
<li>Gabriel Bouvigne, mp3gain@hotmail.com:
Preliminary <a href="http://www.replaygain.org">
ReplayGain</a> analysis code added (not functional yet) </li>
<li>Gabriel Bouvigne, Alexander Leidinger:
Documentation updates </li>
<li>John Dahlstrom, DSPguru@math.com: floating point
interface function in the Windows DLL</li>
</ul>
<br>
<h3>LAME 3.89beta July 5 2001</h3>
<ul>
<li> John Stewart: long filename support for Win9x/NT.</li>
<li> Takehiro Tominaga: LAME can calculate the CRC of
VBR header, so now "lame -pv" works fine.</li>
<li><font color="#ff0000">Robert
Hegemann: Improvements of the new VBR code (--vbr-mtrh).</font></li>
<li><font color="#3366ff">Robert Hegemann: New VBR
code (--vbr-mtrh) is now defaulted to get more feedback. The VBR speed
is now on par with CBR. We will use the old VBR code in the release.</font></li>
<li><font color="#ff0000">Gabriel Bouvigne: Change
of the maximum frame size limit. LAME should now be more friendly with
hardware players.</font></li>
<li>Gabriel Bouvigne: Size of VBR is now more balanced
according to the -V value.</li>
<li>Alexander Leidinger: Finished the implementation of the
set/get functions.</li>
<li>John Dahlstrom: LAME now handles 24bits input</li>
<li>Mark Taylor: bugs in lame --decode causing truncation of
mp3 file fixed</li>
<li>Mark Taylor: preliminary --nogap support</li>
<li>"Final" API completed: shared library safe! This
API is frozen and should be backwords compatiable with future versions
of libmp3lame.so, but we will continue to add new functionality.
<br>
</li>
</ul>
<h3> LAME 3.88beta March 25 2001</h3>
<ul>
<li> <font color="#ff0000">A lot of work that was
never added to the History!</font></li>
<li> <font color="#ff0000">Frank Klemm and
Gabriel Bouvigne: New ATH formula. Big improvement
for high bitrate encodings.</font></li>
<li> <font color="#ff0000">Takehiro Tominaga:
Temporal masking</font></li>
<li> <font color="#ff0000">Gabriel Bouvigne/Mark
Taylor: auto adjustment of ATH</font></li>
<li> <font color="#ff0000">Robert
Hegemann: Better outer_loop stopping criterion.
Enabled with -q2 or better.</font></li>
<li> <font color="#ff0000">Robert Hegemann/Naoki
Shibata: slow/carefull noise shaping.
-q3..9: amplify all distorted bands. -q2: amplify
distorted bands within 50%. -q1-0: amplify only
most distorted band at each iteration.</font></li>
<li> <font color="#ff0000">Takehiro Tominaga:
Interframe, shortblock temporal masking.</font></li>
<li> Takehiro Tominaga: LAME restructured into a
shared library and front end application. Slight changes to
the API. More changes are coming to turn LAME into a true shared
library (right now you have to recompile if you upgrade the library :-(</li>
<li> <font color="#000000">Naoki Shibata:</font>
<ul>
<li> <font color="#ff0000">improvements to
psychoacoustics</font><font color="#000000">
(--nspsytune)</font>
<li> <font color="#ff0000">BUG in long block
pre echo control fixed </font><font color="#000000">
(some out of range array access in M/S psychoacoustics)</font></li>
</ul>
</li>
<li> <font color="#000000">Ralf
Kempkens: Visual Basic Script for lame,
suggested to put it on your Windows Desktop and you can drag'n'drop
Waves to encode on it.</font></li>
<li> <font color="#000000">Alexander
Stumpf: improved lame.bat for 4Dos users</font></li>
<li> <font color="#000000">Mark Taylor: Several
bugs fixed in the resampling code.</font></li>
<li> <font color="#000000">Frank Klemm, Robert
Hegemann: added assembler code for CPU
feature detection on runtime (MMX, 3DNow, SIMD)</font></li>
<li> <font color="#3366ff">Takehiro Tominaga:
3DNow FFT code.</font></li>
<li> <font color="#000000">Florian Bome,
Alexander Leidinger: more work on
configure stuff</font></li>
<li> <font color="#000000">Alexander
Leidinger: automake/libtool generated Makefiles and
TONS of other work.</font></li>
<li> <font color="#000000">Alexander
Leidinger: Much work towards shared library style
API.</font></li>
<li> <font color="#000000">Anonymous: New more
efficient RTP code.</font></li>
<li> <font color="#ff0000">Mark Taylor:
psycho-acoustic data now computed for all scalefactor bands (up to 24
kHz)</font></li>
<li> <font color="#ff0000">Mark Taylor, Takehiro
Tominaga: All ISO table data replaced by formulas - should improve
MPEG2.5 results for which we never had correct table data.</font></li>
</ul>
<h3> LAME 3.87alpha September 25 2000</h3>
<ul>
<li> Mark Taylor: Bug fixed in LAME/mpglib error
recovery when encountering a corrupt MP3 frame during
*decoding*.</li>
<li> Albert Faber: added LayerI+II decoding support</li>
<li> <font color="#000000">Frank Klemm:
added improved CRC calculation</font></li>
<li> <font color="#000000">Frank Klemm:
substantial code cleanup/improvements</font></li>
<li> Robert Hegemann: Bug fixes
<ul>
<li> <font color="#ff0000">in huffman_init</font>,
could lead to segmentation faults (only in rare cases, most likely at
lower sample rates)</li>
<li> <font color="#ff0000">M/S switching at
lower sample rates</font> (the fact there is no 2nd granule was
ignored)</li>
</ul>
</li>
<li> <font color="#3366ff">Robert
Hegemann: speed up in VBR</font></li>
<li> Jarmo Laakkonen: Amiga/GCC settings for
Makefile.unix.</li>
<li> Magnus Holmgren: README and Makefile for (free)
Borland C++ compiler. Will also compile lame_enc.dll, but
this is untested.</li>
<li> Florian Bome: LAME finally has
a ./configure script!!</li>
</ul>
<h3> LAME 3.86beta August 6 2000</h3>
<ul>
<li> Christopher Wise: A makefile for DJGPP, the DOS
version of gcc. Now most windows users should be able to
compile LAME with minimal effort.</li>
<li> <font color="#ff0000">Robert
Hegemann: old VBR: fixed some bugs and
Takehiro's scalefac_scale feature (not yet on by
default.) older LAME versions did not allow to spent more
than 2500 bits of 4095 possible bits to a granule per channel, now
fixed.</font></li>
<li> Robert Hegemann: new VBR:
analog silence treatment like in old VBR</li>
<li> William Welch: Improved options for Linux/Alpha
gcc and ccc compilers in Makefile.</li>
<li> Mathew Hendry: setting appropriate CRC bit for
additional Xing-VBR tagging frame</li>
<li> Don Melton: added ID3 version 2 TAG support</li>
<li> <font color="#000000">John Dahlstrom: fixed
bug allowing timing information (for status in command line encoder) to
overflow.</font></li>
<li> <font color="#000000">Tamito KAJIYAMA, Fixed
several bugs in the LAME/Vorbis interface.</font></li>
<li> <font color="#000000">Mark Taylor:
lame --decode will recognize <a href="http://albumid.cjb.net">Album
ID tags</a></font></li>
<li> <font color="#ff0000">Naoki
Shibata: Additive masking and other improvements to psycho
acoustics. (not yet on by default)</font></li>
</ul>
<h3> LAME 3.85beta July 3 2000</h3>
<ul>
<li> <font color="#ff0000">Takehiro
Tominaga: mid/side stereo demasking thresholds updated.</font></li>
<li> Takehiro Tominaga: New short block MDCT coefficient data
structure. Should allow for future speed improvements.</li>
<li> Robert Hegemann: fixed bug in old VBR routine,
the --noath mode messed up the VBR routine resulting in very large files</li>
<li> Robert Hegemann: found bugs in some sections when using 32
bit floating point. Default is now back to 64bit floating
point.</li>
<li> <font color="#ff0000">Takehiro
Tominaga: Modified PE formula to use ATH.</font></li>
<li> <font color="#000000">S.T.L.:
README.DJGPP - instructions for compiling LAME with DJGPP, the dos
version of gcc.</font></li>
</ul>
<h3> LAME 3.84beta June 30 2000</h3>
<ul>
<li> Mark Weinstein: .wav file output (with --decode
option) was writing the wrong filesize in the .wav file. Now
fixed.</li>
<li> Mark Taylor: (optional) Vorbis support, both
encoding and decoding. LAME can now produce .ogg files, or
even re-encode your entire .ogg collection into
mp3. (Just kidding: it is always a bad idea to
convert from one lossy format to another)</li>
<li> ?: Bug fixed causing VBR to crash under
windows. (pretab[] array overflow)</li>
<li> Sergey Sapelin: Another bug found in the mpg123 MPEG2
tables. Now fixed for the mpg123 based decoder in LAME.</li>
<li> Marco Remondini: VBR histogram works in
win32. compile with -DBRHIST -DNOTERMCAP</li>
<li> <font color="#ff0000">Takehiro
Tominaga: LAME CBR will now use scalefac_scale to expand the
dynamic range of the scalefactors.</font></li>
<li> <font color="#000000">Iwasa Kazmi:
Library improvements: exit()'s, printf, fprintf's are being
replaced by interceptable macros.</font></li>
</ul>
<h3> LAME 3.83beta May 19 2000</h3>
<ul>
<li> <font color="#ff0000">Mark Taylor:
Bug in buffering routines: in some cases, could cause
MDCT to read past end of buffer. Rare in MPEG2,
even more rare for MPEG1, but potentially serious!</font></li>
<li> Mark Taylor: MDCT/polyphase filterbank was not
being "primed" properly. Does not effect output unless you
set the encoder delay lower than the default of 576 samples.</li>
<li> <font color="#ff0000">Mark Taylor:
"vdbj" and "Caster" found several VBR bugs (now
fixed): 1. Analog silence detection only
checked frequencies up to 16 kHz. 2. VBR mode could
still somehow avoid -F mode. 3. VBR mode would
ignore noise above 16 kHz (scalefactor band 22), Now calc_noise1 will
compute the noise in this band when in VBR mode. Not
calculated in CBR mode since CBR algorithm has no way of
using this information.</font></li>
<li> Mark Taylor: scalefactor band 22 info
(masking(=ATH), noise and energy) now displayed in frame
analyzer.</li>
<li> <font color="#ff0000">VBR code ATH tuning
was disabled by accident in 3.81, now fixed.</font></li>
<li> <font color="#000000">Mark Taylor:
lame --decode will produce .wav files. (oops - size is off by
a factor of 4)</font></li>
</ul>
<h3> LAME 3.82beta May 11 2000</h3>
<ul>
<li> Robert Hegemann: Fixed bug in high bitrate joint
stereo encodings.</li>
<li> <font color="#3366ff">Naoki
Shibata: new long block MDCT routine</font></li>
</ul>
<h3> LAME 3.81beta May 8 2000</h3>
<ul>
<li> all ISO code removed!</li>
<li> <font color="#3366ff">Takehiro Tominaga and
Naoki Shibata: new window subband routines.</font></li>
<li> <font color="#000000">Naoki
Shibata: Bug fix in mpglib (decoding) lib: in some
cases, MDCT coefficients from previous granule was incorrectly used for
the next granule.</font></li>
<li> <font color="#ff0000">ISO 7680 bit buffer
limitation removed. It can be reactivated with
"--strictly-enforce-ISO" Please report any trouble with high
bitrates.</font></li>
</ul>
<h3> LAME 3.80beta May 6 2000</h3>
<ul>
<li> <font color="#ff0000">Takehiro
Tominaga: more efficient and faster huffman encoding!</font></li>
<li> <font color="#ff0000">Takehiro Tominaga and
Mark Taylor: much improved short block compression!</font></li>
<li> <font color="#000000">Tomasz Motylewski and
Mark Taylor: MPEG2.5 now supported!</font></li>
<li> <font color="#000000">Mark Taylor:
incorporated Takehiro's bitstream.c! bitstream.c used by
default, but old ISO bitstream code can also be used.</font></li>
<li> <font color="#ff0000">Scott Manley
and Mark Taylor: good resampling routine finaly in
LAME. uses a 19 point FIR filter with Blackman
window. Very slow for non integer resampling ratios.</font></li>
<li> <font color="#000000">Iwasa Kazmi:
fixed SIGBUS error: VBR and id3 tags were using data after it
was free()'d.</font></li>
<li> <font color="#ff0000">Robert
Hegemann: Improved VBR tuning. #define
RH_QUALITY_CONTROL and #RH_SIDE_VBR now the defaults.</font></li>
<li> <font color="#000000">Robert
Hegemann: LAME version string now added to
ancillary data.</font></li>
<li> Kimmo Mustonen: VBR histogram support for Amiga.</li>
<li> Casper Gripenberg: VBR stats (but not histogram)
for DOS verson.</li>
<li> Robert Hegemann: rare VBR overflow bug fixed.</li>
<li> Zack: -F option strictly enforces the VBR min
bitrate. Without -F, LAME will ignore the minimum bitrate
when encoding analog silence.</li>
<li> Shawn Riley: User can now specify a compression
ratio (--comp <arg>) instead of a bit rate.
Default settings based on a compression ratio of 11.0</li>
<li> Mark Taylor: free format bitstreams can be
created with --freeformat, and specify any integer bitrate from 8 to
320kbs with -b.</li>
<li> Mark Taylor: lame be used as a decoder (output raw pcm
only): lame --decode input.mp3 output.pcm</li>
</ul>
<h3> LAME 3.70 April 6 2000</h3>
<ul>
<li> "LAME 3.69beta" becomes LAME 3.70 "stable"</li>
</ul>
<h3> LAME 3.69beta April 6 2000</h3>
<ul>
<li> "spahm": default mode selection bug
fixed. In some cases, lame was defaulting to regular stereo
instead of jstereo when the user did not specify a mode.</li>
</ul>
<h3> LAME 3.68beta April 4 2000</h3>
<ul>
<li> Mark Taylor: mono encoding bug in DLL fixed.</li>
<li> Ingo Saitz: bug in --cwlimit argument parsing fixed.</li>
<li> <font color="#ff0000">Scott Manly: bug in
4-point resample code fixed.</font></li>
</ul>
<h3> LAME 3.67beta March 27 2000</h3>
<ul>
<li> <font color="#ff0000">Robert
Hegemann: jstereo now enabled for MPEG2 encodings</font></li>
<li> Mark Taylor: old M/S stereo mode which used L/R maskings
has been removed.</li>
<li> Mark Taylor: Xing MPEG2 VBR headers now working.</li>
<li> <font color="#ff0000">Mark Taylor:
When quantized coefficients are all 0 in a band, set scalefactors to 0
also to save a few bits.</font></li>
<li> <font color="#000000">Ingo Saitz:
Problems with framesize calculation when using -f fast-math option
fixed.</font></li>
</ul>
<h3> LAME 3.66beta March 21 2000</h3>
<ul>
<li> Bug fixes in BladeEnc DLL, possible click in last mp3
frame, VBR historgram display, byteswapping option, ASM quantize
routines work for both float and double.</li>
</ul>
<h3> LAME 3.65beta March 17 2000</h3>
<ul>
<li> Enabled ASM version of quantize_xrpow() - accidently
disabled in lame3.64.</li>
</ul>
<h3> LAME 3.64beta March 16 2000</h3>
<ul>
<li> Don Melton: id3v1.1 tags & id3 bugfixes</li>
<li> <font color="#ff0000">Gabriel
Bouvigne: L/R matching block type fix</font></li>
<li> <font color="#ff0000">Bug fixed which was
allowing quantized values to exceed the maximum when not using -h</font></li>
<li> <font color="#3366ff">Mark Taylor: Fitlers
based on polyphase filterbank. should be slightly better
since the responce is independent of the blocktype, and they are
slightly faster.</font></li>
<li> Mark Taylor: API: the API changed slightly - and
this should be the final version. There is a new routine:
lame_encode_buffer() which takes an arbritray sized input buffer,
resamples & filters if necessary, encodes, and returns the
mp3buffer. There are also several new #defines, so it is
possible to compile a simple encoding library with no decoding or file
I/O or command line parsing. see the file API for details.</li>
<li> Mark Taylor: MSVC stuff: lame.exe (with and
without the frame analyzer) and the CDex lame_enc.dll
should compile under MSVC. The MSVC5 project files may need
some tweaking. In particular,
you need to make sure LAMEPARSE, LAMESNDFILE and HAVEMPGLIB
are defined. (and HAVEGTK for the GTK stuff).</li>
</ul>
<h3> LAME 3.63beta February 20 2000</h3>
<ul>
<li> Robert Hegemann: FPE with -h fixed?</li>
<li> Mathey Hendry: FPE error catching for Cygwin,
FPE fix for vbr mode and output to /dev/null</li>
<li> Jeremy Hall: Fixed problems with input files
where the number of samples is not known.</li>
<li> <font color="#3366ff">Mathew
Hendry: ASM quantize_xrpow() for GNU i386</font></li>
<li> <font color="#3366ff">Wilfried
Behne quantize_xrpow ()for PowerPC and non-ASM</font></li>
<li> <font color="#3366ff">Takehiro
Tominaga: GOGO FFTs (not yet used?)</font></li>
</ul>
<h3> LAME 3.62beta February 9 2000</h3>
<ul>
<li> <font color="#000000">Iwasa Kazmi:
frame analyzer short block display of single subblocks (press
1,2 or 3)</font></li>
<li> <font color="#000000">Ingo Saitz:
--help option added, with output to stdout</font></li>
<li> <font color="#ff0000">Alfred Weyers: short
block AAC spreading function bug fixed</font></li>
<li> <font color="#3366ff">Takehiro
Tominaga: new scalefac data structure - improves performance!</font></li>
<li> <font color="#ff0000">Lionel
Bonnet: Bug fixed in MPEG2 scalefactor routine: scalefactors
were being severly limited.</font></li>
<li> <font color="#3366ff">Takehiro
Tominaga: faster FFT routines from. These routines
are also compatible with the GOGO routines, in case someone is
interested in porting them back to LAME.</font></li>
<li> <font color="#3366ff">Sigbjørn
Skjæret, Takehiro Tominaga: faster pow() code.</font></li>
<li> <font color="#ff0000">Joachim
Kuebart: Found some unitialized variables that were effecting
quality for encodings which did not use the -h option (now fixed).</font></li>
<li> Mark Taylor: More modularization work.
It is now possible to use LAME as a library where you can set the
encoding parameters directly and do your own file
i/o. The calling program is now it's own mp3
output. For an example of the LAME API, see main.c, or
mp3rtp.c or mp3x.c. These can all be compiled as stand alone
programs which link with libmp3lame.a.</li>
<li> Felix vos Leitner: mp3rtp fixes.
mp3rtp is a standalone program which will encode and stream with RTP.</li>
<li> Robert Hegemann: Information written to stderr
displaying exactly which type of lowpass filter (if any) is being used.</li>
<li> Iwasa Kazmi: mpglib (the mpg123 decoder) scsfi
decoding fixes.</li>
<li> Takehiro Tominaga: More mpglib scsfi decoding
fixes.</li>
</ul>
<h3> LAME 3.61beta January 14 2000</h3>
<ul>
<li> <font color="#ff0000">Mark Taylor: Fixed bug
with lowpass filters when using VBR with a 64kbs or lower min bitrate
setting.</font></li>
<li> <font color="#ff0000">Takehiro
Tominaga: more efficient huffman encoding splitting.</font></li>
</ul>
<h3> LAME 3.60beta January 9 2000</h3>
<ul>
<li> Mark Taylor: Distribution now comes with self
test. Needs work to be automated, see 'make test' in Makefile.</li>
<li> <font color="#ff0000">Mark Taylor: AAC
spreading function now the default</font></li>
<li> Gabriel Bouvigne: updated HTML docs</li>
<li> Felix von Leitner: compute correct file length from Xing
header (if present) when input file is a mp3 file</li>
<li> Felix von Leitner: mp3rtp (standalone) program now
included. Not yet tested. mp3rtp
ip:port:ttl <infile>
/dev/null will stream directly to ip:port using RTP.</li>
</ul>
<h3> LAME 3.59beta January 4 2000</h3>
<ul>
<li> Takehiro Tominaga: --noath option.
Disables ATH maskings.</li>
<li> Gabriel Bouvigne: updated HTML docs.</li>
<li> Iwasa Kazmi: makefile fixes</li>
<li> Mark Taylor: Fixed bug where first frame of data
was always overwritten with 0's. Thanks to 'gol'</li>
<li> <font color="#ff0000">Mark Taylor:
bug fixes in mid/side masking ratios (thanks to Menno Bakker)</font></li>
<li> Mark Taylor: replaced norm_l, norm_s table data
with formulas.</li>
</ul>
<h3> LAME 3.58beta December 13 1999</h3>
<ul>
<li> <font color="#ff0000">Segher
Boessenkool: More accurate quantization procedure!
Enabled with -h.</font></li>
<li> <font color="#3366ff">Mathew Hendry, Acy
Stapp and Takehiro Tominaga: ASM optimizations for quantize_xrpow and
quantize_xrpow_ISO.</font></li>
<li> Chuck Zenkus: "encoder inside" logo on web page</li>
<li> Mark Taylor: a couple people have
asked for this. Allow LAME to overide
VBR_min_bitrate if analog_silence detected.
Analog_silence defined a la Robert:
energy < ATH.</li>
<li> An Van Lam: Valid bitrates were being printed for layer 2,
not layer 3!</li>
<li> Ethan Yeo: Makefile.MSVC updated</li>
<li> Mark Stephens: updated all MSVC project files</li>
<li> Robert Hegemann: lowpass and highpass filters
can be enabled with --lowpass, --highpass</li>
<li> <font color="#ff0000">Mark Taylor:
MS switching is now smoother: ms_ratio average over 4 granules</font></li>
<li> <font color="#ff0000">Takehiro
Tominaga: Scalefactor pre-emphasis fixed (and now turned back
on)</font></li>
<li> <font color="#ff0000">Takehiro
Tominaga: Bug in M/S maskings: switch to turn on
stereo demasking code was buggy.</font></li>
</ul>
<h3> LAME 3.57beta November 22 1999</h3>
<ul>
<li> Sigbjørn Skjæret, patch to allow
encoding from 8bit input files when using LIBSNDFILE</li>
<li> Mark Taylor: Automatic downsampling to nearest valid
samplerate.</li>
<li> Mark Taylor: Scalefactor bands demarked on MDCT plot in
frameanalyzer</li>
<li> Mark Taylor: Scalefactor preemphasis disabled for
now. The algorithm was often doing more harm than
good.</li>
</ul>
<h3> LAME 3.56beta November 19 1999</h3>
<ul>
<li> Kimmo Mustonen: portabilty code cleanup.</li>
<li> Vladimir Marek: id3 genre patch.</li>
<li> Conrad Sanderson: new applypatch script.</li>
<li> Mark Taylor: Initial window type now "STOP_TYPE" to reduce
initial attenuation. This is needed because the new encoder
delay is so short. With a NORM_TYPE, the first 240 samples
would be attenuated.</li>
<li> Mark Taylor: Padding at end of file now adjusted
(hopefully!) to produce as little padding as possible while still
guarantee all input samples are encoded.</li>
<li> <font color="#ff0000">Takehiro
Tominaga: Reduced shortblock extra bit allocation formulas by
10% since new huffman coding is at least 10% more efficient.</font></li>
</ul>
<h3> LAME 3.55beta November 11 1999</h3>
<ul>
<li> Albert Faber: updated BladeEnc.dll</li>
<li> Mark Taylor: Simple lowpass filter added to linear
downsampling routine.</li>
<li> Nils Faerber: updated man page.</li>
<li> Mark Taylor: All floating point variables are delcared
FLOAT or FLOAT8. Change the definition of FLOAT8 in
machine.h to run at 32bit preceision.</li>
<li> Mark Taylor: Bug (introduced in 3.54beta) in
stereo->mono downsampling fixed.</li>
</ul>
<h3> LAME 3.54beta November 8 1999</h3>
<ul>
<li> Mark Taylor: Encoder delay is now 48 samples.
Can be adjusted to 1160 to sync with FhG (see ENCDELAY in
encoder.h) This is kind of amazing, since if Takehiro put his
MDCT/filterbank routine in a decoder, we could have a total
delay of only 96 samples.</li>
<li> <font color="#ff0000">Mark Taylor: More
inconstancies found and fixed in MPEG2 tables.</font></li>
<li> Mark Taylor: Resampling from an MP3 input file now
works. But we still dont have a lowpass filter so dont expect
good results.</li>
</ul>
<h3> LAME 3.53beta November 8 1999</h3>
<ul>
<li> <font color="#3366ff">Takehiro
Tominaga: Fixed MPEG2 problem in new MDCT routines.
Takehiro's combined filterbank/MDCT routine is now the
default. Removes all buffering from psymodel.c and the
filterbanks/MDCT routines.</font></li>
</ul>
<h3> LAME 3.52beta November 8 1999</h3>
<ul>
<li> By permission of copyright holders of all GPL code in
LAME, all GPL code is now released under a modified version
of the LGPL (see the README file)</li>
<li> By popular demand, all C++ comments changed to C style
comments</li>
<li> Mark Taylor: Linear resampling now works. Use
--resample to set an output samplerate different from the input
samplerate. (doesn't seem to work with mp3 input files, and
there is no lowpass filter, so dont expect good results just yet)</li>
<li> <font color="#3366ff">Takehiro
Tominaga: Faster Huffman encoding routines</font></li>
</ul>
<font color="#3366ff">The following changes are disabled
because of MPEG2 problems. But to try them, set MDCTDELAY=48
in encoder.h, instead of MDCTDELAY=528.:</font>
<ul>
<li> <font color="#3366ff">Takehiro
Tominaga: New MDCT routines with shorter delay (48 samples
instead of 528) and even faster than the old routines.</font></li>
<li> <font color="#3366ff">Takehiro
Tominaga: Removed extra buffering in psymodel.c</font></li>
</ul>
<h3> LAME 3.51 November 7 1999</h3>
<ul>
<li> Takehiro Tominaga: Bug in quantize.c absolute threshold of
hearing calculation for non-44.1 kHz input files.</li>
</ul>
<h3> LAME 3.50 November 1 1999</h3>
<ul>
<li> LAME 3.37beta becomes official LAME 3.50 release</li>
</ul>
<h3> LAME 3.37beta November 1 1999</h3>
<ul>
<li> <font color="#ff0000">Lionel
Bonnet: Found severe bug in MPEG2 Short block SNR.</font></li>
<li> Sergey Sapelin: VBR Toc improvement.</li>
<li> Sergey Dubov: fskip() routine</li>
<li> Conrad Sanderson: replacement for
filterbank.c. Not much faster but amazingly simpler.</li>
</ul>
<h3> LAME 3.36beta October 25 1999</h3>
<ul>
<li> Albert Faber: more MSVC and BladeDLL updates</li>
<li> Kimmo Mustonen: Much code cleanup and Amiga
updates</li>
<li> Anton Oleynikov: Borland C updates</li>
<li> Mark Taylor: More stdin fixes: For some reason,
forward fseek()'s would fail when used on pipes even though it is okay
with redirection from "<". So I changed all the forward
fseek()'s to use fread(). This should improve stdin support
for wav/aiff files. If you know the input file is raw pcm,
you can still use the '-r' option to avoid *all* seeking of any kind.</li>
</ul>
<h3> LAME 3.35beta October 21 1999</h3>
<ul>
<li> <font color="#ff0000">Leonid
Kulakov: Serious bug in MPEG2 scalefactor band tables fixed.</font></li>
<li> Portability patches from: Anton Oleynikov,
Sigbjørn Skjæret, Mathew Hendry, Richard Gorton</li>
<li> Alfred Weyers: compiler options, updated timestatus.</li>
<li> Albert Faber: BladeDll and other updates (new
machine.h).</li>
<li> Monty: updated Makefile to fix gcc inline math
bug.</li>
</ul>
<h3> LAME 3.34beta October 12 1999</h3>
<ul>
<li> <font color="#ff0000">Mark Taylor: Bug
fixed: minimum bitrate in VBR mode could be ignored for a few
frames.</font></li>
<li> <font color="#ff0000">Mark Taylor: New
(minor) VBR tunings.</font></li>
<li> Tim Ruddick: New wav/aiff header parsing
routines. Better parsing and fewer fseek()'s.</li>
<li> Anton Oleynikov: patches to work with Borland C</li>
<li> <font color="#ff0000">Gabriel
Bouvigne: Experimental voice option enabled with --voice</font></li>
</ul>
<h3> LAME 3.33beta October 11 1999</h3>
<ul>
<li> <font color="#ff0000">Robert Hegemann: RH
VBR mode now the default and only VBR mode. The new code will
always quantize to 0 distortion and the quality is increased by
reducing the masking from the psy-model. -X0 is still the
default for now.</font></li>
<li> <font color="#ff0000">Robert Hegemann: new
-X5 mode</font></li>
<li> Mathew Hendry: New timing code, removes the need for
HAVETIMES</li>
<li> <font color="#3366ff">Mathew
Hendry: assembler quantize_xrpow for Windows</font></li>
<li> Iwasa Kazmi: stdin/stdout patch for Windows</li>
<li> Mark Taylor: New option: "--athonly" will ignore the
psy-model output and use only the absolute threshold of hearing for the
masking.</li>
</ul>
<h3> LAME 3.32beta October 8 1999</h3>
<ul>
<li> <font color="#3366ff">Takehiro
Tominaga: faster long block spreading function convolution
for non 44.1 kHz sampling frequencies, and faster short block spreading
function convolution for all sampling frequencies.</font></li>
<li> <font color="#ff0000">Takehiro
Tominaga: Completly rewritten huffman table selection and
count_bits(). More efficient table selection results in many
more bits per frame.</font></li>
<li> <font color="#ff0000">Takehiro
Tominaga: More efficient scalefac compress setting.</font></li>
<li> <font color="#3366ff">Mike Cheng: new
calc_noise2()</font></li>
<li> Alfred Weyers: patch for timestatus() seconds rollover</li>
</ul>
<h3> LAME 3.31beta September 28 1999</h3>
<ul>
<li> Albert Faber: updated his BladeDLL
code. This allows LAME to be compiled into a BladeEnc
compatiable .dll.</li>
<li> <font color="#3366ff">Mike Cheng: faster
l3psycho_ener() routine.</font></li>
<li> Sigbjørn Skjæret: more code cleanup.</li>
</ul>
<h3> LAME 3.30beta September 27 1999</h3>
<ul>
<li> Conrad Sanderson: ID3 tag code added (type
'lame' for instructions)</li>
<li> new mdct.c from Mike Cheng (no faster, but much cleaner
code)</li>
<li> Mathew Hendry: Microsoft nmake makefile and a couple other
changes for MSVC</li>
<li> More modulization work: One input sound file
interface handles mp3's, uncompressed audio, with or without
LIBSNDFILE. Fixes (hopefully) a bunch of file I/O bugs
introduced in 3.29 (Mark Taylor)</li>
<li> LAME will now print valid samplerate/bitrate combinations
(Mark Taylor)</li>
<li> stdin/stdout fix for OS/2 (Paul Hartman)</li>
<li> For mp3 input files, totalframes estimated based on
filesize and first frame bitrate. (Mark Taylor)</li>
<li> Updated all functions with new style prototypes.
(Sigbjørn Skjæret)</li>
</ul>
<h3> LAME 3.29beta September 21 1999</h3>
<ul>
<li> <font color="#ff0000">Bug in bigv_bitcount
fixed. Loop.c was overestimating the number of bits needed,
resulting in wasted bits every frame. (Leonid A. Kulakov)</font></li>
<li> <font color="#ff0000">Bug in
*_choose_table() fixed These routines would not
sellect the optimal Huffman table in some cases.
(Leonid A. Kulakov)</font></li>
<li> <font color="#ff0000">Tuning of ATH
normalization (macik)</font></li>
<li> Removed unused variables and fixed function prototypes
(Sigbjørn Skjæret)</li>
<li> Sami Farin sent a .wav file
that LAME built in support choked on. I
added a slightly more sophisticated wav header parsing to handle this,
but if you have trouble, use libsndfile.</li>
<li> Resampling hooks and options added. Buffering
and resampling routines need to be written.</li>
<li> LAME will now take an mp3 file as input. When
resampling code is working, LAME will be able to (for example) convert
a high bitrate stereo mp3 to a low bitrate mono mp3 for streaming.</li>
</ul>
<h3> LAME 3.28beta September 15 1999</h3>
<ul>
<li> <font color="#ff0000">Serious bug fixed in
high frequency MDCT coefficients. Huffman coding was
reversing the order of the count1 block quadruples.
(Leonid A. Kulakov)</font></li>
<li> nint() problems under Tru64 unix fixed and preprocessor
variable HAVE_NINT removed. (Bob Bell)</li>
<li> Compiler warning fixes and code
cleanup (Sigbjørn Skjæret,
Lionel Bonnet)</li>
<li> USAGE file now includes suggestions for
downsampling. For low bitrate encodings, proper downsampling
can give dramatically better results. (John Hayward-Warburton)</li>
</ul>
<h3> LAME 3.27beta September 12 1999</h3>
<ul>
<li> Several bugs in encode.c and l3bitstream.c fixed by Lionel
Bonnet.</li>
<li> Bugs in new VBR (#define RH) formula for mono input file
and mid/side encoding fixed.</li>
</ul>
<h3> LAME 3.26beta September 10 1999</h3>
<ul>
<li> The "-m m" option (mono .mp3 file) will automatically mix
left and right channels if the input file is stereo. (Alfred
Weyers)</li>
<li> <font color="#ff0000">New quant_compare
algorithm (method for deciding which of two quantizations is better)
enabled with -X4 (Greg Maxwell)</font></li>
<li> <font color="#ff0000">New mid/side VBR bit
allocation formula. Mid channel bits are set by the quality
requirements, and then the side channel uses a reduced number of bits
(in a proportion coming from the fixed bitrate code). This
might not be optimal, but it should be pretty good and no one knows
what the optimal solution should be. (Greg Maxwell)</font></li>
<li> <font color="#ff0000">New VBR (#define RH)
tunings based on detailed listening tests by Macik and Greg Maxwell.</font></li>
<li> Sigbjørn Skjæret fixed several
compiler warnings (which turned out to be potential bugs)</li>
<li> Takehiro Tominaga fixed a low bitrate bug in reduce_side()</li>
<li> Alfred Weyers fixed some buffer overflows.</li>
<li> <font color="#ff0000">New ATH (absolute
threshold of hearing) formula replaces buggy ISO code, and
adds analog silence treatment (removal of
coefficients below below ATH). These are turned on
by default but have not been fully tested. (Robert Hegemann)</font></li>
<li> <font color="#ff0000">Bug in short block
spreading function fixed. (Robert Hegemann)</font></li>
</ul>
<h3> LAME 3.25beta August 22 1999</h3>
<ul>
<li> Sigbjørn Skjæret fixed a zero byte
malloc call. This bug was introduced in 3.24 and
causes problems on non Linux systems.</li>
<li> Bit allocation routines would sometimes allocate more than
4095 bits to one channel of one granule. A couple of people
reported problems that might be caused by this, especially at higher
bitrates.</li>
<li> Nils Faerber updated the man page and fixed many of the
compiler warnings.</li>
</ul>
<h3> LAME 3.24beta August 15 1999</h3>
<ul>
<li> This release contains the following new code (for
developers) which is disabled by default:</li>
<li> Robert Hegemann: Completely overhauled VBR
code. Now computes exact number of bits required for the
given qualty and then quantized with the appropriate bitrate.</li>
<li> Several new quantization quality measures.</li>
</ul>
<h3> LAME 3.23beta August 8 1999</h3>
<ul>
<li> Very nice continuously updated VBR histogram display from
Iwasa Kazmi. (disabled with --nohist).</li>
<li> More modulerization work. The encoding engine
can now be compiled into libmp3lame, but the interface is awkward.</li>
<li> <font color="#ff0000">Bug fixed in FFT Hann
window formula (Leonid A. Kulakov).</font></li>
<li> New LAME logo on the download page. Created by
Chris Michalisles.</li>
<li> <font color="#ff0000">Several VBR algorithm
improvements from Robert Hegemann. New quantization noise
metrics and VBR quality measure takes into account mid/side
encoding. Should produce smaller files with the same quality,
especially when using jstereo.</font></li>
</ul>
<h3> LAME 3.22beta July 27 1999</h3>
<ul>
<li> Downsampling (stereo to mono) bug with MPEG2
fixed. (Mike Oliphant)</li>
<li> Downsampling now merges L & R channels - before it
only took the L channel.</li>
<li> More modularization and code cleanup from Albert Faber and
myself.</li>
<li> Input filesize limit removed for raw pcm input
files. For other file types, LAME will still only read the
first 2^32 samples, (27 hours of playing time at 44.1 kHz).</li>
</ul>
<h3> LAME 3.21beta July 26 1999</h3>
<ul>
<li> <font color="#ff0000">Correct Mid/Side
masking thresholds for JSTEREO mode! This is enabled with
-h. It makes LAME about 20% slower since it
computes psycho-acoustics for L,R Mid and Side channels.</font></li>
<li> <font color="#ff0000">"Analog silence"
threshold added. Keeps VBR from upping the bitrate during
very quite passages. (Robert.Hegemann)</font></li>
<li> <font color="#ff0000">New VBR quality
setting from Robert Hegemann. It is based on the idea that
distortion at lower bit rates sounds worse than at higher bitrates, and
so the allowed distortion (VBR quality setting) is proportional to the
bitrate. Because of this, default minimum bitrate is now
32kbs.</font></li>
<li> <font color="#ff0000">Expermental subblock
gain code enabled with -Z.</font></li>
<li> New "-r" option for raw pcm input files. With
-r, LAME will not do any fseek()'s or look for wav and aiff headers on
the input file.</li>
<li> Bug fixes in mp3x (frame analyzer) for viewing frames near
end of the file.</li>
<li> Bug fixed to allow setting the sampling rate of raw pcm
input files.</li>
</ul>
<h3> LAME 3.20beta July 19 1999</h3>
<ul>
<li> Bug in get_audio.c fixed. Libsndfile wrappers
would not compile (Miguel Revilla Rodriguez)</li>
<li> Nils Faerber found some unitialized variables and some
wierd extranous computations in filter_subband, now fixed.
This was causing seg faults on some machines.</li>
</ul>
<h3> LAME 3.19beta July 18 1999</h3>
<ul>
<li> <font color="#ff0000">Oops! Robert
Hegemann immediatly found a bug in the new (old -Z option)
quantization code. calc_noise1 was not returning tot_noise,
so non ms-stereo frames were buggy.</font></li>
</ul>
<h3> LAME 3.18beta July 17 1999</h3>
<ul>
<li> <font color="#ff0000">Many psycho-acoustic
bug fixes. Dan Nelson discovered a bug in MPEG2: For short
blocks, the code assumes 42 partition bands. MPEG1 sometimes
has less, MPEG2 can have more. In MPEG1, this bug would not
have effected the output if your compiler initializes static variables
to 0 on creation. In MPEG2 it leads to array out-of-bounds
access errors. Finally, there was a related bug in MPEG1/MPEG2, short
& long blocks where the energy above 16 kHz was all added to
partition band 0. (the lowest frequeny partition band!)</font></li>
<li> <font color="#ff0000">The -Z option (Gabriel
Bouvigne's idea of using total quantization noise to choose between two
quantizations with the same value of "over") is now the
default. I believe this helps remove the trilling sound in
Jan's testsignal4.wav. The quality of testsignal2.wav and
testsignal4.wav are now better than Xing and getting closer to FhG.</font></li>
<li> Bug fixes in frame & sample count for downsampling
mode. (ben "jacobs")</li>
<li> Patches to improve modulization. (ben "jacobs")</li>
</ul>
<h3> LAME 3.17beta July 11 1999</h3>
<ul>
<li> substantial code cleanup towards goal of making LAME more
modular.</li>
</ul>
<h3> LAME 3.16beta July 11 1999</h3>
<ul>
<li> <font color="#ff0000">New tunings of window
switching, and better bit allocation based on pe. (Jan
Rafaj. improves both testsignal2.wav and testsignal4.wav).</font></li>
<li> <font color="#ff0000">Bug in mid/side
quantization when side channel was zero fixed. (Albert Faber)</font></li>
<li> Removed some extranous computations in l3psy.c (Robert
Hegemann)</li>
<li> More detailed timing status info, including hours display.
(Sakari Ailus) and percentage indicator (Conrad Sanderson).</li>
<li> <font color="#3366ff">Window_subband and
calc_noise1,calc_noise2 speedups. Quantize_xrpow speedup
should be significant on non GNU/intel systems. (Mike Cheng)</font></li>
<li> <font color="#3366ff">Better initial guess
for VBR bitrate. Should speed up VBR encoding.
(Gabriel Bouvigne)</font></li>
<li> More advanced .wav header parsing. fixes bugs
involving click in first frame. (Robert.Hegemann)</li>
<li> Correct filesize and total frame computation when using
LIBSNDFILE (ben "jacobs")</li>
<li> Click in last frame (buffering problem) when using
libsndfile fixed.</li>
<li> Audio I/O code overhauled. There is now a
uniform audio i/o interface to libsndfile or the LAME built in wav/aiff
routines. All audio i/o code localized to get_audio.c.</li>
</ul>
<h3> LAME 3.15beta</h3>
<ul>
<li> times()/clock() problem fixed for non-unix OS.
(Ben "Jacobs")</li>
<li> Fixed uninitialized pe[] when using fast mode.
(Ben "Jacobs")</li>
</ul>
<h3> LAME 3.13 June 24 1999</h3>
<ul>
<li> Patches for BeOS from Gertjan van Ratingen.</li>
<li> Makefile info for OS/2 Warp 4.0 (from dink.org).</li>
<li> Status display now based on wall clock time, not cpu time.</li>
<li> mem_alloc no longer allocates twice as much memory as
needed (Jan Peman).</li>
</ul>
<h3> 3.12pre9</h3>
<ul>
<li> Updated BLADEDLL code to handle recent changes (Albert
Faber).</li>
<li> Bug fixed in parsing options when not using GTK (Albert
Faber).</li>
<li> <font color="#ff0000">MPEG2 Layer III psycho
acoustics now working.</font></li>
<li> <font color="#3366ff">Improved huffman
encoding Chris Matrakidis. (10% faster). I dont know how he
finds these improvements! LAME with full quality now encodes
faster than real time on my PII 266.</font></li>
<li> Fixed time display when encoding takes more than 60
minutes.</li>
</ul>
<h3> 3.12pre8</h3>
<ul>
<li> <font color="#ff0000">New <a href="gpsycho/ms_stereo.html">mid/side stereo</a>
criterion. LAME will use mid/side stereo only when the
difference between L & R masking thresholds (averaged over all
scalefactors) is less then 5db. In several test samples it
does a very good job mimicking the FhG encoder.</font></li>
<li> <font color="#ff0000">Bug in mid/side stereo
fixed: independent variation of mid & side channel
scalefactors disabled. Because of the way outer_loop is
currently coded, when encoding mid/side coefficietns using left/right
thresholds, you have to vary the scalefactors simultaneously.</font></li>
<li> <font color="#ff0000">Bug in side/mid energy
ratio calculation fixed. (Thanks to Robert Hegemann)</font></li>
<li> Default mode is stereo (not jstereo) if bitrate is chosen
as 192kbs or higher. Tero Auvinen first pointed out that FhG
seems to think at 160kbs, their encoder is so good it doesn't need
jstereo tricks. Since LAME is not as good as FhG, I am going to claim
that 192kbs LAME is so good it doens't need jstereo tricks, and thus it
is disabled by default.</li>
<li> WAV header parsing for big-endian machines, and automatic
detection of big-endian machines. (Thanks to
Sigbjørn Skjæret).</li>
<li> added 56 sample delay to sync LAME with FhG.</li>
<li> MP3x (frame analyzer) can now handle MPEG2 streams.</li>
</ul>
<h3> 3.12pre7</h3>
<ul>
<li> MPEG2 layer III now working! lower bit rates
(down to 8kbs) and 3 more sampling frequencies: 16000, 22050,
24000Hz. Quality is poor - the psy-model does not yet work with these
sampling frequencies.</li>
<li> Fixed "ERROR: outer_loop(): huff_bits < 0." bug
when using VBR.</li>
<li> bash and sh scripts to run LAME on multiple files now
included. (from Robert Hegemann and Gerhard Wesp respectively)</li>
<li> bug fix in encoding times for longer files from
(Alvaro Martinez Echevarria)</li>
<li> yet another segfault in the frame analyzer fixed.</li>
<li> ISO psy-model/bit allocation routines removed.
This allowed makeframe() to be made much simpler, and most of the
complicated buffering is now gone. Eventually I would like the encoding
engine to be a stand alone library.</li>
</ul>
<h3> 3.12pre6</h3>
<ul>
<li> <font color="#ff0000">Better VBR
tuning. Find minimum bitrate with distortion less than the
allows maximum. A minimum bit rate is imposed on frames with
short blocks (where the measured distortion can not be
trusted). A minimum frame bitrate can be specified
with -b, default=64kbs.</font></li>
<li> <a href="http://www.zip.com.au/%7Eerikd/libsndfile">LIBSNDFILE</a>
support. With libsndfile, LAME can encode almost all sound
formats. Albert Faber did the work for this, including
getting libsndfile running under win32.</li>
<li> CRC checksum now working! (Thanks to
Johannes Overmann )</li>
<li> frame analyzer will now work with mono .mp3 files</li>
<li> <font color="#3366ff">more code tweeks from
Jan Peman.</font></li>
<li> <font color="#3366ff">Compaq-Alpha(Linux)
fixes and speedups from Nils Faerber.</font></li>
<li> <font color="#3366ff">Faster
bin_search_StepSize from Juha Laukala.</font></li>
<li> <font color="#3366ff">Faster quantize() from
Mike Cheng</font></li>
<li> <font color="#3366ff">Faster
quantize_xrpow() from Chris Matrakidis. xrpow_flag removed
since this option is now on by default.</font></li>
<li> Fixed .wav header parsing from Nils Faerber.</li>
<li> Xing VBR frame info header code from Albert
Faber. "Xing" and "LAME 3.12" embedded in first
frame.</li>
<li> <font color="#ff0000">Bug in VBR bit
allocation based on "over" value fixed.</font></li>
</ul>
<h3> LAME 3.11 June 3 1999</h3>
<ul>
<li> Almost all warnings (-Wall) now fixed! (Thanks
to Jan Peman)</li>
<li> More coding improvements from Gabriel Bouvigne and Warren
Toomey.</li>
<li> <font color="#ff0000">VBR
(variable bit rate). Increases bit rate for short
blocks and for frames where the number of bands containing audible
distortion is greater than a given value. Much tuning needs
to be done.</font></li>
<li> Patch to remove all atan() calls from James Droppo.</li>
</ul>
<h3> LAME 3.10 May 30 1999</h3>
<ul>
<li> <font color="#3366ff">Fast mode
(-f) disables psycho-acoustic model for real time encoding on
older machines. Thanks to Lauri Ahonen who first sent a patch
for this.</font></li>
<li> <font color="#ff0000">New bit reservoir
usage scheme to accommodate the new pre-echo detection formulas.</font></li>
<li> <font color="#ff0000">Tuning of AWS and
ENER_AWS pre-echo formulas by Gabriel Bouvigne and myself.
They work great! now on by default.</font></li>
<li> In jstereo, force blocktypes for left & right
channels to be identical. FhG seems to do this. It
can be disabled with "-d".</li>
<li> Patches to compile MP3x under win32 (Thanks to Albert
Faber).</li>
<li> <font color="#3366ff">bin_serach_stepsize
limited to a quantizationStepSize of -210 through 45.</font></li>
<li> <font color="#ff0000">outer_loop()
will now vary Mid & Side scalefactors independently.
Can lead to better quantizations, but it is slower (twice as many
quantizations to look at). Running with "-m f" does not need
this and will run at the old speed</font></li>
<li> <font color="#ff0000">Bug in inner_loop
would allow quantizations larger than allowed. (introduced in
lame3.04, now fixed.)</font></li>
<li> Updated HTML documentation from Gabriel Bouvigne.</li>
<li> Unix man page from William Schelter.</li>
<li> <font color="#ff0000">numlines[] bug
fixed. (Thanks to Rafael Luebbert, MPecker author).</font></li>
<li> <font color="#3366ff">Quantization speed
improvements from Chirs Matrakidis.</font></li>
<li> <font color="#ff0000">When comparing
quantizations with the same number of bands with audible distortion,
use the one with the largest scalefactors, not the first one outer_loop
happened to find.</font></li>
<li> Improved defination of best quantization when using -f
(fast mode).</li>
<li> subblock code now working. But no algorithm to
choose subblock gains yet.</li>
<li> Linux now segfaults on floating point
exceptions. Should prevent me from releasing binaries that
crash on other operating systems.</li>
</ul>
<h3> LAME 3.04 May 22 1999</h3>
<ul>
<li>Preliminary documentation from Gabriel Bouvigne.</li>
<li> <font color="#3366ff">I wouldn't have
thought it was possible, but now there are even more speed improvements
from Chris Matrakidis! Removed one FFT when using joint
stereo, and many improvements in loop.c.</font></li>
<li> "Fake" ms_stereo mode renamed "Force" ms_stereo since it
forces mid/side stereo on all frames. For some music this is
said to be a problem, but for most music mode is probably better than
the default jstereo because it uses specialized mid/side channel
masking thresholds.</li>
<li> Small bugs in Force ms_stereo mode fixed.</li>
<li> Compaq Alpha fixes from Nathan Slingerland.</li>
<li> <font color="#ff0000">Some new experimental
pre-echo detection formulas in l3psy.c (#ifdef AWS and #ifdef ENER_AWS,
both off by default. Thanks to Gabriel Bouvigne and Andre
Osterhues)</font></li>
<li> Several bugs in the syncing of data displayed by mp3x (the
frame analyzer) were fixed.</li>
<li> highq (-h) option added. This turns on things
(just one so far) that should sound better but slow down LAME.</li>
</ul>
<h3>LAME 3.03 May 18 1999 </h3>
<ul>
<li> <font color="#3366ff">Faster (20%) &
cleaner FFT (Thanks to Chris Matrakidis
http://www.geocities.com/ResearchTriangle/8869/fft_summary.html)</font></li>
<li> mods so it works with VC++ (Thanks to Gabriel Bouvigne,
www.mp3tech.org)</li>
<li> MP3s marked "original" by default (Thanks to
Gabriel Bouvigne, www.mp3tech.org)</li>
<li> Can now be compiled into a BladeEnc compatible
.DLL (Thanks to Albert Faber, CDex author)</li>
<li> Patches for "silent mode" and stdin/stdout
(Thanks to Lars Magne Ingebrigtsen)</li>
<li> <font color="#ff0000">Fixed rare bug: if a
long_block is sandwiched between two short_blocks, it must be changed
to a short_block, but the short_block ratios have not been computed in
l3psy.c. Now always compute short_block ratios just in case.</font></li>
<li> <font color="#ff0000">Fixed bug with initial
quantize step size when many coefficients are zero. (Thanks
to Martin Weghofer).</font></li>
<li> Bug fixed in MP3x display of audible distortion.</li>
<li> improved status display (Thanks to Lauri Ahonen).</li>
</ul>
<h3> LAME 3.02 May 12 1999</h3>
<ul>
<li> <font color="#ff0000">encoder could use
ms_stereo even if channel 0 and 1 block types were different.
(Thanks to Jan Rafaj)</font></li>
<li> <font color="#ff0000">added -k option to
disable the 16 kHz cutoff at 128kbs. This cutoff is never
used at higher bitrates. (Thanks to Jan Rafaj)</font></li>
<li> <font color="#ff0000">modified pe bit
allocation formula to make sense at bit rates other than 128kbs.</font></li>
<li> fixed l3_xmin initialization problem which showed up under
FreeBSD. (Thanks to Warren Toomey)</li>
</ul>
<h3><b>LAME 3.01 May 11 1999</b> </h3>
<ul>
<li> max_name_size increased to 300 (Thanks to Mike
Oliphant)</li>
<li> patch to allow seeks on input file (Thanks to Scott Manley)</li>
<li> fixes for mono modes (Thanks to everyone who pointed this
out)</li>
<li> overflow in calc_noise2 fixed</li>
<li> bit reservoir overflow when encoding lots of frames with
all zeros (Thanks to Jani Frilander)</li>
</ul>
<hr>
<h3>LAME 3.0 May 10 1999</h3>
<ul>
<li><font color="#ff0000">added GPSYCHO (developed
by Mark Taylor)</font></li>
<li> <font color="#000000">added MP3x (developed
by Mark Taylor)</font></li>
<li> LAME now maintained by Mark Taylor</li>
</ul>
<h3>November 8 1998</h3>
<ul>
<li> Version 2.1f released</li>
<li> 50% faster filter_subband() routine in encode.c
contributed by James Droppo</li>
</ul>
<h3>November 2 1998</h3>
<ul>
<li> Version 2.1e released.</li>
<li> New command line switch <b>-a</b>
auto-resamples a stereo input file to mono.</li>
<li> New command line switch <b>-r</b> resamples
from 44.1 kHz to 32 kHz [this switch doesn't work really well. Very
tinny sounding output files. Has to do with the way I do the resampling
probably]</li>
<li> Both of these were put into the ISO code in the encode.c
file, and are simply different ways of filling the input buffers from a
file.</li>
</ul>
<h3>October 31 1998</h3>
<ul>
<li> Version 2.1d released</li>
<li> Fixed memory alloc in musicin.c (for l3_sb_sample)</li>
<li> Added new command line switch (-x) to force swapping of
byte order</li>
<li> Cleaned up memory routines in l3psy.c. All the mem_alloc()
and free() routines where changed so that it was only done <i>once</i>
and not every single time the routine was called.</li>
<li> Added a compile time switch -DTIMER that includes all
timing info. It's a switch for the time being until some other people
have tested on their system. Timing code has a tendency to do different
things on different platforms.</li>
</ul>
<h3>October 18 1998</h3>
<ul>
<li> Version 2.1b released.</li>
<li> Fixed up bug: all PCM files were being read as WAV.</li>
<li> Played with the mem_alloc routine to fix crash under
amigaos (just allocating twice as much memory as needed). Might see if
we can totally do without this routine. Individual malloc()s where they
are needed instead</li>
<li> Put Jan Peman's quality switch back in. This reduces
quality via the '-q <int>' switch. Fun speedup which is
mostly harmless if you're not concerned with quality.</li>
<li> Compiling with amiga-gcc works fine</li>
</ul>
<h3>October 16 1998</h3>
<ul>
<li> Version 2.1a released. User input/output has been cleaned
up a bit. WAV file reading is there in a very rudimentary sense ie the
program will recognize the header and skip it, but not read it. The WAV
file is assumed to be 16bit stereo 44.1 kHz.</li>
</ul>
<h3>October 6 1998</h3>
<ul>
<li> Version 2.1 released with all tables now incorporated into
the exe. Thanks to <b>Lars Magne Ingebrigtseni</b></li>
</ul>
<h3>October 4 1998</h3>
<ul>
<li>
In response to some concerns about the quality of the encoder, I
have rebuilt the encoder from scratch and carefully compared output
at all stages with the output of the unmodified ISO encoder.
</li>
<li>
<a href="http://www.uq.net.au/%7Ezzmcheng/lame/download.html">
Version 2.0</a> of LAME is built from the ISO source code (dist10),
and incorporates modifications from myself and the 8hz effort. The
output file from LAME v2.0 is <em>identical</em> to the output of
the ISO encoder for my test file. Since I do not have heaps of time,
I left the ISO AIFF file reader in the code, and did not incorporate
a WAV file reader.
</li>
<li>
Added section
on <a href="http://www.uq.net.au/%7Ezzmcheng/lame/quality.html">
quality</a>.
</li>
</ul>
<h3> October 1 1998</h3>
<ul>
<li>Updated web page and released LAME v1.0</li>
</ul>
<hr>
<h3>Up to September 1998</h3>
<p>Working on the 8hz source code...</p>
<ul>
<li>
Patched the <a href="http://www.8hz.com/">8hz</a> source
code
</li>
<li>
45% faster than original source (on my freebsd p166).
<ul>
<li>
m1 - sped up the mdct.c and quantize() functions [MDCTD,
MDCTD2, LOOPD]
</li>
<li>m2 - sped up the filter_subband routine using <b>Stephane
Tavenard</b>'s work from musicin [FILTST]
</li>
<li>m2 - minor cleanup of window_subband [WINDST2]</li>
<li>m2 - Cleaned up a few bits in l3psy.c. Replaced a sparse
matrix multiply with a hand configured unrolling [PSYD]</li>
<li>m3 - (amiga only) Added in the asm FFT for m68k (based on
sources from <b>Henryk Richter</b> and <b>Stephane Tavenard</b>)</li>
<li>m4 - raw pcm support back in</li>
<li>m5 - put in a byte-ordering switch for raw PCM reading (just
in case)</li>
<li>m6 - reworked the whole fft.c file. fft now 10-15%
faster.</li>
<li>m7 - totally new fft routine. exploits fact that this is a
real->complex fft. About twice as fast as previous fastest fft (in
m6). (C fft routine is faster than the asm one on an m68k!)</li>
<li>m8
<ul>
<li>
Now encodes from stdin. Use '-' as the input filename. Thanks
to <b>Brad Threatt</b>
</li>
<li>
Worked out that the 1024point FFT only ever uses the first 6
phi values, and the first 465 energy values. Saves a bunch of
calculations.
</li>
<li>
Added a speed-up/quality switch. Speed is increased but
quality is decreased <i>slightly</i>. My ears are bad enough
not to be able to notice the difference in quality at low
settings :). Setting '-q 1' improves speed by about 10%. '-q
100' improves speed by about 26%. Enoding of my test track
goes from 111s (at default '-q 0') to 82s (at -q 100). Thanks
to <b>Jan Peman</b> for this tip.
</li>
</ul>
</li>
<li>
m9 - fixed an error in l3psy.c. numlines[] is overwritten with
incorrect data. Added a new variable numlines_s[] to fix
this. Thanks again to <b>Jan Peman</b>.
</li>
<li>
m10 - Down to 106 seconds by selecting a few more compiler
options. Also added a pow20() function in l3loop.c to speed up
(ever so slightly) calls to pow(2.0, x)
</li>
<li>m11
<ul>
<li>
No speedups. Just cleaned up some bits of the code.
</li>
<li>
Changed K&R prototyping to 'normal' format. Thanks
to <b>Steffan Haeuser</b> for his help here.
</li>
<li>
Changed some C++ style comments to normal C comments in
huffman.c
</li>
<li>
Removed the #warning from psy_data.h (it was getting
annoying!)
</li>
<li>
Removed reference in bitstream.c to malloc.h. Is there a
system left where malloc.h hasn't been superceded by
stdlib.h?
</li>
</ul>
</li>
</ul>
<li>In Progess:
<ul>
<li>
my PSYD hack for the spreading functions is only valid for
44.1 kHz - Should really put in a "if freq = 44.1 kHz"
switch for it. Someone might want to extend the speedup for
48 and 32 kHz.
</li>
<li>
Putting in Jan Peman's quantanf_init speedup.
</li>
</ul>
</li>
</ul>
<hr>
<center>
<p>
<a href="http://validator.w3.org/check?uri=referer">
<img src="http://www.w3.org/Icons/valid-html401"
alt="Valid HTML 4.01 Transitional" height="31" width="88">
</a>
</p>
</center>
</body>
</html>
|