Advanced latency compensation

Forums

At the moment Qtractor does it for plugins and insert sends in a track. Putting a limiter with latency in a bus is not compensated.

How about including the audio bus that a track is connected to? I think of 2 lines in a track's "plugin"-tab instead of the one that's there now:

[ ] track trackname latency compensation (current value)
[ ] bus busname latency compensation (current value)

In this case it would make sense again to add the latency input for insert sends in buses.

What do you think?

Permalink

yes, we can try that but the "Latency compensation" option should be at each bus plugin-list tab (and not on each track).

however, the latency value for each track should reflect the total latency then: 1) the latency value to the track's own plugin-chain as is currently displayed, plus 2) the latency of the nominal audio output bus (if enabled).

is that it, grosso modo ?

Permalink

Yes, that makes sense.

We won't catch all cases this way, think of aux sends in a track. But I'd say it's a step forward and covers some real world cases.

Permalink

Thanks Rui.

  • For audio tracks it works as expected.
  • The audio of MIDI tracks gets compensated for plugin latency in the track (as before) but not for plugin latency in the audio bus.
Permalink

It's magic: switching latency compensation in the bus has an immediate effect while playback is running. Switching latency compensation in a track needs stopping/starting playback.

Permalink

there's more in v1.6.2.14git.baa7d4 [develop]

  • fixed the MIDI tracks audio bus issue, hopefully;
  • added audio input buses as well for recording latency compensation.

please test && tell, as much as thoroughly you possibly can ;)
thanks

Thx Rui, it's working perfectly with Insert Send/Returns, too.

  1. Determine round-trip latency with standalone LSP Latency Meter
  2. Use this value in the latency box of the Insert pseudo plugin.

I hardly dare to ask but the next step to be state of the art would be an manual but aided latency detection for insert sends with a PING button that does the same as LSP Latency Meter.

And in stage 2 maybe a button on the main pane's top "ping all Inserts" as help function when jack bufsize or pipewire quantum has changed.

Probably a lot of work for a convenience feature, so maybe for Christmas? :)

Permalink

Thanks for this positive outlook, Rui.

Now using external hardware is even more fun. And Inserts can be (ab)used to report a fake latency, so Qtractor can compensate the latency of plugins that don't report it to the host. Complicated setups with additional aux sends to other buses can be handled/aligned manually, e.g. by inserting LSP Compensation Delay if the destination bus of an aux send has a lower latency than the track's audio bus. Of course this can be pushed to extremes and might lead to a delay function within aux sends some day or a whole rewrite of the latency compensation. Until that I am confident that all real world problems are already solvable with Qtractor as it is now.

Add new comment

The content of this field is kept private and will not be shown publicly.

Markdown

  • Parses markdown and converts it to HTML.
  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type='1 A I'> <li> <dl> <dt> <dd> <h2 id='jump-*'> <h3 id> <h4 id> <h5 id> <h6 id> <img src alt height width> <strike> <pre> <p> <br>
  • Lines and paragraphs break automatically.

Filtered HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <b> <i> <pre> <img src alt height width> <strike>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
File attachments
Unlimited number of files can be uploaded to this field.
2 MB limit.
Allowed types: jpg jpeg gif png txt doc docx xls xlsx pdf ppt pps odt ods odp zip gz bz2 xz patch diff wav ogg flac ogv mp4 qtz.