Package Max for Live

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.

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]: 0

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 .

hires[int]: 0
8.1.6

An integer in the range 0 - 2 sets the range used for pitch bend messages by the midiparse object. Possible values:

0 = 'Off (0-127)' ( Standard 8-bit MIDI pitch bend range (default) )
1 = 'Float (-1 to 1)' ( Uses pitch bend messages in the audio signal range )
2 = '14-bit Fixed (-8192 to 8191)' ( Standard 14-bit MIDI high resolution pitch bend range )

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]: 0

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., @poly 60 64 67 will select the C4, E4, G4 notes). To select all the notes, use the argument @poly all . To select no notes (the default) use @poly none .

touch[int]: 0

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

Below is a list of attributes shared by all objects. If you want to change one of these attributes for an object based on the object box, you need to place the word sendbox in front of the attribute name, or use the object's Inspector.

annotation[symbol]

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

background[int]: 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]: 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]: 0

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

jspainterfile[symbol]

You can override the default appearance of a user interface object by assigning a JavaScript file with code for painting the object. The file must be in the search path.

patching_rect[4 floats]: 0. 0. 100. 0.

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

position[2 floats]
write-only

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]: 0

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

presentation_rect[4 floats]: 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]
write-only

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]
write-only

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

bang

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

int

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.

Arguments:
  • byte [list]

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.

Arguments:
  • byte [float]

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
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