@zep o/ thanks for fixing the sfx arpeggio effects! here's another audio bug for you:
The music for embedded BBS carts has a noticeable music desync in some cases (the individual tracks sound out-of-sync from each other). I noticed it on linux+firefox with my music visualizer demo cart, reproduced here for convenience:
Individual tracks desync from each other; it consistently happens after the song switches from pattern 3 to pattern 4. The second screenshot here shows me catching it right when it happens:
>
That last number (the one that desyncs by 11 ticks for me) is stat(400+i,11)
. I believe this represents the number of ticks played on channel i for the current pattern.
This also happens locally in the linux executable, but the tracks only desync by a single tick. I can't hear it, but you can see it by pausing after pattern 4.
I think this is new as of 0.1.1, but it's possible I just didn't notice in 0.1.0h when I uploaded this cart, or the desync might be less consistent than it currently seems
Nice one, thanks @pancelor. Fixed for 0.1.1c
This is indeed an old bug that shows up under certain conditions: it was happening when a non-music (or empty) channel becomes active near the start of the mix buffer (spd 15 was good for that), and is more noticeable with larger mix buffers (i.e. the web version). The previously empty channel would go ahead and mix the total requested number of samples, causing it to start mixing the new channel late.
// Solution was to mix only music channels first, check if they mixed short due to an end of pattern, then mix non-music channels with that (possibly short) maximum number of samples, and /then/ advance the pattern.
As a bonus, the play position reporting is consistent now too! (no flickering of the highlighted row) -- I had that noted as process yields causing mixer callbacks firing between PFX6416 state reads, but it seems that part was working as intended all along.
[Please log in to post a comment]