XXHighEnd

Ultimate Audio Playback => XXHighEnd Support => Topic started by: edward on October 01, 2007, 06:31:33 am



Title: Glitches with gapless playback
Post by: edward on October 01, 2007, 06:31:33 am
Peter, I'm experiencing glitches with gapless playback. When I have the "Double" (Oversampling) checked, during the transitions from track to track, it is making a skipping distorted sound. It is not seamless or smooth at all. Is this just a limitation of the oversampling function, or can it be fixed?

Thanks.


Title: Glitches with gapless playback
Post by: PeterSt on October 02, 2007, 12:01:50 am
Hi edward,

Actually ... I just tried everything and all ... can't let it go wrong here. Not with Double, not with UpSampling, not including Invert.  Also, I can't think of how it could go wrong. But ok, with you it is ...

Would you care to tell once again what DAC and connection you use (preferably in your signature) ?
Btw, do you have an example ? If you can let it go wrong with the Pink Floyds, The Roger Waters ... I have them all.

And, can you always repeat it with two subsequent tracks ? If not, think of even and uneven tracks. It matters (after pressing Play once).
Lastly, it isn't about tracks (or anywhere in the album path) with diacritical marks ? ... Cue files ?
Normal 44K1/16 tracks I presume ?

Lastly, with what program did you rip the lot ?


Title: Glitches with gapless playback
Post by: edward on October 02, 2007, 08:27:56 am
Thanks for the response Peter. Since you were not able to duplicate the problem, I figured the problem was unique to something in my setup, so I started testing. And I found out what the culprit is. The glitch only happens with the invert box checked (whether or not "Double" is checked) and it only happens when XXHighEnd is running on only one processor. You see, I've been playing around with process priorities and affinity (with my dual-core CPU), and in my experimenting I had all my processes running on CPU 1 and XXHighEnd (& Engine) the only processes running on CPU 2. If I run XXHighEnd in normal mode (on both CPUs), even with invert checked, then gapless works just fine. So do you think the invert box is too CPU intensive for one CPU?

Anyway, sorry for the wild goose chase. I know you don't give much credence to my "experiments" (even though I can tell you this does affect SQ). And FWIW, I'm currently using an M-Audio Audiophile USB DAC, although I don't think that's the culprit, and the glitch happened with all music (and had nothing to do with diacritical marks or cue files).


Title: Glitches with gapless playback
Post by: PeterSt on October 02, 2007, 09:13:41 am
I know you don't give much credence to my "experiments"

Why would that be ?? In fact you just gave VERY valuabe information, since I run a dual core (a Core Duo in fact, which is different) myself, hence never would have been able to copy your problem. And, I guess more people run one core or let the processor act as one (Hyperthreading Off etc.).

I did not tell you, but I expected the "prioriy" to be a potential problem, although certainly not in the area you just explained. This *is* why I mentioned Invert myself. Now FYI :

Nothing uses too much CPU (unless you have a 12MHz XT :whistle:) but, as you said it, "intensive" is another matter. Invert indeed uses the CPU for 100% during a short period (but could be 2 seconds for a 60 minute track), which is no problem since it's in a separate thread which ... only is no problem when that thread is appointed to the other core. Hahaha. Uhhmm ...
... I just never thought about this, just by "experience" with my Core2Duo where this obviously is no problem.

What I will do is give that thread a lower priority, but with a one CPU-core situation hoping that the 2 seconds mentioned won't be 20 because of that.
It might explain too why people were bothered (I never hear them anymore ?) by "not gapless at all", because during the "track hopping" more stuff occurs besides (when asked for) inverting the phase. In that case, things might even workout very differently, and playback might be stopped by the thread using the cpu, and *that* is perceived as not-gapless. This, while the actual gap between the tracks is 3 seconds (etc.) further down the line. :yes:

As said, your post was very valuable. Please come up with more.
Thanks, Peter

But please put your data in your signature for the next time. It's not only covenient for seeing at a glance what you have, but it is the most valuabe at similar problems with different users, which can only show similarity in setups when the setups are shown. Besides that, it keeps me "knowing" who is who better, which also is important when problems arise.


Title: Glitches with gapless playback
Post by: edward on October 02, 2007, 10:19:32 am
Peter, when I said you don't give much credence to my "experiments", I was just joking and I was referring to our conversations about RAMDisks.  ;)

Anyway, I just wanted to clarify something. Perhaps I used the wrong "terminology". But to be specific - my CPU is an Intel Core 2 Duo (E6600 - 2.4GHz).


Title: Glitches with gapless playback
Post by: JohanZ on October 02, 2007, 10:21:50 am
Hi Peter,

Quote
1) For how long were you running XXHighEnd without pressing Play, Next, Previous, 2)IOW  how long was it running without touching anything before this happened ?

1) 5 ...15 minutes
2) 5 ...15 minutes

Johan


Title: Glitches with gapless playback
Post by: PeterSt on October 02, 2007, 10:26:32 am
But to be specific - my CPU is an Intel Core 2 Duo (E6600 - 2.4GHz).

Ok, that's only convenient (I have exactly the same). Then please tell me how exactly you set things to use one core and/or set affinity to what. Then I should be able to copy the behaviour.


Title: Glitches with gapless playback
Post by: edward on October 02, 2007, 11:57:41 am
Then please tell me how exactly you set things to use one core and/or set affinity to what. Then I should be able to copy the behaviour.

Uhh...ok. The simplest way is to CTRL+ALT+DEL and start Task Manager. Then click on the Processes tab (at the top). Then right-click on the process (XXHighEnd) and click on "Set Affinity..." In "normal mode" you'll see that both CPU 0 and CPU 1 are checked. (Don't ask me why they aren't referred to as CPU 1 & CPU2) Anyway, if you want to run a process on only one core, then un-check one of the CPU boxes.


Title: Glitches with gapless playback
Post by: PeterSt on October 02, 2007, 01:56:18 pm
So you don't apply anything for XXEngine3.exe ? This is the one producing the sound !


Title: Glitches with gapless playback
Post by: edward on October 02, 2007, 09:39:55 pm
So you don't apply anything for XXEngine3.exe ? This is the one producing the sound !

Of course I do (it's automatically applied). If you set affinity of XXHighEnd after you launch it - then when you start playing music, XXEngine3.exe launches and automatically adopts the same affinity as XXHighEnd (it's parent process). So you don't have to manually change XXEngine3.exe unless you want it to have a different affinity than XXHighEnd.


Title: Re: Glitches with gapless playback
Post by: PeterSt on October 02, 2007, 11:45:11 pm
Ok. I'm sorry, but I did not get the logic of it (and I know that you know what you do, hehe) ...

So ... I can understand why you would run "XX" on its own core, however, what you'd really want (I think !) is having XXEngine3.exe in the other core opposed to everything else including XXHighEnd.exe. Do note that the latter consumes cpu just the same, which even can be heavy at the Library features as per the 0.9l version.

On the whole matter I already did not understand quite when I thought you let act the CPU as one core (can a Core2Duo even do that ?). But, *that* I did not understand correctly, or I most probably misread (I did not read it again :no:). So ...

So what you are doing now is dedicating the "nicely" spread tasks onto one core, and now things don't work, BUT which would be the same for people with one core only, so it has to be solved anyway. -> might not be easy.

I think it would be best to provide some options to appoint affinity to the various threads and processes (the .EXEs would be processes in my terms), including priority assignments.

But tell me, after reading this, would you still appoint both XXHighEnd and XXEngine3 to the same core ? if yes, all is different again (and probably you will be watching a movie by means of the other core :wacko:).


Title: Re: Glitches with gapless playback
Post by: edward on October 03, 2007, 09:29:56 am
So ... I can understand why you would run "XX" on its own core, however, what you'd really want (I think !) is having XXEngine3.exe in the other core opposed to everything else including XXHighEnd.exe.

I'm sorry for the confusion. Yes, of course, in my comparisons the SQ is best with XXEngine3.exe alone on its own core and all other processes (including XXHighEnd.exe) on the other core. (Although this is not entirely true, because there is one process which does not allow to be changed and that is audiodg.exe - so this process remains on BOTH cores).

I only mentioned the previous example of changing XXHighEnd to it's own core just so you would know how to duplicate the issue (of the gapless glitch). But for the sake of SQ, indeed having them each on their own core sounds best. But at the moment, to change affinity is a PITA when I am testing and comparing, because every time you click the invert box or change Q1 setting, XXEngine3.exe is recreated and always takes its affinity setting from it's parent process (XXHighEnd). So whatever you set it to previously doesn't stick.

But if you are willing to implement the option to appoint affinity along with the priority assignment - that would be BONUS!

BTW, can I take this opportunity to mention that I am finding more and more music that suffer from the pops & cracks resulting from checking the invert option. Have you made any progress on resolving this?


Title: Re: Glitches with gapless playback
Post by: PeterSt on October 03, 2007, 09:55:05 am
Ok, all clear now. I will implement those features. Something to fill the Settings tab. :)
(and now you understand my question about wanting to appoint XXEngine3 separately from the parent process).
If you have anything else for good ideas ... let them come.

Quote
I only mentioned the previous example of changing XXHighEnd to it's own core just so you would know how to duplicate the issue (of the gapless glitch).


Yes of course. I did not realize that.

On the crackles on Invert ... sadly, no. But it is the first thing on the agenda.

Thanks for everything,
Peter