A newer version of Max is available. Click here to access the latest version of this document.

live.step

Step Sequencer UI object

Description

The live.step object displays multiple sequences which have multiple steps composed of pitch, velocity, and duration. Two additional steps (Extra 1 and Extra 2) are available for user-defined display.

Arguments

None.

Messages

bang When a bang message is received, the values associated with the current step are sent out the object's left outlet.
int step-index [int]
If the target_seq attribute is set to zero, an integer sets the current step of all sequences to the corresponding integer (index numbering starts at 1). If the target_seq attribute is set to a value greater than zero, an integer sets the current step of the currently specified sequence. The values associated with the current step are sent out the object's left outlet.
active 0/1 [int]
If the target_seq attribute is set to zero, the message active 0 deactivates all sequences. The word active, followed by any non-zero value, will activate all sequences.
If the target_seq attribute is set to a value greater than zero, the message active 0 deactivates the specified sequence. The word active, followed by any non-zero value, will activate the specified sequence.
copy start-index [int]
stop-index [int]
The word copy will copy the entire sequence. One or two optional integer arguments may be used to specify starting and ending indices (index numbering starts at 1). For example, copy 2 will copy the sequence starting at index 2, while copy 2 5 will copy starting at index 2 and ending at index 5.
direction direction-value [int]
The word direction followed by an integer in the range 0-4, sets the playback direction for sequence playback. The playback options are:
0: forward
1: backward
2: back and forth
3: Rotate
4: random

If the target_seq attribute is set to zero, the integer argument sets the direction of all sequences when live.step object's playback is controlled using the time message.
If the target_seq attribute is set to a value greater than zero, an integer sets the direction of the specified sequence when live.step object's playback is controlled using the time message.
doedit edit-mode [int]
The word doedit, followed by a number in the range 0-4, provides a simple means to move or rotate the parameters stored in the live.step object. The modes specified by the number arguments are:
0: transpose the pitch upward.
1: transpose the pitch downward.
2: Rotate the steps to the left.
3: Rotate the steps to the right
4: Randomize steps depending on the mode attribute. For instance, if the mode is set to velocity, doedit 4 will only randomize the velocity.
For more advanced editing features, use the up, down, left, right, random, scramble, and sort messages.
down parameter [symbol]
The word down will decreases the values of the sequence based on the target_seq and mode attributes. For instance, if the mode attribute is set to velocity, the down message will only decrease the velocity of the currently specified sequence (or all the sequences if the target_seq attribute is set to zero).
An optional argument may be used with the down message to specify the parameters to be decreased without having to use the mode attribute. The optional arguments are:
all: decrease all parameters
pitch: transpose pitches downward
velocity: decrease velocities
duration: decrease durations
extra1: decrease values for the user-definable Extra 1 parameter
extra2: decrease values for the user-definable Extra 2 parameter
dump Sends the values (pitch, velocity, duration, extra1, extra2) of all steps of the currently specified sequence out the live.step object's right outlet.
duration start-index/values [list]
The word duration, followed by an integer that specifies a starting index into a sequence (index numbering starts with 1) and a list of values (in ticks), will set the duration values for the current sequence specified by the target_seq attribute.
extra1 start-index/values [list]
The word extra1, followed by an integer that specifies a starting index into a sequence (index numbering starts with 1) and a list of values, will set the extra1 values for the current sequence specified by the target_seq attribute.
extra2 start-index/values [list]
The word extra2, followed by an integer that specifies a starting index into a sequence (index numbering starts with 1) and a list of values, will set the extra2 values for the current sequence specified by the target_seq attribute.
fold 0/1 [int]
The word fold, followed by a 0 or 1, toggles the folded display mode. When folding is enabled, the live.step object only displays those pitches which are present in the sequence specified by the target_seq attribute rather than all possible pitches. Fold mode displays only the pitches specific to each individual sequence .
Note: Sequence editing messages such as up, down, and random use the list of pitches displayed in fold state when performing operations (i.e., the random message will only choose randomly from among the pitches displayed on fold mode. These operations are also dependent on the target sequence, as well). for all sequences.
getactive The message getpitch will send the active state of the currently specified sequence out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word active.
getdirection The message getpitch will send the direction state of the currently specified sequence out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word direction.
getduration The message getduration will send a list of all the duration values in the sequence specified by the target_seq attribute out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word duration.
getextra1 The message getextra1 will send a list of all the extra1 values in the sequence specified by the target_seq attribute out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word extra1.
getextra2 The message getextra2 will send a list of all the extra2 values in the sequence specified by the target_seq attribute out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word extra2.
getinterval The message getinterval will send the interval of the currently specified sequence out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word interval.
getloop The message getloop will send the loop points of the currently specified sequence out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word loop.
getnstep The message getnstep will send the number of steps in the currently specified sequence out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word nstep.
getmodelist Sends the list of the display modes out the dumpout outlet.
getpitch The message getpitch will send a list of all the pitch values in the sequence specified by the target_seq attribute out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word pitch.
getstep step-index [int]
The message getstep will send a list of the values (pitch, velocity, duration, extra1, extra2) of the specified index of the currently specified sequence out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word step.
getvelocity The message getvelocity will send a list of all the velocity values in the sequence specified by the target_seq attribute out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word velocity.
fetch parameter name [symbol]
step number [int]
The word fetch, followed by a symbol that specifies a step parameter (pitch, velocity, duration, extra1, or extra2) and an integer that specifies a step number, will send a list out of the live.step object's fourth (dumpout) outlet in the form <parameter-name> <step-number> <value> .
getzoom The message getpitch will send the zoom pitch values of the currently specified sequence out the live.step object's fourth (dumpout) outlet in the form of a list preceded by the word duration.
fold_pitch pitches-list [list]
The word fold_pitch, followed by an integer or list of integers that specify MIDI note numbers, sets the pitches to be displayed by the live.step object in fold mode. As with the fold message, the fold_pitch message sets pitches to be displayed in the sequence specified by the target_seq attribute.
init Restores and outputs the initial values.
interval time-value [list]
Sets the interval of the currently specified sequence.
left parameter [symbol]
The word left will rotate (left-shift) the values of the sequence based on the target_seq and mode attributes. For instance, if the mode attribute is set to velocity, the left message will only rotate the velocity of the currently specified sequence (or all the sequences if the target_seq attribute is set to zero).
An optional argument may be used with the left message to specify the parameters to be rotated without having to use the mode attribute. The optional arguments are:
all: Rotate all parameters to the left
pitch: Rotate all pitches to the left
velocity: Rotate all velocities to the left
duration: Rotate all durations to the left
extra1: Rotate all user-definable Extra 1 parameters to the left
extra2: Rotate all user-definable Extra 2 parameters to the left
loop start-index [int]
stop-index [int]
The word loop, followed by two numbers that specify starting and ending indices, sets the loop points of the currently specified sequence.
nstep number of steps [int]
Sets the number of steps in the target sequence.
(mouse) Whenever the live.step object is edited using the mouse, the message changed followed by a number in the range 0-2 will be sent out the object's dumpout outlet. The number specifies what portion of the live.step display has been modified, as follows:

0: The pitch, velocity, duration, extra1, or extra2 settings have been modified.
1: The looping portion of the UI has been modified.
2: Edits have been made in the ruler area of the UI.
paste parameter [symbol]
start-index [int]
When the paste message is received without argument, all parameters are pasted at the same location as they were copied. An optional argument to specify parameter type (pitch, velocity, duration, extra1, extra2) can be used to paste only specific items. An additional option number argument specifies the starting index where the copied steps will be pasted (index numbering starts at 1).
pitch start-index/values [list]
The word pitch, followed by an integer that specifies a starting index into a sequence (index numbering starts with 1) and a list of values, will set the pitch values for the current sequence specified by the target_seq attribute.
set step-index [int]
If the target_seq attribute is set to zero, the word set, followed by an integer sets the current step of all the sequences to the corresponding integer (index numbering starts at 1).
If the target_seq attribute is set to a value greater than zero, the word set, followed by an integer sets the current step of the currently specified sequence.
random parameter [symbol]
The word random will randomize the values of the sequence based on the target_seq and mode attributes. For instance, if the mode attribute is set to velocity, the random message will only scramble the velocity of the currently specified sequence (or all the sequences if the target_seq attribute is set to zero).
An optional argument may be used with the random message to specify the parameters to be scrambled without having to use the mode attribute. The optional arguments are:
all: Randomize all parameters
pitch: Randomize all pitches
velocity: Randomize all velocities
duration: Randomize all durations
extra1: Randomize all values for the user-definable Extra 1 parameter
extra2: Randomize all values for the user-definable Extra 2 parameter
reset The reset message allows you to deactivate the current step. It is equivalent to setting the current step to 0.
right parameter [symbol]
The word right will rotate (right-shift) the values of the sequence based on the target_seq and mode attributes. For instance, if the mode attribute is set to velocity, the left message will only rotate the velocity of the currently specified sequence (or all the sequences if the target_seq attribute is set to zero).
An optional argument may be used with the right message to specify the parameters to be rotated without having to use the mode attribute. The optional arguments are:
all: Rotate all parameters to the right
pitch: Rotate all pitches to the right
velocity: Rotate all velocities to the right
duration: Rotate all durations to the right
extra1: Rotate all values for the user-definable Extra 1 parameter to the right
extra2: Rotate all values for the user-definable Extra 2 parameter to the right
time list [list]
The word time, followed by a list of 6 numbers, defines the timing position in the sequence. The required arguments are:
bar (int)
beat (int)
unit (int)
resolution (int, ppq)
time signature numerator (int)
time signature denominator (int)
The live.step object does not have an internal clock, so you need to send the time message often if you want to use it to drive the live.step object.
scramble parameter [symbol]
keep-step-sync [int]
The word scramble will randomize the order of the values of the sequence based on the target_seq and mode attributes. For instance, if the mode attribute is set to velocity, the left message will only scramble the velocity of the currently specified sequence (or all the sequences if the target_seq attribute is set to zero).
An optional argument may be used with the scramble message to specify the parameters to be scrambled without having to use the mode attribute. The optional arguments are:
all: Randomize the order of all parameters
pitch: Randomize the order of all pitches
velocity: Randomize the order of all velocities
duration: Randomize the order of all durations
extra1: Randomize the order of all user-definable Extra 1 parameters
extra2: Randomize the order of all user-definable Extra 2 parameters
If you are not using mode all, and that you pass 1 as argument, scramble will keep your steps synchronized. For instance, the scramble pitch 1 message will reorder the pitches, but the other parameters will follow.
setall value [list]
The word setall, followed by a number, will assign that value to every layer in the currently targeted sequence when the the live.step object is in display mode. An optional first argument specifying a specific layer (i.e. setall velocity 85) can be used to set all values in a specify layer. When the editlooponly attribute is set to 1, the setall message will only be applied to indices inside the loop selection.
settimeshift time-shift [float]
The word settimeshift, followed by a positive or negative number that specifies an offset, will move to the relative position from the current step in the sequence and first that step (e.g., sending the message settimeshift -1 when the current step number is 3 will cause the content of step 2 to fire.
sort parameter [symbol]
keep-step-sync [int]
direction (-1/1) [int]
The word sort will sort the step values of the sequence based on the target_seq and mode attributes. For instance, if the mode attribute is set to velocity, the sort message will only sort the velocity values of the currently specified sequence (or all the sequences if the target_seq attribute is set to zero).
Optional arguments may be used with the sort message to specify behavior, synchronization, and direction of sortint. The can be used to set the parameters to be sorted without having to use the mode attribute. The optional arguments are:
all: Sort the order of all parameters
pitch: Sort the order of the pitches
velocity: Sort the order of the velocities
duration: Sort the order of the durations
extra1: Sort the order of all user-definable Extra 1 parameters
extra2: Sort the order of all user-definable Extra 2 parameters
The first integer argument specifies whether or not to keep the step values synchronized - it only works if the mode attribute is not set to all. For instance, the message sort pitch 1 will reorder the steps based on the pitch, but the velocity, duration and user-definable extra1 and extra2 values associated to the pitch will be maintained. An optional second integer argument can be used to set the sorting order:
1: Ascending (the default) -1: Descending.
step values [list]
The word step, followed by a list of three integers, sets the values of a specific step. The required arguments are:
the index (index numbering starts at 1)
the MIDI note number (0-127)
the note velocity (0-127)
the duration (30, 60, 120, 240, 480, 960, 1920, 3840 ticks)
velocity start-index/values [list]
The word velocity, followed by an integer that specifies a starting index into a sequence (index numbering starts with 1) and a list of values, will set the velocity values for the current sequence specified by the target_seq attribute.
up parameter [symbol]
The word up will increase the values of the sequence based on the target_seq and mode attributes. For instance, if the mode attribute is set to velocity, the up message will only increase the velocity of the currently specified sequence (or all the sequences if the target_seq attribute is set to zero).
An optional argument may be used with the up message to specify the parameters to be increased without having to use the mode attribute. The optional arguments are:
all: Increase all parameters
pitch: Transpose pitches upward
velocity: Increase velocities
duration: Increase durations
extra1: Increase the value of all user-definable Extra 1 parameters
extra2: Increase the value of all user-definable Extra 2 parameters
zoom low-pitch [float]
high-pitch [float]
Sets the zoom points of the currently specified sequence.
zoom_fit The word zoom_in will cause the currently displayed pitch range of the live.step object to adjust so that the highest and lowest note values become the upper and lower limits of the display.
zoom_in The word zoom_in will cause the current pitch range of the live.step object display to decrease by a factor of a fifth (7 steps) at the top and bottom, resulting in a "zoom in" effect.
zoom_out The word zoom_out will cause the current pitch range of the live.step object display to increase by a factor of a fifth (7 steps) at the top and bottom, resulting in a "zoom out" effect.

Attributes

Name Type g/s Description
autoscroll int
def.:1
When set to one, this attribute lets you expand the scrolling dragging the cursor to the edge of the display or to drag a selected pitch beyond the range of the current visual display.
bgcolor float Sets the background color of the live.step object in RGBA format.
bgcolor2 float Sets the second background color of the live.step object in RGBA format.
bgrulercolor float Sets the ruler background color of the live.step object in RGBA format.
bgunitcolor float Sets the unit background color of the live.step object in RGBA format.
blackkeycolor float Sets the color for the upper (black) keys in RGBA format.
bordercolor float Sets the border color of the live.step object in RGBA format.
display_seq int
def.:1
Sets the sequence to be displayed (index numbering starts at 1).
duration_active int
def.:1
Activates display of the Duration layer
editlooponly int
def.:0
When the editlooponly attribute is set to 1, the edit messages (up, down, left, right, random, scramble, sort) are only applied to indices inside the loop selection.
extra1_active int
def.:1
Activates display of the user-definable Extra 1 layer
extra1_max int
def.:127
Sets the maximum value for the user-definable Extra 1 layer.
extra1_min int
def.:0
Sets the minimum value for the user-definable Extra 1 layer
extra2_active int
def.:1
Activates display of the user-definable Extra 2 layer
extra2_max int
def.:127
Sets the maximum value for the user-definable Extra 2 layer
extra2_min int
def.:0
Sets the minimum value for the user-definable Extra 2 layer
extra_thickness float
def.:0.5
Sets the thickness of the vertical bars displayed in the Extra 1 layer
hbgcolor float Sets the highlight background color of the live.step object in RGBA format.
loopbordercolor float Sets the loop border color of the live.step object in RGBA format.
loopruler int
def.:1
Toggles the display of the loop ruler.
mode int
def.:0
An integer or symbol can be used to set the information display mode of the live.step object. The display options are:
0 (All): Display note, velocity, duration, and user-definable extra1 and extra2 values at once..
1/pitch: Display pitch
2/velocity: Display velocity bars
3/duration: Display duration bars
4/extra1: Display extra1 bars
4/extra2: Display extra2 bars
nseq int
def.:1
Defines the number of sequences.
pitch_active int
def.:1
Activates display of the Pitch layer
stepcolor float Sets the step color of the live.step object in RGBA format.
stepcolor2 float Sets the second step color of the live.step object in RGBA format.
target_seq int Defines the target sequence (index numbering starts at 1).
textcolor float Sets the text color of the live.step object in RGBA format.
unitruler int
def.:1
Toggles the display of the unit ruler.
usestepcolor2 int
def.:1
Toggles the use of a second step color in the display
velocity_active int
def.:1
Activates display of the Velocity layer
whitekeycolor float Sets the color for the lower level (white) keys in RGBA format.

Information about attributes available for Parameter-aware objects

Information for box attributes common to all objects

Output

anything:
Out the fourth outlet: The output in response to dumpout messages used to query the live.step object.
int:
Out the third outlet: Mouseover information.
Out the fifth outlet: Sequence index out.
list:
Out the leftmost outlet: Step values.
Out the second outlet: Current loop points.

Examples

See Also

Name Description
live.grid A UI grid of steps, with constraints and directions
multislider Multiple slider and scrolling display
matrixctrl Matrix switch control