<?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="ddg.mono" module="m4l" category="M4L">
	<digest>
		Monophonic Synth Controller for Virtual Synths
	</digest>
	<description>
		<o>ddg.mono</o> provides MIDI message handling for virtual monophonic synths in Max. It implements last/high/low note priority and legato/retrigger phrasing.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			TEXT_HERE
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="int">
			<digest>
				MIDI Note in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="int">
			<digest>
				MIDI Velocity in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="int">
			<digest>
				MIDI Note out
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="int">
			<digest>
				MIDI Velocity out
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="note priority" optional="1" type="int">
			<digest>
				Note priority mode
			</digest>
			<description>
				An optional integer argument in the range 0 - 2 can be used to specify note priority. The mode settings are:
				<br />
				<br />
				mode 0 (retrigger): Retrigger on each keypress (default).
				<br />
				mode 1 (legato): Retrigger on new note only.
				<br />
				mode 2 (laststep): Send a noteoff message on last note only.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="int">
			<arglist>
				<arg name="MIDI-note-value" optional="0" type="int" />
			</arglist>
			<digest>
				Function depends on inlet
			</digest>
			<description>
				In first inlet: The number is treated as a pitch value for a MIDI note-on message. Output of the received number and its corresponding velocity value is dependent on the <m>mode</m> attribute and the triggering modes (set using the <m>legato</m> or <m>retrig</m> messages).
				<br />
				<br />
				In second inlet: The number is stored as a velocity to be paired with pitch numbers received in the left inlet.
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Clear all notes
			</digest>
			<description>
				The <m>clear</m> message will send a note-off message to stop any notes which are currently playing.
			</description>
		</method>
		<method name="in1">
			<arglist>
				<arg name="MIDI-velocity-value" optional="0" type="int" />
			</arglist>
			<digest>
				Store as a velocity to pair with pitch values
			</digest>
			<description>
				In right inlet: The number is stored as a velocity to be paired with pitch numbers received in the left inlet.
			</description>
		</method>
		<method name="laststep">
			<arglist />
			<digest>
				Send a note-off for the last note played
			</digest>
			<description>
				The <m>laststep</m> message will cause the <o>ddg.mono</o> object to send a note-off message for the last note played.
			</description>
		</method>
		<method name="legato">
			<arglist />
			<digest>
				Send output only when a new note is played
			</digest>
			<description>
				The <m>legato</m> message will cause the <o>ddg.mono</o> object to send its output only when a new note is played.
			</description>
		</method>
		<method name="retrig">
			<arglist />
			<digest>
				Send output on each key press (retrigger)
			</digest>
			<description>
				The <m>retrig</m> message will cause the <o>ddg.mono</o> object to send its output on each key press (i.e., retriggering previously played notes).
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="legatomode" get="1" set="1" type="atom_long" size="1">
			<digest>
				Legato mode
			</digest>
			<description>
				Sets the legato mode.
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="3">
					<enumlist>
						<enum name="Retrigger">
							<digest>
								Retrigger mode
							</digest>
							<description>
								Retrigger on each keypress (default).
							</description>
						</enum>
						<enum name="Legato">
							<digest>
								Legato mode
							</digest>
							<description>
								Retrigger on new note only.
							</description>
						</enum>
						<enum name="Last Step">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Legato Modes" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="mode" get="1" set="1" type="atom_long" size="1">
			<digest>
				Priority Mode
			</digest>
			<description>
				Sets the note priority mode.
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="3">
					<enumlist>
						<enum name="Last Note">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="High Note">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="Low Note">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Priority Mode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
	</attributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="ddg.mono.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="kslider" />
		<seealso name="midiin" />
		<seealso name="midiparse" />
		<seealso name="notein" />
		<seealso name="midichapter02" module="max" type="tutorial" />
	</seealsolist>
</c74object>
