Cheers guys. For now I continue to tweak/debug the routine when I have the time. Some gritty details-
It turned out that the sound got somewhat worse with the newer 'optimized' sound loop used in the test .SNA. In particular, there's a kind of annoying tingling-buzz noise, or something, in SpecEmu, qualitatively reminiscent of Sample Tracker. Reverting to an older version of the loop (2 x 5T slower) seems to help reduce that to an extent. OTOH I'm not perceiving much difference between the two with other emulators like Fuse or Spectaculator. Is it SpecEmu acting up (which I doubt tbh) or the szzt is real? Could it be caused by asynchronous channel updates in the newer loop? I'm not really sure what to make out of it. In case anyone's curious, [new (noisy)] [old (better)]
There's something else I don't quite understand the implications of. This engine has the channel counters updated twice less often than Tritone does (frequency values are 12bit in both cases, although not in the test .SNA version), but it attempts to 'make up' for it by having the corresponding frequencies multiplied by 2 before they are used, so in the end you get about the same note. Hopefully. I have a feeling that something inevitably gets lost in the process - some sort of granularity maybe - I can't quite pinpoint what it is. As a matter of fact I'm using the 12bit Tritone format with just minor modifications, finding it rather convenient. Hope it doesn't prove detrimental / hit me back in some way much later like it tends to happen with these things
I've found that the more correct way of doing the 'Tritone comparison' in the sound loop is LD 'A,DUTY: CP H', i.e. backwards. The way it is originally I guess you could say the duty cycle is actually increased, starting from 50%, together with the value, despite the fact that it is perceived as 'thinner' sound. Normally this isn't a problem, if not for one thing. A muted channel outputs a '0' at all times, whereas what is perceived as '0's of the playing channel is actually represented by '1's in the output. This in turn leads to a kind of interference/noise of its own wherever the two overlap. It's barely noticeable in Tritone but here it (used to be) more evident, for whatever reason