line Reference

Generate timed ramp

line

Description

Generate ramps and line segments from one value to another within a specified amount of time.

Examples

Output values in a straight line... and bang when finished

Arguments

initial [number]

Optional

Sets the initial value to be stored in line and the output type for the object (floating-point or integer). If there is no argument, the initial value is 0 and the output type is int.

grain [number]

Optional

Sets an initial value for the grain: the time interval at which numbers are sent out. If the grain is not specified, line outputs a number every 20 milliseconds. The minimum grain allowed is 1 millisecond; any number less than 1 will be set to 20.

Attributes

compatmode [int] (default: 0)

Provides compatibility when importing patches created with versions 7.x and earlier of Max. Set compatmode to 1 to use legacy behavior.

floatoutput [int] (default: 2)

Sets the floating-point output mode for the line object. The default is 2 (auto). Possible values:

0 = 'Off' ( Floating-Point Output off )
Does not output float values. If the initial argument is an integer, the floatoutput is set to off.

1 = 'On' ( Floating-Point Output on )
Outputs float values if specified in the initial argument.

2 = 'Auto' ( Floating-Point Output Auto )
Ouputs float values if distance is <= 1, line does not have a float argument, and step size is < 0.4.

grain [float] (default: 20.)

Sets the grain value: the time interval at which numbers are sent out. The default is 20 milliseconds. The minimum grain allowed is 1 millisecond.

maxpoints [int] (default: 129)

Sets the maximum number of user defined points. The default is 129. To allow a greater number of points, use the maxpoints attribute.

Common Box Attributes

annotation [symbol]

Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.

background [int] (default: 0)

Adds or removes the object from the patcher's background layer. background 1 adds the object to the background layer, background 0 removes it. Objects in the background layer are shown behind all objects in the default foreground layer.

color [4 floats]

Sets the color for the object box outline.

fontface [int]

Sets the type style used by the object. The options are:

plain
bold
italic
bold italic Possible values:

0 = 'regular'
1 = 'bold'
2 = 'italic'
3 = 'bold italic'

fontname [symbol]

Sets the object's font.

fontsize [float]

Sets the object's font size (in points). Possible values:

'8'
'9'
'10'
'11'
'12'
'13'
'14'
'16'
'18'
'20'
'24'
'30'
'36'
'48'
'64'
'72'

hidden [int] (default: 0)

Toggles whether an object is hidden when the patcher is locked.

hint [symbol]

Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.

ignoreclick [int] (default: 0)

Toggles whether an object ignores mouse clicks in a locked patcher.

jspainterfile [symbol]

JS Painter File

patching_rect [4 floats] (default: 0. 0. 100. 0.)

Sets the position and size of the object in the patcher window.

position [2 floats]

g/s(set)

Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.

presentation [int] (default: 0)

Sets whether an object belongs to the patcher's presentation.

presentation_rect [4 floats] (default: 0. 0. 0. 0.)

Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.

rect [4 floats]

g/s(set)

Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).

size [2 floats]

g/s(set)

Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.

textcolor [4 floats]

Sets the color for the object's text in RGBA format.

textjustification [int]

Sets the justification for the object's text. Possible values:

0 = 'left'
1 = 'center'
2 = 'right'

varname [symbol]

Sets the patcher's scripting name, which can be used to address the object by name in pattr, scripting messages to thispatcher, and the js object.

Messages

int

Arguments

input [int]
In left inlet: The number is the target value, to be arrived at in the time specified by the number in the middle inlet. If no time has been specified since the last target value, the time is considered 0 and line immediately outputs the target value.

Note: the output type for the line object is set by using the first argument to the object (see Arguments).

In middle inlet: The number is the time, in milliseconds, in which to arrive at the target value.

In right inlet: The number is the interval (in milliseconds) at which intermediary numbers are regularly sent out.

float

Arguments

input [float]
Performs the same function as int but with floats only if the object-argument is a float.

list

Arguments

input [list]
Use various list combinations to reach a target value.
In one list combination, the first number specifies a starting value, followed by a comma and a number pair. The first number in the pair specifies the target value. The second number of the pair specifies the total amount of time (in milliseconds) in which line should reach the target value. In that amount of time, numbers are output regularly in a line from the currently stored value to the target value.

An example of this type of list is 0, 1 1000 0 1000. In this example, line would go from the starting value of 0 to 1 in one second, then back down to 0 in one second. Once the first ramp has reached its target value, the next one starts. A subsequent list, float, or int in the left inlet clears all ramps yet to be generated.

In another combination, the first number specifies a target value, not followed a comma, and the second number specifies a total amount of time (in milliseconds) in which line should reach the target value. The third number, which is optional, sets the grain. Grain will affect the time interval at which numbers are sent out. Once grains are set in a list, they will override the default until manually reset.

An example of this type of list is 1 1000 100. In this example, line would go from the current value to 1 in a second, outputting a value every 100 milliseconds.

If the list has an even number of elements greater than three, each pair of elements is considered a destination-ramptime pair in a breakpoint function. If the list has an odd number of elements greater than three, the last element will be ignored.

clock

Arguments

setclock object name [symbol]
The word clock, followed by the name of an existing setclock object, sets the line object to be controlled by that setclock object rather than by Max’s internal millisecond clock. The word clock by itself sets the line object back to using Max’s regular millisecond clock.

pause

In left inlet: Pauses the internal ramp but does not change the target value nor clear pending target-time pairs. line will continue outputting whatever value was its current value when the pause message was received, until either it receives a resume message or until a new ramp is input.

resume

In left inlet: Resumes the internal ramp and subsequent pending target-time pairs if the line object was paused as a result of the pause message.

set

Arguments

input [float]
In left inlet: The word set, followed by a number, makes that number the new starting value from which to proceed to the next received target value. The set message also stops line if it is in the process of sending out numbers.

stop

In left inlet: Stops line from sending out numbers, until a new target value is received.

Output

bang

Out right outlet: When line has arrived at its target value, bang is sent out.

Note: In practice, the target value is arrived at in just under the amount of time specified (time minus grain).

int

Out left outlet: Numbers are sent out at regular intervals, describing a straight line toward a target value. If a new target value and time are specified before the line is completed, the new line starts from the most recent output value, in order to avoid discontinuities.

If a value is received in the left inlet without an accompanying time value, it is sent out immediately (time is considered 0).

See Also

Name Description
Max For Live Max For Live
bline Generate ramps using bang
funbuff Store pairs of numbers
line~ Linear signal ramp generator
setclock Create and control an alternative clock
uzi Send many bang messages
Max Basic Tutorial 11: Procedural Drawing Max Basic Tutorial 11: Procedural Drawing