• 2 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Workaround for ASIO Buffer size and other audio I/O issues (Windows)
#1
Problem:  A lot of users have problems adjusting their ASIO buffer sizes to tweak their audio latency for optimized performance. JamKazam doesn't seem to have any tools to help with these settings, and sometimes pushes super small or too large buffer sizes that render audio inaudible or too high latency.

Workaround: DAWs typically have very robust audio device settings allowing for proper tweaking of your audio latency. Using a DAW for your audio device I/O, and some soft of software audio routing solution to send audio from your DAW to JamKazam and back allows for these settings to be transferred to JK for optimal experience. This can be accomplished in infinite ways and combinations of software (countless DAWs, Jack Router, Voicemeeter, Virtual Audio Cable, Synchronous Audio Router), but I've quite successfully been using Reaper and its built in audio routing driver, ReaRoute, and some very simple routing. Is this needlessly complicated? Maybe, until JK implements ASIO tweaking settings into their software. Does it work? For all my trials so far, absolutely.

How-To (Using Reaper):  

Step 1: Download Reaper 32bit  (This is important - JK will not see ReaRoute unless its the 32bit version). Reaper can be downloaded here: https://www.reaper.fm/

Step 2: Install Reaper. During the installation, make sure to click the checkbox for "ReaRoute ASIO driver" as shown here.

[Image: vkaSPLt.png]

Step 3: Open Reaper and set up your Audio device. There are countless tutorials on how to do this on YouTube and the cucko's forums. For best results, use ASIO or WASAPI in exclusive mode. You can tweak your buffer size/block size. Here are what my settings look like for either one using an Alesis iO4 as my interface:

[Image: 8dNY3GL.png]
[Image: jNvqkqG.png]

Once your audio settings are... set... you should see your device settings in the top right corner of Reaper. You may have to restart Reaper if it keeps saying audio device closed:

[Image: WKUxx3v.png]

Step 4: Press Ctrl+T to create a new track. Click the Record Arm/Disarm Button (1). Make sure the Record Monitoring is turned on (2). Click the input selection if you need to change it (inputs can be stereo or mono) (3). Once this is all correct, you should see any input levels there may be on the meter (4). It should also be sent to the Master ouput and show up on the meter in the bottom left of the whole screen. This is a great time to test your inputs and make sure your audio device and inputs/outputs are working properly and with good latency (buffer not too high) and little to no crackling (buffer not too low). 

[Image: eD13xHK.png]

Create a new track for each input you will use and send to JamKazam. Make sure to select the proper inputs for each track to match your interface. You can name your tracks by double clicking the dark gray area next to the record monitoring button. You can also apply any FX chains you'd like to your tracks, assuming they don't add any latency to your audio stream. 

Step 5: Create a final track for the audio you will receive from JamKazam. Arm Recording, Record monitoring on, just like above. Set the input device to Stereo -> ReaRoute 1 / ReaRoute 2 (as a side note - this is the ReaRoute CLIENT->Reaper bus. There is a separate ReaRoute Reaper->CLIENT bus you will use later). If you don't see ReaRoute available, you missed the checkbox in Step 2. You can just re-run the installer and check the box, no need to uninstall.

[Image: 0r9OspW.png]

Step 6: Configure routing for each of your Input tracks (NOT the final JamKazam ReaRoute track) as follows. Click the Route button (1) on the track down in the mixing section. When the routing window pops up, uncheck the master send box (2), and add a new hardware send (3). Select an open ReaRoute channel (This is the aforementioned ReaRoute Reaper->CLIENT bus - these will not conflict with the input you selected for your JK track above). Make sure to send a stereo signal if its stereo, mono signal if its mono. This should complete the Reaper side of things. File -> Save project to save the tracks and routing for each time you use it.

[Image: 1I9KweA.png]

Step 7: Leaving Reaper open, open JamKazam. Go to your Audio Gear settings as usual. Click Add New Gear. Skip the Video and click next to get to the Select & Test Audio Gear Page. Select ReaRoute ASIO as your input and output device. Deselect any unneeded input channels, and make sure ReaRoute 1 and 2 only are selected for your output channels. Once you get your latency and I/O rate to pass green or yellow (sometimes the I/O rate just takes a couple of tries.. hit resync to retry), press next. If you don't see ReaRoute ASIO in JamKazam, you probably installed the 64 bit version of Reaper/ReaRoute. Start over again with the 32 bit version (I told you it was important).

[Image: oHyKGhV.png]

Note: at this point, clicking on the ASIO settings button will only bring up the ReaRoute Configuration. Any actual ASIO (or WASAPI) tweaking will have to be done in Reaper device settings, then click resync in JK to get them working together.

Step 8: Set up your instrument tracks. Again make sure everything lines up - Mono inputs should only be assigned one ReaRoute channel, and the 2nd channel left blank. Stereo inputs should be assigned both channels. These assignments must match the hardware send routing you set up in Reaper in Step 6. After thats done, hit next.

Step 9: Set up a chat Mic if you aren't using a vocal mic. Click next. Click to play the test tone. Make sure you hear the sound (it will be coming back through Reaper to your interface). Click Next.

Step 10: There you go, you're done. Optionally, you can go into a session and go to Manage -> Audio Settings -> Audio Booster. Change your Audio Framesize to 1 ms. Hit resync if you have to, and make sure your audio quality is still good. If its not all garbled up, leave it at 1ms. If its no good, move it back to 2 or 2.5 ms. This setting will help reduce your audio latency just a little bit more. Some users have also seen better performance lowering their Maximum Outgoing Bitrate, but I have not tried that.

[Image: rCEl4b2.png]

[Image: WibUJtp.png]

Good luck! This has been successful for me as well as 3 other band mates. Post any questions here, maybe I'll work on some troubleshooting steps if people find this useful and want them.

Full credit to this guy in the Cuckos forum who posted this 5 years ago, in a much more concise way: https://forum.cockos.com/showthread.php?t=158500
  Reply
#2
Great post, Marhdeth. Very thorough. Thanks for that. I would never have thought to use Reaper's ReaRoute virtual ASIO routing, although I did use them with some NinJam experiments in the past.
Any comments on the performance implications of Reaper and JamKazam running simultaneously? Too many years of, "Only ONE ASIO app at a time!" beaten into my head, I guess. Thanks again
  Reply
#3
I'm running an old Core i5 3570K (8 gb ram) machine I build back in 2012. Not a slow machine, but its no spring chicken. My Audio I/O jitter varies between 0-2 ms, process hovers between 20-25%. I haven't noticed any issues at all when doing audio only. When video comes into the mix, well, that's a little different. Occasional breaks in the audio stream. I haven't narrowed down the cause, but seeing Dimitri adamantly post around not to bother with video, I'm fairly confident those issues have nothing to do with the audio routing, and more to do with my older pc.

Also, I did a little record test in reaper, recording some claps and measuring the latency between reaper and JK and back, and round trip total delay was < 1 ms. Couldn't get it exactly, Reaper only shows timestamps down to 1 ms.
  Reply
#4
Awesome, thank you for your workaround how to Smile Bliss!!
  Reply
#5
Thank you for this I have been trying to set this up. The thing I can't get past is the Audio Gear test. It always fails on the I/O part. Any idea how I can get that to a lower level?

The latency was sitting happily green at 2.83 but the IO is always Red
  Reply
#6
(04-25-2020, 05:10 PM)Nick Blair Wrote: Thank you for this I have been trying to set this up. The thing I can't get past is the Audio Gear test. It always fails on the I/O part. Any idea how I can get that to a lower level?

The latency was sitting happily green at 2.83 but the IO is always Red


Maybe try increasing your buffer up a little bit to give your CPU some breathing room. You can always tweak further after you get through the audio gear settings and into a session. 2.83 ms is faster than I've ever accomplished - is it that low with a stable audio stream? 

Also, have you seen the posts around here suggesting to adjust your windows power settings to high performance? Specifically, adjust the "Minimum Processor State" value up to 100%. This prevents your OS from throttling your CPU during times of less activity, which apparently can cause significant jitter.
  Reply
#7
(04-25-2020, 07:10 PM)marhdeth Wrote:
(04-25-2020, 05:10 PM)Nick Blair Wrote: Thank you for this I have been trying to set this up. The thing I can't get past is the Audio Gear test. It always fails on the I/O part. Any idea how I can get that to a lower level?

The latency was sitting happily green at 2.83 but the IO is always Red


Maybe try increasing your buffer up a little bit to give your CPU some breathing room. You can always tweak further after you get through the audio gear settings and into a session. 2.83 ms is faster than I've ever accomplished - is it that low with a stable audio stream? 

Also, have you seen the posts around here suggesting to adjust your windows power settings to high performance? Specifically, adjust the "Minimum Processor State" value up to 100%. This prevents your OS from throttling your CPU during times of less activity, which apparently can cause significant jitter.

I have a focusrite 4i4 that I use and which if I set it at 96kHz gives about 2.9 to 3.3ms latency and works fine when I go direct into Jamkazam. I wanted to use Reaper for various reasons outside of being able to use the Focusrite ASIO driver which works OK, but when I go via ReaRoute the latency is the same (or similar) but the I/O is totally different. At 96kHz it 

From what I can see whatever I set as the input into Reaper from the Focusrite determines the latency into Jamkazam. But the I/O steadfastly refuses to come off a rate of 0 as this - 
[Image: io.jpg]

If I do it at 48kHz and 64 then the latency increases to about 4 but the I/O stays at 0 and the variance is still some huge number (-5818.31). If I 'Tweak the Settings' and choose Slow the latency goes up to about 11ms and the I/O is I/O Rate=0 Var=1560.17.

If I ignore Reaper (which I don't want to do I get these figures) Focusrite 

If I set Focusrite up again from scratch I get the same sort of latency at 2.9ms but the I/O figures are I/O Rate -400 Var -0.34

SO my problem appears to be the I/O rate of 0 but I have no idea what that means or how I affect it 

Thanks for your assistance so far much appreciated Smile
  Reply
#8
Or This is potentially a very dumb question, but did you have reaper open before JK? I’ve heard of some issues when opening the client before reaper, ReaRoute doesn’t like it. I’m just trying to think of why else your I/O rate is coming up zero. It also doesn’t help that I’m not entirely sure what the I/O rate actually is.

Also, do you have the 4i4 tested and working in reaper?
  Reply
#9
You and me both.

No dumb questions. Reaper open before JK.

The focusrite works happily in Reaper. It is very odd.
  Reply
#10
(04-25-2020, 09:12 PM)Nick Blair Wrote: You and me both.

No dumb questions. Reaper open before JK.

The focusrite works happily in Reaper. It is very odd.

Hmmm, it definitely seems like ReaRoute isn’t working right. So you have any other ASIO applications you can test it with? Another DAW or Voicemeeter or something? I’m running out of ideas over here.
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)