<?xml version="1.0" ?>
<!DOCTYPE ladspa SYSTEM "ladspa-swh.dtd">
<?xml-stylesheet href="ladspa.css" type="text/css" ?>
<ladspa>
	<global>
		<meta name="maker" value="Steve Harris &lt;steve@plugin.org.uk&gt;"/>
		<meta name="copyright" value="GPL"/>
		<meta name="properties" value="HARD_RT_CAPABLE"/>
	</global>

	<plugin label="foverdrive" id="1196" class="DistortionPlugin">
		<name>Fast overdrive</name>
		<p>A simple overdrive. Compresses the extreme peaks to make a sound similar to an overdriven amplifier.</p>

		<callback event="run">
			unsigned long pos;
			const float drivem1 = drive - 1.0f;

			for (pos = 0; pos &lt; sample_count; pos++) {
				LADSPA_Data x = input[pos];
				const float fx = fabs(x);
				buffer_write(output[pos], x*(fx + drive)/(x*x + drivem1*fx + 1.0f));
			}
		</callback>

		<port label="drive" dir="input" type="control" hint="default_minimum">
			<name>Drive level</name>
			<range min="1" max="3"/>
			<p>Controls the point at which the signal starts to distort, and the degree of distortion.</p>
		</port>

		<port label="input" dir="input" type="audio">
			<name>Input</name>
		</port>

		<port label="output" dir="output" type="audio">
			<name>Output</name>
		</port>
	</plugin>
</ladspa>
