IPB

Welcome Guest ( Log In | Register )

> foobar2000 General Forum Rules

This is NOT a tech support forum.
Tech support questions go to foobar2000 Tech Support forum instead.

See also: Hydrogenaudio Terms of Service.

 
Reply to this topicStart new topic
I have a doubt, that since the new foobar2000 finally use AvSetMmThrea, to boost the audio threads.......
parcoparco
post Jun 16 2013, 16:45
Post #1





Group: Members
Posts: 7
Joined: 16-June 13
Member No.: 108686



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? rolleyes.gif
Go to the top of the page
+Quote Post
dhromed
post Jun 16 2013, 18:33
Post #2





Group: Members
Posts: 1286
Joined: 16-February 08
From: NL
Member No.: 51347



Why do you need "more realtime"?
Go to the top of the page
+Quote Post
parcoparco
post Jun 16 2013, 19:14
Post #3





Group: Members
Posts: 7
Joined: 16-June 13
Member No.: 108686



QUOTE (dhromed @ Jun 17 2013, 01:33) *
Why do you need "more realtime"?

Then Why does foobar2000 need to add and apply MMCSS itself except just for fun only?
Go to the top of the page
+Quote Post
parcoparco
post Jun 18 2013, 19:30
Post #4





Group: Members
Posts: 7
Joined: 16-June 13
Member No.: 108686



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.

This post has been edited by parcoparco: Jun 18 2013, 19:35
Go to the top of the page
+Quote Post
lvqcl
post Jun 18 2013, 19:52
Post #5





Group: Developer
Posts: 3327
Joined: 2-December 07
Member No.: 49183



QUOTE (parcoparco @ Jun 18 2013, 22:30) *
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)

This post has been edited by lvqcl: Jun 18 2013, 19:54
Go to the top of the page
+Quote Post
fuflo
post Jun 18 2013, 19:58
Post #6





Group: Members
Posts: 103
Joined: 18-May 06
Member No.: 30902



QUOTE (parcoparco @ Jun 18 2013, 20:30) *
And don't think we just obeyed to our own human ears to listen


Probably the mistake.


QUOTE (parcoparco @ Jun 18 2013, 20:30) *
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?..
Go to the top of the page
+Quote Post
Case
post Jun 18 2013, 21:09
Post #7





Group: Developer (Donating)
Posts: 2180
Joined: 19-October 01
From: Finland
Member No.: 322



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.
Go to the top of the page
+Quote Post
parcoparco
post Jun 19 2013, 05:56
Post #8





Group: Members
Posts: 7
Joined: 16-June 13
Member No.: 108686



QUOTE (Case @ Jun 19 2013, 04:09) *
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 smile.gif

This post has been edited by parcoparco: Jun 19 2013, 06:19
Go to the top of the page
+Quote Post
kraut
post Jun 19 2013, 06:32
Post #9





Group: Members
Posts: 227
Joined: 24-November 10
Member No.: 85965



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.
Go to the top of the page
+Quote Post
parcoparco
post Jun 19 2013, 06:44
Post #10





Group: Members
Posts: 7
Joined: 16-June 13
Member No.: 108686



QUOTE (lvqcl @ Jun 19 2013, 02:52) *
QUOTE (parcoparco @ Jun 18 2013, 22:30) *
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. smile.gif
Go to the top of the page
+Quote Post
parcoparco
post Jun 19 2013, 07:04
Post #11





Group: Members
Posts: 7
Joined: 16-June 13
Member No.: 108686



QUOTE (kraut @ Jun 19 2013, 13:32) *
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. smile.gif


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.
Go to the top of the page
+Quote Post
parcoparco
post Jun 19 2013, 07:07
Post #12





Group: Members
Posts: 7
Joined: 16-June 13
Member No.: 108686



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

CODE
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. smile.gif

This post has been edited by parcoparco: Jun 19 2013, 07:10
Go to the top of the page
+Quote Post
foosion
post Jun 19 2013, 07:16
Post #13





Group: FB2K Moderator (Donating)
Posts: 4409
Joined: 24-February 03
Member No.: 5153



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.


--------------------
http://foosion.foobar2000.org/ - my components for foobar2000
Go to the top of the page
+Quote Post
Porcus
post Jun 19 2013, 08:34
Post #14





Group: Members
Posts: 1842
Joined: 30-November 06
Member No.: 38207



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.)


QUOTE (foosion @ Jun 19 2013, 08:16) *
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.

This post has been edited by Porcus: Jun 19 2013, 08:39


--------------------
One day in the Year of the Fox came a time remembered well
Go to the top of the page
+Quote Post
db1989
post Jun 20 2013, 13:24
Post #15





Group: Super Moderator
Posts: 5275
Joined: 23-June 06
Member No.: 32180



QUOTE (parcoparco @ Jun 19 2013, 06:44) *
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. smile.gif
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 25th July 2014 - 10:12