Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER General Discussion Forum

Reply
 
Thread Tools Display Modes
Old 09-20-2017, 07:09 PM   #1
Guerrilla Music LLC
Human being with feelings
 
Join Date: Sep 2017
Location: Rochester, NY
Posts: 71
Default Wanted: macro to switch audio settings on the fly // and latency minimization options

Hello:

Long time Reaper fan, first post.

I recently upgraded my music & video production/editing computer. My intention was to procure a purpose-built rig that would serve me for the next 5 years. The specs are as follows:

MODEL: Lenovo P51 (Thinkpad)
CPU: Xeon E3-1535M v6 @3.10GHz
RAM: 32GB
GRAPHICS: NVIDIA Quadro M2200
STORAGE: 512GB SSD, 1TB SSD x2
OS: Windows 10 Professional

I have two basic concerns that I am hoping the community here can and will assist me with resolving.

1) I am unable to get latency under 9.2 ms

2) I frequently switch between recording audio from my Roland Fantom keyboard into Reaper via USB, and recording MIDI from a variety of controllers (including the Fantom) into Reaper, also via USB cable. Additionally, I record audio from other sound sources, which do not have the ability to transfer audio over USB, via traditional 1/4" cables (by way of my Yamaha Audiogram 3 interface). I am looking for a way to instantly make changes to Reaper's "Audio Device Settings" in order to call up the various configurations required for each of these situations. In short, I am hoping to create macros for each of these configurations, that I can initiate with simple keystroke combinations. Is this possible?


Concerning the latency, I am at a loss. My laptop possesses the processing power, RAM, and SSD hard drives, which when taken together would seem likely to produce much better numbers than I am getting. I have done the following:

1) reduced buffer size to (the seemingly) bare minimum possible before cracks/pops appear
2) turned off wireless radio and antivirus
3) closed all unnecessary programs
4) set CPU to run at 100%
5) performed various other system optimizations as suggested in a number of articles relating to minimizing latency

I admittedly am using a very basic and underwhelming audio interface (the Yamaha Audiogram 3) which I suspect is contributing to the latency. I am in the process of researching a more capable replacement. Other than that, what else can I do to further reduce latency?

Thank you very much for any constructive input.

-Atlas

Last edited by Guerrilla Music LLC; 09-20-2017 at 09:23 PM. Reason: clarify reasons for post
Guerrilla Music LLC is offline   Reply With Quote
Old 09-20-2017, 07:20 PM   #2
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

Is that one of the interfaces that doesn't have its own ASIO driver and has you use ASIO4All? Because with that driver you won't get great latency, regardless of anything else. 9.2ms is not a bad latency. Should hardly be noticeable. Do you notice the latency? The lowest I can get is about 3ms, reported in reaper as 4.4 in/3.3 out (7.7ms round-trip) and that's not at all noticeable.

So far there's no quick way of adjusting these things. A script might be able to, but none exist, afaik. I would like an automatic way to do this as well, since I use multiple interfaces also need to adjust my latency offset manually each time in prefs, since one of them reports totally wrong values and my recordings come out way off time otherwise. PITA!

Oh, welcome to Reaper Forums!!
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 09-20-2017, 07:47 PM   #3
Guerrilla Music LLC
Human being with feelings
 
Join Date: Sep 2017
Location: Rochester, NY
Posts: 71
Default edited for clarity

Quote:
Originally Posted by foxAsteria View Post
Is that one of the interfaces that doesn't have its own ASIO driver and has you use ASIO4All? Because with that driver you won't get great latency, regardless of anything else. 9.2ms is not a bad latency. Should hardly be noticeable. Do you notice the latency? The lowest I can get is about 3ms, reported in reaper as 4.4 in/3.3 out (7.7ms round-trip) and that's not at all noticeable.

So far there's no quick way of adjusting these things. A script might be able to, but none exist, afaik. I would like an automatic way to do this as well, since I use multiple interfaces also need to adjust my latency offset manually each time in prefs, since one of them reports totally wrong values and my recordings come out way off time otherwise. PITA!

Oh, welcome to Reaper Forums!!
Thank you, foxAsteria!

The 9.2 ms latency is bearable, but it bothers me that I can still detect even the smallest delay. I thought that I was buying components which would make latency a complete non-issue. I believe the (latency) problem does arise from the Yamaha audio interface.

I think I need to clarify my use cases for the different audio systems (under the Audio > Device preferences page) to explain the problem I am having.


I have three basic recording use cases:

1) I need to record a *MIDI* performance, triggering a VST instrument. The connection scheme is Fantom keyboard > USB cable > audio interface > DAW

2) I need to record *audio* output from my Fantom keyboard, again using a USB cable. The connection scheme is the same as above: Fantom keyboard > USB cable > audio interface > DAW

3) I need to record *audio* from a DIFFERENT device, using 1/4" cables to connect the sound source to my audio interface. The connection scheme is: Korg Triton keyboard > 1/4" audio cables > audio interface > DAW

Under the "Audio device settings" preferences page in Reaper, when I am recording MIDI, such as in use case #1, I can select the Audio system "ASIO" (see attached screenshot link below). Under the ASIO Audio system, I then select "Yamaha Steinberg USB ASIO" driver (that came with the audio interface) in the ASIO driver field, and this in turn automatically selects appropriate values ("USB Audio CODEC") for the input and output range which enables me to hear/monitor my performance through speakers or headphones connected to the Yamaha audio interface. Latency under this configuration indicates "~7.6/10ms"

For use case #2 (recording audio over USB from the Fantom to Reaper), I am not able to continue to use the "ASIO" audio system, because when I change the ASIO driver value from the previously mentioned "Yamaha Steinberg USB ASIO" driver, to the "Fantom G" driver (in order to enable Reaper to receive audio over USB from the Fantom) the input and output range are automatically fixed to values which do not allow me to hear the performance, and I cannot change them. So for that reason, I have to change the "Audio system" selection from ASIO to WASAPI (see screenshot link below).
Under the WASAPI audio system, I can select the input device as "IN (Fantom G)", and select as output device the Yamaha audio interface -- it shows up as "Line (3- USB Audio CODEC)". This configuration enables me to hear the audio performance I am playing on the keyboard, via speakers/headphones connected to the Yamaha audio interface. The best latency I am getting under this configuration is 9.2ms.

I only recently began to record audio from the Fantom keyboard over USB, and that is now my preferred method of recording audio from the Fantom, since it eliminates that noise that I was getting when recording audio over 1/4" cable. So when I have the option, I record over USB as opposed using 1/4" audio cables. However, when Using the WASAPI driver (to record audio over USB), I am locked in to recording at 44100 Hz, and the smallest block size that seems to work without audio problems cropping up is 400 samples. This combination generates the 9.2 ms latency value. There are a couple other "audio system" options (WDM Kernel Streaming, WaveOut,) that I looked into for recording audio over USB, but WDM Kernel Streaming results in reported latency values of "~11/46ms" and WaveOut is even worse.

It seems that for both recording MIDI and audio over USB, lower latency values should be achievable. Hopefully that will be the case when I upgrade audio interfaces.

Screenshots: https://imgur.com/a/tYcEj

Last edited by Guerrilla Music LLC; 09-21-2017 at 06:40 AM.
Guerrilla Music LLC is offline   Reply With Quote
Old 09-20-2017, 10:40 PM   #4
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

You should get better latency even with ASIO4ALL if you use ASIO mode and not WASAPI. The way to get your MIDI keyboard in as well is to enable it as a MIDI device in preferences. Then you can select your keyboard as a MIDI input instead of audio. Or if that's not working for some reason, you could try the MIDI out if your interface has a MIDI input and you have a MIDI cable.
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 09-21-2017, 06:10 AM   #5
Guerrilla Music LLC
Human being with feelings
 
Join Date: Sep 2017
Location: Rochester, NY
Posts: 71
Default

Quote:
Originally Posted by foxAsteria View Post
You should get better latency even with ASIO4ALL if you use ASIO mode and not WASAPI. The way to get your MIDI keyboard in as well is to enable it as a MIDI device in preferences. Then you can select your keyboard as a MIDI input instead of audio. Or if that's not working for some reason, you could try the MIDI out if your interface has a MIDI input and you have a MIDI cable.
Thank you. I updated post #3 for clarity. It seems I have no choice but to use WASAPI mode for recording USB over audio.

It is definitely strange, because I can see the levels jumping when I start playing the keyboard and transmitting audio over USB under the ASIO mode as you suggested, but the "output range" is fixed to a setting that prevents me from monitoring the performance. It is not outputting the audio signal through the audio interface, so I cannot hear it.
Guerrilla Music LLC is offline   Reply With Quote
Old 09-21-2017, 01:57 PM   #6
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

Ok, I didn't think that through. Normally I only see usb keyboards transmitting MIDI. But ok, you should still be able to use ASIO4All, as it allows for aggregating sound devices. You should be able to set up both your interface and the keyboard IO in the ASIO4All config dialog. I've successfully combined a motherboard sound device with a Presonus Firebox that way, so you should be able to use it for both.

You should also be able to record audio and MIDI at the same time, just use different tracks. I'll reread your post later.
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 09-22-2017, 01:05 PM   #7
karbomusic
Human being with feelings
 
karbomusic's Avatar
 
Join Date: May 2009
Posts: 29,260
Default

Quote:
Originally Posted by Philbo King View Post
9.2 mSec latency is equivalent to keeping in time with a sound source located 10 feet away. Unless you are doing goth-death-speed-metal at 200 bpm it shouldn't interfere with your timing enough to throw you off. In my humble opinion.
In addition to any and all other such as 'in air' latency. IOW, if I'm running at 9ms and sitting 3 feet from my monitors, that's 12ms of latency.

Also, sub 10ms is feel, > 10ms is overall timing. Meaning the threshold for hearing two distinct entities is ~10ms but that by no means it isn't felt, that is the rough barrier where mistakes end and feel begins until it gets down to roughly 1-2ms or so where it starts becoming imperceptible.

Do I personally care at this level? Not usually, I'm happy around 5ms but that is because my internal clock's resolution can't consistently go much lower, albeit I know plenty of other musicians who can easily go lower FWIW.
__________________
Music is what feelings sound like.
karbomusic is offline   Reply With Quote
Old 09-22-2017, 02:04 PM   #8
Stella645
Human being with feelings
 
Stella645's Avatar
 
Join Date: Sep 2008
Location: UK
Posts: 3,648
Default

Quote:
Originally Posted by Guerrilla Music LLC View Post
Thank you. I updated post #3 for clarity. It seems I have no choice but to use WASAPI mode for recording USB over audio.

It is definitely strange, because I can see the levels jumping when I start playing the keyboard and transmitting audio over USB under the ASIO mode as you suggested, but the "output range" is fixed to a setting that prevents me from monitoring the performance. It is not outputting the audio signal through the audio interface, so I cannot hear it.
What happens with audio over USB is that the device (in this case your Fantom) becomes the audio interface....this will be for both input AND output.
This is why you get no audio at the Audiogram outs....the DAW audio is going straight to the Fantom.

So the simple option is to use the Fantom headphone output when the Fantom driver is selected for recording.
In fact you might try connecting monitors there and using the Fantom as your main audio interface instead of the Audiogram and see if it's any help.

Another option is to not use the Fantoms own ASIO driver and as suggested use ASIO4all driver...in the ASIO4all control panel you can hopefully select Fantom inputs but Audiogram outputs.

Latency should not be an issue with the hardware....but for vsti you will need as low as possible. As well as the interface latency make absolutely sure you're not adding more latency with plugins.

Last edited by Stella645; 09-22-2017 at 02:21 PM.
Stella645 is online now   Reply With Quote
Old 09-25-2017, 03:05 AM   #9
Guerrilla Music LLC
Human being with feelings
 
Join Date: Sep 2017
Location: Rochester, NY
Posts: 71
Default

I appreciate the discussion. Gotta love the hive mind!

For those interested, I downloaded and am utilizing a fantastic program called VoiceMeeter. This application provides its own ASIO driver and acts as a virtual mix board. It facilitates routing within and between applications, and has resulted in overall latency of 5.8ms, which is an acceptable value for me.

I also downloaded and am using a screencasting program called OBS.
(I believe that) because of the inclusion of USB audio in my signal chain, I am having difficulty configuring OBS to capture both live input (consisting of talking through a microphone, USB audio and MIDI-driven VST performances) along with playback of previously tracked material in Reaper. I am thinking that perhaps ReaRoute will help me pull this all together. If anyone reading this enjoys working out routing boondoggles, your input would be welcome. Otherwise, I'll update the thread with how I make out. I am certainly learning a lot by getting down into the weeds of these issues.
Guerrilla Music LLC is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 02:36 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.