Effect modules come in two flavors, basic and advanced.

Basic effects modules

Basic effects have slots for 4 UI objects, named var1, var2, var3 and var4. With the basic effects API, you can script these UI objects to be either floats, ints, ubumenus or toggles, set their respective names, ranges, and menu options. The script commands are quite straightforward.

Two example basic effect modules:

The GUI created

Advanced effect modules

Advanced effect modules use custom scripts to a thispatcher object to instantiate UI items as needed, should the basic 4 UI objects prove unsatisfactory for the effect.

Inlets and outlets

Effect modules have 2 inlets and outlets respectively.

  • The leftmost (first) inlet recieves either the incoming matrix name, or texture name and any commands originating from the UI.
  • The rightmost (second, last) inlet receives an initialization bang and messages to any scripting needed for the object. This bang triggers the creation of the UI for the object
  • The leftmost (first) outlet outputs either the processed matrix or texture name, or the passthrough output should the effect be toggled off.
  • The rightmost (second, last) outlet sends the scripting information as a symbol to the script parser.

Basic Scripting API Overview

In basic mode, one simply names, types and sets the range for the variables one wants in UI for the effect. For example sending:

var1 contrast 0. 1. f

would hide all but the first basic UI element, name it contrast, typecast it to a float and set its minimum to 0 and maximum to one. Sending:

var 1 contrast 0. 1. f, var2 ubumenu 0 0 u "this is some stuff to go into ubumenu "and this is one entry""

Would make 2 UI elements, the same as above, the second an ubumenu whose contents would be: this, is, some, stuff, to, go, into, ubumenu, and this is one entry.

Advanced Scripting API Overview

Coming Soon.