diff -ruN TiMidity++-1.3.8/ChangeLog TiMidity++-1.3.9/ChangeLog --- TiMidity++-1.3.8/ChangeLog Tue Apr 6 01:00:40 1999 +++ TiMidity++-1.3.9/ChangeLog Sat Apr 17 14:54:33 1999 @@ -1,3 +1,28 @@ +1999-04-17 Masanao Izumo + + * Version 1.3.9 released. + Summary: + - Fixed portamento controls. + - Chosed 42 as the maximum chorus cutoff level. + - Fixed compilation probrems. + - Changed ChnageLog format. + +1999-04-17 Masanao Izumo + + * timidity/playmici.c timidity/tables.c: Fix portamento controls. + +1999-04-14 Eric A. Welsh + + * timidity/playmidi.c (new_chorus_voice): Chose 42 as the maximum + chorus cutoff level. + +1999-04-11 Masanao Izumo + + * libarc/url.c (url_close): Don't access free memory. + * timidity/linux_a.c (AFMT_S16_NE): Define AFMT_S16_NE if it is not + defined. + * ChangeLog: Change this format. + -- 1.3.8 Tue Apr 6 1999 Summary: diff -ruN TiMidity++-1.3.8/configure TiMidity++-1.3.9/configure --- TiMidity++-1.3.8/configure Tue Apr 6 00:04:29 1999 +++ TiMidity++-1.3.9/configure Sat Apr 17 14:54:59 1999 @@ -836,7 +836,7 @@ PACKAGE=TiMidity++ -VERSION=1.3.8 +VERSION=1.3.9 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } diff -ruN TiMidity++-1.3.8/configure.in TiMidity++-1.3.9/configure.in --- TiMidity++-1.3.8/configure.in Tue Apr 6 00:04:09 1999 +++ TiMidity++-1.3.9/configure.in Fri Apr 16 22:02:01 1999 @@ -54,7 +54,7 @@ AC_INIT(timidity/timidity.c) AC_CANONICAL_SYSTEM -AM_INIT_AUTOMAKE(TiMidity++, 1.3.8, no-define) +AM_INIT_AUTOMAKE(TiMidity++, 1.3.9, no-define) dnl To use CONTAINS() macro (See acinclude.m4) CONTAINS_INIT diff -ruN TiMidity++-1.3.8/libarc/url.c TiMidity++-1.3.9/libarc/url.c --- TiMidity++-1.3.8/libarc/url.c Sat Mar 20 09:52:00 1999 +++ TiMidity++-1.3.9/libarc/url.c Sun Apr 11 20:29:18 1999 @@ -380,7 +380,7 @@ else { url->url_close(url); -#ifdef unix +#if 0 url->url_close = NULL; #endif } diff -ruN TiMidity++-1.3.8/timidity/Makefile.in TiMidity++-1.3.9/timidity/Makefile.in --- TiMidity++-1.3.8/timidity/Makefile.in Tue Apr 6 02:59:06 1999 +++ TiMidity++-1.3.9/timidity/Makefile.in Sat Apr 17 15:54:27 1999 @@ -409,7 +409,7 @@ ../libarc/url.h ../utils/mblock.h instrum.h playmidi.h \ readmidi.h output.h controls.h tables.h miditrace.h reverb.h \ ../interface/soundspec.h recache.h ../libarc/arc.h \ - ../utils/memb.h ../utils/strtab.h wrd.h mid.defs dlutils.h + ../utils/memb.h ../utils/strtab.h wrd.h mid.defs wave_a.o: wave_a.c ../config.h timidity.h output.h controls.h wrd_read.o: wrd_read.c ../config.h timidity.h common.h ../libarc/url.h \ ../utils/mblock.h instrum.h playmidi.h readmidi.h controls.h \ diff -ruN TiMidity++-1.3.8/timidity/linux_a.c TiMidity++-1.3.9/timidity/linux_a.c --- TiMidity++-1.3.8/timidity/linux_a.c Tue Apr 6 02:57:41 1999 +++ TiMidity++-1.3.9/timidity/linux_a.c Sun Apr 11 00:41:14 1999 @@ -61,6 +61,14 @@ #include "playmidi.h" #include "miditrace.h" +#ifndef AFMT_S16_NE +#ifdef LITTLE_ENDIAN +#define AFMT_S16_NE AFMT_S16_LE +#else +#define AFMT_S16_NE AFMT_S16_BE +#endif +#endif /* AFMT_S16_NE */ + /* Define if you want to use soft audio buffering (AUDIO_FILLING_SEC sec.) */ /* #define AUDIO_FILLING_MILSEC 3000 */ diff -ruN TiMidity++-1.3.8/timidity/playmidi.c TiMidity++-1.3.9/timidity/playmidi.c --- TiMidity++-1.3.8/timidity/playmidi.c Tue Apr 6 00:29:59 1999 +++ TiMidity++-1.3.9/timidity/playmidi.c Sat Apr 17 15:53:44 1999 @@ -69,9 +69,9 @@ #define PLAY_INTERLEAVE_SEC 1.0 #define MIDITRACE_OUTPUT_FRAGMENTS 32 -#define DEFAULT_PORTAMENTO_TIME 2560 -#define PORTAMENTO_TIME_TUNING (1.0 / 4096.0) -#define PORTAMENTO_CONTROL_RATIO 100 +#define DEFAULT_PORTAMENTO_TIME 0 +#define PORTAMENTO_TIME_TUNING (1.0 / 5000.0) +#define PORTAMENTO_CONTROL_RATIO 256 /* controls per sec */ #define DEFAULT_CHORUS_DELAY1 0.02 #define DEFAULT_CHORUS_DELAY2 0.003 #define CHORUS_OPPOSITE_THRESHOLD 32 @@ -989,6 +989,8 @@ channel[ch].portamento = 0; } + if(channel[ch].portamento && !channel[ch].porta_control_ratio) + update_portamento_controls(ch); if(channel[ch].porta_control_ratio) { if(channel[ch].last_note_fine == -1) @@ -1001,11 +1003,13 @@ { voice[i].porta_control_ratio = channel[ch].porta_control_ratio; voice[i].porta_dpb = channel[ch].porta_dpb; - voice[i].porta_pb = channel[ch].last_note_fine - voice[i].note * 256; + voice[i].porta_pb = channel[ch].last_note_fine - + voice[i].note * 256; if(voice[i].porta_pb == 0) voice[i].porta_control_ratio = 0; } } + if(cnt == 0) channel[ch].last_note_fine = voice[i].note * 256; @@ -1071,6 +1075,7 @@ voice[cv] = voice[v]; voice[v].velocity = (uint8)(vol * CHORUS_VELOCITY_TUNING1); voice[cv].velocity = (uint8)(vol * CHORUS_VELOCITY_TUNING2); + if (level > 42) level = 42; /* higher levels detune notes too much */ if(channel[ch].pitchbend + level < 0x2000) voice[cv].orig_frequency *= bend_fine[level]; else @@ -2882,7 +2887,7 @@ { int i, uv = upper_voices; - channel[ch].portamento = 0; + channel[ch].porta_control_ratio = 0; for(i = 0; i < uv; i++) if(voice[i].status != VOICE_FREE && voice[i].channel == ch && @@ -2896,11 +2901,8 @@ static void update_portamento_controls(int ch) { - if(channel[ch].portamento_time < 128) - { - channel[ch].portamento_time = 0; + if(!channel[ch].portamento || channel[ch].portamento_time < 128) drop_portamento(ch); - } else { double mt, dc; diff -ruN TiMidity++-1.3.8/timidity/tables.c TiMidity++-1.3.9/timidity/tables.c --- TiMidity++-1.3.8/timidity/tables.c Mon Nov 30 17:48:30 1998 +++ TiMidity++-1.3.9/timidity/tables.c Fri Apr 16 21:58:53 1999 @@ -225,27 +225,29 @@ }; /* - * midi_time_table(x + 12y) := midi_time_table(x) * (2^y) - * midi_time_table(64) := 1 + * midi_time_table(x + 16y) = midi_time_table(x) * (2^y) + * midi_time_table(64) = 1 + * then, + * midi_time_table(x) := (2^(x/16))/16 */ FLOAT_T midi_time_table[128] = { - 0.0248, 0.0263, 0.0278, 0.0295, 0.0313, 0.0331, 0.0351, 0.0372, - 0.0394, 0.0417, 0.0442, 0.0468, 0.0496, 0.0526, 0.0557, 0.0590, - 0.0625, 0.0662, 0.0702, 0.0743, 0.0787, 0.0834, 0.0884, 0.0936, - 0.0992, 0.1051, 0.1114, 0.1180, 0.1250, 0.1324, 0.1403, 0.1486, - 0.1575, 0.1669, 0.1768, 0.1873, 0.1984, 0.2102, 0.2227, 0.2360, - 0.2500, 0.2649, 0.2806, 0.2973, 0.3150, 0.3337, 0.3536, 0.3746, - 0.3969, 0.4204, 0.4454, 0.4719, 0.5000, 0.5297, 0.5612, 0.5946, - 0.6300, 0.6674, 0.7071, 0.7492, 0.7937, 0.8409, 0.8909, 0.9439, - 1.0000, 1.0595, 1.1225, 1.1892, 1.2599, 1.3348, 1.4142, 1.4983, - 1.5874, 1.6818, 1.7818, 1.8877, 2.0000, 2.1189, 2.2449, 2.3784, - 2.5198, 2.6697, 2.8284, 2.9966, 3.1748, 3.3636, 3.5636, 3.7755, - 4.0000, 4.2378, 4.4898, 4.7568, 5.0397, 5.3394, 5.6568, 5.9932, - 6.3496, 6.7272, 7.1272, 7.5510, 8.0000, 8.4757, 8.9797, 9.5136, - 10.0794, 10.6787, 11.3137, 11.9864, 12.6992, 13.4543, 14.2544, 15.1020, - 16.0000, 16.9514, 17.9594, 19.0273, 20.1587, 21.3574, 22.6274, 23.9729, - 25.3984, 26.9086, 28.5087, 30.2039, 32.0000, 33.9028, 35.9187, 38.0546 + 0.06250, 0.06527, 0.06816, 0.07117, 0.07433, 0.07762, 0.08105, 0.08464, + 0.08839, 0.09230, 0.09639, 0.10066, 0.10511, 0.10977, 0.11463, 0.11970, + 0.12500, 0.13053, 0.13631, 0.14235, 0.14865, 0.15523, 0.16210, 0.16928, + 0.17678, 0.18460, 0.19278, 0.20131, 0.21022, 0.21953, 0.22925, 0.23940, + 0.25000, 0.26107, 0.27263, 0.28470, 0.29730, 0.31046, 0.32421, 0.33856, + 0.35355, 0.36921, 0.38555, 0.40262, 0.42045, 0.43906, 0.45850, 0.47880, + 0.50000, 0.52214, 0.54525, 0.56939, 0.59460, 0.62093, 0.64842, 0.67713, + 0.70711, 0.73841, 0.77111, 0.80525, 0.84090, 0.87813, 0.91700, 0.95760, + 1.00000, 1.04427, 1.09051, 1.13879, 1.18921, 1.24186, 1.29684, 1.35426, + 1.41421, 1.47683, 1.54221, 1.61049, 1.68179, 1.75625, 1.83401, 1.91521, + 2.00000, 2.08855, 2.18102, 2.27758, 2.37841, 2.48372, 2.59368, 2.70851, + 2.82843, 2.95365, 3.08442, 3.22098, 3.36359, 3.51250, 3.66802, 3.83041, + 4.00000, 4.17710, 4.36203, 4.55515, 4.75683, 4.96743, 5.18736, 5.41702, + 5.65685, 5.90730, 6.16884, 6.44196, 6.72717, 7.02501, 7.33603, 7.66083, + 8.00000, 8.35419, 8.72406, 9.11031, 9.51366, 9.93486,10.37472,10.83404, + 11.31371,11.81461,12.33769,12.88392,13.45434,14.05002,14.67206,15.32165 }; #ifdef LOOKUP_SINE