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

midiselect

Select and interpret raw MIDI data

Description

midiselect receives raw MIDI bytes and separates the input stream. MIDI data to be selected for output is set using object attributes. There is a separate data outlet associated with each MIDI data selection attribute. Any input data which is unselected will be sent out the object's eighth outlet.

Examples

Discussion

Note: Due to the nature of the MIDI coding, use of the ch attribute is cumulative: at least one channel needs to be specified; otherwise, all raw MIDI data will be sent out the 8th outlet.

Arguments

None.

Attributes

bend [int]

When then bend attribute is set to 1, Pitch Bend information is sent out the 6th outlet, otherwise the Pitch Bend is sent out the 8th outlet as raw MIDI Data.

ch [16 atoms]

The ch attribute allows you to specify which MIDI input channels will be selected. While you can choose input from all channels by instantiating the midiselect object the the argument @ch all, you can also select specific channels (e.g., the argument @ch 1 3 5 will only select MIDI information on the first, third and fifth channels).

ctl [128 atoms]

The ctl attribute allows you to specify which MIDI controller messages will be selected. By default, no controlers are selected. You can select specific controlers to be filtered (e.g., the argument @ctl 7 9 64 will select the controler 7 (Volume), 9 (Pan), 64 (Sustain Pedal)). To select all controllers, use the argument @ctl all. To select no controllers (the default), use @ctl none.

note [128 atoms]

The note attribute allows you to specify which MIDI note messages will be selected. By default, no notes are selected. You can select specific notes to be filtered (e.g., @note 60 64 67 will select the C4, E4, G4 notes). To select all notes, use the argument @note all. To select no notes (the default), use @note none.

pgm [int]

When then pgm attribute is set to 1, Program Change information is sent out the 4th outlet. Otherwise, the Program Change is sent out the 8th outlet as raw MIDI Data.

poly [128 atoms]

The poly attribute allows you to specify which MIDI poly pressure will be selected. By default, no poly pressure is selected. You can select specific notes to be filtered (e.g., @note 60 64 67 will select the C4, E4, G4 notes). To select all the notes, use the argument @note all. To select no notes (the default) use @note none.

touch [int]

When then touch attribute is set to 1, After touch data is sent out the 5th outlet. Otherwise, the Aftertouch is sent out the 8th outlet as raw MIDI Data.

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.

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 [float]

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

textjustification [int]

Text Justification

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

bang

Clears the midiselect object's memory of any partial MIDI messages received up to that point.

int

Arguments

byte [list]
Numbers received in the inlet (usually from a seq or midiin object) are treated as bytes of a MIDI message. The status byte and the filtering attributes determine the outlet which will be used to output the data bytes.

float

Arguments

byte [float]
Floating-point numbers received in the inlet are converted to integer values and treated as bytes of a MIDI message. The status byte and the filtering attributes determine the outlet which will be used to output the data bytes.

Output

int

Out 4th outlet: The number is the program change.

Out 5th outlet: The number is the aftertouch (channel pressure) value.

Out 6th outlet: The number is the pitch bend value.

Out 7th outlet: The number is the MIDI channel number.

list

Out leftmost outlet: A note-on message. The first number is a pitch value and the second number is the velocity value.

Out 2nd outlet: A polyphonic key pressure message. The first number is an aftertouch (pressure) value and the second number is the pitch value (key number).

Out 3rd outlet: A control message. The first number is a control value and the second number is the controller number.

See Also

Name Description
MIDI MIDI
midiparse Interpret raw MIDI data
borax Report note-on and note-off information
midiformat Prepare data in the form of a MIDI message
midiin Output raw MIDI data
midiinfo Fill a pop-up menu with MIDI device names
Max MIDI Tutorial 3: MIDI Parsing Max MIDI Tutorial 3: MIDI Parsing