File: changelog

package info (click to toggle)
solfege 3.16.4-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 34,472 kB
  • ctags: 5,287
  • sloc: python: 22,642; xml: 14,196; ansic: 4,682; makefile: 621; sh: 287
file content (2946 lines) | stat: -rw-r--r-- 107,925 bytes parent folder | download | duplicates (5)
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
See changelog-2 and ChangeLog for newer changes.
This file is not updated any more.
----------------------------
 incomplete list of changes
----------------------------
2.1.2:
	* online-docs/addstyle.py: Use correct type of comment for the
	styles.

	* Makefile.in, easy-patches/: move patches needed to create the
	easy-build tarball into easy-patches/. Updated Makefile.in.

	* src/abstract.py: gtk.timeout_add want an integer as first argument.

	* src/lessonfile.py.py + all lesson based exercises: Questions
	can set the midi instrument using the "instrument" variable.
        
	* online-docs/C/lessonfile.xml: document the "instrument" variable.


2.1.1: March 27, 2004
	* Lots of small changes/cleanups not listed.
	
	* src/utils.py: bugfix: allow dots in file names.

	* src/configwindow.py: Let the user select the program to use
	to play .wav files.

	* src/lessonfile.py: added 'play_wav' function.

	* default.config: added sound/wav_player=/usr/bin/aplay

	* lesson-files/fifth-small-pure-0.99, lessonfiles/share/*.wav:
	Added files. The lesson file is an example file showing how to
	use an external program to play .wav files.

	* lesson-files/bin/runcsound.sh, lesson-files/share/fil1.*,
	lesson-files/csound-*: added files.

	* lesson-files/diatonic-*: Use the files for chord-voicing too.

	* mpd/engravers.py: Added a little more space above the first
	staff.

	* src/lessonfile.py: renamed some class methods from 
	"_functionname" to "functionname" because functions with names
	like the first one is ignored by pydoc.
	
	* src/chordvoicing.py: s/get_chordtype/get_cname/

	* src/chord.py, src/lessonfile.py: Let musicformat=satb work
	for the chord exercise. Removed ChordLessonfile.get_chordtype,
	use .get_cname

	* src/lessonfile.py: the 'content' variable for lesson files
	written for the harmonic progression exercise should contain
	the name 'harmonic-progression-dictation'. The old 'harmony'
	keyword is still supported for backward compatibility. Updated
	the lesson files.

	* src/abstract.py, selectlessonfilewidget.py, chord.py,
	chordvoicing.py, singchord.py, idbyname.py,
	harmonicprogressiondictation.py, dictation.py, const.py: code
	cleanup. Don't use the USE_XXX variables. The lesson file
	'content' variable use the exercise names now.

	* src/chord.py, src/idbyname.py: make right-click play something.

	* src/idbyname.py(new_question): display error message for
	LessonfileException is raised.

	* online-docs/C/Makefile: fix building without
	WITH_LOCAL_XMLCATALOG=yes

	* src/chord.py: g_type_status: set translated name when we give up.

	* lesson-files/chord-all: s/m7b7/m7b9/

	* online-docs/*/*.xml: replaced .solfegerc&shortversion; with
	.solfegerc

	* src/app.py: added SolfegeApp.run_external_program. Updated with
	app/rcfileversion=2 to handle appended "example-files" to 
	"cfg/lessoncollections"
	
	* lesson-files: altered-2, chord-m7-7-inv, chord-m7-7-inv-not,
	chord-min-major-close-open, chord-min-major-inv,
	chord-min-major-inv-not: added "set=nn"

	* lesson-files/altered-1: Transposed questions one octave up and
	added "questions_selectable=yes".

	* src/rcfile.py: removed file. We won't upgrade from older
	.solfegerc19 files any more.

	* src/cfg.py: _Really_ make #-comments work.

	* online-docs/C/lessonfiles.xml: Document musicformat=cmdline

	* src/idbyname.py(on_end_practise): handle self.m_P == None better.

	* src/abstract.py(parse_lessonfile): warn when running possible
	dangerous lesson files.

	* src/abstract.py(play_question): added support for musicformat=cmdline

	* added a few lesson files, scripts and data files that use CSound.
	(http://www.sourceforge.net/projects/csound)

	* src/mainwin.py(dialog_yesno): Added function.

	* topdocs/AUTHORS.texi, src/mainwin.py: Spelling fix.
	
	* test/mpd-test.py: Updated for new i18n api.

	* po/no.po: use suboct2 for notenameformat translation.

	* mpd/musicalpitch.py: added suboct2 so that norwegian and german
	notenames has correct octaves.

	* use stupid_catalog_file.cat to build gpl and fdl html page if
	 --with-local-catalogfile is given to configure.

	* mpd/mpdutils.py, mpd/musicalpitch.py, soundcard/midifilesynth.py:
	We should only catch a specific excpetion, not all exceptions.

	* online-docs/Rules.make: Use $(PYTHON) and not pythno2.2

	* Makefile.in: building solfege.1 from solfege.manpage.xml should
	use online-docs/stupid_catalog_file.cat if configured with
	----with-local-catalogfile. 

	* src/idbyname.py: update_gui_after_lessonfile_change: make more
	robust if .solfegerc has invalid data.
	
	Add "Repeat slowly"-button for lesson files that set the
	have_repeat_slowly_button to yes in the lesson file header.
	Slowly is defined as 50% slower as the tempo set in the lessonfile.

	* src/configwindow.py, default.config: Removed slow_bpm since no
	exercises use that variable.

	* src/identifyscale.py: removed file. Reimplemented the exercise using
	lesson files. Updated online-docs/C/identify-scale.xml, src/const.py
	and src/mainwin.py

	* Replaced gtk.TRUE and gtk.FALSE with True and False

	* src/dataparser.py: Silently replace characters with bad encoding.

	* src/idbyname.py: Small changes caused by new SelectLessonfileWidget
	and HIGified look.

	* src/selectlessonfilewidget.py: New SelectLessonfileWidget class.

	* src/lessonfile.py: LessonfileManager should save both
	title and description. Used by new lessonfile selection code.

	* online-docs/C/copyright.xml, online-docs/create_toc.py:
	Use trademark tag and not copy entity.

	* src/gu.py: added hig_dlg_vbox(), hig_category_vbox() and
	hig_label_widget()

	* src/abstract.py(LessonbasedTeacher): Merged set_lessonfile and
	set_lessoncollection into only set_lessonfile function.

	* solfege.manpage.1.in, online-docs/*/solfege.xml:
	don't include iso-num.ent

	* online-docs/stupid_catalog_file.cat: simplified file

2.1.0: November 20, 2003
	* big replace: s/eartraining/ear training/

	* src/idbyname.py, src/chord.py, src/chordvoicing.py,
	src/lessonfile.py: id-by-name: Show a "Repeat arpeggio" button
	whenever the content of a lesson file is chords in chord format.
	Updated files affected by lessonfile.py api change.

	* src/i18n.py: Added setup() and setup_srcdir()

	* src/statistics.py: Save all statistics with C locale name. This
	to avoid problems if a user run the program with several different
	locale settings. If you have ran Solfege with messages set to
	anything else that english, then you might have to delete
	$HOME/.solfege/id-by-name

	* src/lessonfile.py, src/dataparser.py: translating lessonfiles
	without gettext is done using names like this: "name[LANG]=..."
	and not "name(LANG)=...". This because the latter broke in version
	1.9.99, and implementing "name[LANG]=..." was far easier.

	* src/mainwin.py: Added better error message if soundcard.synth==None.

	* src/engravers.py: convert some arguments to .render_to_drawable to
	ints to avoid DeprecationWarnings.

	* src/idbyname.py, src/specialwidgets.py: Now we can select
	the questions to be asked if the variable questions_selectable
	in the header block of lesson files are set to "yes". See
	lesson-files/chord-all-types and lesson-files/harmonic-intervals
	for an example.

	* lesson-files/chord-m7-7-inv: Fixed typo: s/inv=/inversion=/

	* src/lessonfile.py: Removed automatic convert of very lesson files
	with a very old music format. (Older than 1.1.3)

	* solfege.suse82.spec.in, configure.ac: added the specfile.

	* gnomeemu/gnome/ui.py: put buttons in gnome property box in
        correct order.

	* acinclude.m4: removed test for python. We use the one from
        automake 1.7. This should fix the broken configure script of 2.0.1.

	* src/configwindow.py: Improved using GNOME Human Interface
	Guidelines (HIG)

	* src/htmlwidget.py(on_button_release): get_iter_at_location want
	ints as arguments.

2.0.3: October 11, 2003 (Merged from stable branch on 2003-10-11)
	* online-docs/C/chord-names.xml: added file.

	* lesson-files:
	 Renamed chord-m7-7-maj7-7b5 chord-m7-7-maj7-m7b5-dim7
	 Renamed chord-maj7-7b5 chord-maj7-m7b5-dim7
	Fixed bugs in the above mentioned files plus these:
	 chord-m7-7, chord-m7-7-inv, chord-m7-7-inv-not, chord-min-major-7
	My english sucks. I recently learned that what I have called
	"Major Seventh" really is called "Dominant Seventh" in english.

	* solfege.suse82.spec.in, configure.ac: added the specfile.

2.0.2: September 21, 2003 (Merged from stable branch on 2003-10-11)
	* configure.ac: set program version to 2.0.2

	* gnomeemu/gnome/ui.py: put buttons in gnome property box in
	correct order.

	* acinclude.m4: removed test for python. We use the one from
	automake 1.7. This should fix the broken configure script of 2.0.1.

	* src/htmlwidget.py(on_button_release): get_iter_at_location want
	ints as arguments.

2.0.1: September 8, 2003
	* acinclude.m4: test for python2.3

	* solfege.py: run /usr/bin/python and not /usr/bin/python2.2
	Edit the file if it does not fit you needs.

	* configure.ac: check for python2.3

	* online-docs/C/dictation-help.xml: removed strange guibutton markup.
	
	* lesson-files/chord-7b9-maj79: fixed wrong notes in chords.

	* configure.ac : added --disable-pygnome-test and 
	--disable-pygtk-test

2.0.0: September 1, 2003
	* soundcard/midifile.py: Fix tempo setting. Thanks to Michael Becker
	for reporting this.
	
	* Don't create TRANSLATING from online-docs/C/translating-solfege.html

	* topdocs/README.texi, topdocs/INSTALL.texi: updated to today
	world.

	* online-docs/Makefile: install png files.

	* soundcard/Makefile: install correct midi module depending on
	swig version. Remove old files when configure is rerun.
	Thanks Michael Shigorin.
	
	* src/tracebackwindow.py: Adjusted the message and decreased heading
	font size.

	* online-docs/[C|no]/online-resources.xml: New url to mail archive.

	* src/rcfile.py, solfege.py run-solfege.py.in: Store config settings
	in unversioned file ~/.solfegerc. You can delete the old
	~/.solfegercX.Y files after the first run of solfege 2.0

	* src/mainwin.py: Redirect stderr to the traceback windows earlier
	in the init process because we want to trap output from statistics.py.

	* src/statistics.py: Statistics are stored in ~/.solfege/ and not
	in versioned directory ~/.solfegeX.Y/ . The file
	~/.solfege/statistics_version will make sure we understand the
	statistics we read. The program will import statistics from solfege
	1.9 or 1.4 if available. After you have ran the program once, you
	can delete all old ~/.solfegeX.Y/ directories. 

	* online-docs/[C|no]/chord-help.xml: Small change to make the file
	also be valid sgml docbook.

	*po/no.po: translation of C and B griff was mixed up.

	* src/multipleintervalconfigwidget.py: bugfix for spin button
	selecting what interval we are configuring.

	* src/mainwin.py: about window: add 2003 to list of years with
	releases.

	* src/gu.py: Fix PercussionNameOptionMenu

1.9.99: July 31, 2003
	* topdocs/TRANSLATING.xml: removed file. Merged content with
	online-docs/C/translating-solfege.xml
	
	* online-docs/C/helpfile-format.xml: texi->docbook :-)

	* lesson-files/ : Added some chord lesson files. Renamed others.
	Added a paragraph about the files in the help page for the chord
	exercise. Transposed a lot of the chords one octave up.

	* Makefile.inc.in, configure.ac, acinclude.m4, soundcard/Makefile:
	Detect swig version automatically. Dropped --with-swig13 option.

	* online-docs/addstyle.py: Less empty space on generated pages.

	* online-docs/C/lessonfile.xml: Added paragraph about file encoding.

	* online-docs/[C|no]/chord-help.xml: Add nice ordered list of lesson files
	to practise.

	* src/app.py: Display nice error message if links goes to non-existing
	lesson files.

	* src/selectlessonfilewidget.py: Do really watch the 'lessonfile'
	and 'lessoncollection' config vars, and update the gui when the
	change.

	* src/lessonfile.py: Don't use build in type name 'file' as
	a variable name.
	
	* src/htmlwidget.py(TextViewHtmlWidget): non-underlined whitespace
	between two links. Adjust font according to GNOME defaults.
	(GtkHtml2Widget): scrollbars POLICY_AUTOMATIC.

	* Lesson files are assumed to be UTF-8 by default. Add the
	line "# -*- coding: charset -*-" as the first line in the file
	to use other encodings. Popular codings will be
	"# -*- coding: iso-8859-1 -*-" for western european languages and
	"# -*- coding: KOI8-R" for russian language. See
	lesson-files/barnesanger for an example.
	
	* src/dataparser.py, src/lessonfile.py: Rewrote the dataparser
	once more. But this time I have read about parser before the
	rewrite, so the parser is easy to maintain and extend. This
	rewrite revealed some oddities in the lesson file syntax. So from now
	on the recommended way to include a lesson file is by the command
	include("filename") and not the old way as include(filename).
	The old syntax will still work, but support will be removed in the
	future.

	* solfege.redhat9.spec.in: Added file.

	* src/inputwidgets.py: Don't call the callback function if the
	user click on the widget before we have started to practice.
	
	* src/htmlwidget.py: Added enough table support to diplay the
	tables in the users guide.

1.9.11: July 14, 2003
	* src/i18n.py: Simplify. The same setup code for windows and linux.
	* mpd/{engravers.py, parser.py}: display natural signs in key
	signatures if necessary. Renamed a few variables and functions.
	
	* src/htmlwidget.py: unicode fix for ms-windows. Code cleanup,
	reading htmllib docs really help.
	* soundcard/winsynth.py: added dummy WinSynth.stop() function.
	* installer.nsi.in: removed.
	* configure.ac, windowsinstaller.iss.in: added file. This is
	the script to create the Inno Setup installer.
	* solfege.bat, runpy2exe.bat: update the ms-windows dist.
	* solfegewithconsole.bat: removed file. Edit solfege.bat if you
	need to see the output.
	* src/mainwin.py: import all exercise modules at startup. We do
	this because py2exe need it.

	* finally translated ChordVoicing to norwegian :-)

	* online-docs/C/id-tone-help.xml, online-docs/no/id-tone-help.xml:
	added paragraph to keyboard shortcuts.

	* solfege.redhat8.spec.in: added gnome-python2-gtkhtml2 to 
	Requires field.

1.9.10: May 27, 2003
	* po/fr.po: some update from Olivier Ahn. Need more work.

	* topdocs/TRANSLATING.xml: small update.

	* online-docs/C/Makefile: workaround: ignore errors building
	fdl.html and gpl.html. Need this workaround until we figure out
	what is causing xsltproc segfault on these files.

	* src/inputwidgets.py: bugfix: added dummy grab_focus_first_button
	function to classes that need it.
	
	* configure.ac: fix --enable-local-xmlcatalog description.

	* src/mainwin.py: menu creating cleanup. Use ImageMenuItem when
	required. Use tearoff menus if gui/menus_has_tearoff is set to
	true in default.config or ~/.solfegerc1.9
	Use gtk.main_quit, not gtk.mainquit.	

	* gnomeemu/gnome/ui.py: stupid bugfix: hide about-window when
	we click ok.

	* src/chordvoicing.py: display notenames for the answer using
	.get_user_notename, not .get_notename.
	
	* online-docs/no/chord-help.xml,
	harmonic-progression-dictation-help.xml, chord-voicing-help.xml:
	added norwegian translation.

	* online-docs/C/chord-help.xml: spelling fix.

	* src/melodicinterval.py, src/harmonicinterval.py: Make notename
	spin button on config page wider, so the whole notename is visible
	in french.
	
	* src/idtone.py: Translate _all_ notenames on config page.
	
	* src/notenamespinbutton.py: Rewrote the class not using
	gtk.SpinButton; input and output signals are broken. Also the with
	the new class, we can use pango markup when displaying notenames.

1.9.9: March 26, 2003
        * this release is also distributed as solfege-easybuild-1.9.9.tar.gz
        This is for people that fails to install the proper docbook XML
        tools to build the documentation.
        
        * online-docs/addstyle.py: use background: #ccc for .programlisting.

        * po/ru.po: Fix a few keyboard accels.

        * src/htmlwidget.py(HTMLWriter): pango markup size attribute
        is 1/1000 of a point, not point. Found this since gtk+ 2.2 is
        more picky than gtk+ 2.0.
        
	* online-docs/C/lessonfile.xml: add 'satb' to musicformat doc.

	* src/mainwin.py: display progress info in the splash window
	when we start the program.

	* src/lessonfile.py, online-docs/C/lessonfile.xml: Three types
	of transpositions: "accidentals", "keys" and "semitones". Documented
	this.

	* src/dataparser.py: simplify the get_tokens function from 95 to
	30 lines and get a small speedup.

	* src/rcfile.py: added code that will copy relevant data from
	.solfegerc1.9 (or older) and to .solfegerc2.0

	* run "make dvi" in online-docs/ to create a dvi file with the
	online documentation.
	
	* src/abstract.py, default_config: don't set action_area button
	height, use default gtk layout.

	* src/cfg.py: don't raise string exceptions, use Exception class.

        * src/rhythm.py, src/abstract.py, src/harmonicinterval.py,
        src/identifyscale.py, src/idbyname.py:
        Move focus to the controls used to answer when we click Repeat.

        * src/mainwin.py: The about window will only show the name of
        the translators of the current locale. Translators add their name
        in the .po files.

	* src/htmlwidget.py: only connect to self.anchor_track_cb if the
	function is not None.

1.9.8: February 3, 2003
	* online-docs/no: compare-intervals-help.xml, dictation-help.xml,
	harmonic-interval-help.xml, harmonic-progression-dictation-help.xml,
	id-by-name-help.xml, id-tone-help.xml, identify-bpm-help.xml,
	identify-scale-help.xml, inc-interval-input-keybindings.xml,
	melodic-interval-help.xml, online-resources.xml, rhythm-help.xml,
	sing-chord-help.xml, sing-interval-help.xml, twelve-tone-help.xml:
	Translated to norwegian.

	* online-docs/C/: id-by-name-help.xml, id-tone-help.xml,
	identify-bpm-help.xml, inc-interval-input-keybindings.xml,
	online-resources.xml, sing-chord-help.xml, sing-interval-help.xml,
	welcome.xml: Small markup fixes, fixing of very bad english.
	The bad english are still there.
	
	* updated copyright strings in (hopefully) all files.

	* src/mainwin.py: Mainwin.set_icon; at least metacity show the icon
	when we cycle programs, but I still get the warning:
	object class `GnomeProgram' has no property named `default-icon'

	Call gnome.program_init with version number from configureoutput,
	not just 1.9.1.

	* solfege.manpage.xml.in: rewrote manpage in docbook. Removed the
	old file.

	* online-docs/create_toc.py: don't write about untranslated files
	in the english toc. Fix encoding.

        * src/htmlwidget.py(GtkHtml2Widget.source): fix for gtkhtml2 2.2.0:
        call Document.clear() before we open the stream and write to it.

	* online-docs/C|no|ru|es_MX/solfege.xml: give full url to iso-num.ent

	* online-docs/es_MX/solfege.xml: refer to the DTD on
	www.oasis-open.org

	* debian-dir/rules: --with-local-xmlcatalog

	* debian-dir/control: build depend on docbook-xml

1.9.7: January 8, 2003
	* online-docs/addstyle.py: Use courier as tt font to avoid warnings
	on my system.
	
	* mpd/interval.py: fixes to make pychecker and module testing work
	better.

	* topdocs/TRANSLATING.xml: merged online-docs/README and po/README.

	* online-docs/C|es_MX/copyright.xml: fixed markup error.

	* online-docs/C/Makefile: build gpl.html and fdl.html separately
	because we want them in one big file. We need a big file because
	the rest of the doco is built using suppress.navigation 1

	* online-docs/create_toc.py: Hopefully the last time: get the
	toc translated correctly.

	* Makefile.in: Run make in po/ directory early, because gettext
	is used later in the build.
	
	* src/htmlwidget.py(HTMLWriter.send_flowing_data): workaround for
	a unicode error I don't understand.

	* mpd/musicalpitch.py: added MusicalPitch._format_notename function.
	Notenames are now fully translateable using .po files. Also fixed the
	file so we can run pychecker on it, and made doctest tests work.

	* src/identifybpm.py: button sensitivity fix. set q_status correct,
	and do the right thing.

	* src/rhythm.py: button focus fix.

	* src/selectlessonfilewidget.py(toggle_lessonfile_details):
	use .get_active(), .active attrib is not supported in pygtk+ 1.99.x

	* src/ abstract.py, app.py, chord.py, chordvoicing.py, 
	compareintervals.py, dictation.py, harmonicinterval.py, idbyname.py,
	identifybpm.py, identifyscale.py, idtone.py, mainwin.py,
	melodicinterval.py, rhythm.py, singchord.py, twelvetone.py:
	make sure on_start|end_practise is called at the proper places.

	* added online-docs/stupid_catalog_file.cat. The option
	--enable-local-xmlcatalog will use this file if your /etc/xml/catalog
	file is missing or broken. Documented this in the INSTALL file.

	* online-docs/*/solfege.xml: do the document start the correct way.

	* removed the last traces of development_menu.

	* online-docs/C/*-help.xml: updated key bindings.

	* src/idtone.py: Reset statistics when we give up. Don't be
	confused when the users click the piano after the question has
	been solved.

	* Don't use my home made system for keyboard accels, do it the
	standard gtk+ way.

1.9.6: December 28, 2002
	* src/gu.py(Flashbar): Do nothing if we pop an empty stack.

	* src/inputwidgets.py(AbstractGuitarWidget.mark_note): removed
	workaround I had to use for gnome 1.4.
	
	* soundcard/rat.py: Made rat a new-style class and user __slots__
	to gain a tiny-tiny performance increase.

	* src/harmonicprogressiondictation.py, default.config,
	online-docs/C/harmonic-progression-dictation-help.xml: Added
	'Give up' button to the exercise. Changed the keyboard shortcut
	to answer from Ctrl-g to Ctrl-a, and let Ctrl-g give up.

	* src/htmlwidget.py, src/mainwin.py: This time, _really_ let
	the html widget grab focus at program startup.

	* Fixed a few simple FIXME tags found in the code. Use
	display_question_music_error_message in lots of exercises to display
	parse errors from mpd.

	* src/mainwin.py: Move configureoutput.WITH_GNOME test to after
	we have done pygtk.require("2.0"), or else the real gnome bindings
	will be first in the path. 

	* src/chord.py: Make the exercise 'config/picky_on_new_question'.

	* src/multipleintervalconfigwidget.py(reset_to_default): Enable
	exactly the same intervals that are in default.config.
	
	* online-docs/es_MX: added spannish/mexican translation. Contributed
	by Daniel Tonda. Don't try to process gpl|fdl-appendix.sgml since they
	are not (and should not be) translated.

	* solfege.gtkrc: Removed some definitions used by the old gnomeemu
	about window.

	* configure.ac: test for gtkhtml2 using pkgconfig.

	* gnomeemu/ : Removed some junk that is not necessary with gtk+ 2.0
	Wrote About class.

	* online-docs/C/harmonic-progression-dictation.xml: Added paragraphs
	about configuration and key bindings.

	* solfege.redhat.spec.in: add missing --with-buggy-distro and
	fix path to solfege.png. Thanks Daniel Tonda.

	* src/gu.py(SolfegeDialog): removed class.

	* online-docs/create_toc.py: added link to GPL and FDL.
	Improved html code. Don't import gtk.

	* src/lessonfile.py: handle corrupt lessonfile. List them on
	the page where we list all installed lessonfiles.

	* src/selectlessonfilewidget.py: Improved exception handling:
	Display the message using mainwin.display_error_message.
	Don't choke on empty lessonfile collection.

	* soundcard/midifilesynth.py, soundcard/oss_common.py: added
	stop() function.

	* src/mainwin.py(MainWin.display_error_message): use
	gtk.MessageDialog, not gnome.ui.gnome_error_dialog_parented.

	* mpd/musicdisplayer.py, src/singchord.py, src/idbyname,
	src/dataparser.py, mpd/parser.py, src/abstract.py, src/dictation.py,
	src/harmonicprogressiondictation.py: Handle errors in lessonfiles
	better.

	* src/lessonfile.py(SingChordLessonfile.select_random_question):
	Rewrote function because the old was unreadable. Now it works as
	documented: if we transpose, make sure there are no more than five
	accidentals.

	* src/rhythm.py(Gui.new_question), src/configwindow.py(on_apply),
	src/identifyscale.py(Gui.new_question):
	Don't rise a string exception, use an assert statement.
	
	* mpd/_exceptions.py: Added file and MpdException. All exceptions
	raised from the module now derive from this.

	* mpd/mpdutils.py: renamed from utils.py because this make pychecker
	unhappy.
	
	* src/inputwidgets.py: removed norwegian comment since python2.3
	want only ascii characters unless set the source code encoding.

	* src/identifybtpm.py: Focus fix + follow picky_on_new_question.

	* debian-dir/control: Small adjustment to package description.

	* src/specialwidgets.py(grab_focus_first_button): added function

	* src/melodicinterval.py, src/singinterval.py, src/identifyscale.py,
	src/idbyname.py, src/mainwin(MusicViewerWindow), src/dictation.py,
	src/twelvetone.py, src/idtone.py, src/compareintervals.py,
	src/singchord.py, src/harmonicprogressiondictation.py,
	src/identifybpm.py:
	Improved focus when using keyboard.

	* src/harmonicinterval.py: 'New interval' button gets focus when
	we give up.

	* src/chord.py: Improved focus when using keyboard. Display thei
	music when we have guessed correct.

1.9.5: Desember 20, 2002
	* online-docs/C/translating-solfege.xml: updated.

	* online-docs/[no|ru]/Makefile: use gnu make function to set
	the name variable. Since the files now are the same, maybe we
	should use symlinks?

	* acinclude.m4(AM_PATH_PYTHON): make version strings with
	letters in work, so we can use python 2.3a0 

	* online-docs/Makefile, online-docs/create_toc.py,
	online-docs/Rules.make: Localisation fix. Make the generated
	TOC be localised, and do the russian manual in utf-8.
	
	* configure.ac: added --with-swig13 option. Use this if you have
	swig 1.3 and not the default version 1.1.
	
	* configure.ac: added --with-buggy-distro option to do some extra
	testing on buggy distros like RedHat 8.0. Use pkgconfig test for
	pygnome by default, only use the import test if this option is used.

	* src/chordvoicing.py, harmonicinterval.py, src/htmlwidget.py,
	src/mainwin.py, src/chord.py: Focus adjustments.

	* acinclude.m4(BUGGY_DISTRO_CHECK_PYGNOME2): Renamed from
	CHECK_PYGNOME. The test is still flawed, but a little less flawed
	since it now does "import gnome"

	* configure.ac: Fail with an error message if we give --with-gtkhtml
	to ./configure, but the library are not found.

	* graphics/solfege.xpm: added icon that was lost in xpm->png
	conversion in version 1.9.3.

	* mpd/musicalpitch.py(get_notename, get_octave_notename,
	get_user_notename, get_user_octave_notename): there four
	functions replace .notename() and .str() functions. Updated
	callers.
	
	* src/selectlessonfilewidget.py(update): select the correct
	lessonfile on the optionmenu when lessonfile based exercises
	are started.

	* src/harmonicprogressiondictation.py: Set focus to answer entry
	when we start a new question. Pressing ENTER key check our answer.

	* lesson-files/jsb-inventions: added missing '}'
	
	* tools/lf2so.py: can now process all lessonfiles.

	* online-docs/Rules.make.texinfo, htmlfix.py.in, htmlfix.py,
	tools/midiplayer.c: removed file.
	
1.9.4: Desember 6, 2002
	* Makefile.in: removed rpm and deb targets.

	* solfege.spec.in: corrected package names for Requires field.
	The package names are for redhat 8.0. Use --enable-docbook-stylesheet
	in %build to find the stylesheet.

	* online-docs/create_toc.py: the file will create a table of
	contents to the users guide for all langs other than C. If
	a file is not translated, there will be a link to the english
	file.

	* configure.ac: Fail xsltproc is not able to parse the the
	stylesheet found by configure.

	* acinclude.m4: added test TEST_STYLESHEET
	
	* configure.ac, online-docs/Rules.make, Makefile.inc.in: use
	variable XSLTPROC to find xsltproc.

	* online-docs/C/harmonic-progression-dictation-help.xml: added
	skeleton file to be filled later.
	
	* online-docs/C/twelve-tone-help.xml: renamed from
	twelvetone-help.xml

	* po/es.po, po/Makefile: added partial spanninsh translations
	from 1.4.8 and asked Daniel to translate es.po.
	
1.9.3: November 13, 2002
	* configure.ac: added --enable-docbook-stylesheet option.

	* mpd/parser.py(_generate_midi_events): let each voice have it's
	own channel. Please let me know if anybody have problems with this.

	* configure.ac, acinclude.m4: wrote new test to check for
	gnome-python bindings because some distros, for example
	redhat 8.0 don't include gnome-python-2.0.pc.

	* graphics/identify-bpm24.png: added ugly icon for the exercise.

	* xpm/*.xpm: converted files to png and moved them to
	graphis/ directory. Updated makefiles and the files that used
	the graphics.

	* topdocs/README.texi: removed paragraph about LC_NUMERIC other than C
	would cause an error, since this is not a problem with pygtk2.

	* src/const.py: Add harmonic-progression-dictation to the file
	menu. Added auto-new-question function and made it possible to
	get different instrument on different voices.

	* src/mainwin.py, src/const.py, src/identifybpm.py: small fix to
	make it work with gtk+2.0, a few bugfixes and added the exercise
	to the file menu. Better configuration will be added later.

	* src/mainwin.py: be nice to systems that don't have the pygtk
	module.

	* online-docs/Rules.make, Makefile.in: run update-version-strings
	on the toplevel dist target to avoid building the documentation
	twice.
	
	* Makefile.in: make 'make dist' run 'aclocal -I
	/usr/share/aclocal/gnome2-macros'

	* misc files: removed "from __future__ import nested_scopes"
	because this is standard in python2.2

	* src/notenamespinbutton.py: it is now possible to write the
	notename directly into the entry, without using the arrows.
	Added workaround for python2.2 bug.
	
	* configure.ac: Check for xsltproc.

	* src/mainwin.py, test/lessonparser-test.py, test/mpd-test.py,
	test/musicparser-test.py: Added 
	"import pygtk; pygtk.require("2.0")" to make sure we get the
	correct version of pygtk bindings.

	* src/chordvoicing.py: Made the exercise usable. More work has
	to be done before the lesson file format is decided and the lesson
	file backend can do random voicing of chords.
	
	* online-docs/C/Rules.make: automatically update version and
	shortversion ENTITY in online-docs/xx/solfege.xml

	* online-docs/C/lessonfiles.xml: fix xml markup bug that cause
	my simple html widget to crash.

	* src/utils.py(parse_url): handle anchors in links.

1.9.2: August 18, 2002
	* online-docs/C/*.xml: Added CVS $ Id $ tag.

	* Just a warning: Since we now use gtk+ 2.0, all strings in
	lessonfiles that represent labels that will be displayed by the
	program have to be unicode.

	* renamed configure.in --> configure.ac

	* configure.in: require pygtk and gnome-python version 1.99.11
	or newer.

	* Use static methods new_from_notename and new_from_int to create
	a new MusicalPitch with a value other than "c". __init__ does
	automatically initialise to "c". Updated affected files.

	* src/inputwidgets.py(IntervalButtonsWidget),
	src/compareintervals.ly(__ini__): JUSTIFY_CENTER some labels.

	* src/notenamespinbutton.py: Removed old unused
	SimplestNotenameSpinButton class.

	* SpinButton: use 'value-changed' signal, not 'changed'.

	* converted the last set_usize to set_size_request.

	* test/mpd-test.py: updated to new i18n init.

1.9.1: July 2, 2002
	* configure.in: removed the sysconfdir hack. Specify --sysconfdir
	to where you want it, if {prefix}/etc is not ok.

	* Moved some stuff from run-solfege.py.in and solfege.py to
	  mainwin.py

	* generate debian-solfege.py.in from run-solfege.py.in . 

	* src/mainwin.py: key bindings are not confused by NumLock or
	CapsLock.

	* src/rhythm.py: two small fixes that the convert script (gtk
	1.2->2.0) did not handle.

	* harmonic-interal and melodic-interval: Use OptionMenu instead
	of Combo to select input widget.

	* Updated about-dialog to GNOME2

	* converted english online docs and the russian welcome page
	to docbook. The dutch translation is still in texinfo.

	* src/i18n.py(get_charset): removed function

	* src/htmlwidget.py: set the charset by examining the
	header of the html document.

	* topdocs/README.texi, topdocs/INSTALL.texi: updated after
	gnome2 porting

	* configure.in: more uptodate to GNOME2 stuff.

	* src/htmlwidget.py: Added support for gtkhtml2
	
	* It is not allowed to use single qoutes for multiline strings
	any more in lesson files. You have to use tripple quotes like
	in python. This because we use pygettext to exctract
	translatable strings. Updated online-docs/C/lessonfiles.texi.m4

1.4.7: June 14, 2002
	* online-docs/C/music-format.texi.m4: fixed typo.

	* src/compareintervalls.py(Gui.show_intervalls): there was a
	missing space after the \clef command if interval two was
	displayed with a different clef than clef one. Thanks to David
	Petrou for the bug report.

1.9.0: April 20, 2002
	* po/ : We don't need the solfege-intervalnames-nn.po files
	any more. See po/README for details.

	* topdocs/README.texi: updated required software list.

	* use pythons gettext.py

	* I deleted Mandrake to install GNU/Hurd, so there are no .rpm this
	time. Time to start saving for a larger hard disk.
	
	* First step in port to gtk 2.0. You have to configure with
	--without-gnome. This release includes a simple and very ugly html
	widget that can display images, fonts and pretty normal looking
	links, even for ms-windows users. Small adjustments to the gui.

1.4.6: April 17, 2002
	* generate gpl.html from gpl.texi, and use that instead of GPL.html
	that was just plaintext GPL inside <pre> tags.

	* online-docs/C/Makefile: fdl.html is cleaned by make clean.

	* src/dictation.py(Gui._update): don't break if $HOME/lessonfiles
	does not exist or is empty.

1.5.1: (not yet released)
	* online-docs/texidefinitions.m4.in: intervall->interval

	* src/configwindow.py: changes to make gtk 2.0 porting easier.

	* src/cfg.py: added watch functionality to cfg.set_XXX

	* configure.in: use gtkhtml by default

	* src/cfg.py, src/mainwin.py: removed custom float method. 
	locale.setlocale(locale.LC_NUMERIC, "C") seems to fix the problems.

	* added changes from stable branch (1.4.3 and 1.4.4 releases)

1.4.5: April 8, 2002
	* mpd/musicdisplayer.py(display_range): sort the list of
	timepos Rats. Fixes problem with jsb-invention and dictation
	exercise.

	* po/Makefile: call mkdir with -p before filename, bugfix for
	FreeBSD.
	
	* src/INSTALL.texi: write that we need GNU m4, not any m4.

	* src/README.texi: --no-sound option

	* src/midifilesynth.py: do os.kill inside a try-except block just in
	case the process is already killed. Also kill using SIGKILL, not
	SIGQUIT.

	* configure.in: python version test broken for python 1.5

1.4.4: March 11, 2002
	* htmlfix.py: fix bugs in texinfo 4.0f

	* solfege.spec.in: make /etc/solfege1.4 a %config files

	* online-docs/C/development-warning.texi.m4: removed file
	
	* online-docs/??/*.texi.m4: texinfo code fixup.

	* online-docs/C/nognomewelcome.texi.m4: fix typo.

	* Makefile.in: build INSTALL.win32

1.4.3: February 18, 2002
	* installer.nsi.in: little work in windows installer.

	* po/ru.po: *really* add russian translations this time.

	* add 2002 to list of years in copyright notices.

	* po/da.po: updated danish translation.

	* online-docs/C/Makefile: really install AUTHORS.html, GPL.html
	and fdl.html.

	* online-docs/C/lessonfiles.texi.m4: inserted newline to create
	a paragraph + fixed a typo.

	* src/mainwin.py: locale.setlocale(locale.LC_NUMERIC, "C") also
	on linux because gnome.ui tend to change the locale for float()
	even if it should not.
	
	* src/inithack.c: removed file. You should use gdk-pixbuf 0.15.0
	or newer if you want to use GtkHTML and view pages with png images.
	(If you can't install gdk-pixbuf 0.15.0, you can as always use
	XmHTML)

	* create_fileslist.py: use wildcard when specifying man page, so
	both distros that gzip and bzip2 the file will work.

	* src/harmonicintervall.py, src/statistics.py: harmonic intervall
	statistics should not say directions of intervalls.

	* src/abstract.py(Gui.keymatch): select correct keyboard
	shortcut if both KEY and <modifier>KEY are possible matches.

	* src/inputwidgets.py: changed the font used for keyboard
	labels because it didn't show on mandrake 8.1.


1.5.0: February 9, 2002
	* installer.nsi.in: include the translated messages, but they are
	still broken. Simplified the file.

	* online-docs/png/mainwin.py, online-docs/C/ui.texi.m4: made a 
	new screenshot and updated the text a little.

	* src/harmonicintervall.py, src/statistics.py: harmonic intervall
	statistics should not say directions of intervalls.

	* src/inithack.c: removed file. You should use gdk-pixbuf 0.15.0
	or newer if you want to use GtkHTML and view pages with png images.
	(If you can't install gdk-pixbuf 0.15.0, you can as always use
	XmHTML)

	* create_fileslist.py: use wildcard when specifying man page, so
	both distros that gzip and bzip2 the file will work.

	* src/cfg.py(float): added home made float function to be used
	since PyGNOME regularly changes the comma separator char when it
	should not.

	* src/abstract.py(keymatch): make keyboard shortcuts work even
	if scroll lock or num lock is on.

	* src/chordvoicing.py: new exercise, not complete, see help
	online documentation.

	* mpd/utils.py: removed DataClass, we can use __slots__ and
	python 2.2 for this.

	* a few small fixes after checking code with pychecker.

	* online-docs/C/helpfile-format.texi.m4: fixed typo.

	* IntervalButtonsInterface (used by harmonic and melodic intervall)
	can disable buttons for intervals that will not be asked for.

	* 'The big intervall->interval spelling fixup'

1.4.2: January 22, 2002
	* configure.in: Check for Python >= 2.1

	* solfege.spec: put the file in toplevel source dir, so users
	can do "rpm -ta solfege-1.4.2.tar.gz" to build rpm package.

	* create_fileslist.py: moved to toplevel sourcedir, and added
	hack since rpm seems to compress the man page.

	* lesson-files/chords-3: fixed wrong toptone to one chord.

	* src/idtone.py: clear flashbar on new question. Thanks Seymour.

	* online-docs/*/*.texi.m4: intervall->interval spelling fix. Only
	user visible fix, not changing file names and rc file yet. We have
	to do the rest in the next devel releases because this require that
	we change the names of exercises, files and rc file format.

	* online-docs/C/translating-solfege.texi.m4: rewrote paragraph
	about translating users guide.

1.4.1: December 25, 2001
	* solfege.py, run-solfege.py.in, debian-solfege.py.in,
	src/mainwin.py: do the old-rc-file-copy before cfg.initialise.

	* src/cfg.py: reread_data should read _app_defaults.
	
1.4.0: December 22, 2001. Merry Christmas everybody!
	* src/rcfile.py, src/mainwin.py: import rc file from earlier
	versions of solfege.
	
	* solfege.py, debian-solfege.py.in, run-solfege.py.in: check
	for what python version we are using, and issue a warning if the
	python interpreter is too old.

1.3.99: Desember 19, 2001
	* debian/solfege.postinst: a little more robust.

	* src/configwindow.py(create_win32_sound_page): set apply
	button sensitive when we change the g_synth_num spin button.

	* installer.nsi.in: don't claim to be alpha quality.

	* Makefile.in: export-to-dos will make winmidi.pyd
	
	* Makefile.in: the 'dist' target depend on rpm-spec to make sure
	we distribute rpm/files.list.

	* Makefile.in: make README and friends depend on topdocs/defs.texi
	so they get updated.

1.3.4: Desember 17, 2001
	* solfege.1.in: use configure to get version numbers
	in man page.

	* online-docs/C/index.texi.m4: fix broken link to
	twelve-tone-help.html

	* po/: added russian translations.

	* online-docs/id-tone-help.texi.m4: fixed a typo + use
	SOLFEGESHORTVERSION m4 macro.
 
	* online-docs/all languages: use m4 macro expansion to automate
	things when version number is mentioned.

	* online-docs/texidefinitions.m4: renamed to
	online-docs/texidefinitions.m4.in because it now contains m4
	variables telling the version number of Solfege

	* topdocs/*: added topdocs/defs.texi.in that defines variables
	for the version number of this release, so it is easier to make
	sure version numbers and file names are uptodate on the README files.

1.3.3: December 6, 2001
	* online-docs: added russian translation of welcome message.
	Po-files will follow in 1.3.4

	* first release with new windows installer. Windows users only
	need to download one big .exe file that contains everything they
	need. Don't even have to install python. (I will re-add the option
	to do it "the right-but-hard way" installing python, gtk and
	pygtk manually later, probably in the next release.)
	
	* src/htmlwidget, configure.in: If we use xmhtml or gtkhtml
	are now only selected using configure options. This is because
	the hack using cfg module so select htmlwidget don't work using
	py2exe on MS Windows.
	
	* src/dataparser.py, mpd/parser.py, mpd/engravers.py: some
	a = a + x changed to a += x. The speed increase is only
	theoretical.

	* You can now select what synth number to use on ms windows.
	
	* soundcard/winmidi.c, soundcard/Makefile: Steve Lee ported the file
	to gcc, we now can crosscompile the sound module from linux using
	mingw32 gcc cross compiler.

	* Makefile.in: remove old trash, a little simplified using
	pattern rules.

	* topdocs/INSTALL.texi: add a paragraph about configure
	options.

	* topdocs/README.texi: update to new config file names, and
	make the comments version independent.

1.3.2: November 9, 2001
	* online-docs Makefiles: move pattern rules to Makefile.inc.in

	* online-docs/index.texi.m4: renamed to solfege.texi.m4
	
	* online-docs/C/id-tone-help.texi.m4: add missing '}'

	* configuration: the program will read
	/usr/share/solfege/default.config, then /etc/solfege1.3,
	and finally $HOME/.solfegerc1.3. This mean that /etc/solfege1.3
	can now be empty, or only contain sys admins changes, for
	example the sound setup, instead of the whole set of default
	values.

	* topdocs/INSTALL.text: fix broken url

	* online-docs/C/*.texi.m4: added the cvs 'Id' keyword

	* online-docs/C/id-tone.texi.m4: small improvement to
	the documentation.

	* src/idtone.py: set q_status to const.QSTATUS_NO in 
	Gui.start_practise instead of Teacher.end_practise so
	we get the name on the first tone when we press 'New tone'
	after reading some docs.
	
	* topdocs/FAQ.texi: added paragraph about 'invalid literal
	for float():' error message.

	* test/mpd-test.py: update to changed mpd api. Use python2.1
	instead of 'env python'

	* src/mainwin.py: removed some lambda statements, simplified
	others.
	
	* src/cfg.py(get_bool): return 0 if get_string don't return
	'true' or 'false'.

	* src/idtone.py(Gui.on_answer_from_user): fixed typo in
	config variable name.
	
	* src/const.py: use tuplets instead of lists for lists that
	won't ever change.

	* configure.in: check for Python.h in pythonX.Y/
	
	* solfege.1: bugfixes

	* use weak references to avoid memory leaks. So we now
	require Python 2.1 or later. No big deal since PyGTK 2.0
	will require Python 2.2 anyway. Updated the docs about this.

1.3.1: October 15, 2001
	* misc small (invisible to end user) changes in the use
	of the gtk module to ease porting to gtk+ and pygtk version 2.
	
	* sound on win32 is temporary broken. Someone that
	owns a MS C compiler has to check the latest changes to
	soundcard/winmidi.c and compile it for python 2.0.1
	and 2.1.1 and send me the binaries. An alternative (that
	is the plan for the future) is to port the code to gcc
	on win32.

	* added doc-base support for Debian.

	* Dutch translations for much of the online documentations
	contributed by F(r)eddy SpierenBU(r)G.

1.3.0: (not released to the public)
	* Added danish translations. Thanks to Keld Simonsen.
	Use LC_MESSAGES=da_DK.

	* src/cfg.py: We use our own config system all the time,
	dropping gnome.config. This to make things simpler and
	to make sure the config code for people running Solfege
	without gnome get enough testing.

	This change the names the config files to:
	 system default:  /etc/solfege1.3
	 users config:    $HOME/.solfegerc1.3

1.2.2: Desember 14, 2001
	* po/ : added russian translations. Thanks to Michael Shigorin.
	
	* po/ : added danish translations. Thanks to Keld Simonsen.

	* configure.in: check for Python.h in pythonX.Y/ not python/

	* added fixes to debian packaging, see debian/changelog 1.2.1-2

1.2.1: September 9, 2001
	* online-docs/png/skip.png: added missing file.
	
	* src/mainwin.py: "import src.inithack" -> "import inithack",
	so it works when it is installed
	
	* src/Makefile: compile inithack.c with -fPIC

	* Makefile.in: distclean should remove Makefile.inc

1.2.0: September 7, 2001
	* accordionwidget: shift it a little down and right.

	* src/mainwin.py: set LC_NUMERIC on win32 to avoid the comma
	char change from '.' to ','. 

	* gnomeemu/gnome/config.py(set_int, set_float): small
	bugfix/cleanup.

	* default.config: fix spelling error.

	* soundcard/winsynth.py: set the default tempo to be 60 bpm.

	* mpd/parser.py: import engravers on toplevel to avoid
	warning from python 2.2a1

	* toplevel docs in win32-dist:  be nice and do newline
	conversion and add .txt to the file names so windows
	users can view the files in notepad.

	* topdocs/INSTALL.texi: a little reorg.

	* online-docs/C/id-tone-help.texi.m4: update the paragraph
	about key bindings.

	* Added inithack module that make sure all libraries needed
	to display png images when we use the GtkHtml widet are loaded.
	This is necessary to get GtkHtml to work on Debian (and probably
	other distros). Start Solfege with '--inithack' commandline
	option if the program crashes when you display html files that
	contains graphics.
	
	This hack is not very portable, so we still use
	the old xmhtml module as default in the tarball. But to try
	it, edit $HOME/.gnome/solfegeX.Y and set [gui]htmlwidget=gtkhtml
	and, if necessary, start solfege with the '--inithack' option.
	You might have to edit the file names in src/inithack.c and
	recompile if your system uses other names for shared libs than
	Debian or when you upgrade your libs.

	If you try this, let me know if it works or fails for you, and
	remember to tell me the name and version of your OS.
	(UPDATE: this only works if your gtkhtml libs are compiled
	without gconf support.)

1.1.5: August 11, 2001 "1.2.0 release candidate 2"
	* win32.zip: include compiled .mo files so translated
	messages work on windows too.

	* src/idtone.py: Gui.on_start_practise will make sure the
	correct buttons are [in]sensitive

	* po/*.po: fixed a few copyright notices.

	*src/compareintervalls.py: same as idtone.py:
	key-bindings should not cause errors.

	* src/idtone.py: don't trow exception if we press the
	'repeat'-key-binding before clicking new tone.

	* lesson-files: converted all lesson files that still used
	the ; after some commands. Even if solfege converts
	automatically, the files should be an example for people
	writing other lesson files.
	
	* src/utils.py(compare_version_strings): return -1, 0 and 1
	the same way as cmp(int, int) does. Updated all callers.

	* preferred_instrument and preferred_instrument_velocity
	selected from the preferences window will now *really*
	be used everywhere.

	* online-docs/C/news-in-1.1.texi.m4: mention idbyname
	and session change.
	
1.1.4: August 7, 2001 "1.2.0 release candidate 1"
	* Statistics: The 'Session' column is now reseted each time
	you start practise an exercises, not each time you restart
	the program.

	* src/mainwin.py: always open exercises with the practise page
	selected when we click on the toolbar or use the menu.

	* src/idtone.py: misc changes. Follow the practise rules set
	in prerefences window. Use the regular auto-new-question
	code.
	
	* configure.in: check for makeinfo

	* src/dataparser.py src/lessonfile.py: Small hack to get
	the startup time down to what it was in version 1.1.2

	* win32-solfege.py: removed the file. We set
	PYTHONPATH in solfege.bat and run the standard solfege.py

	* src/txtui.py: added display_error_message.
	
1.1.3: July 12, 2001
	* src/dataparser.py: Yet Another Rewrite(tm). It is 
	10 to 15% faster, depending on what version of python you
	use. But more important, the code should be easier
	to read. It works for all the lesson files distributed
	with Solfege, but it is not yet very much tested, and
	good error messages are not completed.

	* online-docs/C/music-format.texi.m4: added a paragraph
	about the \time command.

	* mpd/duration.py: Added a __cmp__ function.

	* mpd/parser.py: If you set the time signature on one staff,
	it is automatically set on the other staffs.

	* mpd: no ; after the  \time, \key and \clef command. 
	We do this change to
	follow the format for GNU Lilypond closer. The change was
	made in GNU Lilypond in the new stable 1.4.x release.

	\time 3/4;      -->  \time 3/4
	\key g \major;  -->  \key g \major
	\clef violin;   -->  \clef violin

	Older lesson files will still work because of automatic
	conversions. Lesson files that are changed to the new music 
	format should set the 'version' variable in the header block
	to '1.1.3' to be parsed a *little* faster.

	* mpd(Score._generate_engravers): removed a few
	unnecessary lines and got 3-4 % speedup

	* mpd: display a natural sign before the sharp sign after
	a double sharp note, for example: gisis gis

	* windows port: the .zip file for windows is now laid out
	the same way as the tarball, but it includes precompiled
	midiplayer.exe and winmidi.dll. You need Mingw GCC to
	compile midiplayer.exe and some expensive microsoft
	C compiler to build winmidi.dll.
	
	* soundcard: Joe Lee contributed some nice code that
	talks to the soundcard, so you don't have to use
	midiplayer.exe any more. Thanks!
	
	* mpd: Added tuplets. Use the \times 2/3 command just
	as GNU Lilypond

	* mpd: bugfixes to the key signature code. This bugfix
	also fixes 8 other types of clefs. Updated doco about this.
	
	* online-docs/musicformat.texi.m4: documented the \key
	command.

1.1.2: June 15, 2001
	* feta/README: added the file

	* mpd/parser.py: fix to announce_timepos avoids a few
	unnecessary function calls. 2.4% speedup with
	python 2.1 and -O command line option.

	* mpd: added "s" to skip like Lilypond does. Added notice
	in online doco.

	* mpd: music "c4 c. c8" are not allowed, you should do
	"c4 c4. c8". We do this to follow GNU Lilypond closer.

	* online-docs: don't include html version of changelog in
	the online docs. Generate fdl.html. Fixed a few copyright
	notices.

	* id-tone: Small doco fix + added a frame to the config page.
	
	* mpd/parser.py(musicalpitch_relative): rewrote to fix a bug
	and reduced lines of code with 50%.

	* mpd/parser.py, mpd/engravers.py: improved horisontal
	alignment of accidentals.

1.1.1: May 21, 2001
	* configure.in: small changes. I'm learning a little bit,
	and hope the changes are more correct than wrong. Check
	for the programs needed to build the program.

	* Makefiles: don't distribute .mo files and files generated
	by swig.
	
	* po/some-files: fixed charset and encoding for a few files.

	* the tuner (available from the development menu) are
	disabled by default, configure with --enable-tuner to
	test it.

	* online-docs/C/lessonfiles.texi.m4: documented the
	latest additions to random_transpose.

	Added advise to use the version variable in the header
	block.

	* Swig (http://www.swig.org) is now required to build the
	program. I had to do this since parts of the C code are
	optional or depends on what libs you have installed.
	
	* src/identifyscale.py: Now you select what scales to
	practise on the config page. This is more consistent with
	the other exercises.

	* mpd/parser.py, mpd/engravers.py: impoved the layout of
	noteheads.

	* src/inputwidgets.py: Small fixes since I now know about
	the GnomeCanvas.set_scroll_region function. Thanks to
	Adrian Likins.

	* src/harmonicintervall.py: added the m_t.play_question()
	that was lost....

1.1.0: May 1, 2001
	* lesson-files: replaced random_intervall = 1 with
	random_intervall = yes

	* src/lessonfile.py: make the random_transpose variable
	used in the header block more usable. Now you can
	specify how much up or down the music can be transposed,
	
	random_transpose = no
	random_transpose = yes (the same as random_transpose = -5, 6)
	random_transpose = 0, 12 (only transpose up)
	random_transpose = 10, 20 (this is valid too, you will get
				   very bright music)
	  
	* removed src/startup.py. Made src/app.py gui independent
	and moved gui-intependent stuff from startup.py to app.py,
	and the rest to mainwin.py. Added src/txtui.py, an
	extremely temporary command line gui to the harmonic
	intervall exercise. Start Solfege with --txtui to use the
	command line UI. The plan is to make parts of the program
	usable for blind people.

	* The development menu is visible by default in the devel
	releases.

	* start time reduced from 2.99 to 2.55 seconds on my pc by not
	importing an exercise until it is needed. As a side effect of
	this, I removed some rubbish from src/const.py.
	
	* moved the sound init code to SolfegeApp, and added a function
	that is used by the startup code and the configure window to
	display a GnomeErrorDialog if there was some problems 
	initialising the sound card. Removed the command line options
	dealing with sound config that was marked as obsolete in
	version 1.0.0, updated the manpage about this, and fixed a typo
	in the manpage.

	* src/dataparser.py: moved the most used matches first in the
	loop to get 1-2% speedup. 

	* rewrote the notenamespinbutton.py. The only visible changes
	is that the noterange in preferences window works properly,
	and that mouse button 2 and 3 has switched functions because
	this is more natural for users with only two buttons.

	* borrowed some dsp code from guituner. We have an
	experimental tuner on the development menu that you can use to
	tune your guitar or banjo. I will add microphone support to
	sing-intervall and sing-chord in a later release.  

1.0.5: June 5, 2001
	* configure.in: added configure test for xgettext, msgfmt
	and msgmerge.

	* src/rat.py(Rat.__mul__): bugfix.

	* src/dictation.py: display the name of each piece of music.

	* src/engravers.py(KeySignatureEngraver.engrave): recognise
	the clef name "treble". Fixed documentation to tell the truth,
	only treble/violin and bass clef works. I'll add the other
	clefs to a later release. Reported by Sylvian Bernier.

	* src/lessonfile.py: don't crash if there is a subdirectory
	in $SOLFEGEHOME/lesson-files/. Reported by Sylvian Bernier.

	* src/configwindow.py: bugfix: solfege forgot the
	settings and always used port 0 when opening sound device.
	Thanks to Sylvian Bernier for reporting this.

1.0.4: May 10, 2001 "I am a fool..."
	* This is a release nobody needs unless they want to build
	a debian package from the tarball. The last release was
	screwed up in a way so that I could build the debian package
	*once* from the working dir, but the debian autobuilders
	failed. This release will be uploaded to debian properly,
	so if there are more packaging errors, it will not
	require a new version. Sorry..., I'll do more testing in
	the future.
 
1.0.3: April 29, 2001
	* src/lessonfile.py: Bugfix to the random transpose code

1.0.2: April 26, 2001
	* src/inputwidgets.py: another fix for python 2.x

	* dutch translations from Freddy Spierenburg.

	* applied quite a lot of changes from the devel branch,
	most importand it that src/startup.py is gone, and that
	the gui is initialised before the App object.
	
	I figured it would be simpler to make the sound init code
	give you proper error messagse and not just crash the program
	with these changes. This changes also mean that the
	command line options you could use to configure sound are
	gone, you should use the Preferences Window.

1.0.1: April 12, 2001
	* src/configwindow.py: fix so you can select no sound.
	
	* src/twelvetone.py: small adjustment to avoid scrollbars.

	* musicdisplayer: less space between the notes.

	* soundcard/midifilesynth.py: call os.wait with no 
	parameters so it will work with python 2.1

	* online-docs/C/lessonfiles.texi.m4: mentioned the
	include() command.

	* statistics.py: The program will no longer fail if the
	$HOME/solfegeX.Y/exercise-name/solfege/filename_hash
	is corrupted. Thanks to Atte Andr� Jensen for reporting
	this problem.

	* lessonfiles: fixed LessonfileCommon so it works as the
	documentation says, the header block is first by convention.
	When you use include(filename), the parser will use the
	first header block it finds and ignore the rest. Also fixed
	a bug with the include() function used in lesson files.
	
	* po/de.po: updated german translations, thanks Oliver!

	* solfege.1: s/Substitue/Substitue/

1.0.0: March 29, 2001
	* merged the spin button from 1.1.0. (I branched cvs and started
	to more devel before the 1.0 release)

0.7.38: March 15, 2001
	* src/dataparser.py: included files won't pollute the including
	files name space.

	* we use FDL for the online documentation.

	* moved the extra copyright info out of COPYING, the GPL itself
	is copyrighted, and shouldn't be changed. 
	
	* converted documentation to texinfo. Now we can make a nice
	printed manual (even if we don't have content to that yet).
	Also, it is possible to use lilypond and lilypond-book to
	write longer texts about music theory with inline images
	both for html and dvi output. Small fixes here and there in the
	documentation.

	* src/identifyscale.py: small bugfix to gui, only visible after
	upgrading to gtk+ 2.2.9
	
	* the LessonFileManager will sort the file listing and add white
	space so the page listing all lesson files can be word wrapped.

	* some work on the progression-* lesson files. Added id-by-name
	content type to Giovannis lesson files.

0.7.37: March 10, 2001
	* src/dataparser.py: fix to make include(filename) work with python2.
	Compile re.compile operator_re only once

	* mpd/parser.py(Lexer): compile the re's only once. (6% speedup to
	parse_to_score_object)

	* fixed bad URLs in INSTALL and welcome.html

	* ran python with -tt options and fixed some inconsistent use
	of tabs and spaces

	* soundcard/midifilesynth.py: an os.wait(pid) call fixed the problem
	with processed not being killed properly.

0.7.36: March 8, 2001
	* Oliver Vollmer: updated german translations.

	* debian/rules: don't include INSTALL in /usr/share/doc/solfege

	* debian/copyright: fixed url of homepage.
	
	* soundcard/midifilesynth.py(play_track): Mats Bengtsson noticed
	that Solfege will fork a new process each time it run the external
	midiplayer program, and will eventually eat up too much resources.
	This because I don't have a clue about threading, multiple
	processes and fork/kill/execl. The kill call didn't kill it properly.

	So we are back to using os.system for now. The function using fork
	and execlp is still in midifilesynth.py if someone want to fix it.

	* friendlier error messages if the sound card is not setup
	or if the device is busy and used by another app.

	* converted README to texinfo, small adjustment of what goes into
	INSTALL and README

	* Corrected the key binding listing in the doco for chord exercise.

	* Some new lesson files for the chord exercise from Giovanni
	Chierico: altered-1 altered-2 diatonic-1 diatonic-2
	
0.7.35: March 5, 2001
	* minor documentation updates, change (C) 2000 to
	(C) 2000-2001 in online-docs/C/definitions.m4
	
	* src/identifyscale.py, src/harmonicintervall.py,
	src/melodicintervall.py, src/idbyname.py:
	added necessary flashbar.clear() call.

	* debian/rules: hack to build m68k binaries without
	oss sound. Ok, lets see if we can get this into the
	testing distribution now.
	
0.7.34: March 4, 2001
	* Rewrote the FlashBar to use HarmonicProgressionLabel
	so it can display string like I-VI(6)-V-I

	* configure.in: make --with-gnome do the right thing.

	* removed the "Use antialised canvas when possible" because
	(if I remember correctly) it was necessary for some of the
	instruments because I forgot to make pologons anticlockwise.
	Let me know if there still are problems with the canvas.

	* src/gu.py(FlashBar): added push, pop and clear method.

	* This release will delete your preferences stored in 
	~/.gnome/solfege0.7
	
	* Some lessonfile i18n bugfixes.

	* LessonManager will no longer choke because of tmp files
	created by vim.

	* melodic-intervall: use utils.int_to_intervall name to get
	the feedback in the flashbar correct when we don't use the
	buttons interface (Wasn't this fixed months ago???) + fixed
	another bug ocouring when the user clicked on a tone to answer
	an intervall bigger than a decim.

	* src/utils.py(int_to_intervallname): don't give direction for
	unison intervall.

	* added 'Give up' button to harmonic-intervall, melodic-intervall,
	identify-scale, idbyname

	* added copyright notice to some files that was missing it.

	* renamed the constants used for q_status

	* forgot to add autorepeat_if_wrong to ConfigWindow.on_apply.

	* typo in online-docs/C/bug-reporting.html.m4

0.7.33: February 28, 2001
	* The program will delete identify-scale statistics created
	with any older release, because one key in the db was changed
	a few releases ago.

	* Preferences window: added global option; the program can
	be configured to repeat the last question if you answer wrong.
	This is used in harmonic-intervall, melodic-intervall,
	identify-scale, idbyname, compare-intervalls

	* BeamEngraver.engrave: 1/16, 1/32 and 1/64-notes should
	work now. (There are probably some special exceptions I have not
	covered yet.)

	* added -w, --warranty
	
	* added -h to be short for --help.

	* --version will also display copyright information.	
	
	* made default program startup more quiet. Added
	--verbose-sound-init command line option.

	* 2000 -> 2000-2001 (c) search and replace

0.7.32: Feb 25, 2001 "My fingers are soon falling of..."
	* Solfege now works with Python 2.0. But according to FSF,
	you cannot import GPL'ed C extensions in Python 2.0 because
	of GPL is incompatible with the licencse Python 2.0 is
	distributed under. So to be safe, if you want to use python
	2.0, you should configure with --disable-oss and use an
	external midiplayer such as playmidi, drvmidi or timidity.
	Let's hope Python 2.1 be released with a GPL compatible license.

	* utils.py(parse_url): fixed regular expression to make it
	work with python 2.0

	* mpd/parser.py: updated some .append calls to make them work
	with python 2.0

	* src/statistics.py(het_hash_of_lessonfile): call expanduser

	* src/startup.py: don't show splash window or initialise
	sound if we use --help, --gtk-help, -v, --version command
	line options.

	* configure.in: a little cleanup. Check for pygtk and
	pygnome without acutally running a python program that
	imports them, because this is nicer to autobuilders that
	build the program without and X display available

	* rhythm.py: use SHADOW_IN for the frame where we enter
	rhythm elements.

	* better sectioning in the menu used to select midi instrument.

	* lesson-files: completed the songs in the file 'barnesanger'

	* online-docs/C/lessonfiles.html.m4: added a paragraph about
	tripple quotes in lesson files.
	
0.7.31: Feb 23, 2001
	* id-tone exercise will not run the on_start_exercise if we
	are running without gnome, since the whole exercise is unusable.

	* melodic-intervall, sing-intervall: The program will no
	longer tell you to configure the exercise better if you select
	a to small range of tones to create the question from, but
	will silently adjust the range. Thanks to Giovanni for
	reporting this.

	* added popup window while waiting for the app to start.
	Use --no-splash if you don't want to see it.

	* fixed the --sound-using-drvmidi and --sound-using-timidity
	command line options. Updated the man page.

	* bf: makefile changes in last release broke the html->text
	conversion of GPL.html.

0.7.30: Feb 21, 2001
	* we use singintervall24.xpm as icon for Debian and GNOME
	menus. I'm sure some user with more graphical talent than I
	can come up with something better.
 
	* src/mainwin.py: fixed Docviewer.source

	* src/dataparser.py: the parser will report correct
	filename and linenumber if there are errors in files
	that are included with include(filename)
	
	* default.config: make id-tone exercise simpler by default.

	* twelvetone: add .clear() to the constructor, so we
	see an empty line at startup.

	* exernal midi player: make timidity less verbose

	* small adjustments to the statistics viewer.

	* small tweaking to the startup scripts for windows and
	unix. i18n should work even for windows now...

	* only compress the installed man page when we build debian
	package

	* src/inputwidgets.py: workaround for weird floating point
	error when LC_ALL is set. This will not be necessary after
	changing to gnome-python-1.4

	* Internationalization fixes. I had done very little testing
	lately, and it has been broken when using the tarball (and maybe
	.rpm), the debian package worked fine.
	
	* Simplified the makefiles a little. The configure script
	only need to create the toplevel Makefile and Makefile.inc,
	not all the makefiles in the subdirs.

	New dist target. Each subdir has to set the  dist_files
	variable to include all files that has to be included.

0.7.29: February 12, 2001
	* dropped the app bar. Added feedback in a statusbar
	in the middle of the practise_area. Some other small gui
	adjustments.

	* simplified src/cfg.py a little.

	* on_end_practise will be called when you change the input
	widget in melodic and harmonic intervall exercise.
	
	* small documentation updates.

	* 5 new lessonfiles for the sing-chord exercise.

	* souncard/track.py: added separate play_track function
	that don't use fork() to be used on win32.

	* solfege.gtkrc: a little cleanup, now even the small numbers
	for HarmonicProgressionLabel is visible.

	* A few changes to make the windows port work. Per-user-
	config file will be $HOME/solfegerc0.7, not $HOME/.solfegerc0.7
	because windows95 seems to like the first name better. I also
	updated the makefile for win32.

	* Rewrote lessonfile.py and added dataparser.py. The file format
	is backward compatible. New is the include(lessonfile) command.
	See lesson-files/singchord-all
	
	The new lessonfile code is easier to read and maintain and it
	is faster. Comparing the old and new code on python 1.5.2 show
	15% faster parsing. Doing the same with python 2.0 and 2.1a1
	show 45% speedup. 
	  
	And btw, the python 2.x interpreters are more than twice as
	fast as python 1.5.2 for this type of code.

	The new parser will also give a little better error messages,
	and tell you the linenumber that has an error (but line numbers
	will be wrong if you use the include command)

	The parsing of lessonfiles at startup are 5 times faster with
	the new lessonfile code.

0.7.28: January 21, 2001
	* configure.in: bugfix to --sysconfdir combined with missing
	gnome-config script + fix some without-gnome mess

	* soundcard/: oss_common.py, oss_sequencer.py, oss_sequencer2.py:
	After some changes, it seems that both /dev/sequencer and
	/dev/sequencer2 works fine for all exercises. But if you don't have
	an AWE32 card, you might get piano sound instead of percussion on
	the rhythm exercise.

	* src/lessonfile.py: SingChordLessonfile are now a little smarter
	when doing random transpose, you wont get key signatures with more
	than 5 accidentals.  Earlier you could get 8 or more. This also
	adds the "key" variable to the lessonfile. See
	online-docs/C/sing-chord-help.html.m4

	* mpd/engravers.py: a little more space after key signatures.
	
	* src/singchord.py: use global preferences to get preferred
	instrument and velocity
	
	* mpd/musicdisplayer.py: fix for clicking on xshifted notes

	* solfege will now kill the external midiplayer if you
	try to play a new sound before the other is finished. This
	give people using playmidi or timidity a much better feel.

	* use AWE_SET_CHANNEL_MODE and AWE_DRUM_CHANNELS to get
	percussion to work. I'm not sure how the macros work, so
	someone could explain this to me.

	Added checkbutton on configwindow to use this macros if
	you have a Sound Blaster AWE card.

	* configure.in: configure will fail with an explanation if
	m4 is not installed. If you don't want to install m4, use one
	of the precompiled binaries as sourceforge or www.debian.org

	* configure.in: added --enable|disable-oss-sound, so it can
	be built on systems without OSS sound

	* configure.in: added check for python bindings for gtk
	and gnome.

	* fix: the guitar widget was unusable for a few releases since
	some cleanup to mpd.MusicalPitch.

	* fix: the callback from SelectLessonfileWidget got called
	twice.

	* the keyboard shortcuts won't mess with the config page
	of exercises any more.

	* added the file solfege.desktop to be used with GNOME

0.7.27: Desember 9, 2000
	* small bugfixes to the Makefile.in uninstall target.

	* mpd/mainwin.py: fixed bug with clicking links and updating
	the status line.

	* mpd/engravers.py(KeySignatureEngraver.engrave):
	fixed type in notename: his -> bis

	* all exercises should use the velocity 64 by default.

	* online-docs/C/GPL.html: now in html format instead of
	plain ascii inside <pre></pre>

	* online-docs/ : small changes to the Makefile.in's to use
	/data-targets.make

	Added copyright notice to the online documentation.
	
	* mpd/parser.py(Voice.add_notehead): Discard beam request on
	1/4-notes and longer durations.

	* src/identifyscale.py: changed how the displayed scale is written.
	Now we use a key signature.

	* mpd/parser.py(Staff.accbarline): fixed a bug with accidentals
	and key signatures.

	* mpd/parser.py: bf: the \key command should know about \transpose

	* some small bugfixes to harmonic-intervall, melodic-intervall,
	sing-intervall, id-by-name

	* updated the exercises on the development menu so they
	work with the latest changes to mpd and soundcard.

	* documentation:
	  * identify-bpm.html.m4: two lines telling this exercise is shit.
	  * id-by-name.html.m4: just a little explanation.
	  * twelve-tone-help.html.m4

	* mpd/parser.py, engravers.py: improved ties. They are still
	not very good with xshifted noteheads, so thats on my TODO list.

	* reread lots of old code, removed some old crap.

	* src/statistics.py: statistics are stored in
	~/.solfegeMAJOR_VERSION.MINOR_VERSION. So later the
	stable 1.0.x release can coexist with unstable 1.1.x

	* ConfigWindow: use a combo box to select devicefile.

	* soundcard/solfege_c_midi.c(get_synth_name): no more
	memory leak (I hope).

	* soundcard/ : we now support both /dev/sequencer and /dev/music
	Since there are some issuse with /dev/music I still don't
	understand, and it seems that this make most people happy; the
	default is now to use /dev/sequencer (updated default.config)
	
	* use the configure script to create src/configureoutput.py

	* no stem on whole note!

0.7.26.1:
	* only import gtkhtml if the user really want it.


0.7.26:
	* removed some crap that was floating around:
	   soundcard/devmusicsynth.py: Synth.Xplay_track
	   mpd.__init__.py: tr(notename, i)

	* src/inputwidgets.py: we need to import cfg !!

	* src/dictation.py(Gui.__init__): g_part_box is now packed
	without being expanded.

	* src/compareintervalls.py: Use only one musicdisplayer
	since it now supports changing clef. Show the music when
	the user guesses correct.

	* mpd/parser.py: better handling of shifted noteheads.
	(Let's hope) no more collisions between noteheads and
	accidentals.

0.7.25: November 8, 2000
	* PianoOctaveWithAccelName: use a fontsize available in
	Xfree 4.0.1
	
	* src/rhythm.py: bug fix when changing the number of beats in the
	question and pressing give up.

	* completed some half-finished changes to gu.nSpinButton, removed
	the temporary class newnSpinButton

	* rc files are named /etc/solfege0.7 and ~/.gnome/solfege0.7
	or ~/.solfegerc0.7 (the last for non-GNOME version)

	* gnomeconfigutils.py -> cfg.py

	* removed some crap from src/pyscript.py
	
	* Pressing F1 several times will not display the 'missing helpfile'
	page. Also fixed duplicate history entries (src/history.py)

	* added support for the new GtkHTML widget. The default is still
	to use the XmHTML-widget since thats what most people have
	installed. To try out with GtkHTML, edit ~/.gnome/Solfege,
	and change the "htmlwidget=xmhtml" to "htmlwidget=gtkhtml"
	(I have included a patch to apply to gtkhtmlmodule.c, to make
	gtkhtml 0.6.1 and gnome-python 1.0.53 cooperate. The file is
	included as pygnome-patch.diff)

	renamed src/solfegexmhtml.py -> src/htmlwidget.py
	
	* in the id-by-name exercise, the buttons with question names
	will be ordered the same way as in the lessonfile.

	* mpd/musicdisplayer.py and mpd/parser.py: Now the music displayer
	can display the music from the start until timepos Rat(x, y)

	* online-docs/C/lessonfiles.html.m4: documented clue_end and
	clue_music.

	* src/dictation.py: added clue_end and clue_music variables
	to dicataion lessonfiles. They can be used if displaying the
	first column is not good enough hint on what tones the music
	starts with. Fixed some ugly code.

	* src/lessonfile.py: removed some left-over code from the
	last changes.

	* default.config: added some values for identify-scale.

	* The program will popup a message that you have to configure
	sound from the preferences window if it fails to setup sound.

	* online-docs/C/music-format.html.m4: updated after the
	work on the mpd module.

	* app.py(SolfegeApp.handle_href), configwindow.py:  
	mailto:name@dot.com links in the documentation now work.

	* mpd: \stemup, \stemdown and \stemboth are renamed to
	\stemUp, \stemDown and \stemBoth to use the same names as
	Lilypond.
	
	* mpd: removed some spagetticode, wrote some new.
	Rewrote the Score._generate_engravers function and the engravers.
	
	The module now support beams for quaver notes (1/8) and
	semiquaver notes (1/16). 1/32 and 1/64 notes will be added later,
	I have to think a little to get the algorithm correct.
	
	Now you can change clef in the middle of the staff, and lots of
	new clefs are supported.
	
	The \key command has changed to the same syntax as GNU Lilypond:
	\key g \major;  or \key es \minor;

	mpd/utils.py: some functions not fitting elsewhere in mpd/ will
	be put here.

	* gnomeemu/xmhtml.py: user GtkText.insert_defaults instead of
	insert_text

0.7.24: October 14, 2000
	* src/selectlessonfilewidget.py: now the widget is watching
	the config variables 'lessonfile' and 'lessoncollection'. So
	links to exercises for lessonfile based exercises should work now.

	* mpd/engravers.py(StemEngraver): improved the code thatselects
	stem direction.

	* the program adds --disable-sound to the command line before
	loading the gnome libs.
	
0.7.23: September 28, 2000
	* src/mainwin.py(MusicViewerWindow): connected the 'destroy'
	event to m_app.close_musicviewer to fix problem when closing the
	window using the windowmanager instead of the close button.
	
	* chords: sort the buttons for inversion and toptone.

	* melodic-intervall: fixed problem when changing input widget
	and the question is out of range for that widget. Also use
	config/default_instrument when playing sounds.

	* fixed bass widgets to sound one octave lower

	* changed lessonstatistics compare the hashvalue of the
	content of the files when deciding if the lessonfile have
	changed and statistics has to be deleted. This way you can
	keep your statistics when upgrading if the lessonfile is the
	same and the file format for the saved data has not changed.
	
	* bugfix: nothing happened when pressing 'new question' after
	changing lessonfile.

0.7.22: September 13, 2000
	* src/musicdisplayer.py: bug fix to make it work with
	gtk-themes. Thanks to Gerard Milmeist for reporting this.

	* src/configwindow.py: bug fix to instrument selection.

	* src/lessonfile.py: removed some obsolete code

0.7.21: September 10, 2000
	* topdocs/INSTALL.texi: fixed some bogus messages

	* mpd/parser.py: handle ties between three and more notes:  c~ c~ c

	* src/dictation.py: breakpoints in music. The program can play
	smaller parts of the music.
	
	* changed mpd.play_music to take 'start' and 'end' argument
	to play only parts of the music, for example from bar 2 to 4.
	Small changes to mpd.parser to make this work.
	
	* soundcard/: Track.set_bpm accept a third argument 'notelen'
	that defaults to 4. 

	* moved the files in exercises/ to src/ to make the new global
	vars in gnomeconfigutils work as expected.

	* src/gnomeconfigutils.py: added notify feature. Used this
	in nSpinButton and nNotenameRange. Using the notify feature, changed
	the config page for all exercises to watch the config data, and then
	moved the .configure_exercise methods to the teacher classes.

	* more german translations, thanks Oliver.

	* french translations by Jean Orloff

	* italian translations by Mauro Colorio.

	* Some work on lesson files and statistics. Running Solfege
	with different locale settings should work as expected for
	lesson file exercises. Please test with different locale
	settings and report how it works.

0.7.20: August 25, 2000
	* reoved 'never twice' check button from all exercises.
	This is things the user should not have to worry about.

	* melodic-intervall: only Wrong/Correct feedback.

	* updated german translations, fixed translation of scale
	names in scale statistics. Thanks Oliver Vollmer

	* some minor changes to lessonfile format: identifier names
	can contain a '-'. More work in online-docs/C/lessonfiles.html.m4

	* devmusicsynth.py: handle also 255 < bpm < 511

	* LessonFileManger: fixed brokens links when generating
	the page with "All installed lessonfiles"

	* abstract.LessonbasedGui.configure_exercise: fixed a
	variable I forgot to rename.
	
	* SolfegeApp.quit_program: the program will exit nicely
	even when you did the *stupid* thing of trying to run
	two instances of Solfege at the same time.

	* exercises/abstract.py (_add_auto_new_question_gui):
	added a .show()

	* The music displayer will draw into a pixmap, and only
	recreate the pixmap when the music change. Less flickering
	and faster redraws!
	
0.7.19: August 21, 2000
	* the music displayer is now a ScrolledWindow. Still too
	much flickering, and not possible to scroll automatically
	in sync with the music played.
	
	* some work on dictation exercise.

	* src/statistics.py(AbstractStatistics.get_keys): fixed a
	typo that caused some problems with invalid statistics. But
	there are still issues. I think the problem occour when we
	some other error that cause statistics to be added for the
	'None' key.

	* Small adjustments to the gui

	* exercises/compareintervalls.py: fix problem with harmonic
	intervall, where there could be create intervall <f fis> that
	the displayer cannot display properly.

	* mpd/intervall|musicalpitch.py: buxfig to intervall arithmetics.
	This makes sing-intervall work correctly.

	* window heading will show what exercise and lesson file you
	are using.

	* bugfix: show/hide toolbars
	
	* Misc cleanup, removing unnecessary code.
	
	* gnomeemu/gnome/xmhtml.py: we use our own html-to-text
	convertor, no need for lynx

	* src/instrumentselector.py: changed the look of the widgets.
	Updated the config window because of this.

	* A window showing the traceback will popup on exceptions.

	* Mainwindow resize policy is configurable from the preferences
	window.
	
	* a few lines of documentation was written.

	* added 4, 5 and 6 string bass input for intervall exercises
	and did some cleanup on src/inputwidgets.py

	* fixing typo in intervall exercises, thanks Harald Terkelsen.

0.7.18: August 5, 2000
	* the statistics viewer is only updated when the user
	actually want to see it. This because the new viewer is
	slower to update than the old one.

	* updated german translations, thanks Vollmer

	* exercises/harmonicintervall.py: An option on the config
	page to get a new question automatically after x seconds,
	if you answer correct.

	* mpd/parser.py: simple hack to avoid colliding accidentals.
	The parser still need to be fixed before 1.0

	* topdocs/AUTHORS.texi it used to create AUTHORS and
	online-docs/C/AUTHORS.html

0.7.17 August 4, 2000
	* src/statistics*.py: New viewer that don't use XmHTML.
	Now even statistics can be used if you don't have GNOME.

	* exercises/rhythm.py: set tempo on config page. This 
	exercise will not use config/default_bpm. Minor documentation
	update.

	* exercises/chord.py: gui improve/fix

	* gnomeemu: GnomePropertyBox: it works :-) Now you can use
	File|Preferences even when you are running without gnome.

	XmHTML-"emulator" will strip away html code, and only one
	right click is enough to follow links

	* configwindow.py: fixed the way InstrumentSelector was
	contructed

	* Some additions to the documentation, fixing errors about
	key bindings.

	* abstract.Gui.__init__ take optional argument no_notebook=1.
	This is used in twelve-tone exercise.

	* src/selectlessonfilewidget.py: clear title label when
	you select user collection and there are no files in it.

	* minor syntax change for links to exercises. See
	online-docs/C/helpfile-format.html. Updated the rest of
	the program.

	* added a "Velocity:" label to instrumentselector.py
	(InstrumentSelector). Some of those classes really need better
	names.

	* GnomeCanvas is antialiased by default

	* removed all code about popuping exercises
	
0.7.16: July 25, 2000
	* new option to configure: --without-gnome
	This let you run  Solfege on a system with only gtk and python
	bindings for gtk installed. Since I am not a autoconf guru yet,
	you have to use this options if you are running without gnome.
	(At the moment, Solfege without gnome is still a stip down version
	of Solfege.
	
	* harmonic and melodic intervall will ignore intervalls greater
	than decim.

	* gnome-emu/xmhtml.py: move the cursor to the text where there
	is a link in the html document, and right click to follow the
	link.

	* Rewrote much of the makefiles, reduced the amount of chaos
	in the world.

	* miscutils.py -> util.py

	* Rewrote some of the gui code used to select lesson file,
	 see src/selectlessonfilewidget.py. You can now include a
	 longer text in the lessonfile that can include links to
	 configure the exercise or links to other exercises and
	 documentation

	* Some changes to lesson file format to support i18n of files
	distributed independently of Solfege. Translations are kept in
	the actual lesson file instead of using the same catalog as
	Solfege.

	Header block:
	'description' is renamed to 'title', and should be a short
	online description of the file

	'description' is now used for a longer text describing
	the file. It can contain html tags.

	Translations  can be entered like this:
	  title = "Major, minor, dim and aug in root position"
	  title(no) = "Dur, moll, forminsket og forst�rret i grunnstilling"
	  title(de) = "Dur, Moll, verm. und �berm. in Grundstellung"
	if the file is distributed outside of Solfege or if the author want
	to be independent of the solege gettext catalog.

	* Added build-depend: libgnome-dev because I use gnome-config

	* The online documentation is preprocessed by m4

	* Some internal reorganisation, more has to be done.
	src/main.py is gone, new files are src/app.py and
	src/mainwin.py, src/configstuff.py -> src/configwindow.py

	History in src/history.py
	
	* the program will use /etc/gnome/config/Solfege some defaults.
	These were earlier scattered all over the code. Made necessary
	changes to the makefiles

	* some work on gnome-emu

	* src/statisticsviewer.py: Marked some more strings for translation.

	* src/pyscript.py, src/solfegexmhtml.py: Added some experimental
	scripting to the online documentation. At the moment it can
	get strings out of the config database.

	* Added key bindings from all exercises. It is now (almost)
	possible to practise without using the mouse.
	
	* exercises/singintervall.py(new_question): bugfix to make
	more than one intervall work.

	* mpd/musicalpitch.py: MusicalPitch.__add__ can take
	Intervall instance as second argument.

	Musicalpitch.str() renamed to notename(). Updated the rest
	of the program.
	
	* mpd/intervall.py: New Intervall class

	* solfege.1: mentioned where statistics is saved

	* harmonic and melodic intervall will give an error dialog
	if the exercise is wrongly configured

	* exercises/rhythm.py: polishing the ui.

	* solfege.gtkrc: removed some trash, changed the font
	selection string to fix Vollmers problems.

	* Track(start_note, stop_note): added int(pitch) to fix
	problem with compare-intervall when using an external midi
	player.

	* Misc cleanup to statistics.py and statisticsviewer.py.
	Necessary changes to the exercises since some classes changed
	name and *Statistics.add_wrong require one more argument

0.7.15: 1 July 2000
	* exercises/abstract.py(IntervallGui.use_inputwidget): show
	what is the tonika when changing inputwidget

	* po/de.po: Added some translations I forgot for 0.7.14

	* configure.in, Makefile.in: The configure script will check
	for lynx, so building will not fail if it it not installed.

	* exercises/chord.py: Fixed bug with transposition of chords.

	* exercises/harmincintervall.py: Right click on button
	will play what intervall.

	* src/configwindow.py: 'config/picky_on_new_question'
	Added support for this in all exercises.

	* exercises/rhythm.py: Better feedback on what's 
	right and wrong.

	* exercises/singintervall.py: will only show one
	'new intervall'-button for the first question.

	* src/main.py(Mainwin.show_box): will call 
	exercise.on_start_practise and exercise.on_end_practise

0.7.14: 26 June 2000
	* debian/control: added Build-Depends: python-dev, debhelper
	* debian/control: removed Depends: debconf

	* src/abstract(MelodicIntervallTeacher.new_question): small fixes

	* src/miscfunctions.py(random_tonika_and_intervall): bugfix

	* completed mpd.select_clef

	* Some work on the online documentation.
	
	* online-docs/C/credits.html: added that gettext.py 
	was written by James Henstridge.

	* multiline hrefs will not make them mainwindow resize.

	* Solfege is now an official part of the GNU project. The
	program will still be hosted at solfege.sourceforge.net
	
	* Updated the manpage to be correct about config files, added
	--no-sound option and did some small adjustments.

	* Make it configurable from File/Preferences what program to
	run for URLs to external webpages.

	* No more use of ~/.solfegerc. Make it simple and let
	everything go into ~/.gnome/Solfege

	* Added souncard/fakesynth.py, it contains a Synth class
	that only print the notes the program want to play. This
	can be useful for debugging and porting. Use command line
	argument --no-sound to use this.

	* Makefiles: some changes to make things simpler, and to
	make sure swig generated files *never* is included in the
	debian package. Another try to fix the makefile mess. I
	usually break stuff doing this, so please report any problems.
	Made sure tarballs always unpack to a directory named
	solfege-x.y.z

	* exercises/rhythm.py: let the user select what instrument
	to use for playing the rhythm. Count-in.
	
	* src/gu.py: added nCombo and PercussionNameCombo.
	
	* src/gnomeconfigutils.py: added default value to get_int.
	Completed some work I started and forgott about some releases
	ago.

	* src/instrumentselector.py(InstrumentSelector): use popup
	menu instead of menubar.

	* soundcard/track.py: replaced __add__ with merge_with

0.7.13: June 4 2000
	* exercises/compareintervalls.py(new_question): fixed bug caused
	by changes to MusicalPitch

	* soundcard/midifilesynth.py(play_track): added default 60 bpm

	* exercises/abstract.py(IntervallTeacher.new_question): simplified
	some intervall arithmetics.  

	* exercises/rhythm.py: New rhythm exercise. Useable, but
	not finished yet.

	* Makefile.in: make clean should also delete compiled files
	in gnome-emu, and png/.xvpics

	* execises/identifyscale.py: Simplified code using the latest changes
	to gu.py

	* src/gu.py(Button): Just noticed you can send data with events.

	* mpd/__init__.py(transpose_notename): take integer value to tell
	how much to transpose

	* mpd/musicalpitch.py(MusicalPitch.transpose): renamed to
	transpose_by_musicalpitch, just to give it a cryptical name so
	that nobody but mpd/parser.py tries to use it.

	* mpd/musicalpitch.py: Moved code related to parser.py and
	relative mode to parser.py. Cleanup on __sub__.
	
0.7.12: May 29 2000
	* Sorry, 0.7.11 broken.

0.7.11: May 29 2000
	* mpd/musicalpitch.py: Cleanup. Really needed :-)
	* added some random_* functions to src/miscutils.py. These functions
	are used by abstract.IntervallTeacher and
	harmonicintervall.Teacher.new_question. The intervallexercises now
	to a better job making the question within a given range of tones.
	
	* Makefile.in: removed some silly working directory renaming

	* MultipleIntervallConfigWidget: small bugfix

	* exercises/singintervall.py: use mpd.select_clef

	* tools/changelog2html.py: new script to convert the changelog to
	html to be viewed from inside Solfege.

	* src/inputwidgets.py, src/configwindow.py: added support for
	antialiased canvas for guitar and accordion widget. Since antialiased
	canvas still seems to be a little buggy, this is turned off by default.
	Turn on from File/Preferences/Misc

	* small tweaks to many files.
	
	* mpd/parser.py(Track.generate_track_for_voice): Bug fix, dotted notes
	are now played correctly.

	* mpd/__init__.py: added music_to_tracklist function, that is the
	same as the old (wrong named) music_to_track, and changed
	music_to_track to only return one track, merging tracks if necessary.

	* exercises/singchord.py: make use of 'preferred_instrument' and 
	'preferred_instrument_velodicy'

	* mpd/__init__.py(compare_notenames): changed to return value
	greater than 0 if first argument is largest, return less than 0 if
	second argument is largest. Previously it returned -1, 0, or 1.

	* src/notenamespinbutton.py: cleanup, PgUp, PgDown change one
	octave, left mouse button change to the max/minimum allowed value,
	middle mouse button change one octave.  Added nNotenameRange class.

	* Added guitar and accordion input for harmonic and melodic
	intervall, and did some cleanup.

	* InstrumentSelector.play_selected_instrument: bugfix

	* Solfege officially require python 1.5.2 (it has actually done
	it for a while)

	* changelog and TODO is available from online-docs. 

	* ConfigWindow can now change the synth used for playing sound.
	Also, the first time you run Solfege, it will popup the config window
	and ask you to select how to play sounds if it is not able to use
	/dev/music

	* soundcard: tmp file creation for FileSynth is now handled in
	FileSynth.__init__, not soundcard.__init__

	* gnome-emu/: when renamed to gnome, this module will *try* to 
	emulate some of the functions from gnome. It is used to run Solfege
	on win32, but it can also be used on linux.

0.7.10: May 4, 2000
 * new Rat class. Simpler, make mpd.parser 6% faster, GPL'ed
 * small improvements to src/main.py
 * use gnome.config.[get|set]_bool for booleans
 * started working with idtone to make it useable
 * more work in ConfigWindow
0.7.9: April 29, 2000
 * cleanup of program startup, location of files needed at runtime,
   stopped the abuse of __main__.
 * gu.py: RadioButton connect to callback using 'toggled' signal
 * do not create /etc/solfege when installing debian package. Use
   default value sequencer-device=/dev/music, and have user to change
   this with /etc/solfege or $HOME/.solfegerc manually
 * mpd.parser.Score.get_midi_events() will return a list of lists of
   Tracks. This way we get one track for each voice, and can have
   different instrument on different voices in polyphonic music.
 * soundcard/mfutils.py: cleanup
 * rename solfegerc -> solfege.gtkrc
 * no link in /usr/bin/solfege->../share/solfege/solfege.py
 * More consistent use of gnome.config and VariableStorage
 * small fixes to manpage
 * Reorganised soundcard/, MidiEventStream is split to Track, Synth,
   MidifileSynth. Tracks can be added. Moved mpd/rat.py to 
   soundcard/rat.py
 * link to exercise:/xxx will show exercise page, never config page
 * various cleanups after ->/dev/music change
 * IMPORTANT: from this release you should use /dev/music instead of
   /dev/sequencer. The change is because I have read my first OSS doco,
   and learned how much nicer /dev/music is
 * added: --sequencer-device=/dev/devicname
 * MidiEventStream: api change start_note and stop_note does not
   have notelen as first argument. Instead we use notelen_time(notelen)
   to get delta time. Updated necessary exercises.
 * adjusted toolbar pixmaps, all are 24x24. Noteheads are 6x4
 * configure_exercise for most exercises
 * first port to windows using win32 port of gtk+ and pygtk. Some ugly
   hacks to make it work without gnome libs. The windows port will save
   the music to play to a midi file and use an external program to play
   it until I find out how to use midiOutOpen and friends, and how to
   create python C extentions for win32. All exercises except id-tone
   works fine. If you want to test win32 port you should get the win32
   snapshot on ftp://solfege.sourceforge.net/pub/solfege, don't try to
   use this tarball directly.
 * ask_for_intervall_nn is zero index based
 * change to format of links to exercises:
    exercise:harmonic-intervall?lowest_instrument:1, highest_instrument:2
   is now entered as
    exercise:harmonic-intervall?lowest_instrument=1; highest_instrument=2
   misc cleanup to code related to this.
 * help browser can be in its own window (i think this was added in 0.7.7)
0.7.8
 * make sure Solfege/lesson_collections/solfege always point do the
   correct place
 * fixed problems with --sound-using-xxx and --external-midiplayer
   command line options
0.7.7
 * bf: translated messages even when not running from sourcedir
 * Added error handling when errors in lesson files.
 * made it possible to specify several directories to place lesson files
   into.
 * all lessonfile classes go into file 'lessonfile'. Improvements to
   avoid heavy use of __main__
 * mpd: added limited support for ties, see music-format.html for info.
 * mpd.parser: adjust_noteheads renamed do_xshift_noteheads, and
   avoiding a call to vector.sort()
 * src/inputwidgets.py: some work, putting common code in abstract
   baseclass. Not good code, but better than before.
 * more """no "from gtk import *" no more""" that I missed last time
 * mpd.musicdisplayer: MusicDisplay.display take a music string as
   argument, not a vector of engravers. This to hide some action needed
   to avoid memory leak.
 * memory leak fixes. After upgrading to python-gnome 1.0.52 and
   doing some careful "del someobject", redisplaying some music
   does not eat any more memory. With 0.7.6, each time parsing and
   displaying some music, solfege would eat 4k-8k of memory.
 * wrote some documentation
 * updated some helpfile links: "exercise://exercise-name" ->
   "exercise:exercise-name"
 * mpd: adjust to avoid crashing noteheads in chords like <c e f g>
   Need more work, the function is parser.Score.adjust_noteheads
0.7.6-2
 * debian/rules: removed dh_suidregister
 * don't distribute debian/tmp/
0.7.6 March 26 2000
 * ended my little tab for indent adventure
 * no "from gtk import *" no more
 * making some buttons insensitive until they are usable, like repeat
   buttons before new_question has been pressed.
 * .deb: Section: sound, not main/sound
 * .deb: Depend, not Pre-Depend on debconf
 * cleanup on help file links, solfege will chdir to where the help
   files are stored before loading files. This make links to images:
   "../png/image.png" and to a specific language as "../nn/file.html"
 * lessonfilemanager work
 * online-docs/C/lessonfiles.html: updated after lesson file parser
   was rewritten.
 * rewrote lesson file parser. Trying to define a more clear grammar.
   changes to lesson file format: 
      use = chord, id-by-name
    has to be written:
      use = chord, id_by_name
   '-' is not allowed in identifiers
 * bf: should distribute swig generated files
 * first step in cleaning up lessonfile parsing and use, some
   changes to the interface exercises use to access the data in
   lesson files.
 * added i18n to lesson files, keep translated messages inside
   _("..") like normal python code
0.7.5
 * /etc/solfege to set how to play midi sound.
 * Debian package use debconf to create /etc/solfege on install.
 * Vollmer: po/po.de and german translation of spec file.
 * set correct user and group for files in redhat package
 * used ./fix_feta.py to make the background of feta pixmap white.
 * started documenting the format for mpd.Parser
 * Makefile: simplified dist target, do maintainer-clean,
   ./configure and tar everything thats left.
 * soundcard: api changes to be closer to linux kernel names:
   MidiEventStream: note_on -> start_note, note_off -> stop_note
   program_change -> set_patch
 * macro_to_function.c|i : added seq_bender to lowlevel_c_midi and
   .bender to MidiEventStream
 * get correct number of ledger lines
 * updated after api changes in MidiEventStream
 * more makefile cleanup
 * Change python script start from:
	#!/usr/bin/python
   to:
	#!/usr/bin/env python
 * first release after solfege is splitted into three separate
   packages
0.7.4: March 6 2000, 6975 lines of .py
 * makefile changes
 * renamed NEWS to changelog
 * set window title to show what exercise we are practising.
 * musicdisplayer/parser: major rewrite. 
   * support for time signature. It can display it, but the parser is
     completely stupid and will allow time signatures like 7/7, 9/3
   * Added barlines and accidentals, now do the right thing if there 
     is for example several cis in a row. 
   * Accidentals also understand bar lines.
   * use the xpms directly from Lilypond, don't manually convert to
     python code.
   Rests are still invisible after the rewrite. The code 
   still need heavy cleanup, or even better, a complete rewrite (by 
   someone else than me)
 * automatically generated rpm spec file, need more testing. To build
   rpm, to ./configure; make rpm, just remember you need write access to
   /usr/src/redhat
 * --sound-using-timidity will send output to /dev/null
0.7.3: Feb 22 2000, 6914 lines of .py
 * misc small bugfixes and improvements
 * adding _(...) to more strings to be translated
 * some documentation of lesson file format and about translating
   Solfege.
 * translated html files can now be placed in lessonfiles/nn/ where
   nn is the code for the language you use, no=norwegian, se=swedish.
 * added browser-like history and back/forward button
 * sing-intervall can use random_keyword=1 in lesson file
 * added mudela.select_clef, use it in chord, compare-intervall
 * some work on compare-intervalls
 * Vollmer: more icons
 * work on toolbar, configurable to use text/icons/both, 
   some pixmaps renamed, Vollmer, please notice this when making new
   icons.
 * typo in man page
0.7.2: 6801 lines of .py
 * new exercise: compare-intervall
 * minor gui adjustments
 * misc fixes to exercises that are not configured correctly
 * intervall exercises has checkbutton to not ask same question
   twice in a row.
 * More work on help system, and href's to exercises
 * Finished SingChord, need more lesson files
 * Fixed some problems with statistics. You should remove 
    ~/.solfege/harmonic-intervall*, probably the whole ~/.solfege
 * Added random_transpose variable to lesson files. It is used by chord
   lesson to decide if it can transpose the music. And also id-by-name.
 * melodicintervall and singintervall will use 
      'Solfege/config/preferred_instrument*'
0.7.1: 6290 lines of .py
 * Vollmer: small changes to pixmaps
 * --debug-sound option
 * cleaned up the help system (but not help file contents...)
 * Statistics. Stored in ~/.solfege/exercisename/ If you get segfaults 
   or solfege freeze, please delete the statistics files for the exercise 
   you have problem with (or at least the 2-3 newest files).
 * Add to sys.path if installing to /usr/local
 * main.py: create exercises as they are needed, not all at startup. Now, if one
   exercise is completely broken, Solfege will still work.
 * Add /usr/local/lib/python1.5/site-packages to search path if installing
   there. Not all distros is like debian...
 * some cleanup to popup code. More has to be done.
0.7.0  6030 lines
 * MusicDisplayer will resize to fit any number of staffs (i hope...)
 * Small changes here and there to gui
 * Redused memory leaks, I don't think mudela.parser is leaking any longer, but
   there is problems with musicdisplayer. (Not investigated very much...)
 * Added documentation on notebook page, enabling links to other exercises.
 * Removed the possibility to not use a notebook in the main window
 * TwelveTone exercise
 * SingChord exercise
 * MusicDisplayer: click on note will play it.
0.6.0
 * mudela.parser: dont use channel 9 when generating midi events because
   it is for perkussion
 * Fixed broken link creating in debian/rules
 * soundcard.midieventstream.py: __interpret_notelen should always
   return an int
 * Made sure solfegerc is parsed when not running from sourcedir
 * removed some old code that hasn't and will never be used
 * Toolbar use pixmaps from Oliver Vollmer, toolbar can be turned in 
   Preferences (without restarting Solfege...:-)
0.5.7: not released 5406
 * Misc code-cleanup and minor fixes preparing for 0.6
 * debian: created symlink /usr/share/doc/solfege/manual.html -> 
   ../../gnome/help/solfege/C/manual.html
 * bf: symbolic link /usr/bin/solfege in debian package
 * mudela.parser.Parser: made it possible to generate midi events for only
   the last notes.
 * Making parser smarter and MusicDisplayer dumber.
0.5.6: 5349 .py lines (not counting the long feta??.py files)
 * Added tempo keyword to lesson files. tempo keyword can be set globally
   for the whole file, and/or local to each question.
 * New startup procedure, create symbolic link in bin dir. Files in
   /src are now installed in share/solfege/src, not share/solfege/
 * Made it possible to play or display only the first note (or first 
   notes in polyphonic music). This makes the dictation exercise 
   useable!
 * Added callback function param to InstrumentSelector so we can call
   GnomePropertyBox.set_modified(TRUE) in ConfigWindow
 * Some changes to keywords used in lesson files. New changes should
   be backward compatible.
 * small adjustments of box layout in practiseboxes.py
 * the last (almost a promise) non backward compatible change to the
   syntax for the music parser before 1.0: added \staff and \addvoice
   keywords, removed the old usage of \staff and \voice
 * music displayer/parser: added rests
 * layout of stems and noteheads
 * ledger lines
 * Makefile.in: make clean should remove run-solfege
0.5.5: 5079 .py lines (not counting the long feta??.py files)
 * Simplifying the music parser and the syntax it read. Don't try to
   be Lilypond.
 * MusicDisplayer to replace ScoreDisplayer, new class that use feta
   font from GNU Lilypond and GtkDrawingArea instead of GnomeCanvas.
   MusicDisplayer is a big improvement compared to ScoreDisplayer. It
   will be possible to let different exercises use different font
   size. The plan is to let it connect it to MidiEventStream and
   scroll the music as it is played if the window is to small.
 * moved src/const.py: instrument_sections and instrument_names to
   soundcard/__init__
 * parser.py: Parser.generate_midi_events: fixed problem calling
   note_off with wrong channel
 * teachers.py: Chord: new_question: random transpose of chord
 * practiseboxes.py: ChordBox: choose clef when displaying
 * updated man page
0.5.4: (17 Jan 2000) 5428 .py lines
 * moved setting of default values for configurable stuff form
   solfege.py to configstuff.py
 * solfege.py: removed Solfege/config/program_version stuff
 * updated InstrumentSelector after the changes to sound playing
   modules. Small cosmetic changes to the code. InstrumentSelector
   will set default values.
 * made src/const.py: instrument_names a touple of strings
 * removed the obsolete remove_* functions from mudela.__init__.py

0.5.3: (17. Jan 2000)
 * Rewrote sound playing modules. Made a cleaner interface to the soundcard.
   Better support for people using --sound-using-timidity
 * oops, 0.5.2 was missing some files, configure.in had to be edited to build.
0.5.2: (16 Jan 2000) 5482 lines
 * lesson-files/Makefile.in: fixed install target
 * fixed make diff, see INSTALL file
 * bf: HarmonicIntervall: play_melodic fixed
 * Instrument change is written to midifile.
 * New command line parameters
     --sound-using-timidity
     --sound-using-drvmidi
 * Obsolete command line parameter:
     -external-sound
 * misc Makefile bugfixes: uninstall of man1/solfege.1, installation of 
   lesson files, distribution also include debian/
 * distributes html version of the users manual. Don't need debiandoc-sgml
   unless you change manual.sgml
 * dataparser.py -> lessonfileparser.py
 * removed BeginnersChordsBox and IdentifySingleChordBox and created a
   lesson based ChordBox. The gui is not finished yet, and you cannot
   customise the midi sound, but it is usable.  Necesarry changes to
   teachers.py
 * removed "This is Solfege..." startup message
 * update gnome.app_id on startup, now solfege --version looks nice
0.5.1: (14. jan 2000)
 * testrelease of the possibiliy to make it possible to play the music
   using and external program.  Right now the command line parameter
   --external-sound use drvmidi to play  the created midi files.
 * Visual changes to MultipleIntervallConfigInterface 
 * PianoWidget bugfix: correct number of arguments to callback
 * freshed up HarmonicIntervallBox.config_box
 * Rewrote InstrumentSelector
 * Global preferred midi instrument overridden for each exercise. (well only harmonic intervall for now)
0.5: (12. jan 2000)
 * silly manpage to please lintian
 * removed the pyconfigure.py.in mess, added src/version.py
 * renamed classes in practiseboxes.py:
	       PractiseBaseBox -> AbstractBox
	       IdIntervallBaseBox -> AbstractIntervallBox
 * renamed classes in teachers.py:
	AbstractTeacher -> Abstract
	AbstractChordTeacher -> AbstractChord
	AbstractLessonbasedTeacher -> AbstractLessonbased
	AbstractIntervallTeacher -> AbstractIntervall
 * Module guiutils -> gu
 * Removed m_pretty_name member of AbstractTeacher
 * Exercises to do dictation, exercises stored in lesson files.
 * created class LessonFileManager that know what exercises can
   be used on what gui 
 * small fixes because of syntax change:
   \clef "violin"; --> \clef violin;
0.4.2: (2. jan 2000)
 * Mudela.engravers.StemEngraver.do_stuff: make stem go in correct
   direction, respect \stemup and \stemdown
 * music parser syntax change: \clef "violin"; --> \clef violin;
 * bf: mudela.parser.Parser: chords in relative mode
 * bf: <c e g><c e g> bug in mudela.parser.Parser.collaple_chords
 * midi/ cleanup, some C code rewritten in python.
 * Started working on harmonic progressions
 * source file names to lower case, moved .py files from ./ to ./src
0.4.1
 *
0.4 (11. november 1999) 

	* Lots of changes, some visible, some internal. Run the program
	to see yourself. Don't let the even version number make you
	believe this is a stable release, I don't make stable releases.
	Its just a marketing trick. Next version might be called
	Solfege 2000.


(The changes before 0.4 was lost. Don't know when, don't know where...)

# vim: set noexpandtab: