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!