I’ve gone on a slightly obsessive crusade to reduce latency in my WindSynth Rig. Came across an unusual approach today, and wondering if others have experience with this …
My interface (RME) has a “direct monitoring” option via it’s TotalMix app. I happened to use it alongside the usual paths through Cantabile that I was testing, and it proved to be much faster (by 3.1msec) than a simple loopback route in Cantabile. Checked with RME support and TotalMix talks directly to the hardware rather than go through ASIO … eliminating a pair of buffers (at least 48 samples) and an internal “Safety Buffer” (32 samples).
Now I route my hardware synths (VL70-m and an XpressO) back into my interface so I can sometimes do post-processing on the sound (reverb needed for cello, not for clarinet). In cases where I don’t actually need to post-process, I can bypass the loopback route in Cantabile by issuing a MIDI command to TotalMix to change it’s routing. Gets me 3.1msec … not a show-stopper, but every bit helps.
So … I’m guessing other interfaces that offer “direct monitoring” are similarly avoiding ASIO. And, if they take MIDI input (or some other inter-program communication) then similar techniques can apply.
Note: I have not actually implemented this yet … just stumbled on it today.
Hope this is helpful to somebody!
Here’s a diagram of my testing, with details following:
Details
Host1: “Shiba” Win10x64, i7-6600U (6th gen), 2 core, 16GB, SSD, 2016 laptop.
Host2: “Husky” Win10x64, i9-9900U (9th gen), 6 core, 128GB, SSD, 2019 desktop.
UCX II: Firmware v37/24/16, RME ASIO v1.212
BBF Pro-FS: Firmware v125 (4May2021), RME ASIO v1.212
All .wav files 24 bit. All digital audio 44.1kHz. USB links are direct to the host.
2 Likes
And I now realize this idea has already been discussed at length in this post … guess I should surf this forum more deeply!
1 Like
Here’s the comparison with a simple loopback route in Cantabile: direct monitoring in TotalMix is about 3.1 msec faster than suffering the ASIO buffers and going through Cantabile.
BTW, the latency of Cantabile with a simple loopback plus Windows overhead (in who knows how many places) I measured at 0.28 msec - not bad! No telling how much of that is actually Cantabile …
2 Likes
Hi Clint,
very nice presentation and thank you for sharing the data you found!
The method is indeed useful to reduce the latency of hardware sources under certain conditions. From my point of view it is still important:
-
it requires a sound card that supports Direct Monitoring
-
signal manipulation of these signals as an insert is limited to the capabilities of the sound card. Some RME interfaces are quite well equipped and provide EQs and dynamics depending on the type, but this does not apply to all sound cards.
-
signal manipulation as a send effect with VST plug-ins within Cantabile is possible to a certain extent: especially with reverb and sometimes also delay effects, this works quite well, since the latencies that occur due to the 2-fold conversion are either not noticeable or, in the worst case, can be corrected manually by lowering the delay/predelay times.
-
a total recall from Cantabile is possible, if one limits oneself to the parameters that can be controlled in the sound card via midi command (with RME these are mainly volume, pan and mute). On the other hand, controlling the EQ and dynamics parameters via Midi (and thus from Cantabile) is not possible, as far as I know.
By the way, I have been using these capabilities of the RME interfaces for a long time for various other purposes and I will briefly explain this in case anyone is interested:
-
providing an InEar output of my UFXII, which I control via Midi using a controller on my keyboard (InEar overall volume).
-
control of the audio signal, which is generated separately in Cantabile as keys and backing tracks signal for my InEars by another Midi controller
-
feeding back a monitor mix (everything except keys and backings) from the FOH mixer and controlling the volume on the InEar Out through another midi controller.
-
simultaneous control of up to 4 audio outs (keys & backing tracks) via another midi controller on the keyboard (sometimes the FOH man wants a little more or less level)
-
feeding back the audio outs of my hot standby computer with RME Babyface via Toslink to the UFXII. Thereby the routing, which takes place in the UFXII, can be done via Midi Program Change command directly from my 2nd keyboard. This way, in case of a crash of the main computer, I can switch to the backup computer without interruption (this even works with the UFXII when the computer is crashed).
In some cases I connect a Neo Ventilator II, which I have “midi-fied” a little, as an external effect device via direct monitoring. The actual organ signal is generated in Cantabile in a B3-X plugin, looped out via the UFXII, a part that can be controlled via midi in TotalMix is then looped back to Cantabile, reverberated in a Sonsig VST Reverb and then fed out again via the Keys and InEar channels. The parameters are stored in a special Hammond rack so that the instrument Total Recall remains stored in Cantabile.
The implementation of the midi control in TotalMix is based on the MACKI HUI MIDI protocol if it is to include all channels (aIso also inputs). This is practical if you want to work with a hardware midi controller, but may cause problems in connection with Total Recall from Cantabile, as output channels may have to be selected before the level of an input channel can be adjusted in a meaningful way. Similar problems arise when you want to emulate true post-fader topologies. Apart from the fact that elements of an automatic sequence control would have to be implemented in Cantabile (e.g.: select output 3 and then adjust input fader 6), this procedure would reach its limits if two channels had to be adjusted simultaneously via midi.
Here I use the second Adat interface of my UFXII by connecting input and output directly with a short TOSLINK cable. This sounds rather strange at first, but on closer inspection it provides me with 8 freely routeable and Midi-controllable audio faders, where no outputs have to be selected anymore (the volumes of the 8 faders can now be controlled directly and in parallel via Midi). The disadvantage is, of course, the loss of an ADAT pair.
All in all, I can only confirm that the use of Direct Monitoring can be very useful. However, I also see it like the colleagues in the linked thread: this is a niche application and a direct integration into Cantabile seems to me to make little sense and would be completely useless in my case.
My two cents,
Greetings, Volker
1 Like
If you have an RME interface you already have ‘latency-free’ monitoring via TotalMix, so no real need for ‘Direct Monitoring’ (which is the first thing I make sure is disabled on new installations).
OK, I’ve got my terminology wrong here (I’m pretty new to electronic music) …
So Direct Monitoring refers only to the ASIO feature? And TotalMix is doing its own thing that is similar to, but not the same as Direct Monitoring?
Looking at the Focusrite description of Direct Monitoring, it does appear that their version of this feature is being called “Direct Monitoring” … are they going through the ASIO driver somehow to achieve their version of this feature?
It may well be using ASIO in some way - it’s a feature that has to be switched on in Cubase, for instance.
Hi, my understanding here is this:
-
By Direct Monitoring I simply mean the fact that audio sources do not take the diversions via a double conversion in the sound card, but are routed via audio hardware, so that no (noteworthy) latencies are added. This method was in use long before ASIO Direct Monitoring. In principle, such a constellation already exists when hardware synthesizers are controlled via midi from a DAW and all audio signals converge in a mixer. Whether this mixer is an RME sound card or an old Soundcraft analogue mixer is irrelevant for the time being.
-
From my point of view, ASIO Direct Monitoring uses the fact that certain sound cards that support this procedure can exchange data between DAW and sound card. A convention has been made as to how faders, gain controls and panpots of certain audio channels in the sound card are to be controlled. In addition, real-time meter data can be fed back from the sound card to the DAW. As far as I remember, the data is not transported via Midi but directly via the ASIO2.0 driver. If the DAW is set to ASIO Direct Monitoring mode, the channel faders in the DAW no longer control the audio volume of the signals that result from the conversion of the sound card inputs, but instead the faders of the mixer contained in the sound card. However, this is bought by the fact that all audio effects such as EQ, limiters, plug-ins,… are eliminated from the signal chain at this moment.
Concerning RME soundcards: they support both methods, ADM is initiated by the DAW if supported.
To be clear: all scenarios that I have presented as examples only concerned direct monitoring (Cantabile does not support ASIO direct monitoring). However, this does not affect the reduction of latency, because that was the point here, if I understood Clint correctly. I have only tried ASIO Direct Monitoring once in Cubase but have never used it since.
Greetings, Volker
1 Like
Wow, this is over my head! I would have to take a while to figure out what is going on with that signal path LOL!