Easiest way of adding 'Ease in Ease Out' to camera animations in GL


    Aug 10 2007 | 8:19 pm
    Hello
    Im trying to find a good way of removing the linear look to
    animations in GL that are using bline.
    Id like to be able to do something like in After Effects and add an
    Ease In to the beginning of my bline and an Ease out (usually called
    Easy-ease) to the end.
    Im having a long/shitty week, anyone want to give me a hand?
    Id like to start on the numbers i provide, and end on the numbers I
    provide, just, not be so er.. *computer-ish* with those in between,
    make it a bit more natural.
    Thanks,
    v a d e //
    www.vade.info
    abstrakt.vade.info

    • Aug 10 2007 | 8:58 pm
      Hi vade,
      I'm not sure if this helps, but I received it from Trond Lossius a
      while back and found it useful:
      and here's one that I built, but never used - I forget why:
      Best,
      bbw
    • Aug 10 2007 | 9:11 pm
      On Aug 10, 2007, at 1:19 PM, vade wrote:
      > Hello
      >
      > Im trying to find a good way of removing the linear look to
      > animations in GL that are using bline.
      >
      > Id like to be able to do something like in After Effects and add an
      > Ease In to the beginning of my bline and an Ease out (usually
      > called Easy-ease) to the end.
      >
      > Im having a long/shitty week, anyone want to give me a hand?
      >
      > Id like to start on the numbers i provide, and end on the numbers I
      > provide, just, not be so er.. *computer-ish* with those in between,
      > make it a bit more natural.
      Hi,
      Hope your week gets better. Here is my list_ease abstraction. In
      general a common ease fn is 2x^3 - 3x^2 on [0, 1]. Nice because it's
      super easy to compute, and has derivatives of 0 at both ends. If you
      wanted to make your fades even less "computer-ish" you could add in
      some filtered noise scaled by the ease fn along the way.
      -Randy
      max v2;
    • Aug 10 2007 | 9:22 pm
      bart woodstrup skrev:
      > Hi vade,
      >
      > I'm not sure if this helps, but I received it from Trond Lossius a
      > while back and found it useful:
      >
      > #P...
      oh wow, this is über-useful!
      Thanks for sharing.
      Andreas.
    • Aug 10 2007 | 9:56 pm
    • Aug 10 2007 | 10:02 pm
      Sorry, I meant - Randy -, Can you tell its been a long week? (sigh)
      Thanks again.
      v a d e //
      www.vade.info
      abstrakt.vade.info
    • Aug 10 2007 | 10:13 pm
      You're welcome, I'm still working my ways through the solution to edge
      blending you posted the other day, so it's nice to be able to provide
      something back.
      I have another patch that might interest you as well. It's an
      alternative line-approach. Similar to bline in that it updates whenever
      banged, but similar to line in that ramping from a to b happens in a
      fixed amount of time.
      The idea have been to have ramps happening in a fixed amount of time,
      but providing as "fresh" values as possible along the way to jitter
      hopefully giving as smooth transitions as possible, while maintaining
      control over the perceived time that a transition takes, so that not
      everything takes twice as long on a slower computer.
      I'm eventually panning n implementing all of this as ramp modes in
      Jamoma, but haven't gotten around to it yet.
      Best,
      Trond
      Save as tl.bline.help:
      Save as tl.bline.pat:
      vade wrote:
      > Thank you Rnady and Bart (and Trond) very much. This has been
      > illuminating. Randy, the ease function is perfect for what I need and I
      > can easily adapt that to bline with a JS.
      >
      > ill hopefully post something back to you all shortly.
      >
      > Thanks for making my day less shitty :)
    • Aug 11 2007 | 12:44 am
      Here is a js + helpfile for a bline helper that creates 'n' ease in
      and ease out steps for bline automatically for you.
      I think this is actually really helpful, and easy to drop in place
      between a current message and bline. This will be included in my next
      v001 release, but er, let me know what you folks think. Thanks again
      folks for the help.
      save as v001.lib.easyease.js
      ---
      // attempt to take a simple bline message like 0, 10 5000 (go from 0
      to 10 in 5000 bangs) and make it into a nice interpolated event.
      outlets = 0; // one outlet that goes to bline
      var ease = 10; // 'interpolation steps
      var initial_value = 0;
      var dest_value = 100;
      // typically we send messages such as 0. , 10 5000, which is actually
      two messages to this js.
      // we handle the first message by simply passing it through.
      // the second message is where we do our easing.
      function list(a)
      {
      if(arguments.length ==1)
      {
      initial_value = arguments[0];
      outlet(0, arguments[0]); // just pass it through
      }
      else if(arguments.length == 2)
      {
      // build an array that has 'ease' number of elements in it * 2 (one
      for destination one for num of bangs).
      var output_to_bline_array = new Array(ease * 2);
      dest_value = arguments[0];
      increment_bangs = arguments[1]/ease;
      var output_to_bline = "";
      // our ease functon is 2x^3 - 3x^2 - we approximate a smooth curve
      by iterating n times. ease is the number of times we iterate.
      for(i=1; i {
      // x ranges from 0 - 1.
      x = i/ease;
      // this applies our ease function
      temp = ( (Math.pow( (x) , 3.0)* 2.0 ) - (Math.pow( (x) , 2.0) *
      3.0) ) * -1;
      // unscale from 0 1 to our original size
      scaled_temp = scale(0, 1, initial_value, dest_value, temp);
      output_to_bline_array[(i - 1) * 2 ] = scaled_temp;
      output_to_bline_array[(i - 1) * 2 +1 ] = increment_bangs;
      //output_to_bline += scaled_temp+ " "; // unscaled
      //output_to_bline += increment_bangs + " ";
      //outlet(0, scaled_temp, increment_bangs);
      }
      //post("ease size is "+ ease, "output_size is " +
      output_to_bline_array.length);
      outlet(0, output_to_bline_array);
      }
      }
      // scaling function. like zmap n shit
      function scale(a, b, c, d, x)
      {
      return (x -a) * (d -c)/(b -a) + c;
      }
      // how many iterations do we want to make ?
      function setease(x)
      {
      ease = x;
      }
    • Aug 13 2007 | 9:00 pm
      this looks all very interesting...but I can't get the js to work - methinks it's a problem w/ line breaks. can you post as attachment(s)?
    • Aug 13 2007 | 10:39 pm
      I "fixed" it after it came through my email. Let me know if there are
      any problems.
      Thanks,
      Keith
      On 8/13/07, pnyboer wrote:
      >
      > this looks all very interesting...but I can't get the js to work - methinks it's a problem w/ line breaks. can you post as attachment(s)?
      >
      >
      > --
      > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      > The Lifespan
      > 2 oz brandy
      > 1/2 oz orgeat
      > 1/2 oz maraschino
      > 3/4 oz mix of (meyer) lemon and (yellow) grapefruit juice
      > Shake with ice and serve in a Pernod-rinsed cocktail glass
      >
    • Aug 14 2007 | 2:24 am
      I posted a version up on my blog with a help file:
      On Aug 13, 2007, at 6:39 PM, keith manlove wrote:
      > I "fixed" it after it came through my email. Let me know if there are
      > any problems.
      >
      > Thanks,
      > Keith
      >
      > On 8/13/07, pnyboer wrote:
      >>
      >> this looks all very interesting...but I can't get the js to work -
      >> methinks it's a problem w/ line breaks. can you post as attachment
      >> (s)?
      >>
      >>
      >> --
      >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      >> The Lifespan
      >> 2 oz brandy
      >> 1/2 oz orgeat
      >> 1/2 oz maraschino
      >> 3/4 oz mix of (meyer) lemon and (yellow) grapefruit juice
      >> Shake with ice and serve in a Pernod-rinsed cocktail glass
      >>
      >>
      v a d e //
      www.vade.info
      abstrakt.vade.info
    • Aug 14 2007 | 9:49 am
      Hi Lindsay,
      Just wondered if you could could spare 5 minutes for a quick chat
      about a couple of things.
      Cheers
      Jack
      On 14 Aug 2007, at 03:24, vade wrote:
      > I posted a version up on my blog with a help file:
      >
      > http://abstrakt.vade.info/ILOVETHEMAXLIST/v001.easyease.zip
      >
      > On Aug 13, 2007, at 6:39 PM, keith manlove wrote:
      >
      >> I "fixed" it after it came through my email. Let me know if there
      >> are
      >> any problems.
      >>
      >> Thanks,
      >> Keith
      >>
      >> On 8/13/07, pnyboer wrote:
      >>>
      >>> this looks all very interesting...but I can't get the js to work
      >>> - methinks it's a problem w/ line breaks. can you post as
      >>> attachment(s)?
      >>>
      >>>
      >>> --
      >>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      >>> The Lifespan
      >>> 2 oz brandy
      >>> 1/2 oz orgeat
      >>> 1/2 oz maraschino
      >>> 3/4 oz mix of (meyer) lemon and (yellow) grapefruit juice
      >>> Shake with ice and serve in a Pernod-rinsed cocktail glass
      >>>
      >>>
      >
      > v a d e //
      >
      > www.vade.info
      > abstrakt.vade.info
      >
      >
      >
    • Aug 14 2007 | 10:51 am
      OOPS, Please ignore me hitting reply instead of new,
      JK
      On 14 Aug 2007, at 10:49, jack keenan wrote:
      > Hi Lindsay,
      >
      > Just wondered if you could could spare 5 minutes for a quick chat
      > about a couple of things.
      >
      > Cheers
      >
      > Jack
      > On 14 Aug 2007, at 03:24, vade wrote:
      >
      >> I posted a version up on my blog with a help file:
      >>
      >> http://abstrakt.vade.info/ILOVETHEMAXLIST/v001.easyease.zip
      >>
      >> On Aug 13, 2007, at 6:39 PM, keith manlove wrote:
      >>
      >>> I "fixed" it after it came through my email. Let me know if
      >>> there are
      >>> any problems.
      >>>
      >>> Thanks,
      >>> Keith
      >>>
      >>> On 8/13/07, pnyboer wrote:
      >>>>
      >>>> this looks all very interesting...but I can't get the js to work
      >>>> - methinks it's a problem w/ line breaks. can you post as
      >>>> attachment(s)?
      >>>>
      >>>>
      >>>> --
      >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      >>>> The Lifespan
      >>>> 2 oz brandy
      >>>> 1/2 oz orgeat
      >>>> 1/2 oz maraschino
      >>>> 3/4 oz mix of (meyer) lemon and (yellow) grapefruit juice
      >>>> Shake with ice and serve in a Pernod-rinsed cocktail glass
      >>>>
      >>>>
      >>
      >> v a d e //
      >>
      >> www.vade.info
      >> abstrakt.vade.info
      >>
      >>
      >>
      >