<?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="live.routing" module="m4l" category="Live API Objects">
	<digest>
		Route MIDI and Audio Inputs and Outputs in Ableton Live
	</digest>
	<description>
		Route MIDI and Audio data in Ableton Live using available inputs and outputs. <o>live.routing</o> only supports one midi or audio port at a time per Max for Live device. So, if you use two <o>live.routing</o> objects in one Max for Live device, they will both point to the same port. This is because the Live API currently supports only one port at a time per Max for Live device.
		<br />
		<br />
		To route audio data through a Max for Live device, you will need to use the <o>plugin~</o> and <o>plugout~</o> objects to recieve audio data from Live in Max. Similarly, to route midi data through a Max for Live device, you will need to use the <o>midiin</o> and <o>midiout</o> objects to recieve midi data from Live in Max. You can then build your routing patch in Max using the <o>live.routing</o> object. To learn more about Ableton Live's I/O, look up the Device I/O Object Class in the <link type="vignette" module="core" name="live_object_model">Live Object Model</link>.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Live API Objects
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				int, messages in
			</digest>
			<description>
				messages, int, attributes
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				int, messages in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				current type
			</digest>
			<description>
				Outputs the index into the list of available types of the chosen type of i/o. In Ableton Live, this is typically the index of a Track name, if you are routing data from a Live Track.
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				current channel
			</digest>
			<description>
				Outputs the index into the list of available channels of the chosen channel on the i/o. In Ableton Live, this is typically the index of one of the &quot;Pre Fx&quot;, &quot;Post FX&quot; and &quot;Post Mixer&quot; options, if you are routing data from a Live Track.
			</description>
		</outlet>
		<outlet id="2" type="OUTLET_TYPE">
			<digest>
				available types (list)
			</digest>
			<description>
				Lists all the available types of I/Os in Live.
			</description>
		</outlet>
		<outlet id="3" type="OUTLET_TYPE">
			<digest>
				available channels (list)
			</digest>
			<description>
				Lists all the available channels of the selected I/Os in Live.
			</description>
		</outlet>
		<outlet id="4" type="OUTLET_TYPE">
			<digest>
				dumpout
			</digest>
			<description>
				outputs unsupported data.
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg id="0" name="OBJARG_NAME" type="OBJARG_TYPE" optional="0">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				TEXT_HERE
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="channel">
			<arglist>
				<arg name="input" type="int" optional="0" />
			</arglist>
			<digest>
				Set the I/O channel by its index
			</digest>
			<description>
				Set the current Audio or MIDI channel to be routed by the specified index number.
			</description>
		</method>
		<method name="type">
			<arglist>
				<arg name="input" type="int" optional="0" />
			</arglist>
			<digest>
				Set the I/O type by its index
			</digest>
			<description>
				Set the current Audio or MIDI type to be routed by the specified index number.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="index" get="1" set="1" type="int" size="1">
			<digest>
				Set the Audio or MIDI I/O of the current Max device
			</digest>
			<description>
				Set the Audio or MIDI I/O of the current Max device by its index number.
			</description>
		</attribute>
		<attribute name="port" get="1" set="1" type="symbol" size="1">
			<digest>
				Port Live Audio and MIDI I/Os
			</digest>
			<description>
				Port Live Audio and MIDI inputs and outputs to Max to enable routing.
			</description>
		</attribute>
	</attributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="live_api_overview" module="core" type="vignette" display="Live API Overview" />
		<seealso name="live_object_model" module="core" type="vignette" display="Live Object Model" />
		<seealso name="live.object" />
		<seealso name="live.observer" />
		<seealso name="live.path" />
		<seealso display="Using the Live API" module="core" name="live_api" type="vignette" />
		<seealso display="The LiveAPI JavaScript Object (jsliveapi)" module="js" name="jsliveapi" type="vignette" />
		<seealso name="live.banks">
			Manage Max for Live Device banks for Push controllers.
		</seealso>
	</seealsolist>
</c74object>
