Hardware FX device doesn't report any latency

Official support for: bitwig.com
Post Reply New Topic
RELATED
PRODUCTS

Post

It should report at least a roundtrip of latency.

Anything going through a Hardware FX device (when used as a hardware insert) will probably not be PDC synced.

A setting to adjust FX device/processing latency should also increase/decrease the latency reported to Bitwig by the Hardware FX device.

Using a latency fixer plugin after the Hardware FX device may sort this out.
Logic X, El Cap 10.11.3, Mini i7, Live, Reaper, Bitwig (demo)

Clicks at +100 samples: 44.1k / 48k (wav)

Post

Or does the hardware FX device just not display it's latency?

Is it only 3rd party plugins that display their latency?
Logic X, El Cap 10.11.3, Mini i7, Live, Reaper, Bitwig (demo)

Clicks at +100 samples: 44.1k / 48k (wav)

Post

The answer is the hardware fx device doesn't report or display any latency.

Just like the hardware instrument device, you have to correct the latency with a latency fixer. But the numbers don't make sense. I should be setting the fixer to 518 samples (10.79ms). It does work though.

Image


The figure should be: roundtrip latency + digital FX processing latency (if any)
Logic X, El Cap 10.11.3, Mini i7, Live, Reaper, Bitwig (demo)

Clicks at +100 samples: 44.1k / 48k (wav)

Post

I found this latency fixer, thinking I could have a workaround for hardware latency, but it doesn't seem to work. It doesn't report latency and I can't hear any difference.
(I'm on osx mavericks)
My test is: insert hardware device, connect to hardware synth
Make sound with super short attack and decay (a 'tick')
Turn on metronome
Listen to offset of metronome and click and adjust latency compensation until they match.

This is how it works In ableton (with abletons built in latency value in the external instrument device), should this latency fixer be able to do the same?

Post

ok it was a case of RTFM
http://www.expert-sleepers.co.uk/downlo ... manual.pdf
The vst version needs to be unloaded and loaded again to work.
Bug hey.. i found a workaround for the missing hardware latency setting!!

Post

I could only get the Expert Sleeper's Latency Fixer (free, mac vst) to work. As you said, you have to set the latency on the plugin, then either delete & re-load the plugin, or drag a new instance over the top of the old plugin. I can't set it precisely though, and couldn't find a way to manually enter the number of samples.

The Voxengo Latency Delay (also free) may be a better option, but I couldn't get it to work as the mac vst has errors in Bitwig. Bug reported. ThomasHelzle said he could tweak the latency by ear in real-time, which would make it easier. Start from this post for further info.


You need to use one of these plugins for both the Hardware Instrument and Hardware FX device.

The latency figure you set in Ableton will be much lower than the figure you set for the latency fixer in Bitwig. Ableton's External FX/Instrument plugins automatically compensate for your audio interface's roundtrip latency. In Bitwig, you have to manually compensate for your interface's roundtrip.
Logic X, El Cap 10.11.3, Mini i7, Live, Reaper, Bitwig (demo)

Clicks at +100 samples: 44.1k / 48k (wav)

Post

Hey TeePee, can you explain how software would know the latency? Is it supposed to use what you configure in the buffer? Is it not possible each hardware device could have it's own latency?

I'm dumb to this but I'm entertaining the idea of some outboard gear after seeing some YouTube videos of people using Bitwig with FX and stuff out of the box. It seems compelling and interesting but I know nothing about it.

How does this work in Live? In Reaper? etc? Is there some way the hardware can report the latency to the host? I'm guessing only through some kind of audio calibration would this be possible, and sorry if I missed you typing it above if that's the case.

Thanks for educating us :)

Post

@TeePee

thanks for your answer. That explains why the setting is much higher indeed. I thought of measuring in ableton and setting in bitwig but since they work different this doesn't work.

I tried voxengo but it induces massive amounts of latency itself so not useful for tracking, only for mixing i guess.

@ Grymmjack

The thing is software cannot alwyas know the latency of you hardware, since this is sometimes affected by things the software can't control, like latency of din midi cables. And yes each hardware device could have it's own latency, although if they are similar (two hardware synths connected to the same interface via din midi) they will most likely work with the same setting. But that's why Ableton let's you manually adjust for each device. The good thing in ableton though is, like TeePee explains, you don't have to adjust for the roundtrip since their "external instrument" device already take the roundtrip into account, which means the setting is independant of your buffer and sample rate (don't know this for a fact, just based on personal experience). In bitwig and the latency fixer however, when you change your buffer settings, you will also have to readjust the latency fixer.
Now that i write this it might be an idea to create presets for different buffer settings.

Don't know what you saw on internet, but if the outboard is on the end of the chain (compressor, limiter master eq) then there is no need for latency compensation since the signal doesn't necessary need to go back into your DAW again. At least not in such a way that it needs to match the tempo of your song.
If they are send effects then there has to be some kind of compensation. There are outboard though effects that have zero delay, so what ableton calculates for the roundtrip should suffice.

But if there is extra delay, this is not reported to the software, but mostly this is a know amount (like 5 ms for a digital delay). If it is not known, the only way i know is to calculate the delay your self. There are several ways. One is to record a signal with and without the trip through external hardware and then place them above eachother and zoom in so you can see the time difference. Another thread about this:
https://forum.ableton.com/viewtopic.php?f=2&t=167273

Post

grymmjack wrote:Hey TeePee, can you explain how software would know the latency? Is it supposed to use what you configure in the buffer?
Your audio interface's driver reports it's own latency to the DAW. At least, that's what it's supposed to do. Many audio interface's don't or can't report their latency accurately.

Your DAW will add it's own buffers, and should then display your latency somewhere. The DAW should also provide a way to report your system's true roundtrip latency using a recording delay/offset, or Driver Error Compensation in Ableton speak:


In Ableton:
Image
(this is the correct way to do it. Ableton increases/decreases it's
Overall (roundtrip) Latency when you increase/decrease
Driver Error Compensation)


In Logic:
Image
(Logic is displaying the wrong roundtrip latency. It forgot to include
the Recording Delay (offset).)


The roundtrip/overall latency figures shown above are then used by the DAW's external/hardware FX & Instrument plugins, and to align new recordings when applying recording latency compensation.

grymmjack wrote:Is it not possible each hardware device could have it's own latency?
Yes, digital FX can each have different processing times. As M-Prod said, sometimes a device has zero latency too - hardware compressors etc. It's also possible for the external FX latency to be negative when using ADAT/SPDIF/AES connections.

Bitwig is supposed to compensate for the roundtrip latency reported by the audio driver plus its own added buffers. It's our job to report the extra FX device latency to the DAW.

Ableton (and all other DAWs) have a delay/offset on their Hardware (external) FX plugins. The hardware fx plugin is then supposed to report PDC latency of: roundtrip latency + external device latency (if any, can be negative).

grymmjack wrote:How does this work in Live? In Reaper? etc? Is there some way the hardware can report the latency to the host?
As M-Prod said, there are several ways, depending on your DAW, none of them completely automatic. You have to test for FX device latency using a Ping/latency checker (convenient), or a click-based loopback recording (100% accurate). Logic and Cubase both have a (ping) latency checker.

The manuals for some outboard FX also list device latencies. If so, you could simply enter these into the hardware FX plugin's delay/offset.
Logic X, El Cap 10.11.3, Mini i7, Live, Reaper, Bitwig (demo)

Clicks at +100 samples: 44.1k / 48k (wav)

Post

Wow thanks for your thorough explanation. Now, I wonder, if I have a hardware analog synth connected via midi and play a midi clip from my daw, should the 'normal' pdc be enough for this to run in sync (assuming that the sound is generated with zero latency and the din cable latency is negligible)? And if it should but doesn't, is this is technically speaking an error in the round trip and not an external instrument latency?.
And what I explained in looking at the waveforms, is that similar to what you call a click based loop back recording? That is I connect the out and in of your soundcard, record a click and manually measure the latency I'm the timebar?

Post

Sorry for the slow reply. Busy week…
M-Prod wrote: … if I have a hardware analog synth connected via midi and play a midi clip from my daw, should the 'normal' pdc be enough for this to run in sync ...
At the moment, with my MIDI interface, Bitwig is sending MIDI note on messages that are completing approximately 2.6 ms ahead of Bitwig's timing grid (see screenshot below).

I have a hardware sampler which has an average MIDI response time of 4 ms, which means MIDI sent a roundtrip earlier would not be quite early enough to get best alignment. On average, the audio coming from my sampler is 1.4 ms late in Bitwig, with even later audio for above average MIDI response times (6+ ms). I need to send the MIDI early by a roundtrip + 1.4 ms:

The reason why the Hardware Instrument device needs a +/- offset...Image
(from this thread: Hardware Instrument - MIDI Mis-Aligned when Software Monitoring)

So to answer your question, yes, in Bitwig, falsely reporting a 'normal' roundtrip of latency is just enough to get your external synth in sync. It's enough for rough alignment, with nothing badly out of sync.


Using a latency fixer plugin, and therefore PDC, to *hack* Bitwig's Hardware Instrument plugin isn't normally how external instrument plugins work. They usually send the MIDI a roundtrip earlier, rather than delay/pause other audio streams using the PDC system. Typically, external instrument plugins are for software monitoring a synth (i.e. via Bitwig).

When using a latency fixer plugin after Bitwig's Hardware Instrument plugin (for monitoring synths via Bitwig), you are increasing latency everywhere else by a roundtrip, because you are reporting (PDC) latency that doesn't exist. This causes all other audio/tracks in Bitwig to be delayed/paused by PDC.

With all other DAWs, their hardware instrument (aka external instrument) plugins send the MIDI a roundtrip earlier - they don't delay audio or increase latency elsewhere in your DAW.


RE: Latency fixer plugin + Hardware FX plugin

However, when using a latency fixer plugin after Bitwig's Hardware FX plugin, you are reporting latency that does already exist. You are not increasing your latency when using a latency fixer to fix Bitwig's Hardware FX plugin. You're just reporting the existing latency that the plugin is failing to report to Bitwig.

But, a timing adjustment is also needed on Bitwig's Hardware FX plugin. External FX have varying processing latencies too.

M-Prod wrote:(assuming that the sound is generated with zero latency and the din cable latency is negligible)?And if it should but doesn't, is this is technically speaking an error in the round trip and not an external instrument latency?.
No external synth has zero latency. The lowest MIDI response time I've seen is around .5ms. Typical average MIDI response time is 2-4ms. Sometimes up to 6-8 ms. Sometimes consistently low at 1ms.

If there's an 'error in the round trip', it's caused by incorrect reporting of latency by your driver. And yes, this can cause further alignment errors because your DAW will be using an incorrect latency figure when scheduling the MIDI clip's timing via the Hardware Instrument plugin.

M-Prod wrote:And what I explained in looking at the waveforms, is that similar to what you call a click based loop back recording? That is I connect the out and in of your soundcard, record a click and manually measure the latency I'm the timebar?
Yes. It's pretty much the same as Live's Driver Error Compensation tutorial. But the procedure (and audio source) in Live's tutorial isn't accurate enough for me.

Look at the 'Click' on the top right of the screenshot I posted above. It's a single-sample click placed at 1.1.1.00 […] on Bitwig's arrange/timing grid. It's easily the most accurate way to measure latency if you have an accurate waveform display or sample editor - Live & Bitwig's waveform display aren't accurate enough IMO.
Logic X, El Cap 10.11.3, Mini i7, Live, Reaper, Bitwig (demo)

Clicks at +100 samples: 44.1k / 48k (wav)

Post

Wow TeePee, Thanks a bunch for taking the time to clarify all this. Cheers!!
(busy week here too..;-) )

Post Reply

Return to “Bitwig”