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

<c74object name="sdt.explosion~">

	<digest>
		[gases] Supersonic explosion sounds.
	</digest>

	<description>
		<o>sdt.explosion~</o> simulates the shock wave produced by an object travelling in the air at supersonic speed by means of a Friedlander waveform.
		A feedback delay network is used to render scattering and turbulences.
		It takes six control parameters: the <i>blast time</i>, the <i> scatter time</i>, the <i>dispersion</i>,
		the <i>distance</i> of the explosion, the <i> wave speed</i>, and <i> wind speed</i>, that is the propagation of the blast wind.
		It outputs two audio signals representing respectively the blast wave and the blast wind.
	</description>

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

	<!--INLETS
	<inletlist>
		<inlet id="0" type="bang">
			<digest>Bang triggers the blast wave.</digest>
			<description></description>
		</inlet>
	</inletlist>
	-->

	<!--OUTLETS
	<outletlist>
		<outlet id="0" type="signal">
			<digest>Blast wave.</digest>
		</outlet>

		<outlet id="1" type="signal">
			<digest>Blast wind.</digest>
		</outlet>
	</outletlist>
	-->

	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="scatter-size" optional="1" type="int">
			<digest>Size of the scattering delay lines, in samples (default is 44100)</digest>
			<description>
				Average length of the reverberation delay lines, in samples.
				Defaults to 44100, which allows for a maximum scatter time of approximately 100 s at a sampling rate of 44.1 kHz.
			</description>
		</objarg>

		<objarg name="propagation-size" optional="1" type="int">
			<digest>
				Size of the wave propagation delay lines, in samples (default is 4410000).
			</digest>
			<description>
				Length of the propagation delay lines, in samples.
				Defaults to 4410000, which allows for a maximum propagation time of approximately 100 s at a sampling rate of 44.1 kHz.
			</description>
		</objarg>
	</objarglist>

	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<digest>
				Bang triggers the blast wave model.
			</digest>
			<description>
			</description>
		</method>
	</methodlist>

	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="blastTime" get="1" set="1" type="float" size="1" >
		    <digest>Duration of the initial pressure peak (s).</digest>
		    <description></description>
	  </attribute>

		<attribute name="scatterTime" get="1" set="1" type="float" size="1">
		    <digest>Duration of the turbulence tail (s).</digest>
		    <description></description>
	  </attribute>

		<attribute name="dispersion" get="1" set="1" type="float" size="1" >
				<digest>Amount of turbulence [0., 1.].</digest>
				<description></description>
		</attribute>

		<attribute name="distance" get="1" set="1" type="float" size="1" >
				<digest>Distance of the explosion (m).</digest>
				<description></description>
		</attribute>

		<attribute name="waveSpeed" get="1" set="1" type="float" size="1" >
				<digest>Propagation speed of the blast wave (m/s).</digest>
				<description></description>
		</attribute>

		<attribute name="windSpeed" get="1" set="1" type="float" size="1" >
				<digest>Propagation speed of the blast wind (m/s).</digest>
				<description></description>
		</attribute>
	</attributelist>

	<!--SEEALSO-->
	<seealsolist>
		<seealso name="sdt.windflow~"/>
		<seealso name="sdt.windcavity~"/>
		<seealso name="sdt.windkarman~"/>
	</seealsolist>

	<!--MISC
	<misc name="Output">
		<entry name="signal">
			<description>
				Outlet 0: Blast wave.<br />
				Outlet 1: Blast wind.
			</description>
		</entry>
	</misc>
	-->

</c74object>
