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
    • 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 >> >> >> >