Looper's Delight Archive Top (Search)
Date Index
Thread Index
Author Index
Looper's Delight Home
Mailing List Info

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Date Index][Thread Index][Author Index]

Re: another mobius question




> is there a way to to this with a script? can you delete
> a piece off the end of a loop that's one 8ths per cycle long?

I haven't read the entire thread but it looks like Trim was suggested
which will be the easiest way to delete a piece off the end.  Trim
is similar to Multiply/Record or in EDP speak an 
"unrounded multiply" except that it happens instantly.  

Trim will obey the Quantize Mode parameter, so one approach would
be to set Quantize Mode to Subcycle and then hit Trim End 
a little before the last subcycle.  If you like to keep Quantize Mode
off you can enable it just for Trim in a script.
    
   !name Quantized Trim
   Variable saveQuantize quantize
   set quantize off
   TrimEnd
   set quantize saveQuantize

With a little more work we can make the script always wait until the
beginning of the last subcycle no matter where you are in the loop.

   !name Trim Last Subcycle
   Varialbe lastSubcycle subcycles - 1
   Wait until subcycle lastSubcycle
   TrimEnd

Something to note about this though, is that after the trim the
length of the subcycle changes.  For Example say you start with
a loop that is 2 seconds long and 8thsPerCycle is 4.  When you
run the script the first time the loop will shorten from
2 seconds to 1.5 seconds since 2 divided by 4 is .5. But the
new shortened layer still has 4 subcycles in it so if you run
the script again the trim amount will be shorter.  1.5 / 4 
is .375 so the new loop length would be 1.125.   The amount
of trim will become progressively smaller every time you
run the script.  This might sound cool but is probably not
what you're after.  If you always want to trim an amount
equal to the *original* subcycle length you could do this
with a global variable.  

  !name Trim Last Subcycle
  Variable global trimSubcycleLength 0
  
  if trimSubcycleLength == 0
     #first time here, remember the length
     set trimSubcycleLength subcycleFrames
  endif

  Variable trimFrame loopFrames - trimSubcycleLength
  if trimFrame <= 0
     # we've trimmed down to 1 subcycle, reset the length
     set trimSubcycleLength 0
  else
    Wait until frame trimFrame
    TrimEnd
  endif


Anyone else like to unsubscribe?

Jeff