I can't find back where I wrote about it, but one of the first things I noticed under W7 was that I was "missing seconds". Looks stupid of course and I couldn't even be 100% sure, but this was about Engine#4 which worked to some extend before I left for a vacation, and after coming back installing W7, and then the OSD Time wouldn't match reality anymore.
And now think of it, each and every day I tried to tweak it for the better (which would be some 26 days now) and only yesterday I succeeded. Btw, this is always a matter of "play time !" when this can be judged, so the time can be spent somewhat more efficiently (listen in the mean time). Also, it always takes several tracks to find out it's wrong again.
26 days.
I think I just found out what's happening here.
I received a log file from Per, and it occurred to me that in his situation per one second the exact number of bytes are being stuffed to wherever they need to go. And, since this is a recognizeable number, it just could occur to me that this "can" happen. So, it also only now occurred to me what is going wrong in my own system. Here it is :
Each one second (as per the internal clock) my system stuffs 1.4 % too many samples to their destination. That is 1.4 seconds per 100 seconds or 1 second per 71 seconds. This must be read the other way around : my time is running too slow, or IOW when it would run ~1.4% slower it would show the proper amount of stuffed samples.
This is how it functionally works out. But it is not how it technically is ...
Because the time also shows in the log file, I can see that my clock is allright, because after each one second of "a pass" just a little over one second is added. Say, 1.4% more. Per's system. shows exactly one second per a one second pass forever. To get the idea :
02:40:24.6081590
02:40:25.6081590
02:40:26.6081590
02:40:27.6081590
02:40:28.6081590
02:40:29.6081590
02:40:30.6081590
02:40:31.6081590
02:40:32.6081590
02:40:33.6081590
02:40:34.6081590
Forver and ever and ever. But this is my system :
09:51:08.3723166
09:51:09.3863183
09:51:10.4003201
09:51:11.4143219
09:51:12.4283237
09:51:13.4423255
09:51:14.4563272
09:51:15.4703290
also forever and ever.
Now, I just prove that this is not about a "sleep timer" being wrong or off. Thus, when I "sleep" 1 second, this shows a nice equal 1 second offset each time, up to the resolution (decimals) you see above. This means that the small code which is executed in between "sleeps" takes 1.4% time of a second or 0.014 seconds per second. This, while in Per's system this takes virtually zero time. Oh, it will take time, but it needs way more decimals to show it. Anyway, in Per's system over 2 minutes time this doesn't change up to the 7th decimal while in my system almost 2 seconds have "disappeared" over that time period.
That I can't depend on the "timing" is a nasty thing, but actually something to take into account always. However, once things have been setup consistently, it shouldn't change because of a new OS. Here it does. But, this is still not the most worst thing. This is though :
While this whole (SQ) audio thing depends on the most fragile stupid things in code (beyond imagination and beyond known science), here W7 is doing something which Vista does not. Actually it consumes cpu or waits for something, and I don't know what it is.
Ok, hold tight :
I just tested, and when I (just an example) had to determine the current time and all the formatting going along with that to show it properly, I can do that 6000 times to reach the equivalence of the time I loose in the process.
Ah, that didn't tell you much. Ok;
When I do nothing but performing a line of code, very similar to process an audio sample, I can do this ... 35,000,000 (that reads 35 million) times before I reach the equivalence of the time I loose in the process. That's near to processing a complete track !! and can be performed in the 0.02 seconds I have for it.
Well, I hope you can imagine now that I feel this is totally out of control, and (something very) wrong in the mean time.
I covered for this "loosing seconds" now, but it took me 26 days throughput time, but only for Unttended. Attended will have similar issues which is worse and more dependend on the proper timing (because XXHighEnd runs totally independend of XXEngine3).
So, now you know. If you don't "hear" this, good. But, Bweh.
Peter