-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCHANGES
258 lines (182 loc) · 9.35 KB
/
CHANGES
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
Changes by libtimidity-0.2.7:
-----------------------------
- Several code clean-ups.
- Several build and portability fixes/updates. Removed support for
lcc-win32 compiler.
Changes by libtimidity-0.2.6:
-----------------------------
* fixed a possibly signed integer overflow with crafted midi files.
* other minor clean-ups, etc.
Changes by libtimidity-0.2.5:
-----------------------------
* allow dual-licensing as LGPL / Artistic.
Changes by libtimidity-0.2.4:
-----------------------------
* fixes to the pkg-config file.
Changes by libtimidity-0.2.3:
-----------------------------
* fixed a potential buffer overrun in timi_fgets() which might have led
to a crash during config parsing.
Changes by libtimidity-0.2.2:
-----------------------------
* removed DLS instruments support completely, it was never good enough:
one less thing to worry about. and no, the 0.2.x api didn't change.
Changes by libtimidity-0.2.1:
-----------------------------
* new --with-timidty-cfg=FILE configury option to specify the full path
of timidity.cfg. the default is "timidity.cfg". if building without
configury and a config.h, you can always edit options.h to change the
value of TIMITIDY_CFG macro.
* fixed 8 bit output in test programs (use U8 format, not S8), along
with some other minor issues.
* fixed some minor portability issues.
* added project files and standalone makefiles for windows and mac os x.
* fixed copyright/license mistakes in some files, license clarification.
* added standalone makefiles for less common operating systems e.g. dos,
os/2, morphos, aros, and amigaos.
Changes by libtimidity-0.2.0:
-----------------------------
* stream.c, api change: added mid_istream_seek and mid_istream_tell to
the mid_istream_* api. added seek and tell funcs to the _MidIStream
structure. mid_istream_open_callbacks() is changed now accepts these
callbacks.
* stream.c, api change: mid_istream_open_mem() no longer accepts an
autoclose parameter, which was error-prone.
* MidSongOptions, api change: padded the struct with reserved members
for better alignment.
* mid_song_load(): options are now validated. limited the acceptable
sample rate range to 4000-256000. MID_AUDIO_U16MSB audio format is
now handled correctly.
* malloc-safe: upon memory allocation failures, the library either does
a mid_exit() to free all the allocated memory during init time, or a
mid_song_free() to free the allocated memory during a song load time.
* the library can be compiled using a different memory allocator than
malloc. (edit common.h for timi_malloc and timi_free)
* mid_init(), mid_init_no_config(): a mid_exit() is guaranteed upon
config file parse failures or malloc() failures.
* mid_init(): the library doesn't care about common timidity.cfg system
locations any more, callers of mid_init() are responsible for it. if
the config file argument to mid_init() contains a parent directory,
that will be added to timidity search path.
* mid_exit(): does a proper cleanup now and a reinitialization of the
library doesn't crash.
* multiple resampling fixes. several timidity-0.2i fixes from the
onicos.com site (http://www.onicos.com/staff/iz/timidity/dist/),
as well as a few bits from timidity++. several fixes for memory
errors reported by valgrind.
* mid_istream_skip(): accepts a long type length instead of size_t
and returns success or failure now.
* options.h (DEFAULT_DRUMCHANNELS): do not mark 16 as a drum channel.
* read_midi_file(): added support for Microsoft RMID format.
* read_midi_file(): fixed parsing of certain MIDI files with extra
data at the end of the tracks. (SDL_mixer bug:
http://bugzilla.libsdl.org/show_bug.cgi?id=1299)
* read_config_file(): honor the return code from a recursive call.
* mid_get_version(): new function to retrieve library version.
* DLS instruments support: made it a config time option, disabled by
default, because the code isn't good enough, neither is it used in
unix installations where timidity is normally needed.
* DLS: a few changes from vavoom svn repository to fix loading of drums
and somewhat improve the dls instruments use. still not good enough.
* renamed macro FSCALE to TIM_FSCALE to avoid possible clashes with
system headers. renamed FSCALENEG to TIM_FSCALENEG for consistency.
* support for elf and macho symbol visibility attributes. support for
windows dllexport/dllimport attributes.
* build: changed DEBUG to TIMIDITY_DEBUG for DEBUG_MSG. made to compile
cleanly using newer gcc versions, as well as clang. made it to compile
using C++ compilers.
------------------------------------------------------------------------
Changes by libtimidity-0.1.0:
-----------------------------
This version of TiMidity should contain all the fixes from the
November 15 2004 SDL_sound Subversion snapshot. In addition, I've made some
changes of my own, e.g.:
* Replacing SDL types and endian-handling with owns.
* File access to the config file and instruments is done through
stdio functions. File access to MIDI files is done through abstract
input stream. Implemented functions to create input stream from
file name, from stdio file pointer, from memory, from callback functions.
* Renamed interface functions
Timidity_Init -> mid_init
Timidity_Init_NoConfig -> mid_init_no_config
Timidity_SetVolume -> mid_song_set_volume
Timidity_PlaySome -> mid_song_read_wave
Timidity_LoadDLS -> mid_dlspatches_load
Timidity_FreeDLS -> mid_dlspatches_free
Timidity_LoadDLSSong -> mid_song_load_dls
Timidity_LoadSong -> mid_song_load
Timidity_Start -> mid_song_start
Timidity_Seek -> mid_song_seek
Timidity_GetSongLength -> mid_song_get_total_time
Timidity_FreeSong -> mid_song_free
* Most structures and macro definition made hidden and placed in
timidity_internal.h.
* Results of mid_song_read_wave (Timidity_PlaySome) not
depends with internal sample buffer size.
* mid_init can accept timidity config file name.
* Added functions: mid_song_get_time, mid_song_get_meta.
* Added examples/tests midi2raw.c and playmidi.c.
--
Konstantin Korikov <[email protected]>
------------------------------------------------------------------------
Changes by SDL_sound-1.0.1:
---------------------------
This version of TiMidity should contain all the fixes from the
September 25 2003 SDL_mixer CVS snapshot. In addition, I've made some
changes of my own, e.g.:
* All file access is done through SDL_RWops. This means the MIDI
stream no longer has to be a file. (The config file and instruments
still have to be though.)
* Replacing of TiMidity's endian-handling with SDL's.
* Removal of much unused or unnecessary code, such as
+ The "hooks" for putting a user interface onto TiMidity.
+ The antialias filter. It wasn't active, and even at 4 kHz I
couldn't hear any difference when activating it.
+ Removed all traces of LOOKUP_HACK and LOOKUP_INTERPOLATION.
According to the code comments they weren't very good anyway.
("degrades sound quality noticeably"). I also removed the
disclaimer about the "8-bit uLaw to 16-bit PCM and the 13-bit-PCM
to 8-bit uLaw tables" disclaimer, since I believe those were the
tables I removed.
+ Removed LOOKUP_SINE since it was already commented out. I think we
can count on our target audience having math co-processors
nowadays.
+ Removed USE_LDEXP since it wasn't being used and "it doesn't make
much of a difference either way".
+ Removed decompress hack from open_file() since it didn't look very
portable.
+ Removed heaps of unnecessary constants.
+ Removed unused functions.
+ Assume that LINEAR_INTERPOLATION is always used, so remove all
code dealing with it not being so. It's not that I think the
difference in audio quality is that great, but since it wouldn't
compile without code changes I assume no one's used it for quite
some time...
+ Assume PRECALC_LOOPS is always defined. Judging by the comments it
may not make much of a difference either way, so why maintain two
versions of the same code?
* Moving several static globals into the MidiSong struct. This
includes sample rate, formate, etc. which are now all per-song.
* Moved some typedefs (e.g. MidiSong) to timidity.h for easy inclusion
into the MIDI decoder.
* Added free_pathlist().
* Replaced TiMidity's own 8, 16 and 32-bit types with SDL's.
* Made TiMidity look for its configuration file in both /etc and
/usr/local/lib/timidity. (Windows version remains unchanged.)
* Timidity_PlaySome() now takes three arguments. A MidiSong, a decode
buffer and decode buffer size in bytes. (MidiSong is a new argument,
and buffer size used to be in samples.)
In addition, it will return the number of bytes decoded.
* Added Timidity_Exit().
* Removed Timidity_Stop() and Timidity_Active(). Stopping playback
should be handled by SDL_sound, and Timidity_PlaySome() will return
0 when the MIDI stream is finished.
* Modified the ToneBank stuff to allow some data to be shared between
MidiSongs.
* The following files have been removed: controls.c, controls.h,
filter.c, filter.h, sdl_a.c, sdl_c.c
* config.h has been renamed as options.h to avoid confusion with the
automatically generated config.h for SDL_sound.
* Added support for loading DLS format instruments:
Timidity_LoadDLS(), Timidity_FreeDLS(), Timidity_LoadDLSSong()
* Added Timidity_Init_NoConfig()