Codebase list fluidsynth / HEAD ChangeLog
HEAD

Tree @HEAD (Download .tar.gz)

ChangeLog @HEADraw · history · blame

   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
This file is no longer used. For detailed Changelog information, please refer to the 
version control system's commits. For an overview of differences between versions,
see:
https://sourceforge.net/apps/trac/fluidsynth/wiki/ChangeLog1_1_2
https://sourceforge.net/apps/trac/fluidsynth/wiki/ChangeLog1_1_1
etc.

For developer related "What's new"-information, doc/fluidsynth-v11-devdoc contains
valuable information.

=== OLD ===

2009-05-01    Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
    * configure.ac: fix for win32 build.

2009-05-01    Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
    * doc/Doxyfile: added fluid_filerenderer.c to Doxygen documentation.
    * doc/fluidsynth-v11-devdoc.txt: license changed to CC-BY-SA 3.0
    * doc/fluidsynth_arpeggio.c: new example added.
    * doc/fluidsynth_metronome.c: new example added.
    * include/fluidsynth.h, include/fluidsynth/audio.h, 
      include/fluidsynth/settings.h: Doxygen documentation.
    * src/fluid_settings.c: Doxygen documentation.

2009-04-27    Josh Green <jgreen@users.sourceforge.net>
	* include/fluidsynth/audio.h: Moved new filerenderer documentation to source file.
	* src/config_win32.h.in: Added 'typedef int socklen_t;' to the correct place.
	* src/fluid_filerenderer.c: Removed 2 extra pasted duplicates of the file, moved
	  Doxygen documentation from header file and added "API 1.1.0" designators.
	* src/config_win32.h: Removed from subversion, since it is generated from
	  config_win32.h.in.

2009-04-26    Josh Green <jgreen@users.sourceforge.net>
    * configure.ac: Added glib 2.10 as a dependency, added notes in output
      for LASH, LADCCA and READLINE that they are GPL.
    * src/fluid_io.c: Moved code to fluid_sys.c and removed.
    * src/config_win32.h: Added "typedef int socklen_t" definition.
    * src/fluid_defsfont.h: Removed glib ripped code.
    * src/fluid_oss.c: Fixed warnings where return value of write() was
      being ignored.
    * src/fluid_sys.c: Re-organized, implemented portable fluid_curtime() and
      fluid_utime() using glib functions and removed old platform specific
      code, implemented fluid_thread functionality using glib and removed
      old platform specific code, fluid_istream_readline(), fluid_istream_gets()
      and fluid_ostream_printf() should now work on WIN32 also, added code
      for WIN32 for TCP sockets (not yet tested).
    * src/fluid_sys.h: Added fluid_gerror_message() macro to extract message
      safely from GError structures, replaced fluid_mutex macros with
      portable implementations using glib, removed new_fluid_client_socket()
      and delete_fluid_client_socket() which were never implemented or used.
    * src/fluidsynth.c: Added call to g_thread_init().
    * src/fluidsynth_priv.h: Integer types now use glib integer types.

2009-04-11    Josh Green <jgreen@users.sourceforge.net>
	* FluidSynth release 1.0.9 "A Sound Future"
	* configure.ac: Bumped version, no library interfaces added, removed or changed.
	* doc/Makefile.am: Removed html and api folders from EXTRA_DIST.
	* src/fluid_synth.c (fluid_synth_program_change): Preset substitute warning
	  now outputs MIDI channel.

2009-04-02    Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
	* src/config_win32.h: fix compilation under MSVC 2008 and older

2009-03-15    Josh Green <jgreen@users.sourceforge.net>
	* ltconfig: Removed obsolete ltconfig script by suggestion of
	  Sven Hoexter.
	* doc/fluidsynth.1: Some fixes from Sven Hoexter.
	* src/fluid_adriver.c: Re-order of default drivers to jack, alsa, pulse.
	* src/fluidsynth.c (fluid_synth_program_change): Added preset selection
	  fallback logic: Melodic - Fallback to Bank0:prognum followed by
	  Bank0:Program0, Percussion - Fallback to 128:0, code re-organization.

2009-03-08    Josh Green <jgreen@users.sourceforge.net>
	* src/fluid_jack.c: Added support for Jack MIDI.
	* src/fluid_mdriver.c: Registered Jack MIDI driver.
	* README-OSX: Update from Ebrahim Mayat.

2009-02-28    Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
    * src/fluid_midi.c: Fix for ticket #22 (Wrong tempo changes)
    * src/fluid_midi.h: delta-time accumulator moved to fluid_midi_file struct.

2009-02-03    Josh Green <jgreen@users.sourceforge.net>
    * Applied patch from KO Myung-Hun for OS/2 support including Dart audio
      driver.

2009-01-29    Josh Green <jgreen@users.sourceforge.net>
	* src/Makefile.am: Added PortAudio driver conditional build.
	* src/fluid_adriver.c: Registered fluid_portaudio_driver_settings.
	* src/fluid_portaudio.c: Completely overhauled for Portaudio 19.
	  This driver appears to have been unbuildable before.

2009-01-08    Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
	* configure.ac: detection of CoreMIDI support. Ticket #18.
	* src/Makefile.am: conditional build of CoreMIDI driver.
	* src/fluid_coremidi.c: Basic CoreMIDI driver.
	* src/fluid_mdriver.c: added CoreMIDI driver.

2009-01-08    Josh Green <jgreen@users.sourceforge.net>
	* configure.ac: Followed GTK's lead for some unexplained magic for
	  stupid libtool version parameters (fixes autogen.sh bomb on
	  undefined macro LT_REVISION/LT_CURRENT/LT_AGE).  Added
	  AC_CONFIG_MACRO_DIR([m4]) as suggested by libtoolize.
	* Makefile.am: Added ACLOCAL_AMFLAGS=-I m4 as suggested by libtoolize.

2008-12-23    Josh Green <jgreen@users.sourceforge.net>
	* configure.ac: Added detection of PulseAudio driver.
	* src/Makefile.am: Added conditional build of PulseAudio driver.
	* src/fluid_adriver.c: Added PulseAudio driver and re-sorted drivers
	  by use preference.
	* src/fluid_chan.c: Using MIDI enums for initializing channel CC values,
	  added supported for RPN GM MIDI messages Bend Range, Fine Tune and
	  Coarse Tune, added check for out of range NRPN parameters.
	* src/fluid_midi.h: Added RPN enum midi_rpn_event.
	* src/fluid_pulse.c: New PulseAudio driver.

2008-09-22     Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
	* src/fluid_dsound.c: Fix for ticket #16 - dsound device can't be selected.

2008-09-07    Josh Green <jgreen@users.sourceforge.net>

	* src/fluid_alsa.c (new_fluid_alsa_seq_driver): Patch from
	  Nicolas Boulicault to add ALSA sequencer midi.portname setting.
	* src/fluid_conv.h: S. Christian Collins' patch - changed
	  FLUID_ATTEN_POWER_FACTOR from -531.509 to -200.0.
	* src/fluid_defsfont.c (fluid_defpreset_noteon): S. Christian Collins'
	  patch - crash bug fix related to using certain modulators in a preset.
	* src/fluid_mdriver.c: Pedro Lopez-Cabanillas' patch which adds a
	  midi.winmidi.device setting.
	* src/fluid_mod.c: S. Christian Collins' patch - Stop forcing velocity
          based filtering and a couple of calculation fixes to transform functions.
	* src/fluid_synth.c: Nicolas Boulicault's patch to add midi.portname
	  setting.
	  (fluid_synth_program_change): added fix to properly search for a
	  percussion instrument 
	* src/fluid_synth.h: Changed FLUID_NUM_PROGRAMS to 128 and set
	  DRUM_INST_BANK to 128.
	* src/fluid_voice.c (fluid_voice_write): S. Christian Collins' patch -
	  force velocity envelope value to be that of the previous stage when
	  switching from decay to sustain and filter calculation now uses
	  synthesizer baud rate rather than fixed at 44100.
	  (fluid_voice_update_param): S. Christian Collins' patch - Use multiplier
	  for GEN_ATTENUATION to be compatible with EMU10K1 cards.
	* src/fluid_winmidi.c: Pedro Lopez-Cabanillas' patch which adds a
	  midi.winmidi.device option.
	* src/fluidsynth.c: Nicolas Boulicault's patch which adds midi.portname
	  setting.  Pedro Lopez-Cabanillas' patch which breaks out of argument
	  processing loop for non getopt option argument handling when a non
	  option is encountered and not using Readline.

2007-11-17    Josh Green <jgreen@users.sourceforge.net>

	* FluidSynth release 1.0.8 "Its about funky time!"
	* configure.ac: Bumped LT_REVISION and added call to AM_PROG_CC_C_O macro.
	* Makefile: Updated fluidsynth.prj to fluidsynth.anjuta
	* README-OSX: Update from Ebrahim Mayat for OS X Leopard
	* acinclude.m4: Fixed embedded main function in AM_PATH_READLINE macro.

2007-11-11    Josh Green <jgreen@users.sourceforge.net>

	* configure.ac: Added --enable-trap-on-fpe and --enable-fpe-check to
	  assist with Floating Point Exception debugging.
	* src/fluid_chorus.c: Reverted the rest of the chorus "Effect level clip"
	  patch, until something better is devised.
	* src/fluid_synth.c: Added support for trapping on Floating Point
	  Exceptions on GLIBC systems, to aid developers in tracking down FPEs
	  with gdb, removed buffer alignment hacks since they are no longer
	  needed (not using SSE currently).
	* src/fluid_sys.c (fluid_time_config): Added check for a CPU freq
	  calculation of 0.0, since this test is inadequate to begin with and
	  was coming up as 0.0 on my laptop, causing a FPE.  Will replace with
	  real timer functions, in the future.
	* src/fluid_voice.c: Removed zap_almost_zero macro as it was buggy and
	  had issues which went away when gcc optimization was turned off and in
	  the case of !WITH_FLOAT was using abs() which is integer based and
	  would cause FPEs.
	  (fluid_voice_write): Removed a memory alignment hack and moved a call
	  to fluid_fpe_check() to a better location.
	  (fluid_voice_effects): Replaced zap_almost_zero with a call to fabs(),
	  added fluid_fpe_check() call.
	* src/fluidsynth_priv.h: Removed FLUID_ALIGN16BYTE hack, as it is no
	  longer needed.

2007-11-10    Josh Green <jgreen@users.sourceforge.net>

	* doc/fluidsynth.1: Updated man page with current command line options and other changes (minor).
	* include/fluidsynth/synth.h: Reverted "Effect level clip" patch as it seems to cause chorus
	  count to have a much lessor effect.

2007-09-20    Josh Green <jgreen@users.sourceforge.net>

	* Doc updates to AUTHORS and latest README-OSX from Ebrahim Mayat.
	* src/config_win32.h.in: VERSION is now filled in at configure time.
	* src/fluid_alsa.c (fluid_alsa_audio_run_s16): Fixed bug which was
	  causing weird crashes with QSynth when new_fluid_audio_driver2() when
	  audio meters were enabled (user data parameter was being used as a
	  fluid_synth_t instance).  Synth instance is now no longer used in
	  this case (it was only used for 16 bit dithering before).
	* src/fluid_oss.c: Fixed the same bug that was affecting ALSA driver.
	* src/fluid_rev.c: Reverted to old commented out code in regards to
	  reverb level.
	* src/fluid_synth.c (fluid_synth_dither_s16): Now no longer uses
	  fluid_synth_t instance, but accepts a pointer to an integer instead
	  for keeping track of dithering buffer index (all that the synth instance
	  was being used for).
	* src/fluid_synth.c (fluid_synth_one_block): Reverted patch which
	  performs assignment of chorus and reverb levels in synthesis loop,
	  until a better scheme is devised (unnecessary CPU consumption).
	* Added Visual Studio .sln and .vcproj files and some minor source
	  changes to get FluidSynth to build with it.
	* Back-converted Visual Studio project to VC++ 6 project for users
	  using that build platform (not tested).

2007-09-02    Josh Green <jgreen@users.sourceforge.net>

	* configure.ac: Removed SSE and longlong related switches (SSE support
	  removed for now and longlong is now always used).
	* : Applied effect level clip patch from David Hilvert
	  see http://fluidsynth.resonance.org/trac/ticket/2.
	* : Applied reverb damp scaling patch from David Hilvert
	  see http://fluidsynth.resonance.org/trac/ticket/3.
	* src/fluid_dsp_float.c: No longer being #include'd and all interpolation
	  functionality has been re-written as separate functions, interpolating
	  around loops is now supported, effect (reverb/chorus/pan/filter) stuff
	  moved to fluid_voice.c.
	* src/fluid_phase.h: 64 bit unsigned integers are now used for phase
	  index/fraction sample pointers, modified macros accordingly.
	* src/fluid_voice.c: Removed SSE code, fluid_voice_init() renamed to
	  fluid_dsp_float_init() and moved to fluid_dsp_float.c.  Effect related
	  functionality (reverb/chorus/pan/filter) moved from fluid_dsp_float.c
	  to fluid_voice.c.  Some code re-formatting and comment cleanup.  Loop
	  no longer requires padding surrounding it (fixes bug related to loop
	  point right on the end of the sample).

2007-08-18    Josh Green <jgreen@users.sourceforge.net>

	* src/fluid_alsa.c: Added SND_SEQ_PORT_TYPE_MIDI_GENERIC back into the
	  ALSA sequencer port registration as it broke the use of playmidi
	  (thanks to Dave Serls for providing a patch and pointing this out).

2007-01-14    Josh Green <jgreen@users.sourceforge.net>

	* src/fluid_alsa.c: Fixed evil bugs in ALSA driver where return value
	  of new fluid_alsa_handle_write_error() was not being checked correctly
	  causing successfully handled ALSA errors (underruns for example) to
	  terminate audio thread.
	* src/fluid_synth.c: Using an inline roundi function to replace roundf
	  as per suggestion by Mihail Zenkov, 16 bit for dithering.

2006-12-10    Josh Green <jgreen@users.sourceforge.net>

	Lots of documentation updates.
	* doc/Doxyfile: No longer including functions by default, only those
	  listed in the listed header files.
	* src/fluid_strtok.[ch]: Removed, since it was crap.  Replaced with
	  fluid_strtok() in fluid_sys.c which doesn't require an allocated
	  tokenizing instance.
	* src/fluid_alsa.c: Audio processing is more optimized in the case where
	  no user defined audio callback is used (removal of unneeded buffer copy),
	  fluid_alsa_handle_write_error() added for centralized ALSA audio error
	  handling,
	* src/fluid_aufile.c: Now also doing 16 bit dithering.
	* src/fluid_cmd.c: Removed use of old tokenizer instance.
	* src/fluid_coreaudio.c: User defined callback function is now honored.
	* src/fluid_defsfont.c: More leaks plugged (thanks to Paul Millar for
	  the patch), removed sfont_free_data() since sfont_close() should be
	  used instead (don't want to leak a file handle).
	* src/fluid_midi_router.c: Took out uses of fflush() since sending a
	  line of text (with newline) should display it.
	* src/fluid_oss.c: Using fluid_synth_dither_s16() in place of old
	  16 bit conversion code.
	* src/fluid_settings.c: Replaced strtok stuff with new function, some
	  other improvements.
	* src/fluid_synth.c (delete_fluid_synth): Turning off all voices so that
	  SoundFont data will be freed correctly (thanks to patch from
	  Paul Millar).
	* src/fluid_sys.c (fluid_strtok): New function to replace old tokenizing
	  functions which required a token instance.
	* src/fluidsynth.c: Warning message printed if a non option is not a
	  valid SoundFont or MIDI file (thanks to Nick Daly for the patch).

2006-11-22    Josh Green <jgreen@users.sourceforge.net>

	* src/fluid_alsa.c (new_fluid_alsa_audio_driver2): Removed some ALSA
	  lib calls to set software parameters, which was likely causing the
	  100% CPU usage problem (not actually fixed in last update, not sure
	  which one is the culprit).
	  (fluid_alsa_seq_run): More changes in ALSA sequencer code, hopefully
	  it is right this time!
	  (delete_fluid_alsa_seq_driver): Memory leak fixed - wasn't freeing
	  array of sequencer file descriptors.
	* src/fluid_chan.c: Memory leak fixes: Now deleting preset from channel
	  when channel is destroyed.
	* src/fluid_cmd.c: Memory leak fix: strtok being deleted from command
	  shell when shell is destroyed.
	* src/fluid_defsfont.c: Memory leak fixes: Freeing modulator lists in
	  preset and instrument zones, freeing zone names, freeing instruments
	  linked from preset zones, replaced use of "safe_malloc" with FLUID_MALLOC
	  macro, deleting instrument list in SFData, deleting samples in SFData,
	  freeing SFData structure.
	* src/fluid_settings.c: Memory leak fix: freeing options in option
	  type settings.
	* src/fluid_synth.c: Memory leak fixes: Freeing FX buffers and
	  right/left_buf.

2006-11-21    Josh Green <jgreen@users.sourceforge.net>

	* src/fluid_alsa.c (new_fluid_alsa_audio_driver2): Modified all ALSA
	  calls to check return code error as "< 0" as per ALSA examples, sample
	  rate is now compared with what was expected and warning message displays
	  both values, if target sample rate wasn't set update the local
	  period_size variable (was causing 100% CPU consumption by ALSA, from
	  the resultant erroneous sw_params calls).
	  (fluid_alsa_audio_run_float): Using case statement for
	  error codes from snd_pcm_writen() for the sake of tidiness.
	  (fluid_alsa_audio_run_s16): Using case statement for error codes
	  from snd_pcm_writei() for the sake of tidiness, re-instated call
	  of device callback function that was broken with the dither patch
	  (don't want to break the API), now using new fluid_synth_dither_s16()
	  to convert floating point sample data to 16 bit with dithering.
	  (fluid_alsa_seq_run): Timeout in poll() call set to 100ms (from 1ms!),
	  snd_seq_event_input_pending is used to check if events are available
	  before calling snd_seq_event_input to prevent blocking, check of
	  snd_seq_event_input error code moved to the right location (bug fix).
	* src/fluid_synth.h: Added dither_index parameter to fluid_synth_t
	  structure to allow for per synth dithering continuity.
	* src/fluid_synth.c: Modified dithering to use new dither_index field
	  for per synth dithering continuity, fixed off by 1 error with
	  dithering index comparison, removed usage of roundf in dithering (is
	  it sufficient to just integer truncate?).
	  (fluid_synth_dither_s16): New function to perform dithering on
	  buffers of floating point sample data.

2006-11-20    Josh Green <jgreen@users.sourceforge.net>

	* src/fluid_alsa.c: Applied dithering patch from Mihail Zenkov.
	* src/fluid_synth.c: Applied dithering patch from Mihail Zenkov.

2006-03-04    Josh Green <jgreen@users.sourceforge.net>

	* src/fluid_alsa.c (delete_fluid_alsa_audio_driver): Now calling
	snd_pcm_close() to close the ALSA audio driver handle.
	(fluid_alsa_seq_run): Check for -ENOSPC error was logicly inverted.
	(new_fluid_alsa_seq_driver): Sequencer is now opened in blocking mode.

2006-02-20    Josh Green <jgreen@users.sourceforge.net>

	* Fixed build error that occured when neither LASH or LADCCA are
	  present.
	* Updated README-OSX from Ebrahim Mayat.

2006-02-18    Josh Green <jgreen@users.sourceforge.net>
	* FluidSynth release 1.0.7 "Increasing Fluidity.."

	* Removed spurious newlines from FLUID_LOG statements throughout.
	* AUTHORS: Some cleanup and additions.
	* src/fluid_lash.[ch]: Moved LADCCA related code from fluidsynth.c here
	  and added new LASH support (both old LADCCA and LASH are supported
	  exclusively). Used patches sent by Frieder Bürzele as a guide.
	* src/fluidsynth.c: Removed LADCCA code (now in fluid_lash.c),
	  re-organized command line parsing and removed duplicate WIN32 switch
	  statement, re-organized help output and added missing entries, added
	  "-o help" switch for listing settings, welcome message now printed
	  whenever FluidSynth is run and simplified,
	  (print_usage): hard coded application name as "fluidsynth".
	* configure.ac: Changed --enable-SSE option to --enable-broken-SSE
	  and --enable-SSE now just displays a fat warning about not using it.
	* src/fluid_jack.c: Warning is now displayed if synth sample rate
	  doesn't match jackd.
	* src/fluid_alsa.c: Added detection for ALSA sequencer buffer overrun
	  (-ENOSPC) and interrupted poll() call (-1??).
	* src/fluid_voice.c: Applied patch from Henri Manson which adds a
	  fluid_ct2hz_real() function which does not have the filter cutoff
	  limits that fluid_ct2hz() does, new function being used for
	  calculations that may include non-audible frequencies.
	* src/fluid_dsound.c: Applied patch from Henri Manson which
	  only creates the directsound window once.

2005-09-04    Josh Green <jgreen@users.sourceforge.net>

	* src/fluid_ramsfont.c (fluid_ramsfont_remove_izone): Applied crash bug
	fix from Antoine Schmitt.

2005-07-05    Josh Green <jgreen@users.sourceforge.net>

	* src/fluidsynth_priv.h: FLUID_ALIGN16BYTE is broken on AMD64 so now
	only enabled if SSE is being used. If SSE code becomes more useful in
	the future this should be fixed.

2005-06-29    Josh Green <jgreen@users.sourceforge.net>

	* Applied LASH patch that is included with ladcca-0.4.0.

2005-06-11    <jgreen@users.sourceforge.net>

	* Released FluidSynth 1.0.6 "Music to my ears"

	* README-OSX: Update from Ebrahim Mayat.
	* acinclude.m4: Midishare support now defaults to auto.
	* configure.ac: Added LT_CURRENT, LT_REVISION and LT_AGE in place of
	  LIBFLUIDSYNTH_MAJ and LIBFLUIDSYNTH_MIN to make better use of
	  libtool library versioning.  Fixed use of AC_ARG_ENABLE (was setting
	  variables to yes even when disable was specified), fixes --disable-SSE
	  which was reported by Mikhail Yakshin, added warning when SSE is
	  enabled to let users know that this feature isn't really desirable
	  currently.
	* src/Makefile.am: Now using LT_VERSION_INFO to substitute the libtool
	  version.
	* src/fluid_cmd.c (fluid_cmd_handler_handle): Modified to avoid GCC
	  "type-punned" cast warning.
	* src/fluid_defsfont.c (fluid_preset_zone_import_sfont): Fixed
	  assignment of modulator amtsrc flags (should be assigned to flags2
	  not flags1), thanks to Stephan Tassart for reporting this.
	  (fluid_inst_zone_import_sfont): Same fixes as for above.
	* src/fluid_sys.c (fluid_log): Now using vsnprintf for formatting
	  error messages to fix buffer overflow as reported by Axioplase.
	  (fluid_debug): Same as above.

2005-06-11    <jgreen@users.sourceforge.net>

	* fluidsynth.prj: Added Anjuta project file.
	* src/fluid_conv.c: fluid_cb2amp conversion set back to real centibels
	  and added a new fluid_atten2amp table conversion for non-standard
	  EMU 8k/10k attenuation.
	* src/fluid_voice.c (fluid_voice_write): Updated volume calculations to
	  use fluid_cb2amp for envelope and LFO, but use fluid_atten2amp for
	  initial attenuation.
	  (fluid_voice_noteoff): Re-coded volenv_val attack conversion and
	  verified.

2005-06-10    <jgreen@users.sourceforge.net>

	* src/fluid_phase.h: Patch from Sean Bolton to fix big endian long long
	  phase combined 64 bit value type fluid_phase_t
        * src/fluid_voice.c (fluid_voice_update_param): case GEN_OVERRIDEROOTKEY
	  was incorrectly adding pitchadj fine tune amount instead of subtracting
	  it.  Also, fine tuning should be applied to root key override as well.

2005-06-07    <jgreen@users.sourceforge.net>

        * Applied Sean Bolton's DSSI patch (SB patch) which adds the ability to
	  change polyphony at runtime and fixes a bug (see below).
	* README-OSX: Update from Ebrahim Mayat for OSX Panther.
	* include/fluidsynth/synth.h: Sean Bolton's DSSI patch adds two new
	  functions fluid_synth_set_polyphony and fluid_synth_get_polyphony.
	* src/fluid_conv.c: Centibel to amplitude conversion now follows
	  EMU 8k/10k which is contrary to SoundFont specification (TiMidity++
	  used as an example).
	* src/fluid_conv.h: FLUID_CB_POWER_FACTOR defined for the centibel->amp
	  conversion table equation.
	* src/fluid_defsfont.c (load_pgen): Fixed 'use of cast expressions as
	  lvalues is deprecated' warning by casting the value being assigned
	  instead of the variable assigned to and removed code warrior
	  specific code to work around this.
	  (load_igen): Same as for load_pgen.
	* src/fluid_synth.c: SB patch - uses synth->polyphony instead of
	  synth->nvoice when iterating over the synth's voices.
	  (fluid_synth_update_polyphony): SB patch (new) - runtime update
	  (fluid_synth_set_polyphony): SB patch (new)
	  (fluid_synth_get_polyphony): SB patch (new)
	  (fluid_synth_nwrite_float): SB patch - fixes bug where the use of
	  arbitrary values of the 'len' parameter was broken.
	* src/fluid_voice.c (fluid_voice_write): modlfo_to_vol (modulation LFO
	  to volume) was being calculated inverted (should be negative
	  attenuation, gain, for a positive rise in LFO).
	  (fluid_voice_noteoff): Updated centibel to amplitude conversion
	  used when voice off during attack to use the new
	  FLUID_CB_POWER_FACTOR.

2004-11-11    <jgreen@users.sourceforge.net>

	* README-OSX: Update from Ebrahim Mayat.

2004-08-18    <peter@hanappe.com>

	* src/fluid_synth.c (fluid_synth_set_bank_offset): 
	(fluid_synth_get_bank_offset): New API to set
	a bank offset in a SoundFont (proposition made by Ken Ellinwood).

2004-08-06    <peter@hanappe.com>

	* src/fluid_synth.c (fluid_synth_noteon):
	fluid_synth_release_voice_on_same_note() is now called in the
	noteon() function instead of in fluid_synth_start(). This fixes
	the silent note problem!

2004-07-29    <peter@hanappe.com>

	* src/fluid_chan.c (fluid_channel_cc): Applied Ken Ellinwood's
	fix for the bank select (MSB) message.
 
	* src/fluid_jack.c (fluid_jack_audio_driver_settings): Applied Rui
	Nuno Capela's patch

2004-05-14    <peter@hanappe.com>

	* doc/fluidsynth.1 (option): Fixed typo noted by Gerald Pye.

2004-05-14    Peter Hanappe <peter@hanappe.com>

	* src/fluid_dsound.c (fluid_dsound_enum_callback): Applied Sergey
	Pavlishin's patch. This path fix stack overflow during DirectSound
	audio driver initialization.

2004-05-07    Peter Hanappe <peter@hanappe.com>

	* src/fluid_synth.c (fluid_synth_remove_sfont): Added new function

2004-05-05    Peter Hanappe <peter@hanappe.com>

	* src/fluid_alsa.c (new_fluid_alsa_seq_driver): The alsa driver
	now opens several ports if the synthesizer is configured for more
	than 16 MIDI channels.

	* src/fluid_voice.c (fluid_voice_write): I removed the filter
	on/off optimization. The filter is always on and serves as an
	anti-aliasing filter.

2004-05-04    Peter Hanappe <peter@hanappe.com>

	* src/fluid_synth.c (new_fluid_synth): The number of MIDI channels
	now has to be a multiple of 16. The synth checks that this is the
	case and changes the settings accordingly. I removed the sanity
	checks for the min/max value of the number of MIDI channels since
	this is already done by the settings object.

2004-03-30    Josh Green <jgreen@users.sourceforge.net>

	* src/fluid_voice.c (fluid_voice_write): Altered filter turn-off
	optimization to not turn filter off once it has been
	enabled. There is still a potential for a click when it gets
	turned on though, which needs to be dealt with.

2004-03-30    Peter Hanappe <peter@hanappe.com>

	* src/fluid_dsp_core.c: I've split up the dsp core file in three
	files: fluid_dsp_simple.c, fluid_dsp_float.c, and
	fluid_dsp_sse.c. This improves the readability.

2004-03-29    Peter Hanappe <peter@hanappe.com>

	* src/fluid_jack.c (new_fluid_jack_audio_driver2): Testing the
	number of ports before allocating them.
	(fluid_jack_audio_driver_settings): Registering
	the "audio.jack.autoconnect" setting.

	* src/fluid_midi.c (fluid_player_set_midi_tempo): Tempo changes
	handled correctly. Was broken after fix on [2004-03-22] (see
	below).

	* src/fluid_strtok.c (fluid_strtok_char_index): Removed printf's
	from fluid_strtok.c

2004-03-26    Peter Hanappe <peter@hanappe.com>

	* bindings/README: Imported the fluidsynth_jni and fluidmax
	projects.
	
2004-03-25    Peter Hanappe <peter@hanappe.com>

	* src/fluid_rev.c (new_fluid_revmodel): Added 'gain', similar as
	in Freeverb 3. Using same 'wetscale' as Freeverb 3, but fixing
	'wet' to 3. fluid_revmodel_setlevel() does not change the value of
	'wet': The 'wet' level can be controlled with the 'reverb send'.
	(fluid_revmodel_processreplace): The input is multiplied by 2 and
	by the gain. This corresponds to the channel mixing and scaling
	that Freeverb 3 does.

2004-03-24    Peter Hanappe <peter@hanappe.com>

	* src/fluidsynth.c (main): Added the -f switch. Passing "-f file"
	on the command line tells fluidsynth to read parse the file and
	execute and commands.  
	(main): User config and system config file are now loaded correctly

	* src/fluid_cmd.c (fluid_shell_run): the shell doesn't get stuck
	and loop on an emtpy string when the end of the stream is reached.

	* src/fluid_io.c (fluid_istream_gets): fluid_istream_gets()
	returns 0 if the end of the stream was reached and -1 on error.

	* src/fluid_cmd.c (fluid_source): Fixed bug in "file =
	open(filename, FLAGS);" (I shouldn't pass O_WRONLY when what I
	want is O_RDONLY!)

2004-03-23    Peter Hanappe <peter@hanappe.com>

	* src/fluid_aufile.c (new_fluid_file_audio_driver): Added
	fluid_aufile.c. This file implements a audio driver that writes
	the audio output to a file. This driver is NOT real-time and is
	currently useful for testing purposes only (not even useful to
	play MIDI files).

2004-03-22  Peter Hanappe <peter@hanappe.com>

	* src/fluid_synth.c (new_fluid_synth): Removed the synth->busy
	mutex. I don't think it is necessary; to be discussed.

	* src/fluid_midi.c (fluid_player_callback): Fixed the timing in
	the MIDI playback. The current MIDI tick in every timer callback
	was calculated as an increment to the previous number of
	ticks. This introduces a growing error due to rounding errors and
	timer variations. The current tick is now calculated according to
	the absolute time at the beginning of the file. (Beginners error
	...)

	* doc/FluidSynth-LADSPA.pdf: Added Markus' LADSPA design document.

	* doc/xtrafluid.txt: Added Antoine's Xtra API documentation.

	* doc/midi_time.txt: Added a memo on midi timing.

2004-03-19  Peter Hanappe <peter@hanappe.com>

	* src/fluid_midishare.c: Applied Stephane Letz patch: MidiShare is
	now connected to fluidsynth by default so that received MIDI
	events directly trigger the synth
	
2004-02-28  Peter Hanappe <peter@hanappe.com>

	* src/fluid_synth.c: Added fluid_synth_program_select2() and
	fluid_synth_get_sfont_by_name() in fluid_synth.c. These functions
	are not in the public API, yet.

2004-02-25  Peter Hanappe <peter@hanappe.com>

	* src/fluid_voice.c: Fixed bug in volume envelope (in
	fluid_voice_update_param(), case GEN_VOLENVDECAY): the minimum
	value was converted to linear amplitude instead of a normalized
	value of the cB (1-cB/1000). Because of that, the decay section
	went on for too long.

2004-12-xx  Peter Hanappe <peter@hanappe.com>

	* src/fluid_seq.c: Inserting events in the queueLater list was
	incomplete. It didn't check if the event was the last in the list,
	and the looping through the list didn't update the prev pointer. I
	added muteces to the sequencer. Events are dynamically allocated
	if no free events are available. The sequencer is protected by a
	mutex.
 
2003-11-14  Josh Green  <jgreen@users.sourceforge.net>
	* src/fluidsynth.c: Removed CCA_Use_Jack and CCA_Use_Alsa flags
	since LADCCA no longer uses them.

2003-08-31  Josh Green  <jgreen@users.sourceforge.net>

	* acinclude.m4: Renamed AC_SOUND macro to AC_OSS_AUDIO and removed
	the ALSA check from it since pkg-config is now being used to check
	for ALSA. Also fixed --enable-alsa-support and --enable-oss-support
	which were disabling support instead (reported by Bart Massey).
	* configure.ac: pkg-config is now being used to check for ALSA.
	ALSA and OSS now use automake conditionals to conditionally compile
	source files.
	* Makefile.am: Re-arranged SUBDIRS so build output looks nicer.
	* src/Makefile.am: ALSA and OSS are now conditionally compiled using
	automake conditionals.

2003-08-29  Josh Green  <jgreen@users.sourceforge.net>

	* src/fluid_sys.c: Patch from Eric Van Buggenhaut to make i386 asm
	code not compile for all non-i386 archs rather than just DARWIN.
	* src/fluidsynth_priv.h: Patch from Sergey Pavlishin to fix
	FLUID_REALLOC macro.
	* src/fluid_cmd.c: Ken Ellinwood's patch to add -verbose to "channels"
	command, and print settings values with 3 decimal places.
	* src/fluid_defsfont.c (fluid_defsfont_sfont_get_preset): Ken
	Ellinwood's patch to initialize sfont field of preset.
	* src/fluid_ramsfont.c (fluid_ramsfont_sfont_get_preset): Ken
	Ellinwood's patch to initialize sfont field of preset.
	* src/fluid_midi.c (fluid_midi_file_read_event): Fixed a crash bug with
	zero length MIDI meta events that was pointed out by Sergey Pavlishin.
	(delete_fluid_midi_event): Fixed a stack overflow problem pointed out
	by Sergey Pavlishin that was caused by recursively deleting MIDI
	event linked list, now just using a while loop.

2003-08-25  Josh Green  <jgreen@users.sourceforge.net>

	* src/fluidsynth.c: MIDI channels switch should be -K not -L as was
	listed in "Usage" output, also -K was setting audio.channels for
	non getopt case statement - changed to midi.channels. Added a new
	option "-l, --disable-ladcca" to disable LADCCA server connection.

2003-08-25  Josh Green  <jgreen@users.sourceforge.net>

	Release version 1.0.3

	* doc/fluidsynth.1: Applied typo patch from Eric Van Buggenhaut.
	* TODO: Restructuring TODO file (removing old stuff).
	* doc/Doxyfile: Disabled Tex doxygen generation and changed
	OUTPUT_DIRECTORY to api/.
	* doc/Makefile.am: Added an update-docs target and related for updating
	developer doc and doxygen reference HTML. Also added update-docs to
	dist-hook for updating before distribution packaging.
	* include/fluidsynth/synth.h: Some fixes to doxygen documentation.
	* fluidsynth.spec.in: New RPM spec file which is generated at configure
	time.
	* Makefile.am: Added fluidsynth.spec(.in) to EXTRA_DIST.

2003-08-19  Josh Green  <jgreen@users.sourceforge.net>

	* src/fluid_alsa.c: Added some calls to snd_strerror() to print out
	details of ALSA routine failures.
	* src/fluid_defsfont.c: Put a message about SoundFont loading code
	being borrowed from Smurf SoundFont Editor.
	* src/fluid_rev.c: Valgrind found that some values were being used
	uninitialized because fluid_revmodel_update() was being called before
	all reverb parameters were set, now setting manually and then calling
	update routine.
	* src/fluid_voice.c: Increased FLUID_MAX_AUDIBLE_FILTER_FC to minimize
	clicks from filter toggling. Added a FLUID_MIN_VOLENVRELEASE constant
	to set the minimum volume envelope release to minimize clicks.

2003-07-22  Josh Green  <jgreen@users.sourceforge.net>

	* src/fluid_midishare.c: Added include of header "config.h" as
	per Albert Graef's request.
	* src/fluid_voice.c (fluid_voice_optimize_sample): Moved a
	variable declaration to the beginning of function, it was
	causing problems with at least one user.

2003-06-28  Josh Green  <jgreen@users.sourceforge.net>

	* src/fluid_defsfont.c: Moved call to fluid_voice_optimize_sample
	from fluid_inst_zone_import_sfont to fluid_defsfont_load. Also
	reduced minimum sample size before rejection from 48 to 8 (could
	be lower?).
	* src/fluid_voice.c (fluid_voice_optimize_sample): Added a check
	for sample->valid to ignore ROM samples which was causing a crash
	with Vintage Dreams and other SoundFont files with ROM samples.

2003-06-17  Josh Green  <jgreen@users.sourceforge.net>

	Release version 1.0.2
	Added Makefile.am files where lacking.

	* Makefile.am: Fixes to "make dist" target by adding macbuild, sf2
	and winbuild to SUBDIRS also removed acconfig.h from EXTRA_DIST.
	* acinclude.m4: Removed AC_JACK, now using pkgconfig.
	* configure.ac: Updated to version 1.0.2, Jack test now using
	pkgconfig and built by default if found, coreaudio driver now built
	by default if found.
	* doc/Makefile.am: Added Doxyfile, example.c, example.sf2, fluidsynth.1
	and fluidsynth-v10-devdoc.xml to EXTRA_DIST.
	* src/Makefile.am: fluid_jack.c now conditionally built, fluid_sse.h
	added to EXTRA_DIST.
	* src/fluid_jack.c: #if JACK_SUPPORT removed as its not needed.

2003-06-15  Josh Green  <jgreen@users.sourceforge.net>

	* configure.ac: Fixed detection of CoreAudio by looking for
	CoreAudio/AudioHardware.h.
	* src/Makefile.am: Added COREAUDIO_CFLAGS and COREAUDIO_LIBS.
	* src/fluid_coreaudio.c: Added CoreAudio prefix to #include headers
	(fluid_core_audio_callback): Fixed declarition to match that of the
	typedef in CoreAudio header to stop warnings.
	* fluidsynth.c: Now including fluidsynth_priv.h to include the arch
	specific definitions in there (perhaps should be done in configure
	script though).
	* fluidsynth_priv.h: Added "#define WITHOUT_SERVER 1" to Darwin build.

2003-06-12  Josh Green  <jgreen@users.sourceforge.net>

	* Makefile.am: Added autogen.sh to EXTRA_DIST
	* acinclude.m4: Added AM_PATH_READLINE macro for readline detection
	and prefix configuration.
	* configure.ac: Support for MinGW32 build, Darwin build fixes,
	configure CFLAGS input value now honored, fixes to CoreAudio support,
	and better readline detection and config.
	* src/Makefile.am: Now conditionally compiling CoreAudio and Windows
	sources, added config_*.h files to EXTRA_DIST, some stuff for MinGW32
	build, READLINE_LIBS and READLINE_CFLAGS now used.
	* src/fluid_dsound.c: Fixed some warnings by adding "void" for
	empty parameter procedure declarations.
	* src/fluidsynth.c: Don't include config_win32.h if MinGW32.
	* src/fluidsynth_priv.h: Stuff for MinGW32 and Darwin builds.
	* doc/fluidsynth-v10-devdoc.xml: Applied a diff from
	Alexandre Prokoudine.

2003-06-09  Josh Green  <jgreen@users.sourceforge.net>

	* src/fluid_alsa.c: Added calls to pthread_attr_setschedparam to
	properly create SCHED_FIFO threads.
	* src/fluid_oss.c: pthread_attr_setschedparam calls added.
	* src/fluid_midishare.c: Patch update from Stephane Letz.

2003-05-29  root  <mn@bongo>

	* src/fluid_synth.c (fluid_synth_one_block): Added a mutex that
	provides a small degree of protection against noteons / noteoffs,
	when the audio thread is working.

	* src/fluid_synth.h (struct _fluid_synth_t): 

	* src/fluid_voice.c (fluid_voice_optimize_sample): 

2003-05-29  Markus Nentwig  <nentwig@users.sourceforge.net>

	* include/fluidsynth/voice.h: added fluid_voice_gen_incr to api
	* src/fluidsynth.c: Added error message for command line parameter handling
	* src/fluid_voice.c (fluid_voice_optimize_sample): Removed loop peak detection 
	at run time, because it caused dropouts. Now the sound font loader or application 
	is responsible to call fluid_voice_optimize_sample (if it doesn't, the turnoff optimization is 
	simply disabled).
	
1999-11-30  Antoine Schmitt  <as@gratin.org>

	* src/fluid_defsfont.c: inst_zone lokey is now properly inialized to 0
	(it was not, leading to random lost noteons depending on memory
	initialization)

2003-04-03  Peter Hanappe  <peter@hanappe.com>

	* src/fluid_rev.c: reverb parameters are clipped to their valid
	range.

	* src/fluid_alsa.c: using fluid_alsa_audio_run_s16 as default
	function. This reduces the high CPU usage.

	* src/fluid_voice.c (fluid_voice_write): filter interpolation done
	over only 1 buffer to avoid filter instability

	* src/fluid_chan.c (fluid_channel_init): bank number set to 128
	for the drum channel

	* src/fluid_midi.c (fluid_midi_file_read_event): Correctly reading
	pitchbend value

2003-02-27  Josh Green  <jgreen@users.sourceforge.net>

	Updated automake files (automake 1.6).

	* configure.ac: New version autoconf variables which get substituted
	into include/iiwusynth/version.h.in.
	* include/iiwusynth/version.h.in: Version defines that are filled in
	by autoconf.
	* src/Makefile.am: Fixed SOURCES including removing headers that are
	now in include/iiwusynth/, added missing sources (iiwu_ramsfont.[ch],
	iiwu_sfont.h) and added iiwu_dsp_core.c to EXTRA_DIST.
	* doc/Makefile.am: Added iiwusynth.1 to EXTRA_DIST.
	* include/iiwusynth.h: Added version.h.
	* iiwusynth/Makefile.am: Added version.h to the installed headers.

2003-02-08  Markus Nentwig <nentwig@users.sourceforge.net>

	* src/iiwu_ladspa.c: Added a very small signal at Nyquist
	frequency. This fixes denormal number problems in some
	plugins.
	* src/iiwu_cmd.c (iiwu_shell_run): Now also invalid input lines
	are added to the command line history. So the user can just scroll
	up and fix them.
	* src/iiwu_ladspa.c: Cleaned up error messages
	* src/iiwu_dsp_core.c: Disabled SSE interpolation, because it is
	slower than the normal code
	* autogen.sh: Added a line, that checks for the presence of pkg-config in
	autogen.sh.
	Motivation: It took me some time to figure out what was wrong...
	It produces some error message instead of an obscure error later
	during ./configure, if pkg-config is not installed.
		
2003-02-07  Josh Green <jgreen@users.sourceforge.net>

	Applied another Bob Ham LADCCA patch.

	* src/iiwu_alsa.c: LADCCA patch: Now using a ladcca.enable setting.
	* src/iiwu_jack.c: LADCCA patch: ladcca.enable setting and jack ports
	are no longer auto connected unless audio.jack.autoconnect is set.
	* src/iiwusynth.c: LADCCA patch: ladcca.enable and command line options
	-j and --connect-jack-outputs to enable Jack autoconnect.

2003-02-05  Josh Green <jgreen@users.sourceforge.net>

	Applied Bob Ham's LADCCA and pkgconfig patches.

	* Makefile.am: pkgconfig patch.
	* configure.ac: Renamed from configure.in as per new autoconf
	standards. LADCCA configure switch and detection. FluidSynth.pc
	pkgconfig file output.
	* src/Makefile.am: LADCCA patch.
	* src/iiwu_alsa.c [HAVE_LADCCA]: LADCCA patch: reports ALSA
	sequencer client ID.
	* src/iiwu_jack.c [HAVE_LADCCA]: LADCCA patch: reports JACK
	client name.
	* src/iiwusynth.c [HAVE_LADCCA]: LADCCA patch: connects to LADCCA
	server, creates client thread, saves/restores SoundFont file state.
	Used iiwu_sfont_get_name macro to get SoundFont file names contrary
	to the patch. Should these macros be public? Included unistd.h
	for usleep call (within HAVE_LADCCA).

2003-01-23  Josh Green <jgreen@users.sourceforge.net>

	* src/iiwu_jack.c: Fixed a segfault bug caused by freeing jack
	port names, when really only the port array should be freed,
	jack reference docs are confusing on this matter!
	* src/iiwu_voice.c (iiwu_voice_check_sample_sanity): Min loop size
	and padding now set via constants IIWU_MIN_LOOP_SIZE and
	IIWU_MIN_LOOP_PAD defined at top of iiwu_voice.c, and the values
	were lowered to exceed SF spec requirements rather then just meet.
	(iiwu_voice_write): Now using a constant IIWU_MAX_AUDIBLE_FILTER_FC
	defined at the top of iiwu_voice.c to control the filter
	cutoff optimization. Also added IIWU_MIN_AUDIBLE_FILTER_Q so
	filter will only turn off if both cutoff and q are determined to be
	inaudible. Filter optimization is much less noticeable when modulating.

2003-01-14  Markus Nentwig <nentwig@users.sourceforge.net>

	* src/iiwu_ladspa.c: Adapted new command handler
	* src/iiwu_midi_router.c (midi_dump_prerouter): Added forgotten
	'flush' for event dump 'fprintf's

2003-01-01  Markus Nentwig <nentwig@users.sourceforge.net>

	* src/iiwu_oss.c (new_iiwu_oss_audio_driver): Changed to callback function
	* src/iiwu_alsa.c (new_iiwu_alsa_midi_driver): Changed to callback function
	* src/iiwu_midishare.c (iiwu_midishare_midi_driver_receive): Partly done the same
	* src/iiwu_winmidi.c (new_iiwu_winmidi_driver): To be done...
	* src/iiwu_midi_router.c: Added
	* src/iiwu_ladspa.c: Adapted to new settings system
	* src/iiwu_adriver.c (iiwu_audio_driver_settings): Uses getint
	instead of getnum for audio.period-size and audio.periods settings.
	* src/iiwu_voice.c (iiwu_voice_write): 
	Ignore the valid flag for samples. Otherwise no sound is produced.
	* src/iiwu_chan.c (iiwu_channel_cc): Fixed bank select (7-bit
	instead of 8 bit) 
	
2002-12-23  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_io.c (iiwu_istream_readline): new file (iiwu_io.c and
	iiwu_io.c) to handle IO in the shell.
	
	* src/iiwusynth.c (main): options to start TCP server.

	* src/iiwu_cmd.c (new_iiwu_server): New structure and functions
	(new_iiwu_shell): New structure and functions to improve command
	interface.
	(new_iiwu_cmd_handler): New structure and functions to improve command
	interface.

	* src/iiwu_sys.c (new_iiwu_server_socket): New structure and
	functions
	(new_iiwu_thread): New structure and
	functions

2002-12-14  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_chan.c (iiwu_channel_cc): Handling NRPN messages (NRPN
	system).

	* src/iiwu_voice.c (iiwu_voice_update_param): Does more extensive
	range checking because the NPRN system may produce out-of-range
	values (NRPN system).
	(iiwu_voice_set_param): New function to change
	generator values (NRPN system).

	* src/iiwusynth_priv.h (iiwu_clip): New macro

	* src/iiwu_synth.c (iiwu_synth_set_gen): New function to change
	generator values (NRPN system).

	* src/iiwu_gen.c (iiwu_gen_map_nrpn): New function to map the NRPN
	data input to the parameter range (NRPN system).

	* src/iiwu_midi.c (iiwu_midi_file_read_event): Fixed metadata
	buffer bug (alloc size 1 too small).

2002-12-10  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_dsound.c (iiwu_win32_destroy_window): Filled in the
	empty lines...

	* src/iiwusynth.h: Changes in the definition for iiwu_synth_sfload
	and iiwu_synth_sfunload, New functions: iiwu_synth_sfreload,
	iiwu_synth_get_sfont_by_id, and iiwu_list_insert_at. New 'id'
	field in iiwu_font_t.

2002-12-08  Markus Nentwig  <nentwig@users.sourceforge.net>

	* src/Makefile.am: added iiwu_hash.c and iiwu_strtok.c to libiiwusynth_la_SOURCES
	* src/iiwu_settings.c (iiwu_settings_init): Removed
	multi_channel from the settings (replaced with audio_channels > 1)
	* src/iiwu_settings.c (iiwu_settings_init): added audio_groups
	setting. This is the number of individual channels generated from
	the synth, and always equal to audio_channels, as long as the
	LADSPA Fx unit is disabled. Otherwise it can be used (for
	example) to separate even and odd MIDI channels, apply different Fx
	and mix together to one stereo output.  
	src/iiwu_ladspa.c: Extended Fx unit to multigroup input, fx sends
	and multiple audio output channels
	
2002-12-04  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_midi.c (iiwu_midi_file_read_event): the metadata buffer
	is now dynamically allocated. What! Dynamic memory management
	already existed in the sixties!

	* src/iiwu_cmd.c (iiwu_handle_reset): New shell command. Sends
	system reset.

	* src/iiwu_cmd.c (iiwu_expand_path): New function to handle
	filenames starting with '~'.

	* src/iiwu_cmd.c: Added commands for working with tunings. Added
	'source' command.

	* src/iiwu_chan.h (struct _iiwu_channel_t): added tuning

	* src/iiwusynth.h: new tuning functions

	* src/iiwu_synth.c (iiwu_synth_reset_tuning): new tuning functions

	* src/iiwu_voice.c: Added tuning

2002-12-03  Peter Hanappe  <peter@hanappe.com>

	* doc/iiwusynth.1: new man page

	* src/iiwu_midi.c (iiwu_player_load): the player now handles a
	playlist.

	* src/iiwusynth.h: 'iiwu_player_add' replaces 'iiwu_player_load'

	* src/iiwusynth.c (main): iiwusynth can now play midifiles.

2002-12-02  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_sys.c (new_iiwu_timer): New argument 'auto_destroy' to
	specify whether the timer should delete it's structure when the
	timer is finished.

	* src/iiwu_synth.c (iiwu_synth_sfunload): If the soundfont can not
	be unloaded immediately, a timer thread is spinned of to unload it
	later. On MacOS 9, the unload is tried at a subsequent 'load' or
	'unload' request.

	* src/iiwusynth.h (struct _iiwu_sample_t): Added 'refcount' field
	to test when a soundfont can be unloaded.

	* src/iiwu_synth.c (iiwu_synth_nwrite_float): New function
	allowing multi-channel audio output.
	(iiwu_synth_init): Fixed 'amount' for pan. Now set to 500.

	* src/iiwu_cmd.c (iiwu_synth_cmdshell): Added little prompt.

	* src/iiwusynth.c (print_welcome): iiwusynth prints out a welcome
	message as an well-behaved, interactive application should.

	* src/iiwu_synth.c (iiwu_synth_all_sounds_off): New function to
	implement the 'All Sound Off' MIDI messages (CC 120).
	(iiwu_synth_system_reset): This function now also resets the
	default controller values on the MIDI channels, and clears the
	reverb and chorus delay lines.
	(iiwu_synth_count_midi_channels): New function to retreive the
	number of available midi channels.
	(iiwu_synth_count_audio_channels): New function to retreive the
	number of available midi channels.
	(iiwu_synth_count_effects_channels): New function to retreive the
	number of available effects channels.
	(iiwu_synth_get_cpu_load): New function to retreive an estimation
	of the CPU load.

	* src/iiwusynth.h: Added fields to handle multi-channel audio and
	a variable number of midi-channels. The 'flags' has been
	expanded/replaced with several variables.

	* src/iiwu_chan.c (iiwu_channel_cc): Implemented the 'All Control
	Off' MIDI message (CC 121).

	* src/iiwu_chorus.c (iiwu_chorus_update): iiwu_chorus_update
	(called after the iiwu_chorus_set_xxx function) no longer returns
	an error of out-of-range values. It clips the value the the
	[min-max] range.

2002-11-22  Markus Nentwig  <nentwig@users.sourceforge.net>
	* src/iiwu_voice.c (iiwu_voice_write): Fixed compilation problem 
	without --enable-SSE (Pentium II and Mac)

2002-11-17  Markus Nentwig  <nentwig@users.sourceforge.net>
	
	* src/iiwu_voice.c (iiwu_voice_write): Fixed nonlooped samples-bug.
	* TODO (TODO): Updated
	* src/iiwu_cmd.c (iiwu_handle_reverbsetlevel): Changed command
	line command 'rev_setwet' to 'rev_setlevel'. Replaced the word 'wet' by
	'level' in most places.
	 Added a command line option --dump, which provides
	 'machine-readable' output from stdout to hook up a user interface.
	* src/iiwusynth.h: Moved the default values for gain, chorus and
	reverb here. Might be useful as an example...
	* src/iiwu_voice.c (iiwu_voice_calculate_runtime_synthesis_parameters): 
	Added 'scale tuning' modulator, centered around C3.
	* src/iiwusynth.h: Added API functions to read the reverb state
	Moved iiwu_synth_system_reset to the API

2002-11-08  Markus Nentwig  <nentwig@users.sourceforge.net>
	
	* src/iiwu_voice.c (iiwu_voice_write): Fixed Volume envelope delay bug
	* src/iiwu_voice.c (FILTER_TRANSITION_SAMPLES): Doubled filter
	fading time
	* src/iiwu_mod.c (iiwu_mod_get_value): Changed convex unipolar
	negative definition
	* src/iiwu_voice.c (iiwu_voice_off): Cleaned up a bit, uses now
	calls to iiwu_voice_off, when a voice is finished.
	* src/iiwu_midi.c (iiwu_midi_parser_parse): Reimplemented
	New parser should be able to cope with realtime, system common
	and resynchronize.

2002-10-31  Markus Nentwig  <nentwig@users.sourceforge.net>

	* src/iiwu_alsa.c (iiwu_alsa_midi_run): Increased MIDI timeout
	from 1 to 100 ms
	* src/iiwu_dsp_core.c: Merged identical filter coefficients b0 and
	b2 into b02
	Implemented smooth filter transitions
	* src/iiwu_sys.c (iiwu_check_fpe): Added verbose FPE reporting and
	systematic FPE checks.	
	* src/iiwu_rev.c: Added a constant DC offset to avoid slowdown
	caused by denormal numbers
	* src/iiwu_synth.c (delete_iiwu_synth): Fixed segv during shutdown 
	* src/iiwu_dsp_core.c: Fixed buffer bug (aligned-unaligned)
	* src/iiwu_synth.c (iiwu_synth_damp_voices): Commented out unused code
	* src/iiwu_dsp_core.c: Optimized, added SSE code, which is
	this time actually faster than the default code. Well. Part of it.
	* src/iiwu_voice.c: Minor clean-up
	* configure.in: Added switch --enable-longlong
	* configure.in: Added switch --enable-SSE
	* src/iiwu_phase.h: Added 64 bit operations, documented
	* src/iiwu_sse.h: Check to avoid #including the file more than once

2002-10-29  Markus Nentwig <nentwig@users.sourceforge.net>

	* src/iiwu_voice.c: Added experimental SSE support for Pentium
	III. Comment out #define SSE from iiwu_voice.c to get back to the standard version.

2002-10-26  Markus Nentwig  <nentwig@users.sourceforge.net>

	* src/iiwu_seq.c: Fixed a couple of warnings
	* src/iiwu_voice.c (new_iiwu_voice): Removed iiwu_voice_init.
	* src/iiwu_dsp_core.c: New 7th order interpolation.

2002-10-24  Markus Nentwig  <nentwig@users.sourceforge.net>

	* src/iiwu_voice.c(iiwu_voice_determine_amplitude_that_reaches_noise_floor_for_sample): 
	Added checking for invalid sample.
	* src/iiwu_voice.c (iiwu_voice_write): 
	Moved the DSP core functions into iiwu_dsp_core.c.
	Optimized, cleaned up, documented.
	Amplitude scaling short => floating point is now done as the last
	operation in the DSP loop (voice->amp does not include the scaling
	factor anymore).	
	* src/iiwu_synth.c (iiwu_synth_one_block): Saved a couple of
	multiplications per sample by moving the master gain into iiwu_voice_write
	* src/iiwu_synth.c (iiwu_synth_free_voice_by_kill): Modified the algorithm
	* src/iiwu_synth.c (iiwu_synth_alloc_voice): Noteon algorithm will
	now turn off retriggered running voices ('sustain pedal problem')
	
2002-10-18  Markus Nentwig  <nentwig@users.sourceforge.net>

	* src/iiwu_alsa.c (new_iiwu_alsa_midi_driver): Disabled
	high-priority scheduling for the MIDI thread to get rid of audio dropouts.
	* src/iiwu_synth.c (iiwu_synth_free_voice_by_kill): Modified voice
	killing algorithm, so that recently started voices are not killed
	* src/iiwu_voice.c (iiwu_voice_run_dsp): Changed some variable
	names. Extensive loop point checking, when loop points are modulated.
	* src/iiwusynth.h: Added functions to read the state of the
	chorus. 
	* src/iiwu_chorus.c: Rewrote chorus setup logic (if a parameter is
	out-of-range, all other parameter changes are discarded).
	* src/iiwu_voice.c: Added caching for loop peak detection: The
	amplitude of the loop is only detected once for each
	sample. Exception only, if the resulting loop differs from the
	original loop settings of the sample (in this case, the peak
	detection is still run for each noteon event).
	* src/iiwusynth.h (struct _iiwu_sample_t): Added 'amplitude_that_reaches_noise_floor_is_valid'
	and 'amplitude_that_reaches_noise_floor'
	* src/iiwu_voice.c(iiwu_voice_calculate_runtime_synthesis_parameters):
	Renamed 'iiwu_voice_optimize'
	
2002-07-21  Peter Hanappe  <peter@hanappe.com>

	* src/Makefile.am (libiiwusynth_la_SOURCES): Followed Bob Ham's
	suggestion for the Makefile.am to fix the problems with automake
	1.6

1999-11-30  Tim Goetze <tim@quitte.de>
	* src/iiwu_synth.c (iiwu_synth_alloc_voice): New algorithm for
	voice allocation, when all voice processes are in use

1999-11-30  Markus Nentwig <nentwig@users.sourceforge.net>
	* src/iiwu_synth.c (iiwu_synth_alloc_voice): Applied above patch,
	
2002-07-08  Markus Nentwig <nentwig@users.sourceforge.net>

	* src/iiwu_synth.c (iiwu_synth_noteoff): Changed noteoff strategy:
	Noteoff now turns off all voice processes with the same channel /
	key, regardless of the voice ID (avoids stuck notes).

2002-07-13  Peter Hanappe  <peter@hanappe.com>
	* src/Makefile.am (EXTRA_libiiwusynth_la_SOURCES): Applied Takashi
	Iwai's patch. The configure stuff in iiwusynth-0.2 cannot be
	rebuilt with the latest automake 1.6.  You cannot use substitution
	for *_SOURCES in Makefile.am. This fixes this problem.

1999-11-30  Markus Nentwig  <nentwig@users.sourceforge.net> 

	* src/iiwusynth.h: Added documentation, removed GEN_CHANGED (it
	was unused).

	* src/iiwu_mod.c (iiwu_dump_modulator): Cleaned up

	* src/iiwu_cmd.c (iiwu_handle_help): Restructured command line
	help system

2002-06-14  Markus Nentwig  <nentwig@users.sourceforge.net>

	* src/iiwu_chorus.c (iiwu_chorus_processmix): Turning off chorus now, when parameters are wrong (avoid FPE)
	* src/iiwu_voice.c (iiwu_voice_write): Optimized turnoff condition for voice

2002-06-11  Markus Nentwig  <nentwig@users.sourceforge.net>

	* src/iiwu_voice.c (iiwu_voice_add_mod): Fixed bug that prevented non-default modulators from being added.
	(iiwu_voice_config): Added peak detection for the sample loop, and a condition turning off the voice,
	if loop peak volume and amplitude envelope combined fall below the noise floor.

2002-06-06  Peter Hanappe  <peter@hanappe.com>

	* acinclude.m4: Fixed problems with enable/disable jack and
	midishare

2002-06-06  Tim Goetze  <tim@quitte.de>

	* src/iiwu_synth.c (iiwu_synth_all_notes_off): Added handling of
	all-notes-off midi message

2002-06-03  Markus Nentwig <nentwig@users.sourceforge.net>
	*  src/iiwu_chorus.c: Fixed bug in initial phase calculation

2002-06-02  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_jack.c: updated for new JACK types.

2002-06-02  Bob Ham  <node@users.sourceforge.net>

	* acinclude.m4: Changed acinclude.m4 for configure to ignore jack.

2002-06-02  Markus Nentwig <nentwig@users.sourceforge.net>
	* autogen.sh: Added libtoolize -f to prevent error message 'libtool: ltconfig version does not match ltmain.sh version ...'
        * src/iiwusynth.h: Changed iiwu_voice_add_mod_t to iiwu_voice_add_mod
	* src/iiwu_synth.c: Added NULL termination to list returned by iiwu_synth_get_voicelist
	* src/iiwusynth.h: Added iiwu_synth_set_chorus (API function)
	* src/iiwu_synth.c: Added iiwu_synth_set_(reverb|chorus)_on (API functions)
	* src/iiwu_cmd.c: Added control commands for chorus (see help)
	
2002-05-26  Tim Goetze <tim@quitte.de>
        * src/iiwu_voice.c (iiwu_voice_noteoff): Fixed conversion between
	volenv-values from attack segment to later envelope segments

2002-05-22  Markus Nentwig <nentwig@users.sourceforge.net>

	* src/iiwu_voice.c (iiwu_voice_query_ID): Added, API function

	(iiwu_voice_query_playing): Added, API function 

	(iiwu_voice_write): Fixed problem with filter caused 05-18 

	* src/iiwusynth.h: Moved iiwu_voice_update_param into the API 


2002-05-19  Markus Nentwig <nentwig@users.sourceforge.net>

	* src/iiwusynth.h (iiwu_synth_get_voicelist): Added. 

	* src/iiwu_voice.c (iiwu_voice_noteoff): Added a conversion for linear to cB amplitude, when a note is turned off 
	during the attack phase of the volume envelope

	* src/iiwu_gen.h: Moved the generator definition to API. Changed the fields to 'double'.

	* src/iiwu_mod.c: Moved the modulator definitions to API. Changed the data type of amount to 'double'.

	* src/iiwu_voice.c (iiwu_voice_write): The condition, that quits a voice, when the amplitude
	falls below a threshold now uses only the volume envelope instead of the voice amplitude.
	Previously, turning a volume pedal briefly to 0 would quit all voices playing.

	* src/iiwu_rev.c (iiwu_revmodel_processreplace): Removed 'dry' path from reverb unit 
	Motivation: This saves a couple of multiplications, the dry signal goes through the ordinary output
	anyway.

	* src/iiwusynth.h (iiwu_synth_kill_by_exclusive_class): added to API
	* src/iiwu_synth.c (iiwu_synth_kill_by_exclusive_class): Extended the exclusive class function to
	work with stereo samples
	(iiwu_synth_set_reverb): Renamed iwu_synth_set_reverb to iiwu_synth_set_reverb_preset
	iiwu_synth_set_reverb is now an API function, that allows to set all reverb parameters.

2002-05-18  Markus Nentwig  <nentwig@users.sourceforge.net>

	* src/iiwu_chorus.c: Implemented variable delay line with bandlimited interpolation. Documentation, error handling. 
	Removed unneeded and broken features
	* src/iiwusynth_priv.h: Moved typedef struct iiwu_mod_t iiwu_mod_t into iiwusynth.h
	* src/iiwusynth.h: Moved iiwu_voice_add_mod from iiwu_voice.h into iiwusynth.h (now API function).
	* src/iiwu_voice.c (iiwu_voice_update_param): Inserted chorus send into DSP loop
	(iiwu_voice_write): Added flag 'voice->update_filter'. Now Q can be modulated.

2002-05-12  Markus Nentwig  <nentwig@users.sourceforge.net>

	* src/iiwu_synth.c (iiwu_synth_pitch_wheel_sens): added
	* src/iiwu_chan.c (iiwu_channel_pitch_wheel_sens): added 
	* src/iiwu_cmd.c (iiwu_handle_reverbsetwidth): changed 'wet' to
	* 'width'

2002-05-11  Markus Nentwig  <nentwig@users.sourceforge.net>

	* src/iiwu_conv.c (iiwu_tc2sec): 
	Added more conversion functions with range check for different ranges:
	(iiwu_tc2sec_attack): 
	(iiwu_tc2sec_hold): 
	(iiwu_tc2sec_release): 
	
	* src/iiwu_voice.c (iiwu_voice_add_mod):
	implemented modulator src 0 (constant mod offset) 
	* src/iiwu_voice.c (iiwu_voice_update_param):
	sample-and envelope related voice parameters 
	are now handled together with other voice parameters.
	Implemented generators:	 
	GEN_KEYTOVOLENVDECAY
	GEN_KEYTOVOLENVHOLD
	GEN_KEYTOMODENVDECAY
	GEN_KEYTOMODENVHOLD
	
2002-05-10  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.c (iiwu_synth_start_voice): added
	iiwu_synth_start_voice() to handle exclusive classes.

2002-05-09  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_conv.h: removed velocity to cB conversion. No longer
	used.

	* src/iiwu_synth.c (iiwu_synth_write_float): removed limiter

	* src/iiwu_synth.h (IIWU_NUM_CHANNELS): set the number of channels
	to 64.

	* src/iiwu_synth.c (iiwu_synth_get_internal_bufsize): added

	* src/iiwu_ladspa.h: lower-cased ladspa files 

	* src/iiwusynth.h: prefixed log levels with IIWU_... Updated all
	references.

	* src/iiwu_cmd.c (iiwu_handle_reverb): renamed 'rev_enable' to
	'reverb' in correspondance with the long command line arguments

	* src/iiwusynth.c (main): checking if files on command line are valid

	* src/iiwuplay.c (main): checking if files on command line are valid

	* src/iiwusynth.h: New log level for verbose messages: IIWU_INFO

2002-04-30  Markus Nentwig  <nentwig@users.sourceforge.net>

	* src: Added iiwu_LADSPA.c, iiwu_LADSPA.h (support for LADSPA effect plugins).
	
	* src/iiwusynth.c (main): Changed default gain to 0.2.

	* src/iiwu_voice.c: Restructured the voice initialization as follows:
	(iiwu_voice_init): sample position, IIR filter history, envelopes etc. are reset.
	(iiwu_voice_optimize): The generators (nominal value) have been set by the sound font.
	Now each modulator is calculated once to obtain the 'final' initial value for each
	generator, which consists of nominal value and modulator-contributed part.
	(iiwu_voice_update_param): Calculates all voice parameters, which depend on one
	particular generator. This is called once for each voice parameter during 
	voice_optimize and further each time, when a modulator changes a generator.
	(iiwu_voice_update_param): Added a voice parameter filter_gain to avoid
	recalculating the filter gain each time the center frequency changes (it depends
	only on Q)
	(iiwu_voice_write): Voice is now turned off, when the amplitude falls below -100 dB,
	even during the sustain phase (happens, when holding a piano key for a very long time)

	* src/iiwu_voice.c (iiwu_voice_noteoff): Moved voice->chan = NO_CHANNEL into iiwu_voice_off.
	Previously a released note was not modulated anymore, for example pitch bend stopped working as soon
	as the key was released.

	* src/iiwu_voice.h: Changed _ON macro to figure out the state of a key from the position in
	the envelope, instead of using a cleared channel number as indicator.

	* src/iiwu_synth.c: Implemented all default modulators
	Added LADSPA support.
	Added digital clipping.
	Moved master gain factor ahead of LADSPA Fx.

	* src/iiwu_mod.c: 'Hardcoded' GM default modulator vel => filter.
	Replaced 128 with 127 in (127-x)

	* src/iiwu_midi.c: Fixed sysex for realtime MIDI. Fixed pitch bend bug.

	* src/iiwu_gen.c (iiwu_gen_set_default_values): Using float instead of int for default values.
	Added references to specifications (doc). Changed 'init array' function name to 'set_default' .

	* src/iiwu_defsfont.c (iiwu_preset_zone_import_sfont): Import of modulators
	(iiwu_inst_zone_import_sfont): Import of modulators
	(iiwu_defpreset_noteon): Added modulators, fixed generator problem (local zone overwrites global zone, previously it added)

	* src/iiwu_conv.c: Using now oncave / convex equation from SF specs.
	Removed ct2hz functions and tables.
	(iiwu_ct2hz): Limit checking
	(iiwu_cb2amp): Removed 'magic number'
	(iiwu_tc2sec): Avoided == for iiwu_real_t
	
	* src/iiwu_cmd.c: Increased number of tokens. Using WORKLINELENGTH constant.
	Changed max. gain to 5.
	Added LADSPA commands.
	Renamed misleading rev_bypass command to rev_enable

	* src/iiwu_chan.c: Centered pitch wheel. Added 'expression' modulator (CC 11).
	* configure.in: Added LADSPA support

2002-04-03  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_voice.c (iiwu_voice_run_dsp): Integrated Markus
	Nentwig's new filter design


2002-03-12  Peter Hanappe  <peter@hanappe.com>

	* src/iiwusynth.h: the preset iteration in a soundfont now takes a
	pointer to a preset structure

	* src/iiwu_sys.c (iiwu_profile_data): added support for profiling

	* src/iiwu_voice.c (iiwu_voice_write): turns off voice if
	amplitude < -100 dB in release phase. Set filter gain back to old
	value (0.25f * ...)

	* src/iiwuplay.c (main): added gain, interactive, and reverb options

	* src/iiwusynth.c (main): added gain and reverb options

	* src/iiwu_synth.c (iiwu_synth_write_s16): added brickwall limiter for s16 samples

2002-01-29  Stephane Letz  <letz@grame.fr>

	* src/iiwu_midishare.c : Compilation on MacOSX, use a task for typeNote management
	* src/iiwu_sys.c : Compilation on MacOSX
	* src/iiwu_sys.h : Compilation on MacOSX
	* src/iiwu_sfont.c : Use the flag MACINTOSH instead of MACOS
	* config_macos.h : Cleanup
	* config_macosx.h : New file, compilation on MacOSX


2002-01-21  Stephane Letz  <letz@grame.fr>

	* src/iiwu_midi.c (delete_iiwu_midi_handler): Desallocation of heap allocated strings
	* src/iiwusynth_priv.h : Definition of strdup if not available (Macintosh)


2002-01-16  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_alsa.c (new_iiwu_alsa_seq_driver): Applied and adjusted
	Bob Ham's patch: support for configurable ALSA sequencer client
	name.

	* src/iiwu_chan.c (iiwu_channel_cc): Applied Bob Ham's patch:
	added bank select midi message.

	
2001-12-31  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.c (iiwu_synth_damp_voices): Sustain messages are
	now handled. Updated iiwu_channel and iiwu_voice.
	(delete_iiwu_synth): SoundFonts are deleted.

2001-12-21  Stephane Letz  <letz@grame.fr>

	* src/iiwu_midishare.c (new_iiwu_midishare_midi_driver, 
		delete_iiwu_midishare_midi_driver):
	 Updated to be compiled either in driver or application mode
	 with the flag MIDISHARE_DRIVER.

2001-12-20  Stephane Letz  <letz@grame.fr>

	* src/iiwu_portaudio.c (iiwu_portaudio_run , new_iiwu_portaudio_driver):
	 Adaptation for new audio drivers

	* src/iiwu_synth.c (audio driver definition): 
	Adaptation for PortAudio driver

	* src/iiwu_sys.c (header): Adaptation for compilation on MacOS9
		
	* src/iiwu_sys.h (header): Adaptation for compilation on MacOS9

2001-12-16  Peter Hanappe  <peter@hanappe.com>

	* src/iiwuplay.c (main): The .iiwusynth file is loaded *before*
	the soundfonts on the command lines are loaded

	* src/iiwusynth.c (main): idem.

2001-12-16  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_midi.c (iiwu_player_callback): Fixed error in midi
	timing after a tempo change

	* src/iiwu_jack.c (new_iiwu_jack_audio_driver): Added first
	version of JACK driver

2001-12-14  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.c (iiwu_synth_noteoff): noteon/notoff events can
	print a clear message, useful for debugging.

	* src/iiwu_sys.c (struct _iiwu_timer_t ): timer moved from
	iiwu_midi.c to iiwu_sys.c

	* src/iiwusynth.h: New organization of settings; using bit flags;
	added verbose option

	* src/iiwusynth.c (main): Added the verbose option

	* src/iiwuplay.c (main): Added the verbose option

2001-10-05  Stephane Letz  <letz@grame.fr>

	* src/iiwu_portaudio.c (new_iiwu_portaudio_driver): imported new
	driver for the PortAudio library.

2001-10-04  Stephane Letz  <letz@grame.fr>

	* src/iiwu_synth.c (new_iiwu_synth):  Fixed bug in synth initialisation

2001-10-02  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_cmd.c (iiwu_get_userconf): returns default user
	configuration
	(iiwu_get_sysconf): returns default system configuration
	(iiwu_synth_cmdline): Fixed bug with argument offset. Empty lines
	are skipped correctly.
	
	* src/iiwusynth.c (main): loads the user or system config

	* src/iiwuplay.c (main): loads the user or system config

	* src/iiwu_synth.c (iiwu_sp_write): Using new envelope model for
	modulation envelope

2001-09-29  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.c (iiwu_sp_write): redesigned the envelopes.

2001-09-20  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.c (iiwu_sp_write): redesigned the dsp loop. it's
	faster and it sounds better (!)

2001-09-19  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_sfont.c (iiwu_sample_import_sfont): better checking for
	minimum sample size, loop start and loop end offsets.

2001-09-17  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.c (iiwu_sp_write): improved calculation of filter
	coefficients
	(new_iiwu_synth): using settings structure

2001-09-09  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.h (iiwu_phase_decr): fixed bug 

	* src/iiwu_synth.c (iiwu_synth_noteoff): noteoff now turns off the
	oldest note only (instead of all notes with the given channel and
	key)

2001-07-10  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_midi.h: removed midi driver join function. updated all
	structures, implementations and callers.

2001-07-04  Peter Hanappe  <peter@hanappe.com>

	* src/iiwuplay.c (print_help): corrected errors in the help and
	usage display.

2001-06-29  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.c (iiwu_synth_one_block): new function. fills the
	buffer with fresh samples.
	(iiwu_synth_write_lr): now calls iiwu_synth_one_block. the
	synthesizer uses fixed synthesis buffer size, independent of the
	requested buffer length passed to iiwu_synth_write_lr.
	(iiwu_revmodel_processreplace): new uses fixed IIWU_BUFSIZE value
	for buffer length.
	(iiwu_revmodel_processmix): uses fixed IIWU_BUFSIZE value

2001-06-22  Peter Hanappe  <peter@hanappe.com>

	* src/iiwusynth.c (iiwu_handle_fonts): new shell command to list
	the loaded fonts.
	(iiwu_handle_mstat): new shell command to list the statistics of
	the midi driver.

2001-06-19  Peter Hanappe  <peter@hanappe.com>

	* src/iiwusynth.c (main): Several command line options are
	available to select the midi and audio driver and device. Using
	the getopt function on posix machines.

2001-06-16  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.h: new iiwu_revmodel_presets_t structure to store
	reverb presets (concert hall, room, ...)

	* src/iiwu_synth.c (iiwu_synth_write_lr): now using 1 reverb for
	all synthesis processes. the synthesis processes now receive a
	left and right buffer, a reverb buffer, a chorus buffer, and a
	monobuffer for their temporarry storage. reverb now always on.
	
	(new_iiwu_sp): no longer allocating a reverb module nor a
	monobuf. only one reverb model and monobuffer allocated by the
	synth object (read: much less memory usage).

	* src/iiwu_midi.c (iiwu_player_callback): fixed timing
	errors. midi should play correctly now.

2001-06-09  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.c (iiwu_sp_write_lr): now using a 64-bits
	fixed-point number to calculate the phase of the
	wavetable. because of rounding erros, the float value I used
	before gave terrible tuning problems. I updated all the
	intepolation macros.

	* src/iiwusynth_priv.h: included the iiwu_phase_t data type. This
	type represents a 64-bits fixed-point number. It's used to hold
	the phase in the wavetable.

2001-06-08  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_midi.c (new_iiwu_midi_handler): Better support for
	runtime selection of the MIDI driver (using the
	iiwu_mdriver_definition_t structure)

	* src/iiwu_auport.c (new_iiwu_auport): Better support for runtime
	selection of the audio driver (using the iiwu_adriver_definition_t
	structure)

2001-06-07  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.c (iiwu_sp_write_lr): rewrote the dsp function to
	accept a seperate left and right channel buffer.
	(iiwu_sp_write_lr): using cubic hermite interpolation by default.
	(iiwu_synth_write_lr): added a dsp function to accept a seperate
	left and right channel buffer.

2001-05-26  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_midi.c (iiwu_midi_parser_parse): Fixed a bug in the
	midi parser (running status should not be split in a status and
	channel part for system messages).
	(iiwu_midi_send_event): pitch bend events are now handled

2001-05-25  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_midi.c (iiwu_midi_file_getc): Fixed bug when pushed
	back byte equals zero (mf->c >= 0)

	* src/iiwu_midi.c (iiwu_midi_file_getc): Fixed bug when pushed
	back byte equals zero (mf->c >= 0)

2001-05-24  Peter Hanappe  <peter@hanappe.com>

	* src/iiwusynth.c: added the stupidly simple interpreter

	* src/iiwu_synth.c: removed all param strcutures. 

	* src/iiwu_synth.c (iiwu_channel_get_banknum): new function

2001-05-23  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_synth.c (iiwu_sp_write): Fixed devide by zero in filter

	* src/smurf.c (gerr): applied Josh's patch: using va_list now (as
	it should).

2001-05-22  Peter Hanappe  <peter@hanappe.com>

	* src/iiwu_midi.c: the midi handler is now devided in a dummy
	iiwu_midi_handler_t and a "low level" driver. This allows for
	multiple midi drivers to be compiled in.

	* src/iiwusynth.h: renamed iiwu_midi_driver_t to iiwu_midi_handler_t

	* src/iiwu_auport.c (new_iiwu_auport): new "driver" argument to
	select between alsa, oss, midishare, directx, ...

	* configure.in: preparing for the first pre-release, version 0.0.1