<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<!--This is an automatically generated file. DO NOT EDIT THIS FILE DIRECTLY. Rather, use the _ref.xml files found in the 'edits' folder.-->
<c74object name="polyin" module="max" category="MIDI">
	<digest>
		Received MIDI poly pressure
	</digest>
	<description>
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Max
		</metadata>
		<metadata name="tag">
			MIDI
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				port Message Sets MIDI Input Port/Device
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				port Message Sets MIDI Input Port/Device
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				Key Pressure
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				Key Number
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" type="OUTLET_TYPE">
			<digest>
				MIDI Channel
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="port" optional="1" type="symbol">
			<digest>
				MIDI port ID
			</digest>
			<description>
				Specifies the port from which to receive incoming MIDI messages. If there is no argument, <o>polyin</o> receives from all channels on all ports.
			</description>
		</objarg>
		<objarg name="device" optional="1" type="symbol">
			<digest>
				MIDI input device
			</digest>
			<description>
				The name of a MIDI input device may be used as the first argument to specify the port. The name 'all' can be used to enable the reception of MIDI messages from any port. The name 'none' can be used to prevent the object from receiving MIDI messages from any port.
			</description>
		</objarg>
		<objarg name="port-channel" optional="0" type="list">
			<digest>
				MIDI port and channel
			</digest>
			<description>
				A letter and number combination (separated by a space) indicates a port and a specific MIDI channel on which to receive polyphonic key pressure messages. Channel numbers greater than 16 will be wrapped around to stay within the 1-16 range.
			</description>
		</objarg>
		<objarg name="key-channel" optional="0" type="list">
			<digest>
				MIDI key and channel
			</digest>
			<description>
				A number and number combination (separated by a space) indicates a specific key and a specific MIDI channel on which to receive the polyphonic key pressure message. Channel numbers greater than 16 will be wrapped around to stay within the 1-16 range.
			</description>
		</objarg>
		<objarg name="channel" optional="0" type="int">
			<digest>
				Extended MIDI channel
			</digest>
			<description>
				A number alone can be used in place of a letter and number combination. The exact meaning of the channel number argument depends on the channel offset specified for each port in the MIDI Setup dialog.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="anything">
			<arglist>
				<arg name="MIDI-input-port (a through z)" optional="0" type="list" />
			</arglist>
			<digest>
				Select MIDI input device/port
			</digest>
			<description>
				Performs the same function as <m>port</m> but without need for the word, &quot;port&quot;.
			</description>
		</method>
		<method name="(mouse)">
			<digest>
				Select MIDI input device/port
			</digest>
			<description>
				Double-clicking on a <o>polyin</o> object shows a pop-up menu for choosing a MIDI port or device.
			</description>
		</method>
		<method name="(MIDI)">
			<digest>
				Receive MIDI data
			</digest>
			<description>
				The <o>polyin</o> object receives its input from a MIDI poly pressure message received from a MIDI input device.
			</description>
		</method>
		<method name="port">
			<arglist>
				<arg name="port" optional="0" type="symbol" />
			</arglist>
			<digest>
				Select MIDI input device/port
			</digest>
			<description>
				The word <m>port</m>, followed by a letter <m>a-z</m> or the name of a MIDI input port or device, sets the port from which the object receives incoming program change messages. The word <m>port</m> is optional and may be omitted. The name 'all' can be used to enable the reception of MIDI messages from any port. The name 'none' can be used to prevent the object from receiving MIDI messages from any port.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="matchport" get="1" set="1" type="int" size="1">
			<digest>
				Enable MIDI for exact port match only
			</digest>
			<description>
				If the <ar>port</ar> argument doesn't match an existing port or device name, set the object's MIDI port to 'none'.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="symbol" size="1" value="Behavior" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Enable MIDI for exact port match only" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="name" get="1" set="1" type="symbol" size="1">
			<digest>
				Port Name
			</digest>
			<description>
				Set the object's MIDI port based on a device name. The attribute will attempt to do a case-sensitive partial string match based on the attribute's value.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="symbol" size="1" value="Behavior" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Port Name" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="text_onesymbol" />
			</attributelist>
		</attribute>
	</attributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="polyin.png" caption="Messages can be received from everywhere, a specific port, or a specific port and channel" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="midiin" />
		<seealso name="polyout" />
	</seealsolist>
	<misc name="Output">
		<entry name="int">
			<description>
				Out left outlet: The number is the pressure value of the incoming polyphonic key pressure message.
				<br />
				<br />
				Out 2nd outlet: The number is the pitch value (key number) of the incoming message.
				<br />
				<br />
				If a specific channel number is included in the argument, there are only two outlets. If there is no channel number specified by the argument, <o>polyin</o> will have a third outlet, on the right, which will output the channel number of the incoming note-on message.
			</description>
		</entry>
	</misc>
</c74object>
