S-Curve Editing and Usage

Hey folks,

I was excited to see SCurves in the latest update, and set about immediately hitting a wall in how to use them. I have two separate issues :

  1. As soon as the SCurve CHOP has an input connected, the wonderful intuitive visualizer of the curve disappears, which makes further refinement of the curve a bit abstracted and non intuitive. Sure, you can disconnect and reconnect the CHOP and make your adjustments, but boy is that a pain.

Is there some way of either keeping that graph display locked (I think the answer is no), or creating a second CHOP that somehow references the ā€˜graphā€™ version, which is then used to pass the data down stream? (I believe there is, but Iā€™m hoping its simpler than "individually copy a reference from/to each parameterā€¦)

The same issue can be experienced with the standard Trigger CHOP too.


  1. For lack of a better way of putting it, is there a simple way of triggering the SCurve?

I had hoped it would behave not unlike the trigger, but that seems incorrect. By default it seems to be locked to the timeline. Iā€™ve found that you can feed its input source a value between 0 and 1 to control the playthrough (there is no info on the WIKI of what the intended usage of the input isā€¦)

In this case, a triggered Timer CHOP sets the length of time the curve takes to play. This seems redundant or superfluous, given that thereā€™s a ā€œlengthā€ parameter in the SCurve CHOP itselfā€¦

I feel like Iā€™m missing somethingā€¦ so rather clumsily, I might ask, how was this intended to be used?


Including a screenshot and a .toe file to illustrate everything noted above.

Many thanks!

-Casey
curves.4.toe (5.36 KB)

Itā€™s just a shape generator like the Pattern CHOP. Why donā€™t you pass it to a Lookup CHOP with the S Curve CHOP as the second input, and a 0-1 index CHOP (Trigger or Constant or LFOā€¦ for example) as the first input? That way you can still see the curve.

I better make some OP Snippets and wiki help for it.

1 Like

@greg

Wicked man.
I understand this immediately as an an awesome solve for issue 1, and Iā€™m PUMPED!

Though Iā€™m still having trouble wrapping my brain around how to put the SCurve (or any generated shape like you say really) into practice. It could be that Iā€™m just not well versed enough in the Sweet 16 CHOPS, and so donā€™t fully grasp the general go constructions of nodes to achieve certain basic general thingsā€¦

Iā€™ll poke through the OP Snippets more, definitely havenā€™t spent enough time in there.

Really cool thanks!

-Casey

If you have values coming in for a channel that are say between 1.5 and 3.5, and you want to limit them to be between 2 an 3, without hard-clamping them (as you would with a Limit CHOP). you would use an S Curve with a Lookup CHOP to soft-limit them to between 2 and 3.

2 examples here.
example1.tox (1.77 KB)

Cool. This is an interesting, thanks for the illustration.

If I understand correctly, it seems that the example you describe could be similarly achieved by using a math CHOP setting the input/output ranges to similar values? The graph ends up being exactly the same if the SCurve is made linear (ie; a simple ramp).

Why would someone use the SCurve and Lookup CHOPS as opposed to the adjusting the range on a Math CHOP?

I could imagine its because of the additional controls you have in shaping the incoming data via the SCurve propertiesā€¦ but if theres something else, thatd be helpful to understand.

In any case, this is all great and has been super helpful. Much appreciation!