<?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="el.oscil~">
    
	<digest>
		Flexible waveform oscillator
	</digest>
	<description>
		<o>el.oscil~</o> is an oscillator with many of your favorite waveforms. You can request a waveform by name or with a series of partial weightings, starting with the DC component. Changing the waveform will  result in gradual interpolation from one waveform to the next. </description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Eric Lyon
		</metadata>
		<metadata name="tag">
			MSP
		</metadata>
		<metadata name="tag">
			LyonPotpourri
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="frequency" type="float" optional="1">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Initial oscillator frequency. Default is 440.
			</description>
		</objarg>
		<objarg name="table length" type="int" optional="1">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Size of internal wavetable. Default is 8192.
			</description>
		</objarg>
		<objarg name="waveform" type="symbol" optional="1">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Initial waveform. The choices are: "sine", "triangle", "square", "sawtooth" or "buzz". Default is "sine".
			</description>
		</objarg>
		<objarg name="harmonic count" type="int" optional="1">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				The number of harmonics for band-limited waveforms. Default is 10.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="amph">
			<arglist>
                <arg name="harmonic data" type="list" optional="0" id="1" />
                
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Specify a waveform in terms of amplitude and phase of each partial. The first value is the weighting of DC. This has no phase of course. Following this are an arbitrary number of pairs of amplitude followed by phase.
            </description>
		</method>
        
		<method name="buzz">
			<arglist>
                <!--arg name="toggle" type="int" optional="0" id="1" /-->
                
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Set the wave to be a band-limited pulsewave.
            </description>
		</method>
        
		<method name="fadetime">
			<arglist>
                <arg name="fade duration" type="float" optional="0" id="1" />
                
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Set the fade time. This is how long it will take to fade from the current waveform to the next, when the waveform changes.
            </description>
		</method>
        
		<method name="fadetype">
			<arglist>
                <arg name="toggle" type="int" optional="0" id="1" />
                
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Set the fade type for waveform interpolation with an integer. The codes are:
                <p/>
                0: no fade
                <p/>
                1: linear fade
                <p/>
                2: power fade
            </description>
		</method>
        
		<method name="harmcount">
			<arglist>
                <arg name="harmonic count" type="int" optional="0" id="1" />
                
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
                Set the maximum number of harmonics.
            </description>
		</method>
        
		<method name="interpolate">
			<arglist>
                <arg name="toggle" type="int" optional="0" id="1" />
                
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
                When set, the oscillator will interpolate, resulting in a cleaner signal. This toggle is off by default.
            </description>
		</method>
        
		<method name="list">
			<arglist>
                <arg name="harmonic pattern" type="list" optional="0" id="1" />
                
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
                Directly specify the weighting of each partial, starting with DC. Each partial will be mixed in sine phase. The weighings will be normalized so that the resulting waveform as a peak-to-peak amplitude of 1.0.
            </description>
		</method>
        
		<method name="sawtooth">
			<arglist>
                <!--arg name="pattern sequence" type="list" optional="0" id="1" /-->
                
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
                Set the current waveform to sawtooth.
            </description>
		</method>
        
		<method name="sine">
			<arglist>
                <!--arg name="pattern sequence" type="list" optional="0" id="1" /-->
                
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
                Set the current waveform to sine.
            </description>
		</method>
        
		<method name="square">
			<arglist>
                <!--arg name="pattern sequence" type="list" optional="0" id="1" /-->
                
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
                Set the current waveform to square.
            </description>
		</method>
        
		<method name="triangle">
			<arglist>
                <!--arg name="pattern sequence" type="list" optional="0" id="1" /-->
                
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
                Set the current waveform to triangle.
            </description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
	</attributelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="cycle~"/>
        <seealso name="wave~"/>
        <seealso name="buffer~"/>
        <seealso name="groove~"/>
	</seealsolist>
    
</c74object>
