Jump to content

Noel Borthwick

Staff
  • Posts

    4,815
  • Joined

  • Last visited

  • Days Won

    64

Posts posted by Noel Borthwick

  1. On 1/25/2023 at 4:17 PM, Christopher Hunt said:

    This post is about MMCSS, UAD drivers, and Windows, and settings for all w/in CbB: Another Question about MMCSS and ASIO/WDM driver (that may seem nonsensical, but as far as I can tell, the drivers at issue - UAD for Apollo, Arrow, etc. - are called WDM drivers but run in ASIO in CbB.  Not really my issue here, but wondering if the UAD driver can use WDM for Windows sounds and ASIO for CbB (?)  Could never figure out why they call them WDM if they're mostly used in ASIO.

    @Christopher Hunt Technically ASIO is a wrapper on top of the OS native driver model which is WDM. i.e an ASIO “driver” vendor must also ship a WDM driver for Windows itself to communicate with the device. There is no other way.
    So every device that has an ASIO driver needs to support Windows using the device at the SAME time as a DAW uses it via ASIO.
    Some devices do this well and others handle it poorly. For example Windows may be using the device at one sample rate while the DAW is using it at another. A well behaved driver handles all these scenarios transparently.

     

    On 1/25/2023 at 4:17 PM, Christopher Hunt said:

    I arrived at the above question after reading enough to, at the outset, enable (leave enabled) MMCSS in CbB, but I never quite figured out whether to check the box below, which as I understand it, will attempt to enable MMCSS in the third-party driver (because it must be enabled in both the driver and CbB and I guess most ASIO control panels, like UADs, don't have an option to enable/disable MMCSS).

    I've also read that MMCSS actually has to be programmed into an ASIO driver (so it's only an "option" where it's coded in already).  Of course, there's nothing about MMCSS anywhere in anything UAD (driver control panel, instructions, forums, website).  I'm wondering a couple of things:

    All MMCSS does is set an elevated priority for the driver thread. This tells Windows to not interrupt the driver when doing other tasks which is useful when operating at low latencies. Cakewalk has supported MMCSS from day one when it was made available in Windows. At the time it was not part of the ASIO specification at all and almost no drivers supported it directly except a few like RME. So Cakewalk would set the drivers thread to MMCSS mode automatically to benefit from this (controlled by the MMCSS flag). This setting however was for both Cakewalk as well as the driver, until our recent release where we made it granular so it could be independently switched off for the driver. The reason for this was to avoid certain (buggy) drivers that caused problems when forced to MMCSS mode. The ASIO specification now states that ALL drivers should run in MMCSS mode but its still widely not respected. Pretty much the wild west out there :)

     

    On 1/25/2023 at 4:17 PM, Christopher Hunt said:

    1.  Do UAD drivers "use"/include/whatever MMCSS?  Is there a way to find out?  Can CbB turn it on "for" the UAD driver?  I've experimented with various settings and there isn't much of a difference no matter what I do, but it's hardly scientific.  If they do use MMCSS, does that mean that second box should be checked or unchecked (the one that purports to turn on MMCSS in your driver)?  Maybe there's a good example of a driver that can take advantage of MMCSS and someone could explain how they figured out how to set it up (?)  I find it astonishing that there is so little clear information on this around.

    Its not surprising because its an internal option that end users shouldn‘t need to worry about. In reality that isnt the case :)
    Most drivers don’t have a checkbox for this so its very hard to find out if the driver supports it without using tools like Process Monitor and even so its hard to find the driver thread most of the time. In Cakewalk I added a status if you hover over the performance module that shows the thread priority. If its 18 or higher its typically means that the driver is in MMCSS mode. However the technique I use to detect it isnt foolproof (Microsoft doesnt publish a way to check this!)

     

    On 1/25/2023 at 4:17 PM, Christopher Hunt said:

    2.  As to the UAD Apollo/Arrow driver specifically, in CbB should I choose ASIO or something else (ASIO/WDM - I think that's a choice)?  I've always just chosen ASIO.

    Always choose ASIO inside the DAW.

    On 1/25/2023 at 4:17 PM, Christopher Hunt said:

    3.  Again as to these drivers (being used w/a T3 Octo satellite BTW), and being WDM/ASIO, does it matter if they are Windows' default drivers?  I disabled my Nvidia and local PC audio drivers out of habit, so Windows took them for default, but I only use them with CbB.  but I could enable one and make it Windows default audio device.  I ask because some manufacturers (RME) advise you to make sure your audio driver is NOT the same as Windows default.  

    If you can use a different device for windows its preferable since it eliminates one common problem from the equation, since some drivers don’t play well when used simultaneously. I haven’t had issues with RME being used by Windows and Cakewalk simultaneously however.

    On 1/25/2023 at 4:17 PM, Christopher Hunt said:

    4.  MMCSS/Performance meters:  I read in the CbB manual that you can see if MMCSS is being used by checking the performance monitor and if it says something like "time critical... (15)" then MMCSS is NOT PROPERLY in use.  All I remember is the "time critical" is gone if MMCSS is being used.  No matter what options I select, the performance monitor always has the "time critical."  Even with all MMCSS options disabled, the audio notification never changes.

    See my above notes. The technique I use isn’t perfect so if the driver has actually set it to MMCSS sometimes we just get a failure code when trying to set it to MMCSS but I can’t conclusively know if its actually running in MMCSS without running process monitor,

     

     

    • Like 2
  2. On 12/3/2021 at 2:32 PM, jono grant said:

    If you import a video to cakewalk timeline and select "import as mono tracks" it does not do that.

    Just brings in an interleaved file.

    Always worked, now it's broken.

    FYI

     

    This has never worked with certain video formats. It didn’t work in SONAR as well.
    I’ve fixed it for the next release.

    • Like 3
  3. On 1/20/2023 at 9:16 AM, southcoaststeve said:

    Hi everyone,

    I just had this exact same issue with a track I'm currently working on.

    Everything was working as it normally does and then all the tracks became silent and will only play when the solo button is activated.

    I am using the latest version  2022.11 and not utilising tracks created in older versions of the software - everything has been freshly recorded.

    Is anyone else still experiencing this issue?

    Thanks.

     

    PS I've just checked several projects that I've created previously and they all appear to be working fine.

     

     

    If your send a link to your project I can take as look at it.

  4. Interesting. The wavetable synth from Microsoft internally outputs to the default audio output. So if Windows is using your Lynx its likely blocking the device.
    I've never seen this happen with other audio devices so you should report that to Lynx. I would expect the driver to share the audio device with both Windows and the ASIO driver client.

    But yeah disable the wavetable synth. It's a piece of junk that dates back to the 90's  :)

    Here is an article on how to disable it in Windows.
    https://answers.microsoft.com/en-us/windows/forum/all/completely-disabling-ms-gs-wavetable-synth/5b2297a5-0904-4340-bdbb-ce528b3068c5

    Maybe we should block it in Cakewalk itself by default...

     

    • Like 1
  5. Sorry that you are having such a nightmare with Windows.
    I have an RME UFX but it runs on one of my older computers with Windows 10 on it. I don't see any significant lags when adding tracks. I tested adding about 50 tracks and it still took about a second to add a new track after that. This is an older PC about 8 years old.

    I doubt that this is a Windows issue or RME issue directly. Have you tried resetting your audio configuration to defaults in preferences / Configuration file?  Does the slowness even happen on a new empty project?

    One more thing to try. In preferences, disable all audio inputs and outputs except for the ones you are using. See if this makes a difference.

  6. If you are using a laptop definitely make sure windows is set to high performance mode and preferably use it plugged in to AC power.

    4) If my laptop is using just battery only ( i.e. not plugged into mains via the adaptor ), would that be more likely to cause 'audio engine dropouts', even though the battery still has ( say ) 50% charge left?

    When running on battery Windows is very aggressive about conserving power to the detriment of realtime performance. Its not surprising that your system is prone to dropouts. If you must run on battery then you MUST ensure that Windows is set to never sleep and always run in high performance mode. Also run with MMCSS enabled in Cakewalk.

    image.png

     

    Additionally you may turn off dropout detection in Cakewalk by setting MaskDropoutDetection to True. When that is set, the audio engine will not stop even if a dropout is detected. You may hear a momentary glitch bug it will keep running.


    image.png

  7. If using onboard audio make sure that you have set the audio driver mode in Cakewalk to WASAPI Shared here:

    image.png

     

    This is the default for windows onboard audio devices and should work for all sample rates even those that the audio interface doesn't directly support because Windows does the sample rate conversion.

    In WASAPI shared mode the latency is locked at 10 msec but it should be good enough for most use cases.

    • Great Idea 1
  8. The issue has nothing to do with the audio engine. Its very likely to be a plugin in your project leading to this. Not hardware or Cakewalk itself or even due to a corrupt project.
    There isn't anything necessarily that we can "fix" without being able to reproduce whatever problem you are seeing or getting a dump file that shows the issue. If the app itself is not hung and you are getting silent audio, the most common cause is that one of your plugins has internally "crashed" and is producing silence or random floating point data. 

    If you can reproduce the issue, use a process of elimination to remove plugins one by one till the project starts working again. 

  9. Yes. buses cannot start processing until all upstream tracks or other buses routed to it have finished processing their effects. Only then can the bus mix its inputs and proceed to processing the bus fx chain.

    If you have complex dependencies of tracks and other buses sourcing the main bus then those count towards the "engine load" since they are additive. In other words no matter how many cores you have if the work is serial multiprocessing won't help you.

    • Thanks 1
  10. On 1/5/2023 at 8:15 AM, Mannymac said:

    Thats what I thought initially . But the bottleneck is not my machine it's the engine load in Cakewalk. As I said I can run the same plugin chains with the exact same routing in other DAW's just fine. I can even run the same chains in Cakewalk if they are on tracks not Busses. The problem is the engine load on Busses in Cakewalk. As to why that is? No idea.

    I found out quite a while ago that with modern CPU's the bottleneck is the CPU no longer. My session only uses 20% of my CPU but the engine load within Cakewalk is about 95-110% (past 100% is where the glitches come) at 512 Buffer. That is where Reaper outperforms Cakewalk by quite a margin in my particular case. Or in Cakewalk's own words:
    "The Engine Load value is a percentage of the total time the engine took to process an audio buffer. If it takes 100% or more of the allotted time, the buffer is processed too late and it will result in audio glitches/distortion."

    When I run my buss chain of about 6 plugins on two busses so 12 in total via Audio Gridder I have 65% engine load at 128 buffer. So it performs faster and more stable that way. I am a happy camper with that.

    I am using an RME ADI-2 Pro FS R as my interface, latest BIOS, no other programmes running, WIFI swiched off, latest driver for everything and an SSD. Given their excellent ASIO drivers I can say with a degree of certainty that won't be the problem either.

    And again, exact same plugins on stereo tracks run just fine. Whatever Cakewalk does on Busses compared to tracks seems to place a higher load on the engine. But that is beyond my paygrade.
    Cakewalk is the best DAW I ever used so I'm just glad I was able to solve this. I am no programmer so I have no idea if that is even possible but maybe there are ways to improve the way the engine handles Buss plugins. It seems I'm not the only one struggling with this so maybe an area for exploration for the bakers?

    But then again, I know bugger all about programming. As always, it might just be that certain plugins don't like being on a Cakewalk Buss at which point there is nothing they can do and it is a compatibility issue.

    PS: If Noel or any of the bakers want my session to check I'll happily pass it along.

     

    As far as multiprocessing goes buses are tracks are pretty identical so I don't see why you should see a difference if you are testing the same chain of plugins in a bus vs a track.  However, you have to be careful to eliminate dependencies on other other tracks routed to the bus. The bus has the additional load of waiting for all its dependencies to be computed before it can mix its inputs.

    You can also try this test using aux tracks instead of buses and put your plugins there. Behind the scenes as far as mixing goes there is no difference between a track or a bus. They are all mix buses internally.

  11. MMCSS is always on by default. What changed is that we no longer turn on the ASIO MMCSS flag, because some drivers misbehaved with it.
    Load balancing is off by default since again some plugins don't do well with it.
    64bit mixing has a trade off since it takes some additional bandwidth, so its not enabled by default.
    Multiprocessing should always be enabled.
     

    • Like 2
    • Thanks 1
  12. On 12/12/2022 at 8:19 AM, Alex3 said:

    Little Update: I checked 64 bit precission Engine box and it got rid of the distortion I was hearing. Maybe that was also part of the problem

    Checked or unchecked? If checking the double precision box did that then it typically means that there is some floating point overflow going on in the signal chain. By switching to double precision there is more headroom so it sidesteppped the issue.

    • Like 1
×
×
  • Create New...