<?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.buffet~">
	<digest>
		Perform operations on the contents of an MSP buffer.
	</digest>
	<description>
		<o>
			el.buffet~
		</o>
        provides a variety of irreversible transformations to the contents of a buffer, along with some useful analysis of its contents.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Eric Lyon
		</metadata>
		<metadata name="tag">
			MSP
		</metadata>
		<metadata name="tag">
			LyonPotpourri
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" name="INLET_NAME">
			<digest>
				optional sync signal from groove~
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" name="OUTLET_NAME">
			<digest>
				Bang on completion of buffer operation
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" name="OUTLET_NAME">
			<digest>
				internal buffer segment list
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" name="OUTLET_NAME">
			<digest>
				average RMS of selected buffer region
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="buffername" type="symbol" optional="0">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				The name of the buffer.
			</description>
		</objarg>
		<objarg name="minswap" type="float" optional="1">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Minimum block size to swap (ms).
			</description>
		</objarg>
		<objarg name="maxswap" type="float" optional="1">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Maximum block size to swap (ms).
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="catbuf">
			<arglist>
				<arg name="buffer name" type="symbol" optional="0" id="0" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				concatenate the contents of a separate buffer to the current buffer. Both buffers must have the same number of channels. The current buffer will be resized to accommodate the new samples appended to the end.
			</description>
		</method>
		<method name="copy_to_buffer">
			<arglist>
				<arg name="buffer name, start, end" type="list" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Copy a region of the current buffer to a second buffer. The destination buffer is erased prior to copying. Both buffers must have the same number of channels. Start and end times are specified in milliseconds.
			</description>
		</method>
		<method name="copy_to_mono_buffer">
			<arglist>
				<arg name="buffer name, channel, start, end, [fadein, fadeout]" type="list" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Copy a single channel of a region of the current buffer to a second, mono buffer. Useful for de-multiplexing buffers. The destination buffer is erased prior to copying. Start and end times are specified in milliseconds. Channels are counted starting at zero. If fadein and fadeout times (ms) are provided, the excerpt will be enveloped in the new buffer.
			</description>
		</method>
		<method name="dc_coef">
			<arglist>
				<arg name="coefficient" type="float" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Set the dc filter coefficient. By default it is 0.995.
			</description>
		</method>
		<method name="erase">
			<arglist>
				<arg name="start, end" type="list" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Clear all channels of a specified region of the file.
			</description>
		</method>
		<method name="events">
			<arglist>
				<arg name="window size" type="float" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				RMS based attempt to identify events within buffer. Output is a list sent from outlet two.
			</description>
		</method>
		<method name="fadein">
			<arglist>
				<arg name="fade time" type="float" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Apply a fade in. Fade time is in ms.
			</description>
		</method>
		<method name="fadeout">
			<arglist>
				<arg name="fade time" type="float" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Apply a fade out. Fade time is in ms.
			</description>
		</method>
		<method name="fixdenorm">
			<arglist>
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Replace any denormaled samples with zeros.
			</description>
		</method>
		<method name="info">
			<arglist>
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Print current parameters.
			</description>
		</method>
		<method name="internal_fadeout">
			<arglist>
                <arg name="start, end" type="list" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Fades out over a specified region.
			</description>
		</method>
		<method name="killdc">
			<arglist>
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Remove DC signal from buffer contents.
			</description>
		</method>
		<method name="maxswap">
			<arglist>
                <arg name="swaptime" type="float" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Set maximum swap time.
			</description>
		</method>
		<method name="minswap">
			<arglist>
                <arg name="swaptime" type="float" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Set minimum swap time.
			</description>
		</method>
		<method name="nakedswap">
			<arglist>
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Swap two blocks, with no enveloping.
			</description>
		</method>
		<method name="normalize">
			<arglist>
                <arg name="target" type="float" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Normalize entire buffer to target peak amplitude.
			</description>
		</method>
		<method name="normalize_selection">
			<arglist>
                <arg name="target, start end" type="list" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Normalize specified region to target peak amplitude.
			</description>
		</method>
		<method name="overdub">
			<arglist>
                <arg name="dubsource, skipin, skipout, gain, segdur, fadein, fadeout" type="list" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Overdub a segment from a second buffer into a specified region in the current buffer.
			</description>
		</method>
		<method name="overlap">
			<arglist>
                <arg name="overlap time" type="float" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Set overlap time for swapped segments. Default is 20 milliseconds.
			</description>
		</method>
		<method name="pevents">
			<arglist>
                <arg name="bufsize, diff threshold" type="list" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Segment buffer into percussive events. The bufsize is the chunk for RMS averaging. 50 ms is recommended to start. The diff threshold is the threshold for changes in amplitude. Try 0.01 to start. Events are sent as a list of data from the second outlet.
			</description>
		</method>
		<method name="resize">
			<arglist>
                <arg name="new size" type="float" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Resize the current buffer.
			</description>
		</method>
		<method name="retroblock">
			<arglist>
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Reverse a randomly selected segment.
			</description>
		</method>
		<method name="reverse">
			<arglist>
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Reverse entire buffer.
			</description>
		</method>
		<method name="rmschunk">
			<arglist>
                <arg name="start, end" type="list" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Reports the RMS average of a specified region. The value is sent to the third outlet.
			</description>
		</method>
        <method name="rotatetozero">
			<arglist>
                <arg name="new start" type="float" optional="0" id="1" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Rotates buffer contents to start at the specified start point.
			</description>
		</method>
        <method name="setbuf">
            <arglist>
                <arg name="new buffer name" type="symbol" optional="0" id="1" />
            </arglist>
            <digest>
                TEXT_HERE
            </digest>
            <description>
                Select current buffer.
            </description>
		</method>
        <method name="spritz">
            <arglist>
                <arg name="density" type="float" optional="0" id="1" />
            </arglist>
            <digest>
                TEXT_HERE
            </digest>
            <description>
                Fills buffer with random spikes (-1 to 1). Density is the average number of spikes per second.
            </description>
        </method>
        <method name="specswap">
            <arglist>
                <arg name="start 1, start 2, segment duration" type="list" optional="0" id="1" />
            </arglist>
            <digest>
                TEXT_HERE
            </digest>
            <description>
                Swap blocks in buffer according to specifications.
            </description>
        </method>
        <method name="swap">
            <arglist>
            </arglist>
            <digest>
                TEXT_HERE
            </digest>
            <description>
                Randomly swap two blocks in buffer.
            </description>
        </method>
        <method name="trimzero">
            <arglist>
                <arg name="threshold" type="list" optional="1" id="1" />
                
            </arglist>
            <digest>
                TEXT_HERE
            </digest>
            <description>
                Removing leading and trailing zeros in buffer. Buffer is resized. Optionally specify threshold to remove low noise too. Default value is 0.000001.
            </description>
        </method>
	</methodlist>
	<!--ATTRIBUTES-->
    
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="buffer~"/>
        <seealso name="waveform~"/>
	</seealsolist>
    
</c74object>
