1---------------------------*-indented-text-*------------------------------
2
3    TiMidity -- Experimental MIDI to WAVE converter
4    Copyright (C) 1995 Tuukka Toivonen <toivonen@clinet.fi>
5
6--------------------------------------------------------------------------
7
8	List of changes
9
10--------------------------------------------------------------------------
110.2h to 0.2i
12
13       Renamed most source files to fit into 8.3 characters and less.  Sorry.
14
15       Changes by Davide Moretti <dmoretti@iper.net>: Incorporated the
16       changes to allow TiMidity to compile and run under Win32 platforms
17       (tested with Windows 95 and Windows NT for Intel).  Read README.W32
18       for more information.
19
20       Tcl/Tk interface by Takashi Iwai <iwai@dragon.mm.t.u-tokyo.ac.jp>.
21       Read README.tk.
22
23       DEC port by Chi Ming HUNG <cmhung@insti.physics.sunysb.edu>.  Read
24       README.DEC.
25
26       A few bugfixes: WAVE headers, shell substitution, Linux audio O_RDWR,
27       dumb/ncurses segfault (thanks to everyone who sent a fix for this ;)
28
29       Reversed the sense of the -F option to get rid of some nasty pops.
30
31       Attempted to merge Makefile.{SUN|SOLARIS|HPUX|DEC} back into Makefile
32       to conserve the world's ketoprofen reserves.
33
34       Lowered default amplification to 70% to get a bit more dynamic
35       headroom.
36
370.2g to 0.2h
38
39       Warning! This is a Vincent Pagel release... more official
40       release when Tuukka comes back from hollydays, err, his
41       exams actually.
42
43       I've added a Motif interface with files selection, time scale
44       cursor and other blue widgets. More gadgets to come. Changes
45       are in motif_* files, but also a big structure change in
46       timidity.c and playmidi.c as it is now the interface that
47       choose the name of the next file to play.
48
49       Added so called "nice" icons
50
51       Pipe communication between Motif interface and the program.
52
53       Antialiasing filtering now works even with looping patch, nice
54       when playing on a SUN at Ulaw at 8Khz ( option -a )
55
56       Added a Makefile.HPUX since make on HP does not understand
57       the += notation
58
59       Thanks to Gilles Dauphin, works on Solaris
60
610.2f to 0.2g
62
63	Wrote a little WAVE to patch converter and added ".wav" to
64	DECOMPRESSOR_LIST to allow using wave files as simple
65	instruments. This was Davor Jadrijevic's suggestion from some
66	time back. New file: wav2pat.c
67
68	Took out ADJUST_PANNING_IMMEDIATELY and put in a command line
69	option "-F" for "turn off _F_ast panning". Running out of
70	letters for command line options.
71
72	Error check in read_config_file to make some noise when
73	directories are specified as config files.
74
75	Squashed a segfault that resulted from resampling past loop
76	end (FINALINTERP, when incr > 1<<FRACTION_BITS).
77
78	Sweep computation overflow with seashore.pat fixed.
79
80	The portion of sample data from loop_end to data_length is now
81	played if the instrument doesn't have a loop or an envelope.
82	Some patches (e.g. Fretnoyz from the ProPats 3.0 set) contain
83	garbage between loop_end and data_length, so there's a new
84	config file option "strip=tail" to drop it off.
85
86	Reverse loops are now done "right".
87
88	Slight LOOKUP_HACK cleanup. There's a "final_volume_t" type
89	that's either an uint8 or an int32, whichever is required for
90	mixing computations, and a FINAL_VOLUME() macro to convert an
91	int32 to the required type.
92
93	Changed the "THING := $(THING) junk" assignments in Makefile
94	to "THING += junk"'s. Hopefully the latter is understood by
95	more makes than the former. The whole mess will be replaced by
96	a configure script within a few releases.
97
98	Split up mix_data in mix.c to make it easier to look at.
99
1000.2e to 0.2f
101
102	Moved mixing functions out of resample.c. New files: mix.c,
103	mix.h.
104
105	Added midia.cfg config file for the Midia patch set.
106
107	Added Shawn McHorse's loop optimizations and LOOKUP_SINE
108	config.h option.
109
110	Added Shawn's FAST_DECAY command line switch -- config.h
111	option FAST_DECAY now sets the default for this switch.
112
113	USE_LDEXP config.h option, in case your compiler converts
114	ldexp() into a straight fscale, and fscale is faster than fmul
115	on your machine.
116
117	Fixed WAVE header bug -- the lengths were 44 bytes short.
118	Thanks to Alexey Marinichev for noticing.
119
120	Added PATCH_EXT_LIST option to config.h, so you don't have to
121	change every filename in your configuration file when you
122	decide to compress your patches.
123
124	Added external utility "bag". New file: bag.c, read it for
125	info.
126
127	Added "extern" to the s32towhatever() prototypes in output.h.
128
1290.2d to 0.2e
130
131	Riccardo Facchetti's S-Lang-based user interface: a more
132	efficient alternative to ncurses. Options in Makefile.
133
134	Rearranged options in Makefile to make various combinations
135	easier to select.
136
137	LOOKUP_HACK config file option: horrible experimental kludge
138	to substitute table lookups for multiplication. First attempt
139	to use uLaw as sample format failed miserably. Now using 8-bit
140	linear, which is fine for Sound Blaster owners. It only saves
141	~20% of CPU on a Pentium, but let me know what it does to your
142	setup.
143
144	Changed instrument loading to add the Sustain flag to all
145	patches which have the Looped flag set.
146
147	Implemented All Notes Off, All Sounds Off, and Reset All
148	Controllers events. The Day of the Tentacle intro music uses
149	the first and plays OK now. The other two might work, or they
150	might throw your machine into a damaging infinite binary loop.
151
152	Implemented Bank Select controller. Sort of emulates the SCC-1
153	(I think): use Control Change 00 xx, where xx is the tone bank
154	you want.  Totally untested. Some MIDI files use Control
155	Change 0 for something else, generating loads of warnings.
156
157	In config.h, changed the default command line for shorten to
158	work with version 1.22. The old one was for some ancient
159	version which I finally got around to replacing.
160
161	Fencepost error in resampling fixed by Vincent Pagel.
162
163	Fixed problem with bidirectional loops and vibrato.
164
1650.2c to 0.2d
166
167	Volume computations rewritten to use both floating point and
168	integer multiplication.
169
170	Tremolo and vibrato handling. Some tuning parameters are
171	available in config.h.
172
173	Fixed-pitch, non-looped instruments are now resampled at load
174	time.  Note that fixed-pitch instruments can't be pitch-bent.
175
176	Cheaper click removal scheme. Removed I_WANT_THE_CLICKS_BACK
177	option from config.h, added MAX_DIE_TIME definition. Moved
178	resampling and mixing functions from playmidi.{c,h} to new
179	files: resample.c, resample.h.
180
181	Percussion instrument pitches can now be specified
182	independently of the note they're assigned to. Melodic
183	instrument pitches can also be forced. Extra options in config
184	file -- see the manual. Thanks to Davor Jadrijevic for his
185	suggestions.
186
187	Loops and envelopes are now removed from all percussion
188	instruments by default. This should eliminate cymbal crashes
189	being cut short.
190
191	Changes in gravis.cfg to override some instrument parameters
192	that would be guessed incorrectly.
193
194	Vincent Pagel's experimental antialiasing filter. This doesn't
195	interact very well with looping yet, so it's only applied to
196	non-looped instruments. Use the command line option "-a" to
197	enable the filter. New files: filtering.c, filtering.h.
198
199	Enabled fast forward & rewind in non-trace mode in
200	ncurses_ctl.c.
201
202	Fixed a problem with envelopes -- envelope handling still
203	isn't perfect, but skipping the "Attack 2" phase was dumb.
204
205	Added ADJUST_PANNING_IMMEDIATELY to config.h, default on (no
206	change from previous behavior).
207
208	Silly bug in adjusting non-enveloped voice volumes fixed.
209
210	Small change in ncurses_ctl to display 100 for maximum volume
211	and expression.
212
213	After listening to a GUS, made FAST_DECAY default to on.
214
215	Riccardo Facchetti's patch to config.h: Not all Linux systems
216	are little-endian.
217
218	Riccardo's alternative keyboard commands in ncurses_ctl.c.
219	First step towards porting to MS Windows -- you can press
220	F1 to get help!
221
222	DANGEROUS_RENICE config.h option. Thanks again to Riccardo.
223
2240.2b to 0.2c
225
226	Fixed pitch bend sensitivity again. NRPN controls are now
227	correctly ignored.
228
2290.2a to 0.2b
230
231	Francesco Zanichelli's patches to get the Sun version to
232	actually compile.
233
234	Victor Langeveld's patches to get the FreeBSD version to
235	actually compile.
236
237	Fixed pitch bend sensitivity. Thanks again to Vincent Pagel
238	for the information.
239
240	Expression now defaults to 127, as with the SCC-1. Some things
241	may sound a bit loud.
242
2430.1a to 0.2a
244
245	Internal changes for easier porting to other systems.
246	long long's are gone, floating point is used instead.
247	Command line options changed.
248
249	Output to HP-UX audio server by Vincent Pagel.
250
251	Output to Sun audio device based on Francesco Zanichelli's
252	port of version 0.1a.
253
254	Output to ZyXEL modems based on Rob Janssen's uLaw patches.
255
256	FreeBSD options in Makefile and linux_audio.c. Check for DSP
257	fragment capability. (Thanks to Victor Langeveld.)
258
259	ncurses interface changes. Trace mode optional.
260
261	Fixed bug -- the last MIDI event was getting eaten, causing
262	stuck notes at the end of songs. (Reported by Anthony Cruz.)
263
264	Pitch-bend sensitivity added, with a hack to process "Data
265	entry (MSB)" events. Thanks to Vincent Pagel for info on
266	this...
267
268	Run-time configuration of quiet and percussion channels.
269
270	Volume computation fix. You can now crank the volume up to
271	800%.
272
273	Slower envelopes. Pianos sound better, harps sound
274	worse. Applause in Beethoven's 5th should sound
275	better... Thanks to Tim Norman for comments on this.
276	CPU usage went up -- see option FAST_DECAY in config.h.
277
278	Panning and volume controls no longer affect notes that have
279	already been turned off.
280
281	Click reduction on by default. CPU usage went up -- see option
282	I_WANT_THE_CLICKS_BACK in config.h.
283
284	Sample volume adjustment into compile time option -- see
285	option ADJUST_SAMPLE_VOLUMES in config.h
286
287	SMPTE time in divisions field in MThd. Untested.
288
289	Quote some special characters in filenames before popen().
290
291	Hack to accept old patch files and files that claim to contain
292	0 instruments and/or layers.
293
294	Behavior when reading Gravis .cfg files changed -- syntax
295	error reported instead of segmentation fault.
296
2970.1a
298	First release. Plays MIDI files under Linux.
299