Process Modules

Process modules alter, modify, or translate the input to produce a transformed output.


Smooth Slew Delta HiLo Sort4 Max2Range

Octave Semitone FitScale PitchMap Coerce Nudge

Ms2Tempo Tempo2Ms Col2RGB RGB2Col


Smooth

Smooth value, by averaging last (Lag) inputs.

Output:

Out: Processed input.

Inputs:

In: A changing value that will be averaged over time.

Lag: Smooth amount 0 - 127, higher values give more effect; 0=none.

Int: NZ to force output to an integer.


Slew

Slews toward the last received input. This module is useful for automatically changing parameters, such as volume, over time.

Output:

Out: Slewed value, steps toward input.

Inputs:

In: Target for next slew.

Slew: Slew amount; 0 or <0 is instant; higher is faster; may be decimal fraction for very slow slew. Typical slew values are 0.1 to 2.0 in .1 steps.

Int: NZ to force output to an integer.


Delta

Detect any change in input, return signed magnitude of change (delta).

Output:

Out: 0 if no change in input; positive delta if ascending, negative if descending.

Inputs

In: Any changing value.


HiLo

Sort two inputs, always returning the higher input value in the Hi output, and the lower in the Lo output.

Output:

Hi: The higher of inputs 1 and 2.

Lo: The lower of inputs 1 and 2.

Inputs:

In1: Any numeric value.

In2: Any numeric value.


Sort4

Sort four inputs, always returning the highest value input value in the Hi output, and the lowest in the Lo output.

Output:

Hi: Highest of 4 inputs.

2nd: 2nd highest of 4 inputs.

3rd: 3rd highest of 4 inputs.

Lo: 3rd highest of 4 inputs.

Inputs:

In1: Any numeric value.

In2: Any numeric value.

In1: Any numeric value.

In2: Any numeric value.


Max2Range

Convert Max, Min parameters to Range, Offset parameters (swaps Max, Min if Min > Max).

Output:

Range: Range value for given Max, Min.

Ofst: Offset value for given Max, Min.

Inputs:

Max: Max value to convert to Range, Offset.

Min: Min value to convert to Range, Offset.


Octave

Keeps output within an octave range without loosing the chromatic note value. It does this by folding octaves that are higher than the range setting, wrapping them around.

Output:

Out: Note value folded to stay within octave range.

Inputs:

In: Value to be processed.

Range: Octave Range (0 -9), with octave 0 giving a note range of 0-11, 1 giving 0-23, 2 giving 0-35, etc..

Trnsp: Added to output.


Semitone

Folds input to 1 octave semitone (Mod 12 of input).

Output:

Out: Input value folded to semitone (0-11).

Inputs:

In: Value to be processed.


FitScale

Quantize a note value to fit a scale.

Output:

Out: Value quantized to fit selected scale.

Inputs:

In: Note value (0-127) to fit to scale.

Scale: Set to force input to a scale: 0=none, 1=Major, 2=Minor, 3=Pentatonic, 4=Whole Note, 5=Fifths, 6=Ocatves, 7=Major Triad, 8 = Minor Triad, >8=none.


PitchMap

Translate input to internal user settable pitch map. To change the pitch map, click on the blue-label property button on the upper right of the module to get the note translation dialog. Move the sliders to the note values you want to translate. The input range is 0-127, with 24 sliders showing at a time. The horizontal scroll at the bottom of the pop up dialog will change the note view. You can also change the number of In/Out pairs by clicking on the Up/Down control labeled #I/Os.

Output:

Out N: Translated input.

Inputs:

In N: Value (0-127) to be translated.


Coerce

Coerce Raw input to nearest fit of given Val inputs.

Compares Raw input with all Val inputs, and returns the closest fit. Typically used for arbitrary scale translations.

The coercion algorithm returns the first exact match found; if no exact match is found then the first value with nearest absolute difference is returned. The module makes no distinction between compare values being lower or higher than the Raw value, it only looks at the absolute difference; and it always returns the first nearest fit found and ignores any other equal fit values. For this reason, you should place your scale values in an ascending scale.

This module has a user settable number of inputs. To change the number of inputs, click on the blue-label property button on the upper right of the module, and click on the "More" or "Fewer" button on the Inputs tab. You have the option to set custom input labels and tool tips if you like.

Output:

Out: Nearest fit of Raw coerced from Val inputs.

Inputs:

Raw: Raw value to coerce to nearest fit of Val inputs.

Val N: Scale step value to force Raw input to.


Nudge

Translates change in input to an up/down step in output.

This module is intended mainly for converting MIDI inputs such as knobs and sliders that range from 0 - 127 (or so), into a virtual continuous controller.  It also enables you to switch the hardware controllers from one set of software values to another without having the controller jump values (an advantage of continuous controllers).

See the Nudge example patches to see how the module is used to coordinate hardware knobs or sliders with virtual knob and slider widgets.

Output:

Out: Nudged output.  This will be a range of 0 to MaxOut.

Input:

In: Value to be processed.  This will normally be from a MIDI controller input module such as CtrlIn or PolyIn. Output will be nudged up or down, depending on the up/down direction of this input.

Value: Reset value, sent to Out on change or Load.

MaxIn: Maximum input.  Typically set to 127 for MIDI controllers; useful for smoothing action of controllers that do not always reach the full range.  For example if a controller tends to max out at, say, 125, set to this value to give a consistant and smooth controller range of 0-125, while also giving a full output range of 0-127 (or whatever other range desired).

MaxOut: Maximum output.  This is the upper limit of the range at the output; lower limit is 0.

Nudge: Amount to nudge output for each input change.

Int: If non zero, force output to integer values.


Ms2Tempo

Convert milliseconds to tempo.

Output:

Tempo: Tempo of input Ms at 24 ticks per quarter note.

Input:

Ms: Milliseconds to be converted to Tempo.


Tempo2Ms

Convert tempo at 24 ticks per quarter note to milliseconds.

Output:

Ms: Milliseconds for input Tempo at 24 ticks per quarter note.

Input:

Tempo: Tempo to be converted to Milliseconds.


Col2RGB

Convert 24 bit Color value to Red, Green, Blue triplet.  R, G & B ranges are 0-127.

Output:

R: Red value of RGB triplet.

G: Green value of RGB triplet.

B: Blue value of RGB triplet.

Input:

Color: 24 bit color value to be converted.


RGB2Col

Convert Red, Green, Blue triplet to 24 bit Color value.  R, G & B ranges are 0-127.

Output:

Color: 24 bit color value equivalent of the 8-bit R, G & B inputs.

Input:

R: Red part of RGB triplet.

G: Green part of RGB triplet.

B: Blue part of RGB triplet.

 

MusicWonk is Copyright © 2003-2007 by John Dunn and Algorithmic Arts. All Rights Reserved.