From: Saito Date: Sat, 1 Nov 2003 09:10:09 +0000 (+0000) Subject: Add opt_pan_delay. X-Git-Tag: unkotim211~824 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=8466e3d065b3b9423998c73dffb8f197f5a9fd4e;p=timidity41%2Ftimidity41.git Add opt_pan_delay. --- diff --git a/ChangeLog b/ChangeLog index ee405b77..58b8859d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,7 +2,9 @@ * timidity/sndfont.c: Fix behaviour of SoundFont's scale-tuning like SB-Live!. - + * timidity/playmidi.c: + Add opt_pan_delay. + 2003-11-01 mput * timidity/timidity.c (parse_opt_h): Fix in help message diff --git a/timidity/playmidi.c b/timidity/playmidi.c index 2887f9ba..09491fe4 100644 --- a/timidity/playmidi.c +++ b/timidity/playmidi.c @@ -206,6 +206,7 @@ int opt_drum_effect = 0; /* drumpart effect control */ int32 opt_drum_power = 100; /* coef. of drum amplitude */ int opt_amp_compensation = 0; int opt_modulation_envelope = 0; +int opt_pan_delay = 1; /* phase difference between left ear and right ear. */ int voices=DEFAULT_VOICES, upper_voices; @@ -2068,20 +2069,22 @@ static void start_note(MidiEvent *e, int i, int vid, int cnt) #ifdef ENABLE_PAN_DELAY voice[i].pan_delay_rpt = 0; - if(voice[i].panning == 64) {voice[i].delay += pan_delay_table[64] * play_mode->rate / 1000;} - else { - if(pan_delay_table[voice[i].panning] > pan_delay_table[127 - voice[i].panning]) { - pan_delay_diff = pan_delay_table[voice[i].panning] - pan_delay_table[127 - voice[i].panning]; - voice[i].delay += (pan_delay_table[voice[i].panning] - pan_delay_diff) * play_mode->rate / 1000; - } else { - pan_delay_diff = pan_delay_table[127 - voice[i].panning] - pan_delay_table[voice[i].panning]; - voice[i].delay += (pan_delay_table[127 - voice[i].panning] - pan_delay_diff) * play_mode->rate / 1000; + if(opt_pan_delay) { + if(voice[i].panning == 64) {voice[i].delay += pan_delay_table[64] * play_mode->rate / 1000;} + else { + if(pan_delay_table[voice[i].panning] > pan_delay_table[127 - voice[i].panning]) { + pan_delay_diff = pan_delay_table[voice[i].panning] - pan_delay_table[127 - voice[i].panning]; + voice[i].delay += (pan_delay_table[voice[i].panning] - pan_delay_diff) * play_mode->rate / 1000; + } else { + pan_delay_diff = pan_delay_table[127 - voice[i].panning] - pan_delay_table[voice[i].panning]; + voice[i].delay += (pan_delay_table[127 - voice[i].panning] - pan_delay_diff) * play_mode->rate / 1000; + } + voice[i].pan_delay_rpt = pan_delay_diff * play_mode->rate / 1000; } - voice[i].pan_delay_rpt = pan_delay_diff * play_mode->rate / 1000; + memset(voice[i].pan_delay_buf, 0, sizeof(voice[i].pan_delay_buf)); + if(voice[i].pan_delay_rpt < 1) {voice[i].pan_delay_rpt = 0;} + voice[i].pan_delay_wpt = voice[i].pan_delay_rpt - 1; } - memset(voice[i].pan_delay_buf, 0, sizeof(voice[i].pan_delay_buf)); - if(voice[i].pan_delay_rpt < 2) {voice[i].pan_delay_rpt = 0;} - voice[i].pan_delay_wpt = voice[i].pan_delay_rpt - 1; #endif /* ENABLE_PAN_DELAY */ voice[i].porta_control_counter = 0;