[nama] Re: Latency compensation

  • From: Joel Roth <joelz@xxxxxxxxx>
  • To: nama@xxxxxxxxxxxxx
  • Date: Tue, 1 May 2012 13:19:54 -1000

Hi,

I've been up to some work/play with latency calculation/compensation.
Dividing and conquering has never been so rewarding!

The graph I use is in $setup->{latency_graph}. It is 
the routing graph before inserts and loop devices
are added.

The latency values are in $setup->{track_latency}->{track_name}
with the maximum for a group of siblings (predecessors of
a single track) stored in $setup->{sibling_latency}->{track_name}.

The code is in Latency.pm. I think you will find it somewhat
easy, maybe even fun, to read. :-)

I still need to add code to handle the different types of 
inserts (especially the JACK client case).
I also need to write the code for compensating
latency.

The overall process will work like this:

+ remove existing latency compensation
+ generate and connect chain setup
+ calculate latency
+ compensate latency
+ regenerate chain setup
+ connect as usual

One other note: While looking through the insert code, I see
that only post-fader inserts can provide local effects
hosting for situations where you need wet/dry control.
Perhaps pre-fader inserts should support this also.

Regards,

Joel


-- 
Joel Roth

Other related posts: