<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<c74object name="sdt.modal">

	<digest>
		[solids, object] Modal resonator object.
	</digest>

	<description>
		<o>sdt.modal</o> is a resonator implemented according to modal synthesis: i.e. a set of parallel mass–spring–damper mechanical oscillators, each of which represents a mode of resonance of the object.
	</description>

	<!--METADATA-->
	<metadatalist>
		<metadata name="tag">Sound Design Toolkit</metadata>
	</metadatalist>

	<!--INLETS
	<inletlist>
		<inlet id="0" type="messages to the resonator object">
			<digest>messages to the resonator object.</digest>
			<description>messages to the resonator object.</description>
		</inlet>
	</inletlist>-->

	<!--OUTLETS
	<outletlist>
		<outlet id="0" type="signal">
			<digest>Impact velocity (m/s).</digest>
		</outlet>
	</outletlist>-->

	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="Unique_ID" optional="0" type="symbol, required">
			<digest>Mandatory: Unique name for the resonator.</digest>
		</objarg>

		<objarg name="Modes" optional="0" type="int">
			<digest>Mandatory: Number of available modes.</digest>
		</objarg>

		<objarg name="Pickup-points" optional="0" type="int">
			<digest>Mandatory: Number of available pickup points.</digest>
		</objarg>
	</objarglist>

	<!--MESSAGES
	<methodlist>
		<method name="">
			<arglist>
				<arg name="" optional="0" type="" />
			</arglist>
			<digest>
			</digest>
			<description>
			</description>
		</method>
	</methodlist>-->

	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="freqs" get="1" set="1" type="float, list" size="1" >
		    <digest>Frequency of each mode (Hz).</digest>
		    <description></description>
	  </attribute>

		<attribute name="decays" get="1" set="1" type="float, list" size="1">
		    <digest>Decay of each mode (s).</digest>
		    <description></description>
	  </attribute>

		<attribute name="fragmentSize" get="1" set="1" type="float" size="1">
				<digest>Fraction of the whole object [0., 1.]. Used by control algorithms (e.g. <o>sdt.breaking~</o>) to simulate fragmentation.</digest>
				<description></description>
		</attribute>

		<attribute name="activeModes" get="1" set="1" type="int" size="1">
				<digest>Number of currently active modes (maximum = argument <m>Modes</m>).</digest>
				<description></description>
		</attribute>

		<attribute name="pickup" get="1" set="1" type="float, list" size="1">
				<digest>Modal weights for each pickup (kg^-1), starting from pickup0, pickup1, ..., pickupN.</digest>
				<description></description>
		</attribute>
	</attributelist>

	<!--SEEALSO-->
	<seealsolist>
		<seealso name="sdt.inertial"/>
		<seealso name="sdt.impact~"/>
		<seealso name="sdt.friction~"/>
		<seealso name="sdt.bouncing~"/>
		<seealso name="sdt.breaking~"/>
		<seealso name="sdt.crumpling~"/>
		<seealso name="sdt.rolling~"/>
		<seealso name="sdt.scraping~"/>
	</seealsolist>

</c74object>
