Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: I have a doubt, that since the new foobar2000 finally use AvSetMmThrea (Read 11791 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

then would it be better to use AvSetMmThreadPriority(AvrtHandle, AVRT_PRIORITY_CRITICAL) or AvSetMmThreadPriority(AvrtHandle, 2) also to boost more and make it more realtime and less latency? 

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #1
Why do you need "more realtime"?

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #2
Why do you need "more realtime"?

Then Why does foobar2000 need to add and apply MMCSS itself except just for fun only?

 

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #3
Actually, foobar2000 had tacitly admitted that MMCSS really effect the sound qaulity so much already by supplying MMCSS options for us, whatever people here admit or not.
I'm not just drunk and barking bulls**t here, and not any placebos or auditory hallucinations, and also not think too much just within only the theories and not practiced.

We had mischievously tested all things by ourself with some friends, within the all same hardwares, same system.
we had first tried MMCSS in our sound drivers or even ASIO driver or our pro audio interface, at first the ASIO driver never support any MMCSS applyings yet.
We had annoying sent and asked the tech. support of our interface, and then finally their technicans sent us a beta version of their driver that absolutely nothing changed except MMCSS added in with 3 functions used: AvSetMmThreadCharacteristics(), AvSetMmThreadPriority() and AvRevertMmThreadCharacteristics().
After we had updated this driver and other all same, sound sightly and crazily improved much much more.
And then 1 -2 weeks later, they had sent us another newer beta version, that only changed the parameter of AvSetMmThreadPriority() from AVRT_PRIORITY_HIGH (1) to AVRT_PRIORITY_CRITICAL (2).
We had tested this time again and found sounds had still been sightly imrpoved by just only this change!

And then we had tested MMCSS for sound qaulity in software programming side too after that.
We had one of our friends is a C++ programmer. He had tested just simply audio playback in use 2-3 separated threads to play audio.
The output thread use ASIO.
We've tested using MMCSS or not in the decoding thread, and it still can make a different in the sound even we had stayed MMCSS in ASIO driver always on.
And even the difference of AVRT_PRIORITY_HIGH (1) and AVRT_PRIORITY_CRITICAL (2) effected it too.
And also, the priority of the whole process of the player program effected too, whatever between "High" or "Realtime".

So, the conclusion of our tests proved that any steps in the audio flow using MMCSS profiles, MMCSS priority or even whole process priority or not are all sightly effect the sound qaulity, as well as foobar2000 had admitted about the MMCSS.

So I have now 4 items added into the wishlist of the future foobar2000 versions:
1.  apply AvSetMmThreadPriority() functions to all the audio playback related threads and let us to customize the parameter values in the foobar2000 preferences, whatever in decoding threads or output threads (if output in push mode), whatever in foobar2000 itself or foobar2000 output plugins, just like the MMCSSThreadPriority parameter with value options from -2 to 2 in AUD.ini of Cakewalk Sonar.
2. Let foobar2000 change its own process priority itself and let us to define the priority level from normal to realtime in foobar2000 preference, and also let us to define  the priority level of the ASIOhost32.exe, ASIOhost64.exe, WASAPIhost32.exe and WASAPIhost64.exe from normal to realtime too.
3. If possible, chnaged the full file buffering behavior to the same as AWE of cPlay which would never be paged up to paging space in hard disk by the OS, or add an AWE playback function separately, if possible.
4. add support up to SSE4.x in all the possibly using processor instructions operations like decoding or DSP, if the foobar2000 installed machine provided.

After completed all above then foobar2000 really would become the most perfect audio player in the world, that I can recommend to all of our audiophiles and pro audio producer friends.


And all of out tests are used echo audiofire products, windows 7 and 8, SIIG PCI-ex 1394 card with TI controller, old USA made mackie mixer, UK made SSL mixer console, Canare 2B2AT, old UK made 250w H|H pro audio power amp with 8 x UK BHC 10kuF parallel installed inside, a pair of old Yorkshire made Wharfedale Delta 70, old UK made ATC monitor speakers and Canare 4S8. And all of the analog signal connections are full completely balanced without any unbalanced routes. So is it clear enough, fidelity enough and playback qaulity enough to do those tests?

And don't think we just obeyed to our own human ears to listen with any possibly ordinary human illusions.
We had all measured with our own meters and professional audio equipments like voltage meters, german made signal generaters and oscilloscopes which costed over €20k each of them, and pro measurement microphones and measurement softwares to analyze all of our tests too.

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #4
Actually, foobar2000 had tacitly admitted that MMCSS really effect the sound qaulity so much already by supplying MMCSS options for us, whatever people here admit or not.


Actually, foobar2000 had tacitly admitted that everybody should use Shorten by supplying Shorten decoder, whatever people here admit or not.

(P.S. I have a sneaking suspicion that this thread will be binned sooner or later)

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #5
And don't think we just obeyed to our own human ears to listen


Probably the mistake.


We had all measured with our own meters and professional audio equipments like voltage meters, german made signal generaters and oscilloscopes which costed over €20k each of them, and pro measurement microphones and measurement softwares to analyze all of our tests too.


results please?..

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #6
parcoparco, MMCSS is used only for one purpose: to prevent audio glitches when something else would otherwise stress system too much. There is absolutely no audio differences of the sort you claim. And the kind of glitches it's supposed to help against would be very audible "pop", "click" or simple pause.

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #7
parcoparco, MMCSS is used only for one purpose: to prevent audio glitches when something else would otherwise stress system too much. There is absolutely no audio differences of the sort you claim. And the kind of glitches it's supposed to help against would be very audible "pop", "click" or simple pause.

Oh,. when you are talking about the glitches with "pop" and "click", you've reminded me about the AvSetMmThreadPriority() in the Echo drivers are told to reduce such glitches, as their driver programmers told me by emails.


When they released a newer test driver to me (v5.5.6 which not shown in any public area of their official website) and told me this version had just changed from AVRT_PRIORITY_HIGH (1) to AVRT_PRIORITY_CRITICAL (2) only and nothing else changed, they told me in their email:
Quote
Hi Parco,
These settings should help with the data flow if you're getting pops and clicks. Please try our latest update (5.5.6) attached.


And in another email in the same topic:
Quote
That's why we changed it on our new driver ( 5.5.6).


It's tested that really help to reduce or even prevent the glitches occurrences, in many old systems like Pentium III - 4, or many slow systems like notebook Pentium series or Intel Atom.

And also when we were still using our old systems like Pentium D or Pentium 4 or any energy saving notebooks with any ASIO interfaces, we always had to really run the foobar2000 as a realtime priority process to prevent the glitches as you said, by some sepcial shortcuts designed by our own. Because the priority of a running process would effect the level of Scheduling Category of the thread priorities inside the process. The actual thread priorities level of the threads tasked inside the system are divided into 0-31, but you can only really adjust your thread priority from 1-8. Then how can you control the thread priorities inside the kernel level tasking from 0-31? "Scheduling Category" effect this. They have several category types: Very Low (0-7), Low (8-15), Medium (16-22), High (23-26) and Critical (27-31). So what cause the Scheduling Category of the thread priorities change? The only way is just boosting the priority of the whole process.

And I don't think Roland and Cakewalk are not idiots to apply this MMCSS function and  provide a default value AVRT_PRIORITY_CRITICAL (2) inside their preference.

I'm not meaning forcing foobar2000 that must provide these new things and not forcing foobar2000 that must provide them in which of the following versions. I'm just telling our wish to the future foobar2000 and suggest more options to foobar2000 developers and let them decide to  apply or not.

And I'm not meaning that foobar2000 should force the users to use too. Foobar2000 may provide options in the Advanced page in Preferences, just like the existed MMCSS options. The freedom to let user choose is just like the liberal consciousness of USA 

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #8
You realize that foobar is a freeware program, and that the developer does so out of the goodness of his heart and is simply not obliged to do anything to comply with your or anybodies wishes, which is completely compliant with liberal conscious USA.

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #9
Actually, foobar2000 had tacitly admitted that MMCSS really effect the sound qaulity so much already by supplying MMCSS options for us, whatever people here admit or not.


Actually, foobar2000 had tacitly admitted that everybody should use Shorten by supplying Shorten decoder, whatever people here admit or not.

(P.S. I have a sneaking suspicion that this thread will be binned sooner or later)


Nope, actually foobar2000 had not tacitly admitted that everybody should use Shorten, but foobar2000 had tacitly admitted that we can use or we should have a choice to choose to listen to Shorten audio files and tacitly admitted that Shorten should be one of the good audio coding format that we should have a right to choose to use or not.
And foobar2000 had tacitly admitted that Shorten format effects or helps the listening experiences for some of their users., whatever the other users admit or agree or not.

Just like foobar2000 provide us a freedom to choose to use MMCSS or not, and provide us a freedom to choose how do we use MMCSS, just like the liberal consciousness of USA.


And I think the Admins here manage this forum objectively and rationally and not process the posts by which just they personally like or not. I believe the administrators here are very extremely high qaulity and highly civilized and not any idiots, not any retardates, not any human-looking apes, not any ancient barbarians and not any ignorant human beings in the old stone age.

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #10
You realize that foobar is a freeware program, and that the developer does so out of the goodness of his heart and is simply not obliged to do anything to comply with your or anybodies wishes, which is completely compliant with liberal conscious USA.

So I'm doubting about do you really know the actual meaning of the programming terms or developing terms "Wish List", and not meaning "Request List", "Asking List" or any "Forcing List".
Even the very commercial software companies can still choose to satisfy any full wishlists or any items inside any wishlists, which not completely obey to any benefit earnings.
Actually many companies often ignore the most wishlists.
Wishlist is just meaning a list with what users wish developers to do, but NOT FORCE OR ASK developers that "MUST" do what or what.
So foobar2000 developers may just choose to satisfy full or some parts of the lists or just welcome to ignore any wishlist items. That have never conflict with the liberal conscious USA. Wishlist is just a suggestion system and every users or everybody can or have rights to provide their own wishlists, not only me or us. Just oepn up yourself and look more outside this world then you will know much more. 


I repeat: Any developers may choose to do things inside any wishlists given by anyone or developers are completely welcomed to ingore any items, any wishlists or even ignore all, whatever any patent programs, commercial programs, freeware programs or even opensources programs.

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #11
Additionally here are the codes in the MMCSS parts of Echo Audiofire ASIO drivers that their tech. programmers provided me by email:

Code: [Select]
void AsioEcho::AdjustMMCSS(HANDLE &hAv,BOOL &DwmLowered)
{
     //
     // Boost thread priority
     //
     if (m_fUseMmcss)
     {
         typedef HANDLE (WINAPI *PFN_SETMMTHREADCHARECTERISTICS)(LPCTSTR,LPDWORD);
         typedef BOOL (WINAPI *PFN_SETMMTHREADPRIORITY)(HANDLE,AVRT_PRIORITY);
         PFN_SETMMTHREADCHARECTERISTICS fnAvSetMmThreadCharacteristics;
         PFN_SETMMTHREADPRIORITY fnAvSetMmThreadPriority;
         fnAvSetMmThreadCharacteristics =
            (PFN_SETMMTHREADCHARECTERISTICS) GetProcAddress(GetModuleHandle("Avrt.dll"),
                                                             "AvSetMmThreadCharacteristicsA");
         fnAvSetMmThreadPriority = (PFN_SETMMTHREADPRIORITY) GetProcAddress( GetModuleHandle("Avrt.dll"),
                                                                             "AvSetMmThreadPriority");
         if (fnAvSetMmThreadCharacteristics && fnAvSetMmThreadPriority)
         {
             DWORD AvTaskIdx = 0;
             hAv = fnAvSetMmThreadCharacteristics("Pro Audio",&AvTaskIdx);
             if (hAv)
             {
                 fnAvSetMmThreadPriority(hAv,AVRT_PRIORITY_CRITICAL);
                 dpf("======= Boosting ASIO driver thread priority with MMCSS\n");
             }
         }        
    }
     //
     // Lower desktop window manager priority
     //
     if (m_fLowerDwm)
     {
         fnDwmEnableMMCSS = (PFN_DWMENABLEMMCSS)GetProcAddress(    GetModuleHandle("dwmapi.dll"),
                                                                 "DwmEnableMMCSS");
         if (fnDwmEnableMMCSS)
         {
             HRESULT hr;
             hr = fnDwmEnableMMCSS(FALSE);
             DwmLowered = hr == S_OK;
             DPF1("======= Disabling MMCSS for DWM - returned 0x%x\n",hr);
         }
     }
}

As you see, when they boost the priority of audio, they have even dropped the priority of Desktop Window Manager which draws the desktop interfaces at the same time too. 

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #12
I would like to remind you (the reader) that the Shorten decoder is a third-party component and I (as author of said Shorten decoder) entirely non-tacitly admit that a friend and I developed the Shorten decoder to allow foobar2000 to play Shorten files from the Internet Archive thus aiding the migration from Winamp to foobar2000 without having to convert the aforementioned Shorten files. It has nothing to do with any aspect of the USA or with promoting the Shorten format.

I also admit (again non-tacitly) that I find the whole psycho-analysis of software applications a bit strange. I have the feeling that taking the discussion further in this direction will lead nowhere. Since we have already established that MMCSS helps to prevent pops and clicks in audio playback I think we should focus on that. Talking about the Shorten format or the USA in this thread seems quite off-topic to me.

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #13
I suspect that giving foobar2000 itself too high priority on a box with limited juice, may compete with the priority given to the playback chain to the extent of actually increasing the risk of stuttering.

BTW, does anyone know how I can increase the priority of the file sharing service on the (Windows XP) box that serves my files? (It isn't precisely hot iron, and I don't think I should need either.)


the Shorten decoder is a third-party component and I (as author of said Shorten decoder) entirely non-tacitly admit that a friend and I developed the Shorten decoder to allow foobar2000 to play Shorten files from the Internet Archive [...] without having to convert [...]
I have the feeling that taking the discussion further in this direction will lead nowhere.

I have the feeling that I won't be taking the discussion anywhere with this comment, OTOH I won't do excessive harm to this thread's signal-to-noise ratio either, so therefore: “Thank you for the component” from someone who uses it almost chiefly to convert – even then it is convenient, although conversion isn't hard to do by other tools either.

I have a doubt, that since the new foobar2000 finally use AvSetMmThrea

Reply #14
And I think the Admins here manage this forum objectively and rationally and not process the posts by which just they personally like or not. I believe the administrators here are very extremely high qaulity and highly civilized and not any idiots, not any retardates, not any human-looking apes, not any ancient barbarians and not any ignorant human beings in the old stone age.
Patronising the staff in this strange manner does not absolve you of the obligation to follow #8 of the Terms of Service, to which you agreed during registration and which you flagrantly violated when you started posting unsubstantiated claims about the effects of MMCSS and other irrelevant processes upon quality.

foobar2000 can include things for technical reasons without that constituting a tacit approval of people spouting nonsense about them having any relation to quality. They do not. If they did, you could prove them here with valid results from properly conducted tests, something that you notably have not done. We are not interested in long stories about how you heard a difference and so did your friends if you have provided precisely no evidence for it. Given that there is no technical reason for MMCSS to improve quality, I doubt anyone is expecting you to do so.