MetaRamp

MetaRamp TOP

MetaRamp TOP where all keys of a ramp are controlled by parameters that can be referenced or controlled using chops :). Ideal for making dynamic ramps easily. Parameters will sort by position automatically so that they are always in the same order as the keys they control. This behavior can be toggled off by disabling the "Sort Keys" parameter on the settings page (Note: this will cause new keys that are added to be added after the last parameter on the keys page. If you are a little OCD like me I would recommend keeping sort keys on while setting up your ramp initially then you can turn the functionality off for more stable parameter behavior if scripting etc.). 

HINT: Can reference HSVConstant TOP  "Values" parameter to control any of the keys using HSV instead of RGB.

Outputs:
  1. TOP - out1: ramp output.

Parameters:
Keys
  • PositionX: Position of key on ramp. This value is used to order key parameters in parameter window from 0 to 1. It is not recommended you change the position of "Position0" since it will create strange errors in the ramp (disabled by default). You are welcome to change the position of "Position99" but it is read only by default so that you have to make the choice to change it's position consciously. 
  • ColorX: The color of the key that corresponds to PositionX.
  • DeleteX: Delete key (will delete corresponding PositionX and ColorX parameters as well). The read only for these parameters can be toggled on and off via the "Settings" page or by simply right clicking the parameter and selecting "Toggle Read Only". You cannot delete Position0 or Position99 but all others can be deleted.
Settings
  • New Key Position: Initial position for a new key (default=0.5).
  • Add Key: Add new key at the given position to "Keys" page 
  • Sort Keys: Toggle whether to sort keys automatically by parameter name then by position (if two params equal the same positon param name wins). Can also be toggled on and off in order to fix parameter order if they get out of place or are added after key99 (can happen when "Sort Keys" is disabled and you add a new key).
  • Enable Delete: Toggle read only for all delete parameters on "Keys" page. Will not toggle for Delete0 or Delete99 since those keys cannot be deleted and are disabled by default.
Ramp
  • Bound ramp TOP params from "Ramp" page.
Common
  • Bound ramp TOP params from "Common" page.

Motivation:
    We've all been there. You learn about using the ramp and lookup TOPs to color your artwork and you excitedly go and create something with it. Once you get the colors how you like them, maybe you want to animate the value of one of the keys using music or some other control. As soon as you go to drag that chop value over to the ramps parameter window it hits... dispair. You never realized the HSV or RGB parameters for each key on the ramp were different from other parameters until now.
    You rapidly search for an alternative and hack together a rigid system of evaluate DATs that no longer allow you to freely or easily control your original ramp keys. Although this method works, it never felt right for the parametric and expressive design philosophy that is at the heart of Touchdesigner. So I made something I've wanted ever since I learned that trick for coloring a texture and I hope I'm not the only one.
    Maybe it's just me?


Downloads: 203

Created at: 2.1.2022

Uploaded: 7.1.2022
Optimizations:
  • Simplified how I fetch keys by using a script DAT. 
  • Collapsed my three parameter execute DATS (one for each param) down to one with control flow statements.

Additions:
  • Added a "Sort Keys" toggle parameter that gives you the ability to enable or disable key parameter sorting. 
  • Added a out DAT for the ramps keys so people have easy access to be able to convert to chop if needed.  
  • Disabled first key position and made last key read only so it is still editable just restricted to give users more control over their workflows.
Download