Can you submit this as a suggestion via Feedback Hub?
________________________________
From: wdmaudiodev-bounce@xxxxxxxxxxxxx <wdmaudiodev-bounce@xxxxxxxxxxxxx> on
behalf of Vincent Burel (VB-Audio) <vincent.burel@xxxxxxxxxxxx>
Sent: Thursday, October 12, 2017 12:49:03 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Windows & Real Time : suggestion to Microsoft Kernel
Developers
Hello,
One year after I come back to this suggestion, to turn Windows in a RT mode
(enough RT for RT audio I mean),
after having thought to different possibilities like thread RT characteristics,
Core Allocation etc….
the conclusion is that all are complicated on both side (windows developers and
application developers).
So the simplest way for everyone remains to offer a System Mode (possibly
located in system / performance dialog box)
allowing to place the Windows Operating System with 0.1 ms timing (instead of 1
ms today).
And to provide at least one new function:
uSleep(microsecond) to be able to wait for 100 ums (= 0.1 ms)
also possibly:
MicroWaitForSingleObject(hEvent, umsWait);
And a function to check if the operating system is in RT mode or not.
Regards
Vincent Burel
De : wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] ;
De la part de Vincent Burel (VB-Audio)
Envoyé : mercredi 28 septembre 2016 09:34
À : wdmaudiodev@xxxxxxxxxxxxx
Objet : [wdmaudiodev] Windows & Real Time : suggestion to Microsoft Kernel
Developers
Hello,
I develop Real Time Application under Windows since WIN95 and I finally got the
following conclusion,
to improve Real Time under Windows… and to compete with Audio Hardware Devices
(for example based on DSP or FPGA):
We are missing a single function :
Sleep(0.1f) or uSleep(100)
Even with a 20% timing error, it will allow to manage 8 to 16 samples audio
buffers (which is the latency range for current audio hardware devices)
General algorithm for Real Time Streaming Management are basically like these:
TimeCritical_Thread()
{
While (fRunning)
{
PullPushDataIfRequired(…);
nbLoop++;
Sleep(msPolling);
}
}
Or
TimeCritical_Thread()
{
While (fRunning)
{
WaitForSingleOBject(hEvent, msPolling);
PullPushDataIfRequired(…);
nbLoop++;
}
}
With a guaranteed number of loop around 8000 to 12000 per second. it is enough
to manage 0.5 ms audio buffer latency.
(while the current Sleep(1) function allows today to manage 5 ms audio buffer
latency – in pretty reliable way -).
Regards
Vincent Burel
www.vb-audio.com<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.vb-audio.com&data=02%7C01%7CMatthew.van.Eerde%40microsoft.com%7C99288fe784194276e7f308d51145ceec%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636433913890256146&sdata=5i8nlLnEO%2Bw2B9hcMiAZG0yC%2BpEseNzJ2F54VClvB0Y%3D&reserved=0>
www.mt128.com<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.mt128.com&data=02%7C01%7CMatthew.van.Eerde%40microsoft.com%7C99288fe784194276e7f308d51145ceec%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636433913890256146&sdata=Qpc8HEI523aEFOyYIbZdQpFhcQiRL46stUb55XZocKs%3D&reserved=0>
www.vb-cable.com<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.vb-cable.com&data=02%7C01%7CMatthew.van.Eerde%40microsoft.com%7C99288fe784194276e7f308d51145ceec%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636433913890256146&sdata=Jg72%2B0dCsPuxEueWufXIwvcigpk18yLozOU9P%2FPX434%3D&reserved=0>
www.voicemeeter.com<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.voicemeeter.com&data=02%7C01%7CMatthew.van.Eerde%40microsoft.com%7C99288fe784194276e7f308d51145ceec%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636433913890256146&sdata=wNLQ5sYDXnfWXty%2F77nIl8UKqWAj9x3OQk7p48QhFVU%3D&reserved=0>
https://www.facebook.com/vbaudiosoftware<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.facebook.com%2Fvbaudiosoftware&data=02%7C01%7CMatthew.van.Eerde%40microsoft.com%7C99288fe784194276e7f308d51145ceec%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636433913890256146&sdata=WGBHuxstBZoCjwcLdPFGrU8J1YzyluxZiSTDrLJmw%2Bs%3D&reserved=0>
https://plus.google.com/110557338955940627490<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplus.google.com%2F110557338955940627490&data=02%7C01%7CMatthew.van.Eerde%40microsoft.com%7C99288fe784194276e7f308d51145ceec%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636433913890256146&sdata=eHym%2BBSPn2dKpkfzeeT1MOnLFNnmDCjq0d7D0PLSSCA%3D&reserved=0>
https://twitter.com/VB_Audio<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftwitter.com%2FVB_Audio&data=02%7C01%7CMatthew.van.Eerde%40microsoft.com%7C99288fe784194276e7f308d51145ceec%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636433913890256146&sdata=x%2B%2BWDc9wSE2EZ7%2F08iSX0IYDgT0RicXFRDmHiZQSfnU%3D&reserved=0>