Login / Register  0 items | $0.00 NewWhat is KVR? Submit News Advertise

Augustus Loop - latency compensation?

stephband
KVRer
 
16 posts since 17 Jul, 2005

Postby stephband; Sat Aug 04, 2007 6:38 am Augustus Loop - latency compensation?

Hi. I love Augustus Loop. Recently I've been playing it live inside of Logic 7.1 with a new group in London (www.myspace.com/theoutsidepeople), but I've been a user for a few years. I've got a feature request...

I sync Augustus Loop to Logic's clock because I have other things happening that need to stay in sync. I send audio to Augustus by playing in time with the click. The problem with this method is that when the loop starts to play back it plays slightly behind the click - there is some latency. So far I've simply minimised it by tightening the audio drivers, but there's only so far you can go.

I wonder if it's possible to implement a latency compensation slider that would start the playback of loops a variable number of samples before they really should start?

Cheers!
Stephen.
os
KVRian
 
1084 posts since 21 Mar, 2002, from UK

Postby os; Sun Aug 05, 2007 6:51 am

Latency compensation as usually implemented is something that can only work in a DAW in 'playback' mode. I assume you need something that works in some kind of live performance mode.

Would the simplest thing not be to get Logic to emit a click slightly ahead of the beat, and play along with that?
amounra
KVRer
 
14 posts since 6 Jun, 2008

Postby amounra; Fri Jun 06, 2008 7:42 pm

So, I'm having the same problem (and have been for some time). I've been using augustus pretty extensively, but I'm about to have to chuck it because of this.

It is not sufficient to play to an advanced click, as then the click is out of time with everything that is prerecorded, not to mention that midi timing is then off (for material that is input via midi, that is).

Musolomo and Sooperlooper both have some form of this feature, it would be absolutely wonderful if there was some sort of offset feature within AL. Right now, its completely unusable for me with percussion material. This should please others, as well, as it would allow one to use the plugin at higher buffer settings in a live situation. Please please please..... :)

As I've told you before, you've built a great plugin. Thank you so much for your work and innovation.
os
KVRian
 
1084 posts since 21 Mar, 2002, from UK

Postby os; Fri Jun 06, 2008 11:10 pm

Before commenting on this too much I want to be sure I understand the source of this latency.

My understanding is that Augustus is getting the loop length right (i.e. the time between repeats is correct), it's just that the time between you playing a note and hearing the first repeat is slightly too long. If so, this is presumably a function of the host's plug-in buffer size.

Can you measure the offset somehow? E.g. record the output with an impulse-like sound going through it (e.g. bass drum) and examine the waveform, and count the number of samples it's late by. Then compare that against your host's i/o buffer and plug-in buffer sizes.

I always say: the first step towards solving a problem is to understand exactly what the problem is.
amounra
KVRer
 
14 posts since 6 Jun, 2008

Postby amounra; Sat Jun 07, 2008 4:20 pm

So, in Live, with buffer set at 256 samples (aprox 25ms latency), there is approx 35-40 ms between AL looped click and actual click. Shouldn't be that much, but there is another problem with Live (specifically) when it is set to input monitor (shows up when recording, as well). Not to mention accounting for any effects that are utilized before input into Augustus.

If you were to implement an offset (on a simple slider, much as musolomo), then it wouldn't matter much which application or combination of effects were before the instance of AL, because the latency could be calculated beforehand and accounted for. This could even be done on the fly, if need be (by assigning a midi control for it).

Of course, I don't know how hard this would be for you to implement. Hopefully not too much, as I'd love to see this instituted. I really love this plug, I'm going to miss it in my set.

I should also say that I realize this is not a problem for most users (probably), and wasn't as much of a problem when I was using a MOTU Traveller. Its been giving me problems, though, and I've had to send it in for repair twice in the last six months. In the mean time, I'm using a Presonus FireStudio, and the latency is not nearly as good on it. Still, the other looping plugins I use (Musolomo and Sooperlooper) give me the ability to set latency compensation within the plugin itself, which makes more sense to me anyway (since the host software really can't account for this....looping plugins don't work in the same fashion that other plugs do, as you've already pointed out). I am still able to use those plugins without a problem by setting the offset manually.

I can see an issue, though, since Augustus is a tape loop emulation. Perhaps I'm missing something....wouldn't it be possible to set the main tap by an offset, so that it is reading the audio stream just a bit earlier than its record position? Or would this require a completely other "virtual" playback head? Dunno. But thanks for getting back quickly. I was trying to figure out a way to write a plugin to deal with this (to put serially with AL), but if you could fix my problem easily within your own plug, that would of course be much more desirable to me.

Thanks in advance, cheers :)

P.S. I may have not adequately answered your question:

"My understanding is that Augustus is getting the loop length right (i.e. the time between repeats is correct), it's just that the time between you playing a note and hearing the first repeat is slightly too long. If so, this is presumably a function of the host's plug-in buffer size. "

Yes, that's correct. I need something to deal with the latency within the host, whatever its source is. It tends to differ, depending upon what FX chains I am using, what audio interface is present, and what software is hosting Augustus. It would be nice if the offset within AL (if implemented) were dynamically changeable, so I could map its value to controller assignments and have it change depending on what FX chains I am running. But I'm not greedy, I'm happy if any kind of workaround can be realized. I generally tend to run latency at 256, and this is acceptable (timing wise) for all the other plugs I use.

Sorry for being so longwinded, thanks for reading :)
os
KVRian
 
1084 posts since 21 Mar, 2002, from UK

Postby os; Sun Jun 08, 2008 1:22 am

So, in Live, with buffer set at 256 samples (aprox 25ms latency)


Is that I/O buffer size (Audio tab of the Preferences) or plug-in buffer size (CPU tab of the Preferences)?

Thanks for the long reply, anyway. I have an idea of how to fix it, though it won't be an especially quick job.

If I were to send you a beta for testing, is an AU version adequate?
os
KVRian
 
1084 posts since 21 Mar, 2002, from UK

Postby os; Thu Jul 17, 2008 12:05 am

I just released a public beta of a new version with a solution for this problem. See the blog at http://www.expert-sleepers.co.uk/

Moderator: os

Return to Expert Sleepers