Okay, should be solved for 0.9z-8.
This is all a tad more complex than it seemed at first;
First off, there's 0.9z-7-4 which (IIRC) did not solve the "pitch" problem yet. Not sure, but the changes were all related to that. So, what happened (or could happen) is that the change from 44.1 based to 48 based (or the other way around) did not change the sampling speed in the DAC. It played, but with a pitch which was ~10% off. This is a sort of anomaly in the Windows sound kernels, but in the end happened because I did something wrong myself.
Notice that with "combinations" this would imply the running time being of for that 10%. And, this is very different from a wrong track length callculation, which *also* was subject to changes in the latest versions (and that again implied by wrong header data from HDTracks and more).
Still there ?
While I solved those issues, I did not see or ran into the fact that when the sample rate changes, this can't happen when the previous is still playing. Now things get odd, because this is a kind of out of my control. This is buffers still playing which
a. can't be shut off because it would go silent suddenly;
b. the inability to see that a buffer still plays program-wise.
It is the latter which can cause it one time being all right, and the other time not. All sheer coincidence; the last buffer just played or just not. Depends on the set buffer sizes as well.
(this is how I could approve my own changes in 0.9z-7-5)
Not it gets tricky;
For 0.9z-7-5 the pitch problem was solved already (but careful because maybe it was earlier). What was *attempted* to solve were the track length header errors, and this can't be tested by me because it depends on the specific album or even track. So, notice that this was an ever pending problem for 0.9z-6 (last version of that) and since 0.9z-7 I didn't hear of that problem anymore. But also : this is fairly hard to detect because only a handful of XXHighEnd users ever play Hires. This is testified by nobody coming up with 0.9z-7-5 actually not being able to switch formats anymore (but as said, it could go all right by accident). Or, what you said yourself Charlie, that before version XYZ formats wouldn't change at all. I was only notified of that months into that version (and never noticed it myself). So ...
So no guarantee that 0.9z-8 will be OK on this. The examples I tried look fine, but it doesn't tell much.
To be clear : for 0.9z-8 I did NOT change a thing to the track length calculation; in 0.9z-7-5 I did, but you are not using that (and remember : never mind because it won't work for the reasons described above anyway).
On a final notice and just FYI : The whole thing started to go wrong (0.9z-6) when the sound engine was to stay in memory just to keep on allocating the Contiguous (SFS) Memory. So, before when a format change occurred, the sound engine was just restarted and it couldn't go wrong. Today it has to reinitialize things properly and that is tough enough already. And, as described, it now also is related to the device being allocated, reinitialize it when needed, but not too soon because it is still playing (its last buffer and which can't be detected).
See ? all rather complex.
Peter