ref: b844f7ce65c15ee70426640de1802ba97d409dec
parent: ef97e29d06fdf5c3b9584eeacee58fd0914a0007
author: Chris Moeller <[email protected]>
date: Mon Jan 11 03:58:42 EST 2010
{10/13/2005 1:58:16 AM}Arpeggio fix for FastTracker 2 bug git-tfs-id: [http://localhost:8080/tfs/DefaultCollection/]$/foobar2000/files/plugins.root;C21
--- a/dumb/src/it/itrender.c
+++ b/dumb/src/it/itrender.c
@@ -3550,7 +3550,14 @@
* playing->sample->C5_speed * (1.f / 65536.f);
}
- playing->delta *= (float)pow(DUMB_SEMITONE_BASE, channel->arpeggio >> 8);
+ if ( channel->arpeggio ) { // another FT2 bug...
+ if ((sigdata->flags & (IT_LINEAR_SLIDES|IT_WAS_AN_XM|IT_WAS_A_MOD)) == (IT_WAS_AN_XM|IT_LINEAR_SLIDES))
+ {
+ if ( channel->arpeggio > 0xFF )
+ playing->delta = playing->sample->C5_speed * (1.f / 65536.f);
+ }
+ else playing->delta *= (float)pow(DUMB_SEMITONE_BASE, channel->arpeggio >> 8);
+ }
if (playing->finetune)
playing->delta *= (float)pow(DUMB_PITCH_BASE, playing->finetune);