[wdmaudiodev] Re: Windows & Real Time : suggestion to Microsoft Kernel Developers

  • From: "Matthew van Eerde" <dmarc-noreply@xxxxxxxxxxxxx> (Redacted sender "Matthew.van.Eerde" for DMARC)
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 13 Oct 2017 15:29:36 +0000

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>


Other related posts: