Horrible unhandled latency -- only while recording?

3 replies [Last post]
jimduchek
User offline. Last seen 5 years 38 weeks ago. Offline
Joined: 2006-06-17
Posts:

Hi all. I'm using a Presonus Firepod connected to a Thinkpad A31p (1.7 ghz P4) w/a Seagate 7200 RPM drive (it's pretty much as fast as a laptop drive gets).

Here's my problem, which has been vexing me for a couple months now. When I'm _not_ recording, latency is fine. Jack reports 11 ms, I believe, which is fine with me. Listening to software monitoring only, everything is fine (and I'm positive that the audio is getting to Ardour, as panning/faders work on what I'm monitoring). Until I start actually recording. At that point, latency becomes about 200ms (unacceptable, basically), and after recording anything, I have to scoot everything I just recorded forward. It's very frustrating and difficult to get anything done, especially because I can't really jog tracks around well enough with my Tranzport, so listening to a drum track after I recorded it takes a good chunk of time.

Jackd is running realtime, all my IRQ priorities are set (and I've dicked around with them a bunch), 2.6.19 with Ingo's RT patches, etc etc. If it's in any documentation that Google can find, I've tried it. I don't believe it's a FreeBob/Firepod issue, as everything works _fine_ while not recording (just as much audio is going in and out). I don't believe it's a disk issue, as the latency doesn't seem to change if I'm recording a single mono track, or 6 tracks at once. I played with the Jack->Latency menu, but it doesn't seem to affect anything whether I set it to 32 or 4096.

ANY ideas? Here's two things I have yet to do:

A> Stick a 'loopback' in and see exactly how long the latency is
B> Try other recording software (rosegarden, etc) to see if it's just an Ardour thing.

I'm fine with using hardware monitoring. Really, if I could just somehow tell Ardour "There's going to be X ms of latency, so scoot everything forward automatically", I'd be fine.

Thanks,
Jim

paul
paul's picture
User offline. Last seen 5 hours 11 min ago. Offline
Joined: 2006-03-16
Posts:

what version of JACK are you using?

when you say the latency changes, could you expand in (a lot) more detail?

please do your tasks (A) and (B) and report back.

funkmuffin
User offline. Last seen 5 years 42 weeks ago. Offline
Joined: 2006-05-03
Posts:

Jim -- As a fellow FirePod user, I can offer some advice.

First off, I never saw a huge latency problem like you describe, but I was frustrated with the "lag" tha I could hear and feel as I played along to pre-existing material.

I gave up on the software monitoring model, and went straight to hardware. Here's how I've set it up:

First, I route my stereo mix (Ardour Main outs) to FirePod outs 3 (L) and 4 (R). This allows me to use the hardware monitoring in the FirePod, which always comes out through outs 1 & 2.

From there, I run 3&4 to a single stereo channel on a little mixer (some Behringer model that cost US$30), and I run 1&2 to a separate stereo channel. Then, use the mix control on the FirePod to only monitor the Inputs, and Voila! Latency-free monitoring for $30!

I go a little futher myself, and send the "live" tracks to outs 1&2, too. That way, I can un-rec-enable the channels I've been recording, turn the Mix knob to the center, and listen back, without having to re-route everything in qjackctl. The mix know then becomes a way to either hear what you've recorded, or what you're recording. Just remember to roll it back when going from playback to recording, as you'll hear the delay.

The key was the decision to go for outs 3&4 for playback, and reserve 1&2 for monitoring at the inputs. You could use any set of outs excepting Main, playback 1&2 or 1&2 (they all get the same signal -- poor design, if you ask me...)

funkmuffin
User offline. Last seen 5 years 42 weeks ago. Offline
Joined: 2006-05-03
Posts:

OH, I just re-read your post, Jim -- are you saying that when you start recording, the _playback_ itself slows down? My setup works because my playback comes out real-time, and I'm monitoring at the inputs, so everything stays in sync.

Is your problem different?