<?xml version="1.0"?>
<!--
###################################################
##Fast Noise Source
###################################################
 -->
<block>
	<name>Fast Noise Source</name>
	<key>analog_fastnoise_source_x</key>
	<import>from gnuradio import analog</import>
	<make>analog.fastnoise_source_$(type.fcn)($noise_type, $amp, $seed, $samples)</make>
	<callback>set_type($noise_type)</callback>
	<callback>set_amplitude($amp)</callback>
	<param>
		<name>Output Type</name>
		<key>type</key>
		<type>enum</type>
		<option>
			<name>Complex</name>
			<key>complex</key>
			<opt>fcn:c</opt>
		</option>
		<option>
			<name>Float</name>
			<key>float</key>
			<opt>fcn:f</opt>
		</option>
		<option>
			<name>Int</name>
			<key>int</key>
			<opt>fcn:i</opt>
		</option>
		<option>
			<name>Short</name>
			<key>short</key>
			<opt>fcn:s</opt>
		</option>
	</param>
	<param>
		<name>Noise Type</name>
		<key>noise_type</key>
		<value>analog.GR_GAUSSIAN</value>
		<type>int</type>
		<option>
			<name>Uniform</name>
			<key>analog.GR_UNIFORM</key>
		</option>
		<option>
			<name>Gaussian</name>
			<key>analog.GR_GAUSSIAN</key>
		</option>
		<option>
			<name>Laplacian</name>
			<key>analog.GR_LAPLACIAN</key>
		</option>
		<option>
			<name>Impulse</name>
			<key>analog.GR_IMPULSE</key>
		</option>
	</param>
	<param>
		<name>Amplitude</name>
		<key>amp</key>
		<value>1</value>
		<type>real</type>
	</param>
	<param>
		<name>Seed</name>
		<key>seed</key>
		<value>0</value>
		<type>int</type>
	</param>
	<param>
		<name>Variate Pool Size</name>
		<key>samples</key>
		<value>8192</value>
		<type>int</type>
	</param>
	<source>
		<name>out</name>
		<type>$type</type>
	</source>
    <doc>
The fast noise source works by pre-generating a pool of random variates taken from the specified distribution.  At runtime, samples are then uniform randomly chosen from this pool which is a very fast operation.
    </doc>
</block>
