Open stefandrissen opened 8 months ago
Commit https://github.com/stefandrissen/SAM-MOD-player/commit/6febc459b66c097d1d5608d0ec7c3c3ad5dd41e1 is responsible for worsening the 'stutter' - not sure why.
The stutter occurs on a row in channel 1 with tone portamento (effect 3 / slide to note) with parameter F0, even prior to worsened stutter, it does not sound right.
position 11 / pattern 0F:
13 D#2 1A C20
14 G#3 08 3F0 <-- nasty
15 B#2 C20
...
29 D#2 1A C20
30 G#3 08 300 <-- nasty
31 B#2 C20
SAMdac output has the same issue when SAA1099 channel swaps are applied by commenting out ret nz
in burstplayer.s:
;---------------------------------------------------------------
;swap channel 3 and 4 addresses if device is SAA
ld a,(burstplayer.device)
ld (bp.device),a
cp device.saa
; ret nz
With just channel 1 enabled, the note with tone portamento is sending the sample pointer to lower RAM:
This has two effects:
Issue stripped down to a mod with just one channel and four notes: toneportamento2.mod.zip
Issue caused by tone portamento combined with a new sample. Tone portamento on a sample already being played is fine.
The end of loop boundaries are set based on the new instrument, but the current pointers are not set, so the old pointers are still used. The loop detection detects out of bounds, calculates overshoot on based on new instrument and adds that to old instrument.
Something introduced in v2.38 is causing playback stutter when using SAA1099.
https://www.youtube.com/watch?v=ATM-p3yexro&t=183s
When using SAMdac as output, playback is fine. When using v2.37, playback is fine.