The MSG Advanced Editor is a special control Palette that lets you edit and build MSG presets. It provides access to all of the individual modular processors and their associated editable parameters and IO Stream connections that make up the MSG preset.
The screen snap above shows a simple 3 processor MSG preset in the MSG advanced Editor. The preview image in the top left corner shows a preview of the MSG preset being edited. Many (but not all) MSG presets are resolution independent, so the small preview is usually a good indication of what the preset will look like when rendered into a larger canvas. To render the preset into the main canvas you can either drag and drop it on the canvas, or you can switch to MSG operation mode and press the action button. The MSG advanced editor always edits the current MSG preset that is displayed and executed in MSG operation mode.
The list on the bottom left side of the editor above can either display the Processor Chain or the Bus for the preset being edited. The Processor Chain is a list of MSG modular processors that make up the preset. The Bus is a list of Streams that can be connected via IO connections to the individual processors. Streams can be things like images, color gradient, or color palettes.
The area on the right side of the MSG advanced editor is a context sensitive editor for the selected processor in the Processor Chain. It also holds a source library that can be used to add additional processors or Streams to the Processor Chain or Bus respectively.
The example preset is very basic. The AdvTurb processor is used to generate a monochromatic texture. That black and white texture is then mapped through a color gradient with the 1to3GradMap processor to generate a 3 channel color output image. The AdvTurb processor accepts a modulation input so the SetToValue processor is just generating a solid color input modulator for the AdvTurb processor input modulation.
How to edit the processor adjustable parameters and io connections that make up the example MSG preset will be described in detail below.
If you select a processor in the Processor Chain list and then press the Parameter (Parm) tab on the right hand side you will see the individual editable parameters associated with the selected MSG processor. Each parameter has a name, value, lock status, and a number of Temporal Generator (TG) controls. A temporal generator can be thought of as a time varying signal or oscillator that can modulate the parameter value in real time performance or in animations between a min and max value. Locking a specific parameter means that it will not change when the preset is mutated or evolved in a directed evolution session in the Evolution Palette.
If you click a specific parameter value you can then adjust it. As you adjust it you will see the MSG preview at the top left of the editor change accordingly to reflect the new parameter value and it’s effect on the generated preset output.
There are also a few common parameters that can be adjusted interactively with the mouse in the preview image if you hold down the appropriate hot key prior to clicking the preview image. For example, if you hold down the t key and then mouse down in the preview image moving the mouse horizontally will translate adjust the preset (if it support internal parameters for translation). Other hot keys include r for rotate and h for spatial frequency adjustment. The preview image will adjust accordingly in real time as you make these generic interactive adjustments.
Shift hotkey interaction in the preview will just adjust the selected processor in the processor chain editor as opposed to adjusting all of the processors.
IO (Input-Output) Editing
If you press the IO tab on the top right of the editor the IO connections for the processor will appear in a list. IO stands for input-output. Each processor has a specific number of input and output Ports. If a processor just generates an image it will only have outputs. If the processor performs some kind of operation on an input to generate an output then there will also be inputs. Inputs could also be modulation signals that adjust what the processor is doing based on the input values.
The individual IO connections are connected to Streams on the current Bus. As mentioned before, Streams can be images, color palettes, color gradients, etc. Image streams are monochrome, so a color image would be represented with 3 different streams. There are specific Streams for the preset source (R Src, G Src, B Src) and output (R Out, G Out, B Out). Additional Streams can be used for temporary image buffers. Float image Streams are special intermediate buffers used with some processors like Chamfer or FSA processors.
Each MSG preset can have up to 3 color gradient and color palette streams on it’s Bus. The Grad and Pal tabs on the top right side of the editor can be used to examine and edit these color gradients (Grad) and palettes (Pal). So the display contents of these 2 tabs will not change based on the selected Processor in the Processor Chain on the left side of the editor.
In the screen snap above the Out IO Port connection for the AdvTurb processor is being edited to send the output to the R Out bus stream. The options in the popup are the different Streams currently available on the preset’s Bus.
The Source (Src) tab brings up a source library. If the Processor Chain tab is active on the left side then the source library displayed will be a complete list of all MSG processors. You can drag any of these processors from the source library to the processor chain list. If the Bus tab is active on the left, then you will see a complete source library of Bus Streams. You can drag any of these Steams into the current preset Bus list. Some Streams (like the Source and Output streams) can only be used once in the current Bus. Others (like the Tmp Image streams) can be used multiple times as different temporary buffers.
You can see from the Bus Source Library screen snap above that there are only 4 different Streams on the Bus for the MSG preset shown above. One Color Gradient Stream and the 3 image output streams.