<?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="rpnin" module="max" category="MIDI">
	<digest>
		Output received RPN values
	</digest>
	<description>
		Output the value from a specific Registered Parameter Number (RPN) and MIDI channel.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Max
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				Raw MIDI Bytes From midiin
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				Raw MIDI Bytes From midiin
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				Parameter Value
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				Parameter Change Delta
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" type="OUTLET_TYPE">
			<digest>
				Registered Parameter Number
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="3" type="OUTLET_TYPE">
			<digest>
				MIDI Channel
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="param-channel" optional="1" type="list">
			<digest>
				Parameter number and channel
			</digest>
			<description>
				The initial argument is a single registered parameter number (in the range 0-16383) to be recognized by <o>rpnin</o>. The parameter number can also be expressed as a symbol formatted 'MSB:LSB' (for instance, '1:0' would specify parameter 128). If there is no parameter number, or if the argument is a negative number, <o>rpnin</o> recognizes all registered parameter numbers. If a single parameter number is specified in the argument, the outlet which normally sends the parameter number is unnecessary, and is not created.
				<br />
				<br />
				Following the controller number argument is a single channel number on which to receive parameter messages. If the channel argument is not present, <o>rpnin</o> receives parameter messages on all channels. In order for this argument to be used, a parameter number argument must precede it. To specify a channel number without specifying a parameter number, use <m>-1</m> for the parameter number. The channel number is clipped to the range 1-16.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="int">
			<arglist>
				<arg name="input" type="int" optional="0" />
			</arglist>
			<digest>
				Evaluate as 14-bit MIDI RPN data.
			</digest>
			<description>
				The numbers are individual bytes of a MIDI message stream, received from an object such as <o>midiin</o>.
			</description>
		</method>
		<method name="list">
			<arglist>
				<arg name="input" type="list" optional="0" />
			</arglist>
			<digest>
				Evaluate as 14-bit MIDI RPN data.
			</digest>
			<description>
				The numbers are bytes of a MIDI message stream, received from an object such as <o>midiin</o>.
			</description>
		</method>
		<method name="set">
			<arglist>
				<arg name="parameter" type="int" optional="1" />
			</arglist>
			<digest>
				Set the current parameter number.
			</digest>
			<description>
				The message <m>set</m> without any arguments, or with an argument of <m>-1</m>, will cause <o>rpnin</o> to output incoming 14-bit MIDI registered parameter messages from any registered parameter. An argument between <m>0</m> and <m>16383</m> ((1 &lt;&lt; 14) - 1) will cause <o>rpnin</o> to only output incoming 14-bit MIDI registered parameter messages from the parameter specified.
				<br />
				<br />
				The <m>set</m> message also accepts an argument list comprising most signficant byte (MSB) followed by least significant byte (LSB). The 7-bit MSB will be bitshifted and ORd with the 7-bit LSB to specify a 14-bit parameter number. For instance, <m>set 1 0</m> would specify registered parameter number 128.
				<br />
				<br />
				The parameter number argument can also be expressed as a symbol formatted 'MSB:LSB'. For instance, <m>set 1:0</m> would specify registered parameter number 128.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="hires" get="1" set="1" type="int" size="1">
			<digest>
				High resolution value mode
			</digest>
			<description>
				When enabled, <o>rpnin</o> expects high resolution, 14-bit values from the registered parameter. If you know that the parameter you are monitoring only transmits 7-bit values using the MSB, set <at>hires</at> to <m>0</m> to avoid inaccurate output from the object. If the parameter you are monitoring transmits 'high resolution' 7-bit values using an MSB of 0 and a value in the LSB, this setting will have no effect.
			</description>
			<attributelist>
				<attribute name="default" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Hi-resolution (14-bit) mode" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="permissive" get="1" set="1" type="int" size="1">
			<digest>
				Permit missing MSB when setting parameter number
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<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="Permit missing MSB when setting parameter number" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
	</attributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example caption="" img="" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="midiin" />
		<seealso name="ctlin" />
		<seealso name="rpnout" />
		<seealso name="nrpnin" />
		<seealso name="nrpnout" />
		<seealso name="xctlin" />
		<seealso name="xbendin" />
		<seealso name="xnotein" />
	</seealsolist>
	<discussion>
		A Registered Parameter message comprises several groups of bytes to specify a 14-bit parameter number (2 groups for the for the most significant byte of the parameter number (MSB) and one for the least significant byte of the parameter number (LSB)), a 14-bit value (2 groups for the MSB and LSB of the value) or a 7-bit delta value (1 group), optionally followed by a Null Function (2 groups) to terminate changes to the parameter.
	</discussion>
	<misc name="Output">
		<entry name="int">
			<description>
				Out left outlet: The number is the value (if specified) of an incoming MIDI RPN message as a single 14-bit value. For any RPN message, either value or delta will be specified, but not both.
				<br />
				<br />
				Out 2nd outlet: The number is the delta (if specified) of an incoming MIDI RPN message as a single 7-bit value. For any RPN message, either value or delta will be specified, but not both.
				<br />
				<br />
				If a specific parameter number is not specified as an argument, the parameter number is sent out the 2nd outlet as a single 14-bit value.
				<br />
				<br />
				If a specific channel number is not included in the argument, the channel number is sent out an additional, right, outlet.
			</description>
		</entry>
	</misc>
</c74object>
