Stop and instantly rewind Augustus Loop?

Official support for: expertsleepers.co.uk
Post Reply New Topic
RELATED
PRODUCTS

Post

So, one thing I've been doing with Apple's mostly terrible Loopback looper is recording a chorus loop, stopping it, then overdubbing harmonies each time through the chorus of a song. I'm an unaccompanied folk singer, so verse timings can get pretty free (deliberately so), so I set the plugin to always play from the start.

I'd like to be able to do something similar my AL scripts, but there doesn't seem to be a way to manipulate the tape head position.

I suppose I could do something like:

Code: Select all

function stopTape() 
  setParameter(param.stop, 1.0)
  if getParameter(param.tap) > 0 then
    setParameter(param.tap, 0)
  end
end

local oneshotTimer = nil
function startOneshot(inputLevel) 
  setParameter(param.input, inputLevel)
  setParameter(param.stop, 0.0)
  now = time()
  stopTime = now + getParameter(param.delayLength)
  oneshotTimer = requestTimedCallback(stoptime - time(), stopTape)
end
But it feels like a horrible hack. Is there a better way, or should I just live with the kluge?

Post

Since AL uses a tape paradigm, there's really no concept of 'the start' - it's just a loop. There's no way to move the head position around.

Post

Yeah. Presumably, internally at least, there is some concept of whereabouts in the audio buffer the head is at any given point (or PositionQ makes no sense as a punch out mode). If that were exposed as a parameter, then it becomes possible to have a script keep track of its own start point, but I'm guessing that's easier said than done.

I realise I'm trying to squeeze AL through a Mobius Looper shaped hole here, but here I am in 64-bit world and Mobius is resolutely stuck in 32-bit world. AL appears to be the only scriptable game in town. (And it sounds _great_)

Post

There is a RAM buffer of course, which has a 'current position'. I could expose prodding that, but there would be no guarantees of smooth audio transitions if you start jumping around in the buffer.

Post

Right. For my purposes, I'd be unlikely to have a glitch issue because I'd be jumping about with input and output both set to zero. Being able to trigger a crossfaded jump after 'Inertia Fade' milliseconds would be marvellous, but entirely unnecessary for what I want to do. Who knows what someone else might want to do with the idea.

Post

It seems to work - beta to try here:

https://github.com/expertsleepersltd/issues/issues/117

This is very low level access - use with care!

Post

Thanks so much! I kind of ran out of programming steam over the weekend, but I’ll definitely be looking at this soon!

Post

Hmm… initial testing suggests that a rewind isn’t the way to go: I need to jump forward to the next multiple of the loop length.

I’ll have a script to show off soon, I hope

Post Reply

Return to “Expert Sleepers”