11 components are scalar (single output) functions. Most of them act as filters that modulate or remap the incoming values. They also provide basic building blocks for implementing your own algorithms and formulas. In many cases, the component's name is the calculation performed by the component.
An essential in-depth discussion of ArtMatic structures Trees and components is found in ArtMatic Designer References and in Building trees. ArtMatic script function : discussion :
In the discussion below, x signifies the tile's input value. It is often useful to insert 11 components between other components (and at the end of the tree) in order to adjust individual value 'streams'.
11 Set Constant
parameters :
A : value (-16.0 : 16.0) E9 options
This component returns a constant value set by parameters regardless of the input value. The options popup provides three interpretations of parameter A: direct value, 1/value, angle in degree. When direct value is selected, the output value is the setting of parameter A. When the 1/value option is used, the output is 1 divided by the parameter A value. When the angle in degrees option is selected, parameter A is treated as a value in degrees, and the output value is the equivalent value expressed in radians.
+ the packing component.
return a single constant value
return a single constant value in the unit range -1 : 1
Defines a Color, returned as a packed RGB vector. In that case the slider will range 0-1 and the UI will display the corresponding color
Defines a normalised vector (magnitude==1) using the 'x','y' and 'z' parameters.
Returns the Voyager sun light direction as a packed 3D vector.
With the sun light vector we can compute the sun coordinates in the sky dome easily. Note the sky dome is a sphere of Pi*2 radius. The constant "Packed VY sun light vector" has a magnitude parameter that shall be set to Pi*2 (maximum) so this will give the center of the sun projected on the sky dome. Subtract it from the input coordinate and you get a vector in sun coordinates where zero is the sun center.
That way you can create any shaders for the sun easily.
Returns the Voyager camera eye coordinates. You may use this vector in Voyager for cool special effects like terrains features or objects/lights that will move along with the camera. Subtract this vector to an ArtMatic DF object coordinates to ensure the object position is relative to Voyager camera position.
The eye position is also available in unpacked form with the 13 Set Constant
component.
Defines a RGBA Color returned as a packed RGBA vector. In that case the RGB sliders will range 0-1 and the UI will display the corresponding RGB color. The alpha can be set from -1 to 1 for more flexibility.
11 Math tools #
ArtMatic script function :
parameters :
No parameters.
discussion :
This is an advanced level component for implementing mathematical equations or optimizing the performance of a complex structure tree. This component performs a mathematical operation selected with Parameter A on the input. Parameter A should not be animated since it is a selector that determines what operation this component performs. When you move the parameter slider, the Tool Tips region will display the operation that corresponds to the slider value. Some of these (like sin) have equivalent components with more parameters.
Functions that can be used as limiting envelopes use parameter B for scaling. Using parameter B essentially gives control over the envelope size. This functionality is useful when you want to limit the output of another component by multiplying the results. This parameter (B) applies to gauss: exp-x*x, clamp unity, cubic unity, and cubic unity in x-.
In some cases, there are other 11 components that implement version of this function. When that is the case the this component's version (Math Tools #) will be fastest as it is optimized for speed. For instance, if you need a super-fast sin(x) transform, use this one. The normal sin(x) has more parameters, but that flexibility comes at the cost of computation speed.
The available functions (available either from the Algorithm popup or parameter A) are:
Note : Use the 'Utility function plot" tree to see the plot of each function.
11 Ax+B
ArtMatic script function :
parameters :
A : Scale (-20.0 : 20.0) E9 options
B : Offset (-32.0 : 32.0) E9 options
discussion :
This linear scaling component multiplies the input with parameter A then adds an offset (parameter B). It is nice for adjusting the contrast and level of a system. When the input is packed it will process the RGB channels and return a packed vector of same dimension.
In E9 Parameter options are now settable for each parameters.
When 'direct value' is selected, the output value is simply the setting of parameter A.
When the '1/value' parameter option is used, the output is 1 divided by the parameter A value.
When 'angle in degrees' is chosen, parameter A is treated as a value in degrees and the output value is equivalent value expressed in radians. The angle in degrees option is convenient for multiplying by Pi (180 degrees) or Pi/n. The range of 'Offset' parameter goes then from -180 to 180.
The option 'semitones' is useful for sound synthesis. It sets A to exp(A*log(2)/12) which is the ratio of a temperated scale semitone A. By scaling the input of a wave tuned to default you can transpose the pitch by semitones with zero being the fundamental, 2 one tone above, -3 a minor third below. A needs to be an integer to obtain a real semitone frequency. Of course the tuning will be relative to the fundamental frequency, so make sure it is set to a known value (Preferences dialog gives the tuning of a sine at frequency 1 in semitones where A0 is 441 hertz).
11 Offset (x+A)
ArtMatic script function :
parameters :
A : Offset (-64.0 : 64.0) E9 options
discussion :
Adds a value supplied by the Offset parameter to the incoming value. When the input is packed it will process the RGB channels and return a packed vector of same dimension.
This component has various parameter options to adjust the range or nature of the offset: direct value, 1/value, angle in degrees, value *10 and value *20, value /10 and value /20.
The last options are handy for larger or smaller displacements. When 'angle in degrees' is chosen the range of 'Offset' parameter goes from -180 to 180, which is -Π to Π.
11 Reverse : A - x
ArtMatic script function :
parameters :
A : Level (0.0 : 20.0) E9 options
discussion :
This component revert the direction of the input values. When A is zero, this component just returns the negative of the input.
There are various parameter options to adjust the range or nature of parameter A: direct value, 1/value, angle in degrees, value *10 and value *20, value /10 and value /20.
For example to obtain exactly Π-x you will set the option to "angle in degrees" and use 180 for parameter A.
11 Inverse: A/x
ArtMatic script function :
parameters :
A : Amplitude (-10.0 : 10.0) E9 options
discussion :
A/x returns the inversion of the input scaled by A. Note that with x close to zero the output will tend to infinity.
11 Abs x
ArtMatic script function :
parameters :
A : Offset (-32.0 : 32.0) E9 options
discussion :
Returns the absolute value of the input (i.e. it strips the minus sign from the input) plus the value of parameter A.
When applied to a space coordinate, Abs X will create a mirror symmetry.
The various options allows to orient the mirroring and change the range of the offsets parameters.
Formula: |x| + A or A -|x| depending on mirror orientation.
11 Smooth Abs
ArtMatic script function :
parameters :
A : Smoothness % (0.4 : 8.0)
B : Offset (-32.0 : 32.0) E9 options
C : Phase (-10.0 : 10.0) E9 options
discussion :
This is a modified version of the absolute value function which is smoothed near the origin.
'Smoothness' controls the degree of smoothing while 'Offset' offsets the result after the absolute value. The 'Phase' parameter, introduced in ArtMatic Engine 8.0, offsets the input prior the absolute value. This is often handy to adjust the position of the mirror if the input is not balanced. The various options allows to orient the mirroring and change the range of the offsets parameters.
Formula: smoothAbs(x+C) + A or A -smoothAbs(x+C) depending on mirror orientation.
11 A - Abs(x)
ArtMatic script function :
parameters :
A : Size (0.062 : 4.0)
B : Offset (-8.0 : 8.0)
C : Scale (1.0 : 16.0)
discussion :
Similar to mirror below A- Abs X floor the result to zero so the output is positive only.
11 Mirror
ArtMatic script function :
parameters :
A : Scaling (0.0 : 4.0)
B : Offset (-32.0 : 32.0) E9 options
C : Smoothing % (0.0 : 4.0)
discussion :
A symmetry component that creates a mirror of the input values. The Offset parameter moves the mirror axis. Parameter A scales the output value and should be kept at 1 for a true mirroring.
Formula: if (x>B) then y = 2 * B - x
11 Gaussian
ArtMatic script function :
parameters :
A : Scale (0.0 : 128.0) E9 options
B : Phase (-16.0 : 16.0) E9 options
C : Amplitude (0.0 : 8.0)
discussion :
The Gaussian tile returns a bell curve. The output of a Gaussian function at 0 is 1 and approaches 0 when A(x+B) is greater than 2. To increase the width of the bell curve, decrease parameter A. The curve is symmetrical around x=0.
Formula: C exp(-X2) where X is A(x+B), or Ce-Axx
11 Plateau
ArtMatic script function :
parameters :
A : Slope (0.031 : 8.0)
B : Size (-4.0 : 20.0)
C : Amplitude (-8.0 : 8.0)
discussion :
Plateau is a gaussian-type filter with an extended plateau on either side of 0. It is useful for delineating symmetrical shapes and creating edge effects. See the file Flying Rectangles to see how plateau can be used to provide rounded corners. Slope determines the sharpness of the plateau edge. Size determines the plateau width. 'Amplitude' is a multiplier that sets the plateau height.
11 x squared
ArtMatic script function :
parameters :
A : Amount (0.0 : 1.0)
B : Scale (1.0 : 32.0)
discussion :
Another mathematical primitive that returns x-squared. When the amount parameter is set to the maximum, the output is the input-value squared for input values above 0 and 0 for input values below 0. Otherwise, amount blends the unfiltered input value with the squared version. The 'Scale' parameter is applied to the input value before it is squared.
Formula: mix(x , x>0 ? Bx^2 : 0, amount)
11 x power A
ArtMatic script function :
parameters :
A : Power (0.125 : 64.0)
discussion :
This component provides non-linear remapping of values. With the power parameter set to the minimum, you can get useful discontinuities such as well-defined islands and borders (depending on the input). The range of the output in respect to 'Power' is from the eighth root of x to the 64th power of x.
High power are handy for metallic shaders.
Formula : BxA
11 A power x
ArtMatic script function :
parameters :
A : A (0.0 : 10.0) E9 options
B : Amplitude (0.0 : 2.0) E9 options
discussion :
This tile provides another basic math building block that returns the parameter A raised to x (input) power. When A is 1 the result is constant 1 while A<1 reverse the slope of input.
Note that when A is set to e (2.7182818284) the function is equivalent to exp(x);
Formula : B Ax
11 C Log (Cx+B)
ArtMatic script function :
parameters :
A : Amount (0.0 : 1.0)
B : Offset B (0.0 : 2.718)
C : Scale C (0.062 : 4.0)
discussion :
This filter applies the natural log to the input. It is good for decreasing the output range of functions that go to infinity. The amount parameter determines the steepness of the output curve.
Note that negative input are clamped to (1/80000) to avoid infinities (log goes to -inf at 0 and is undefined in negatives).
Example : 2*log(0.5x)
11 Cubic polynomial
ArtMatic script function :
parameters :
A : A (-10.0 : 10.0) E9 options
B : B (-10.0 : 10.0) E9 options
C : C (-10.0 : 10.0) E9 options
D : D (-10.0 : 10.0) E9 options
discussion :
Available starting E9 Cubic polynomial implements cubic equations (polynomials of degree 3) of the form Ax^3+Bx^2+Cx+D, (A,B,C,D being constants)
Example : Libraries/Examples 9.0/Plot11 #cubicpoly.artm
Script language example : 2x^3+3x^2+x+0.5 <=>Cubic_polynomial(X) with parameters (2 3 1 0.5)
11 Envelopes #
ArtMatic script function :
parameters :
A : Peak point % (0.0 : 1.0)
B : Decay time % (0.0 : 4.0)
C : Amplitude (0.0 : 8.0)
discussion :
This component creates an envelope with a given attack and decay with various shapes. Values outside of the envelope range are mapped to zero.
Thus Envelopes outputs a signal that always starts and ends at zero.
This component can serve as a nice contrast or surface contour control. It can also serve as an envelope filter for sound design when multiplying its output with the sound waveform.
The 'Amplitude' essentially sets the height of the saw envelope. As an envelope is often used to shape another signal 'Amplitude' is often left at 1.
the Slope or 'Decay time' 'parameter sets the decay length. 'Peak point' or offset sets the attack time.
The Right Slope parameter (A) may have a value less than 0. A negative slope provides a gradual attack and a rapid decay rather than the a quick attack and slow decay.
In general the algorithms maps the interval 0 : 1 to the envelope and sets elsewhere to 0. All curves are continuous except saw which is linear.
Note the Amplitude scales also the frequency so you can have the envelope works on the range 0-3 if you set it to 3.
Some decay time (oriented saw and impulse) can be longer than the 0-1 window.
Impulse envelope with a peak at 0.1 and a 0.45 decay time.
11 Power slope
ArtMatic script function :
parameters :
A : Size (0.125 : 8.0)
B : Phase (-10.0 : 10.0) E9 options
C : Power (0.125 : 16.0)
D : Amplitude (-8.0 : 8.0)
discussion :
An exponential curve with a step function-like effect except that it is continuous with rounded edges near the 'step".
This function, when used at the final stage of a system, tends to make the image very high contrast -- black and white rather than shades of gray, for example.
The output ranges 0 -amplitude
11 A(1-exp(-x))
ArtMatic script function :
parameters :
A : Amplitude (0.125 : 8.0)
discussion :
This component filters the input with an inverted Gaussian curve.
It provides a convenient way to smoothly clip values that approach infinity, as high negatives or positives input values will map to 0;
11 A/(xx+B)
ArtMatic script function :
parameters :
A : Amplitude (-10.0 : 10.0) E9 options
B : Offset (-10.0 : 10.0) E9 options
discussion :
This component, changed in ArMatic engine 8.06, is similar to Gaussian in the sense the result is symmetric and its maximum occurs when x is zero. It has sharp spike around origin and the fallout is a good approximation of physical system that fades according to the inverse square power of the distance. Thus it is often applied to a 21 distance function to get lights effects.
In E9 the calculation A/(x^2+B), incorporating the old -1 into the parameter value (old formula : A/(x^2+B-1)).
11 Split & stretch
ArtMatic script function :
parameters :
A : Amount (-32.0 : 32.0)
B : Offset (-16.0 : 16.0)
C : Smooth (0.0 : 1.0)
discussion :
This handy component divides the input about 0 and pushes apart the positive and negative values. It is very useful for modeling shapes. For example, insert an instance of this component before both the left and right inputs of a circle, and the result is a rounded rectangle.
11 Sin x
ArtMatic script function :
parameters :
A : Amplitude (-10.0 : 10.0) E9 options
B : Phase (-10.0 : 10.0) E9 options
C : Frequency (-10.0 : 10.0) E9 options
discussion :
This component returns the sine of the input which renders its output periodic (cyclic). It is the basic primitive for pitched sounds and any periodic phenomenon. It can be used for sound creation, wood-type textures, zebra patterns and much much more.
sin has a natural period of Pi2. You may want to use the Frequency parameter along the E9 option value*Pi to match a period multiple of unity.
Example : Libraries/Examples 9.0/Sinx In Unity.artm
Script example: modulate the phase with time
11 Power sin #
ArtMatic script function :
parameters :
A : Frequency (-10.0 : 10.0) E9 options
B : Phase (-10.0 : 10.0) E9 options
C : Power (0.0 : 16.0) E9 options
D : Amplitude (0.0 : 4.0)
discussion :
This periodic component is useful for creating banding effects and for adding harmonics when in Sound mode. It is equivalent to passing the sin output through a power filter. 'Amplitude' scales the output amplitude while 'Frequency' scales the input.
Formula: (sin (x*A+B))^C.
11 Tile wave
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 16.0)
B : Phase (-16.0 : 16.0) E9 options
C : Frequency (0.0 : 1.0)
discussion :
A non-symmetrical sawtooth wave. Very handy for creating repetitive patterns and for creating sound waves. With default parameter values, it repeats the interval bounded by -1 and 1 which keeps the output centered about 0 (essential for musical applications). If you place a Tile Wave component before any other 1D filter, the filter will become periodic (though not necessarily continuous since the ramp drops immediately from its maximum value to its minimum value). For example, if you need a repeating figure of gaussian grains, put a Tile Wave before the Gaussian tile. Tile Wave is similar to modulo but without having the amplitude proportional to frequency.
the Frequency parameter has the usual frequency options settings. In DF modes the frequency adjust the amplitudes to make the transform compatible with DF modeling.so you can use tile wave to repeat an object on a given axis.
Sound tip: Multiply the result with a sine wave and you get rich sounds.
11 Modulo
ArtMatic script function :
parameters :
A : Period (0.0 : 100.0) E9 options
B : Phase (-100.0 : 100.0) E9 options
C : Amplitude (0.0 : 16.0)
discussion :
Modulo returns the modulo/remainder function of input. Applied on x it will create a saw tooth signal that repeats the 0-A interval.
It is very useful when you need to repeat a pattern or create a periodic function. The balanced form can be used for DF modeling when keeping amplitude at 1.
Frequency determines the spacing of the created 'ramps" (by setting the divisor used to generate the modulo). Amplitude is applied at the output stage.
11 Saw waves #
ArtMatic script function :
parameters :
A : Frequency (-32.0 : 32.0) E9 options
B : Phase (-100.0 : 100.0) E9 options
C : Amplitude (-16.0 : 16.0)
D : Smoothness % (0.0 : 1.0)
discussion :
This periodic component returns a triangle wave function similar to a sine wave but with sharper edges. Saw wave is often used in sound synthesis for the richness of its harmonic content. When used on a space coordinate input, the resulting space will feature a periodic mirroring symmetry on the corresponding axis.
The repeats and Folding modes will limit the mirroring of saw to a discreet numbers of mirroring, thus a finite number of repetitions (set by parameter D) are performed. The Repeats and Folding are useful for design, architecture and kaleidoscopic 2D or 3D fractals.
For DF modeling N Fold asymmetry is particularly useful to repeat a zero centered object.

With Repeats (red curve) the result is symmetrical around zero and zero x maps to +-C
With Foldings (green curve) the space around zero is left unmodified zero x maps to 0
Note : since amplitude is related to the period defined by frequency "saw wave" is DF compatible when using non Pi based options with the amplitude at 1.
11 U wave
ArtMatic script function :
parameters :
A : Frequency (0.0 : 16.0) E9 options
B : Phase (-16.0 : 16.0) E9 options
C : Amplitude (-4.0 : 4.0)
discussion :
This component is a useful u-shaped periodic wave based on the absolute value of a sine function.
11 Sinc #
ArtMatic script function :
parameters :
A : Frequency (0.0 : 10.0) E9 options
B : Phase (-10.0 : 10.0) E9 options
C : Amplitude (0.0 : 4.0)
discussion :
This tile has been reimplemented in E9 to support the real Sinc(x) function sin(x)/x.
The old form x*sin(x) is still available using 'inverse' algorithm .
Script example:
11 Sin(Bx)/sin(x)
ArtMatic script function :
parameters :
A : Frequency (-10.0 : 10.0) E9 options
B : Harmonics (0 : 64) integer
C : Amplitude (0.0 : 2.0)
discussion :
This component is great for creating harmonics for structures designed for sound synthesis (when using the Direct Drones synthesis method). The component equation is Sin(Bx)/sin(x). Amplitude determines the output amplitude. Frequency influences the harmonic spacing. Harmonics determines the number of harmonics.
11 Sines cluster #
ArtMatic script function :
parameters :
A : Frequency (-10.0 : 10.0) E9 options
B : Spread % (0.0 : 1.0)
C : Amplitude (0.0 : 2.0)
discussion :
This series generates various sounds based on the integration of 24 sines waves. Nice fuzzy and voicy sounds can be obtained with sines clusters.
11 Tech Waves #
ArtMatic script function :
parameters :
Algorithm slider : (0 : 26) integer
B : Amplitude (0.0 : 16.0)
C : Frequency (0.0 : 32.0)
discussion :
Tech waves is primarily used for creating audio. Parameter A selects between different waveforms with various level of smoothing. The Tool Tip displays the waveform name as you move the parameter slider. The waveforms range from a standard square wave to random waves great for creating interesting noise. There are 3 flavors of smoothness for each oscillator type which is essentially high frequency filtering.
11 x + A sin Bx
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 2.0)
B : Frequency (-16.0 : 16.0)
discussion :
This component modulates (or displaces) the input with a sine function rather than simply returning the sine function.
Formula: x+ A sin(Bx)
11 Quantize
ArtMatic script function :
parameters :
A : Frequency (0.125 : 16.0)
B : Amount (0.0 : 1.0)
C : Smoothness % (0.0 : 1.0)
discussion :
Quantise the input into discrete steps. It turns a gradual gradient, for instance, into a series of color bars as in the illustration below. Use this function to create discontinuous, step-like output. It is great for creating pixelization and color-reduction effects. Quantise is not continuous and not derivable and thus is not advised for ArtMatic Voyager or sound design.
Frequency determines the spacing of the quantisation steps. The Amplitude determines the strength of the quantization. (With a value of 0, there is no quantization; with a maximum value, true quantization is performed.)

The image on the left is the result of applying the Quantise component to a gradual ramp (provided by the Ax+By+C component). The image on the right is the un-quantized image.
11 Smooth Steps
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 1.0)
B : Randomness (0.0 : 1.0)
C : Frequency (0.062 : 8.0)
discussion :
This component is a quantisation function that has smooth transitions between the steps (unlike Quantise which has discontinuous steps). This component is especially useful for designing systems for use with ArtMatic Voyager which dislikes the discontinuities introduced by the Quantise component.
When the Randomness parameter is non-zero, the steps are spaced irregularly, yielding a natural look. This component is often used to create ArtMatic Voyager terrains to achieve eroded terraces such as those shown in the canyon example shown below.

11 Variable Steps #
ArtMatic script function :
parameters :
A : Random Steps soft # (0 : 7) integer
B : Amplitude (0.0 : 16.0)
C : Frequency (0.0 : 32.0)
discussion :
Variable Steps is a randomised quantising (step) function that combines two step sizes with varying degrees of smoothness. Parameter A is used to select the quantising algorithm. This component is especially useful for creating terraced landscapes in ArtMatic Voyager.
11 Sphere
ArtMatic script function :
parameters :
A : Radius (0.100 : 10.0)
discussion :
The Sphere filter yields a spherical profile when applied after the distance component in 2D. In 1D it will yield an arc envelope with values outside the radius clamped at zero.
See the 1D curve with a unit radius in Wolfram Alpha
11 Step
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 16.0) E9 options
B : start (-10.0 : 10.0) E9 options
C : end (-10.0 : 10.0) E9 options
discussion :
Step (E9) implements the standard step function. Input range B(start) to C(end) is mapped into 0:1 with optional cubic or quintic filter (using algorithm#)
Values below B are kept at 0 while value above C are kept at 1
'Amplitude' scales the result to 0 and A range.
Script example: you can call Step implicitly using step(V,start,end) or sstep for the cubic version
vec1 out1 = step(fa,0.5,0.6);
legacy (<=E8) : Cubic clip clamps the input between 0 and 1 using a cubic spline (x*x(3-2*x)) to maintain continuity at the clipping boundaries. 'Offset' is added to the input before applying the cubic filter while 'Slope' parameter scales the input value prior the clamping.
'Amplitude' scales the result so that the final output range will be positive only and between 0 and amplitude A.
11 Clamp (0-C)
ArtMatic script function :
parameters :
A : Contrast (0.0 : 10.0) E9 options
B : Offset (-10.0 : 10.0) E9 options
C : Cutoff (0.0 : 16.0) E9 options
discussion :
This filter clips abruptly the input scaled by contrast when it passes outside of the range from 0 to the value defined by the CutOff parameter.
For a smooth clamping use the Smooth Clamps or the step function.
In E9 the default max value (Cutoff) has been set to 1.
formula : clamp(x*A+B,0,Cutoff)
Script example:
vec1 out1 = Clamp(fa);
11 Smooth Clamps #
ArtMatic script function :
parameters :
A : Floor level (-100.0 : 32.0) E9 options
B : Roof level (-32.0 : 100.0) E9 options
C : Smoothness % (0.0 : 8.0)
discussion :
"Smooth Clamps" provides several clamping functions where the 'floor level' and 'roof level' parameters set the lower and upper limits. These functions are great for limiting any kind of inputs to a specific range.
The script language implicit
11 Contrast
ArtMatic script function :
parameters :
A : Contrast amount (-3.0 : 1.0) E9 options
B : Offset (-4.0 : 4.0)
discussion :
A simple, but very useful, contrast filter. When Amount (parameter A), is set to the maximum, there are only two possible output values (i.e. if this is the last component in a system, the result will be a two-tone image). The Offset parameter controls where the contrast divide is made. When used to control picture luminance values, offset effectively adjusts the overall threshold level. See Concentric dither BW for an example.
11 Semitones Seq
ArtMatic script function :
parameters :
A : Loops (2.0 : 32.0)
B : Phase (0.0 : 64.0)
C : Amplitude (0.0 : 8.0)
discussion :
This component is used to create random note sequences in Sound mode. Generally, this component is connected to one of the time outputs of the Global Input Matrix (as shown below) which causes the notes to vary over time. The output values are limited to semitone values when used in a well-behaved sequence. See the examples provided with ArtMatic.
Example files: QT Mod Seq., Master LFO Test series of examples.
Parameter details
'Loops': The number of loops (notes) that will be created in a given time frame. Larger values result in phrases with more notes.
'Phase': An offset within the random sequence. By changing the phase, you can create more complex musical phrases since the sequence will not simply repeat over and over.
'Amplitude': Determines the pitch range of the notes from which the sequence will be generated.

11 Grains
ArtMatic script function :
parameters :
A : Amplitude (-16.0 : 16.0)
B : Size (0.0 : 1.0)
C : Frequency (0.0 : 8.0)
D : Phase (-32.0 : 32.0)
discussion :
Grains is a non-periodic function that randomly distributes small gaussian-shaped 'grains". It is useful for both graphics and sounds. For graphics applications, use it when you need a series of lines that is not densely spaced. For sound applications, use it to create narrow-band noise that sounds more brassy than white noise or fractal noise.
11 Discrete Random
ArtMatic script function :
parameters :
A : Amplitude (-100.0 : 100.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 16.0)
discussion :
This component returns a random step function of input x. It is not continuous and not derivable and thus is not advised for ArtMatic Voyager or sound design.
11 Linear Random
ArtMatic script function :
parameters :
A : Amplitude (-10.0 : 10.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 16.0)
discussion :
A simple discontinuous random function with linear interpolation. Use this component for creating high order harmonics for sound synthesis or when you need sharp edges.
11 Random
ArtMatic script function :
parameters :
A : Amplitude (-10.0 : 10.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 16.0)
discussion :
This component generates a band-limited and continuous random function. Formula : A Random(B(X+C)). Random is simpler and faster than a Perlin Noise.
11 Periodic Random
ArtMatic script function :
parameters :
A : Amplitude (-16.0 : 16.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 16.0)
discussion :
A periodic (repeating) random function particularly useful for sound applications. It is band-limited and richer than a pure sine wave. The phase parameter adjusts the contour of the random output.
11 Multi Perlin noise
ArtMatic script function :
parameters :
A : Amplitude (-8.0 : 8.0)
B : Octaves (1.0 : 128.0)
C : Frequency (0.0 : 32.0)
D : Roughness (0.125 : 0.750)
discussion :
This component sums a series of perlin noise functions with the frequency doubling for each function in the series. The octaves parameter determines the highest frequency generated. When the octaves parameter is at its maximum (128 which is is 27) there are seven 'octaves" of noise.
Multi Perlin Noise is a band-limited noise function very useful for sound synthesis as the upper frequency limit can be controlled by the octaves parameter.
11 Fractal noise
ArtMatic script function :
parameters :
A : Amplitude (-8.0 : 8.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (-16.0 : 16.0)
D : Roughness (0.300 : 0.600)
discussion :
A 1D version of the fractal noise algorithm. See the descriptions of the higher-dimensional fractal noise components for more information. Besides many graphical applications, Fractal noise can also be used as a sound source to produce 'pink noise" where the amplitude of specific frequencies follow the '1/f' rule. (Unlike 'white noise' which has all frequencies at the same amplitude.). Fractal noise produce a natural and pleasant un-pitched sound. Parameter D, Roughness, controls the fractal dimension. The default 'normal' value is 0.5.
11 Randomize
ArtMatic script function :
parameters :
A : Amount (-10.0 : 10.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 16.0)
discussion :
Randomize displaces input coordinates with a 1D continuous random noise by adding it to the input. 'Amount' controls the displacement amount while 'Frequency' and 'phase' sets the scale and offset of the 1D random noise.
This differs from the Random function which generates truly random values.
11 Derivative
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 2.0)
B : Offset (-2.0 : 4.0)
discussion :
This component approximates the derivative of the function whose output feeds the derivative component. It is often used to emphasizes the 3D aspect of a system. Its output only makes sense when the input values are continuous (i..e. it does not work well with discontinuous & non-derivable functions such as Random Squares or discrete Random).
Note: This component will behave differently when it is in a compiled tree than when it is in the main tree since it uses information other than that which comes in through its input. When this component is used (almost always in the lower part of tree), ArtMatic traverses the tree for the information that it needs to derive the lighting information. As a result, this component can't be used inside of compiled trees since the tree as a whole is hidden from compiled trees. In short Derivative needs to 'see' the tiles above to evaluate the derivative properly.
11 2D Derivative
ArtMatic script function :
parameters :
A : Light Direction dx (-2.0 : 2.0)
B : Light Direction dy (-2.0 : 2.0)
C : Offset (-4.0 : 4.0)
discussion :
Related to the derivative, this function provides lighting and 3D texture effects by scanning the entire tree above it to compute its partial derivatives. Parameters A and B control the direction of the virtual light vector. When A is 1 and B zero the light comes from the left.When B is 1 and A zero the light comes from the top. This component actually looks at the entire tree structure and not just the incoming values. Note the 3D effect it has on a simple 2->1 Grid.
Note: This component will behave differently when it is in a compiled tree than when it is in the main tree since it uses information other than that which comes in through its input. When this component is used (almost always in the lower part of tree), ArtMatic traverses the tree for the information that it needs to derive the lighting information. As a result, this component can't be used inside of compiled trees since the tree as a whole is hidden from compiled trees.
Advanced note for the mathematically inclined: This component approximates the partial derivative along both the x and y axes of the system (dfx and dfy). The result is the dot product of parameters A and B with the approximated partial derivatives over x and y. This components is computationally-intensive as it will make the tree above render several times.
11 Slope #
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 8.0)
B : Offset (-1.0 : 1.0) E9 options
discussion :
This component provides a few algorithms options for calculating the slope of the terrain or 3D field that feeds it. The slope is linked to derivative and a value of zero means the surface is flat. As with the derivative component the 11 slope needs to 'see' the tiles above to evaluate the slope so you can't put it in a compiled tree to evaluate slope of functions located in the main tree.
The 2D Slope modes are meant to be used with 2D systems, while the 3D Slope is meant for volumetric 3D systems.
The mode 3D Slope can be used with 3D terrain to modulate terrain geometry according to the slope of one 3D function. When the Slope is used only for the shading phase when rendering in Voyager use the 13 derivative coming from voyager at no extra cost instead and get the slope by using (1-abs(dy)), dy being the y output of the derivative.
Options:
11 Line shaders #
ArtMatic script function :
parameters :
A : Contrast % (0.0 : 100.0)
B : Width (0.0 : 8.0)
discussion :
11 line offers most of the shading option that the new 21 line offers plus some packed RGBA shaders so you can use the same component for color graphics. See the 21 Line discussion for the various algorithms. Unlike the 21 Line that rotates the coordinates to set the line slope, the 11 Line creates the line at the zero crossing of the input value surface. If you feed a 21 Interpolate using Rotate interpolator before the line you get exactly the same functionality as the 21 line. Connecting the 11 Line to x you will get a vertical line and an horizontal line to y.
The beauty of 11 Line is it will create a line for anything as soon as the input is balanced and crossed zero (+ and - so there IS a zero crossing). So if you feed the 11 line with a Disc profile you will get a circle. The Line will have a steady width when the input is DF compliant and not too distorted. For improving Line quality for contours of surfaces you can use the technique showed in Utility Contour Plot preset as shown in the example
On top of the shaders used by the 21 Line 11 line has also the option to shade them as color half planes, treating the positive side of the line as a fill area for Packed RGBA fill + and the negative side with Packed RGBA fill -. It can also shade the line AND the fill(+) with the Packed RGBA line & fill ago.
11 Compare
ArtMatic script function :
parameters :
A : Value (-50.0 : 50.0) E9 options
C : Output Value (0.125 : 64.0)
discussion :
This component provides a way to compare an input value to a single value or value range. Where the input value matches the selection criterion, parameter C's value is passed out. Everywhere else 0 is passed out.
11 Iterations
ArtMatic script function :
parameters :
A : Multiplier (0.0 : 8.0)
B : Iterations (0 : 500) integer
C : Start Value (-4.0 : 4.0)
discussion :
This component serves two functions. It can force a top-level tree to be looped (calculated several times in succession), and it acts as a counter whose value corresponds to the iterations that have been performed. The behavior is slightly different in top-level trees and in compiled trees.
In top-level structure trees, it forces the tree to be looped the number of times specified by parameter B. In compiled trees (and also in top level trees), it returns the number of iterations that have been performed (multiplied by value of the parameter A 'Multiplier'). In sub-trees, the number of iterations to perform is provided by the compiled tree component's Iterations/Recursion parameter.
In general iteration is used in tandem with a "memory" component that will accumulate iterated values along various logic. To perform a mathematical sum just use a simple memory Add. To render a parametric path of a function you can accumulate each point using 11 memory logic minimum connected to a 41 Distance(U,V) component.
(Example of this technic are given in Libraries/Maths/Parametrics and motion/ folder).
In ArtMatic 8 engine a 'Start value' parameter has been added for systems that requires starting at 1. The legacy behavior was the suite started at 0 which still can be achieved by setting the 'Start Value' to zero.
During each iteration, this component's output value is: (current iteration number* 'Multiplier' + 'Start value'
Clearly if 'Start value' is 1 and 'Multiplier' is 2 you will get 1, 3, 7, 9,... as output values. With the default parameters values you will simply get the iteration number 1,2,3,4,5,etc.
The maximum number of iteration has been set to 256 in ArtMatic Engine 8 (which is the values often used by other iteration tools and Compiled Trees (CTs) ).
Unlike other components "iteration" has no input value and can be seen as a flow control tool.
NOTE: In compiled trees parameter B (iteration numbers) is ignored as the compiled tree component performs the iterations.
Examples can be found in
11 infinity gate/mask
ArtMatic script function :
parameters :
A : Maximum (-1.0 : 256.0) E9 options
B : Minimum (-256.0 : 0.0)
discussion :
This function allows you to create or manage infinities. Infinity has some special characteristics: it is replaced by the Depth cue color in RGB shaded systems) and infinities are treated as transparent in 'packed' mixers and most mathematical operators which provides implicit masking.
11 Memory Add
ArtMatic script function :
parameters :
A : Start Value (-1.0 : 1.0) E9 options
B : Sum Gain (0.0 : 2.0)
C : Auto Gain % (0.0 : 1.0)
discussion :
Memory Add simply adds the new value to the old value. It acts as an accumulator. The 'Start Value' parameter is the initial value which is added to the first iteration. Because the effect accumulates over the iterations, you may sometimes want to set the Start Value to a low value so that the system doesn't attain large/max values everywhere. 'Sum Gain' scales the output. Memory Add is basically a summation tool.
When 'Auto Gain' is set at 1 the weight will be calculated using the context iteration max to keep the sum independent of the iteration number. Lower values will blend with the 'Sum Gain' setting.
Infinities are discarded and treated as transparent.
Recursion formula : memx= x+ memx with 'memx' being the accumulated output value.
11 Memory Fractal Add
ArtMatic script function :
parameters :
A : Power slope (0.062 : 2.0)
B : Sum gain (0.0 : 2.0)
discussion :
Memory Fractal Add is another summation tool where the weight of each addition depends on the "power slope" parameter and iteration number.
At "power slope" 1 the sum has an equal weight for all iterations. 'power slope' below zero will fade higher iterations while values above zero will fade out the starting iterations. In many fractal systems when iterations scales the frequencies upward the amplitude is scaled inversely. So to maintain this relationship between frequency and amplitude (1/f noises means amplitude is related to inverse frequency) you will typically set the power slope to 0.5 if the frequency is scaled by 2 for example.
The 'Sum Gain' parameter scales the overall output. The start value of the sum is set at zero.
Infinities are discarded and treated as transparent.
Recursion formula : memx= weight*x + memx with weight is set as pow('Power slope', iteration index).
See also the RGBA version at 44 Memory Fractal Add .
11 Memory Logic #
ArtMatic script function :
parameters :
A : Smoothness % (0.0 : 16.0)
discussion :
This component is only meaningful in iterative/recursive systems. It will accumulate input values according to a logic operation defined by the algorithm choice.
11 Memory Maths #
ArtMatic script function :
parameters :
A : Smoothness % (0.0 : 2.0)
discussion :
This memory component accumulates scalar values using various mathematical functions provided by the following algorithms :
11 Set/Scale RGB
ArtMatic script function :
parameters :
A : Red Value % (0.0 : 1.0)
B : Green Value % (0.0 : 1.0)
C : Blue Value % (0.0 : 1.0)
discussion :
This component associates a RGB value to a scalar input to create a RGBA packed vector.
If the input is a packed RGBA stream SetScale_RGB will multiply the parameter color with the input RGB, thus you can use it to recolorise incoming RGBA.
This component either filters or creates a packed RGBA stream depending on whether the input is a scalar or packed.
This is a convenient way to add a solid color to a DF object or to filter an existing stream's colors.
Simple solid color for DFRM. If the input is a single scalar value, an RGB-A stream is created. The stream's RGB values are the values of parameters A, B and C and the alpha channel is the input value. Typically, this is used to create DFRM colored solid where the sliders 1, 2, and 3 determine the color, and the input provides the object (DF field). Using 11 RGB Alpha Pack is more efficient than using the 14 Set Constant component followed by a 4->1 Pack component.
Packed Input. When the input is a packed RGBA stream, parameters A, B and C scale the input stream's RGB values and the alpha value is passed through unchanged. This is very handy for scaling a set of packed values.
11 Compiled tree (Subtree)
ArtMatic script function :
parameters :
A : Blend (0.0 : 1.0)
B : Recursions # (0 : 256) integer
discussion :
(Available up to E8x, in E9x Clip became clamp)
This filter clips the input when it passes outside of the range from 0 to the value defined by the CutOff parameter. 'Offset' is added to the input before applying the Cutoff.
Resulting range will be positive only and between 0 and 'Cutoff'.
11 Clip
parameters :
A : Contrast (0.12 : 8.)
B : Offset (-8. : 8.)
C : Cutoff (0.25 : 16.)
discussion :
(Available up to E8x, in E9x Clip became clamp)
This filter clips the input when it passes outside of the range from 0 to the value defined by the CutOff parameter. 'Offset' is added to the input before applying the Cutoff.
Resulting range will be positive only and between 0 and 'Cutoff'.
11 Floor
parameters :
A : Floor level (-100. : 0.)
B : Roof level (0. : 100.)
discussion :
(Available up to E8x;)
Constrain the input to values between the Floor Level and the Roof Level. Any value below the Floor Level is assigned the floor level. Any value above the roof level is assigned the roof level.