<?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="gen~" module="msp" category="MSP Code Generation">
	<digest>
		Generate native audio signal processing routines
	</digest>
	<description>
		The <o>gen~</o> object turns an embedded Gen patcher into signal processing routines of optimized native machine code. The Gen patcher can be built from a wide set of low-level Gen operator objects as well as embedded code expressions.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			MSP
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				in 1
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				in 2
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				out 1
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="patcher-name" optional="1" type="symbol">
			<arglist />
			<digest>
				Name of a patcher to be loaded
			</digest>
			<description>
				The first argument, if given, specifies the name of a .gendsp patcher to be loaded which already exists and is in the Max search path. The patcher can also be specified using the <at>gen</at> attribute. If no Gen patcher is specified by argument or <at>gen</at> attribute, an embedded Gen patcher is created instead.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="int">
			<arglist>
				<arg name="value" type="int" optional="0" />
			</arglist>
			<digest>
				Set input value
			</digest>
			<description>
				Set input value (if signal is not attached).
			</description>
		</method>
		<method name="float">
			<arglist>
				<arg name="value" type="float" optional="0" />
			</arglist>
			<digest>
				Set input value
			</digest>
			<description>
				Set input value (if signal is not attached).
			</description>
		</method>
		<method name="(mouse)">
			<digest>
				Double-click to open the Gen patcher
			</digest>
			<description>
				Double-click to open the Gen patcher.
			</description>
		</method>
		<method name="exportcode">
			<arglist />
			<digest>
				Export a gen patcher as code.
			</digest>
			<description>
				Export a gen patcher as C++ code.
			</description>
		</method>
		<method name="open">
			<arglist />
			<digest>
				Open the Gen patcher window
			</digest>
			<description>
				View the Gen patcher.
			</description>
		</method>
		<method name="reload">
			<arglist />
			<digest>
				Reload the Gen patcher
			</digest>
			<description>
				Reload the Gen patcher.
			</description>
		</method>
		<method name="reset">
			<arglist />
			<digest>
				Reset all parameters to defaults
			</digest>
			<description>
				Reset all parameters to defaults (including history values and buffer object associations).
			</description>
		</method>
		<method name="reset_param">
			<arglist>
				<arg name="name" type="symbol" />
			</arglist>
			<digest>
				Resets a specific parameter
			</digest>
			<description>
				Resets a specific param, history or buffer object to the default initial value.
			</description>
		</method>
		<method name="signal">
			<arglist />
			<digest>
				Send signals to the Gen patcher
			</digest>
			<description>
				Send signals to the Gen patcher.
			</description>
		</method>
		<method name="wclose">
			<arglist />
			<digest>
				Close the Gen patcher window
			</digest>
			<description>
				Close the view of the Gen patcher.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="autoexport" get="1" set="1" type="int" size="1">
			<digest>
				Automatically export on edit
			</digest>
			<description>
				Automatically export code on edit.  Equivalent to sending the exportcode message every time an edit is made. Please note that in order for this to work properly, the following must be true: audio must be on, a previous manual export must have occurred, and a valid value for the exportfolder attribute must be set.
			</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="Export" />
				<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="Automatically export on edit" />
				<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="cpu" get="1" set="0" type="float" size="1">
			<digest>
				Report CPU usage
			</digest>
			<description>
				Reports cpu usage as a fraction of available compute time, if <at>cpumeasure</at> is enabled.
			</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="Show CPU Usage" />
				<attribute name="style" get="1" set="1" type="symbol" size="4" value="fraction of available time" />
			</attributelist>
		</attribute>
		<attribute name="cpumeasure" get="1" set="1" type="int" size="1">
			<digest>
				CPU monitoring toggle
			</digest>
			<description>
				CPU monitoring must be enabled for <at>cpu</at> to work.
			</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="int" size="1" value="0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Measure CPU Usage" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="dumpoutlet" get="1" set="1" type="int" size="1">
			<digest>
				Attribute Dump Outlet
			</digest>
			<description>
				Enables an additional &quot;dump&quot; outlet for diagnostics, such as reading the <at>cpu</at> attribute.
			</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="int" size="1" value="0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Attribute Dump Outlet" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="exportfolder" get="1" set="1" type="symbol" size="1">
			<digest>
				Folder to export into
			</digest>
			<description>
				Folder to export code into.  Used by the exportcode message to determine what directory to write source files into.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="symbol" size="1" value="Export" />
				<attribute name="default" get="1" set="1" type="symbol" size="1" value="" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Folder to export into" />
				<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="filefolder" />
			</attributelist>
		</attribute>
		<attribute name="exportname" get="1" set="1" type="symbol" size="1">
			<digest>
				Export Filename
			</digest>
			<description>
				Export Filename
			</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="Export" />
				<attribute name="default" get="1" set="1" type="symbol" size="1" value="" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Export Filename" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="exportnotifier" get="1" set="1" type="symbol" size="1">
			<digest>
				Receive object name to receive export notification
			</digest>
			<description>
				Receive object name to receive export notification
			</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="Export" />
				<attribute name="default" get="1" set="1" type="symbol" size="1" value="" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Receive object name to receive export notification" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="exportscript" get="1" set="1" type="symbol" size="1">
			<digest>
				Post export script
			</digest>
			<description>
				Post export script
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="symbol" size="1" value="Export" />
				<attribute name="default" get="1" set="1" type="symbol" size="1" value="" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Post export script" />
				<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="file" />
			</attributelist>
		</attribute>
		<attribute name="exportscriptargs" get="1" set="1" type="symbol" size="1">
			<digest>
				Post export script arguments
			</digest>
			<description>
				Post export script arguments
			</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="Export" />
				<attribute name="default" get="1" set="1" type="symbol" size="1" value="" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Post export script arguments" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="gen" get="1" set="1" type="symbol" size="1">
			<digest>
				Gen patcher name to load from disk
			</digest>
			<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="Value" />
				<attribute name="default" get="1" set="1" type="symbol" size="1" value="" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Gen File" />
			</attributelist>
		</attribute>
		<attribute name="nocache" get="1" set="1" type="int" size="1">
			<digest>
				Set Gen patcher caching
			</digest>
			<description>
				The <at>nocache</at> attribute, with an argument of 1, recompiles the Gen patcher regardless of whether another instance of Gen has already compiled it. When set to 0 (default), Gen caches previous compiles to save on load time.
			</description>
			<attributelist>
				<attribute name="default" get="1" set="1" type="int" size="1" value="0" />
			</attributelist>
		</attribute>
		<attribute name="poll" get="1" set="1" type="int" size="1">
			<digest>
				Enable attribute polling
			</digest>
			<description>
				Enable attribute polling
			</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="int" size="1" value="0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Enable attribute polling" />
				<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="title" get="1" set="1" type="symbol" size="1">
			<digest>
				Set patcher title
			</digest>
			<description>
				Set patcher title.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Title" />
			</attributelist>
		</attribute>
	</attributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="gen~.png" caption="Using gen~ to host a Gen patcher" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="mcs.gen~" />
		<seealso name="mc.gen~" />
		<seealso name="jit.gen" />
		<seealso name="jit.pix" />
		<seealso module="gen" name="gen_overview" type="vignette" />
		<seealso module="gen" name="gen_common_operators" type="vignette" />
		<seealso module="gen" name="gen~_operators" type="vignette" />
	</seealsolist>
</c74object>
