<?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="mc.range~" module="msp" category="MC">
	<digest>
		Generate a multichannel signal with a range of constant values
	</digest>
	<description>
		The <o>mc.range~</o> object generates a multichannel signal filled with constant values distributed across a defined range.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			MSP
		</metadata>
		<metadata name="tag">
			MC
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="multi-channel signal">
			<digest>
				Define Range
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="multi-channel signal">
			<digest>
				Define Range
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="multi-channel signal">
			<digest>
				Range
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg id="0" name="size" type="int" optional="0">
			<digest>
				Output channel count
			</digest>
			<description>
				The argument defines a maximum number of channels in the multichannel output signal.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="signal">
			<arglist />
			<digest>
				Define Range
			</digest>
			<description>
				If a multichannel signal is connected to the left inlet, the values of the first two channels determine the output range, overriding the values of the <at>lo</at> and <at>hi</at> attributes.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="chans" get="1" set="1" type="int" size="1">
			<digest>
				Number of Channels
			</digest>
			<description>
				The <at>chans</at> attribute sets the channel count of the output multichannel signal, determining the number of channels that will be used to define the range. If <at>chans</at> is modified while the audio is on, extra channels are set to zero. After audio is restarted, the output channel count will be set to the value of <at>chans</at>.
			</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="Number of Channels" />
			</attributelist>
		</attribute>
		<attribute name="hi" get="1" set="1" type="float" size="1">
			<digest>
				Range High End
			</digest>
			<description>
				Sets the high value used when calculating channel output values. Actual values relative to the <at>lo</at> and <at>hi</at> attributes are determined based on the <at>inclusive</at> attribute setting.
			</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="Range High End" />
			</attributelist>
		</attribute>
		<attribute name="inclusive" get="1" set="1" type="int" size="1">
			<digest>
				Include Range Endpoints
			</digest>
			<description>
				Determines how endpoint values are used when calculating values for each output channel.
			</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="enumvals" get="1" set="1" type="atom" size="4">
					<enumlist>
						<enum name="Neither">
							<digest>
								Ignore Endpoints
							</digest>
							<description>
								Uses neither the low or high endpoint values when calculating mc channel values. For example, 5 channels with a <at>lo</at> of 0.0 and a <at>lo</at> of 1.0 will generate signal values of 0.17, 0.33, 0.5, 0.67, and 0.83.
							</description>
						</enum>
						<enum name="Both">
							<digest>
								Use Endpoints
							</digest>
							<description>
								Uses the low enpoint value for the first channel and high endpoint value as the last channel when calculating mc channel values. For example, 5 channels with a <at>lo</at> of 0.0 and a <at>lo</at> of 1.0 will generate signal values of 0.0, 0.25, 0.5, 0.75, and 1.0.
							</description>
						</enum>
						<enum name="Low Only">
							<digest>
								Use Low
							</digest>
							<description>
								Uses the low endpoint value for the first channel and calculates all other channel values accordingly. For example, 5 channels with a <at>lo</at> of 0.0 and a <at>lo</at> of 1.0 will generate signal values of 0.0, 0.2, 0.4, 0.6, and 0.8.
							</description>
						</enum>
						<enum name="High Only">
							<digest>
								Use High
							</digest>
							<description>
								Uses the high endpoint value for the last channel and calculates all other channel values accordingly. For example, 5 channels with a <at>lo</at> of 0.0 and a <at>lo</at> of 1.0 will generate signal values of 0.2, 0.4, 0.6, 0.8, and 1.0.
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Include Range Endpoints" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="lo" get="1" set="1" type="float" size="1">
			<digest>
				Range Low End
			</digest>
			<description>
				Sets the low value used when calculating channel output values. Actual values relative to the <at>lo</at> and <at>hi</at> attributes are determined based on the <at>inclusive</at> attribute setting.
			</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="Range Low End" />
			</attributelist>
		</attribute>
		<attribute name="reflection" get="1" set="1" type="float" size="1">
			<digest>
				Reflection Point
			</digest>
			<description>
				The <at>reflection</at> attribute sets a relative location within the range where the output reaches its high value and then returns to the low value. By default, the value of <at>reflection</at> is 1 which has no effect on the output range. If <at>reflection</at> is set to a value between 0 and 1, the output reaches the high value somewhere in the middle of the output channel space, returning to the low value for the last channel in the output multichannel signal. As <at>reflection</at> moves toward zero, the output begins to resemble an inverted range and when <at>reflection</at> is set to 0, the output is completely inverted.
			</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="default" get="1" set="1" type="float" size="1" value="1." />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Reflection Point" />
			</attributelist>
		</attribute>
	</attributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example caption="" img="" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="mc.list~" />
		<seealso name="mc.evolve~" />
		<seealso name="mc.gradient~" />
		<seealso name="multirange" />
		<seealso name="mc_complexity" module="core" type="vignette" />
		<seealso name="mc_function_generators" module="core" type="vignette" />
	</seealsolist>
</c74object>
