<?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="buffer~" module="msp" category="MSP Sampling">
	<digest>
		Store audio samples
	</digest>
	<description>
		Use the <o>buffer~</o> object as a buffer of memory in which samples are stored to be saved, edited, or referenced.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			MSP
		</metadata>
		<metadata name="tag">
			MSP Sampling
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				size Resizes, File Operations: read, write
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				size Resizes, File Operations: read, write
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				msec Mouse Position in Editing Window
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				bang When File Read Operation Completed
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="name" optional="0" type="symbol">
			<digest>
				Buffer name
			</digest>
			<description>
				The first argument is a name used by other objects to refer to the <o>buffer~</o> to access its contents.
				<br />
				<br />
				For information about using named objects in Max for Live, click <link module="core" name="live_symbols" type="vignette">here</link>.
			</description>
		</objarg>
		<objarg name="filename" optional="1" type="symbol">
			<digest>
				Audio file to be loaded
			</digest>
			<description>
				After the <o>buffer~</o> object's name, you may type the name of an audio file to load when the <o>buffer~</o> is created.
			</description>
		</objarg>
		<objarg name="duration" optional="1" type="number" units="ms">
			<digest>
				Duration to load
			</digest>
			<description>
				After the optional filename argument, a duration may be provided, in milliseconds, to set the size of the <o>buffer~</o>, which limits the amount of sound that will be stored in it. (A new duration can be specified as part of a <m>read</m> message, however.) If no duration is typed in, the <o>buffer~</o> has no sample memory. It does not, however, limit the size of an audio file that can be read in.
			</description>
		</objarg>
		<objarg name="channels" optional="1" type="int">
			<digest>
				Number of audio channels
			</digest>
			<description>
				After the duration, an additional argument may be typed in to specify the number of audio channels to be stored in the <o>buffer~</o>. (This is to tell <o>buffer~</o> how much memory to allocate initially; however, if an audio file with more channels is read in, <o>buffer~</o> will allocate more memory for the additional channels.) buffer~ may have an arbitrary number of channels, only limited by the amount of RAM available. By default, <o>buffer~</o> has one channel.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Redraw the waveform display window
			</digest>
			<description>
				Redraws the contents of the <o>buffer~</o> object's waveform display window. You can open the display window by double-clicking on the <o>buffer~</o> object.
			</description>
		</method>
		<method name="(remote)">
			<arglist />
			<digest>
				Alter or play back the loaded buffer
			</digest>
			<description>
				The contents of <o>buffer~</o> can be altered by the <o>peek~</o> and <o>record~</o> objects or referenced/played-back by the <o>2d.wave~</o>, <o>play~</o>, <o>wave~</o>, <o>groove~</o>, <o>buffir~</o>, <o>cycle~</o>, and <o>lookup~</o> objects.
			</description>
			<attributelist>
				<attribute name="documentable" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</method>
		<method name="(drag)">
			<digest>
				Drag from the File Browser to load an audio file
			</digest>
			<description>
				When an audio file is dragged from the Max File Browser to a <o>buffer~</o> object, the file will be loaded.
			</description>
		</method>
		<method name="apply">
			<arglist>
				<arg name="function-and-parameters" optional="0" type="list" />
			</arglist>
			<digest>
				Apply a function to a buffer's contents
			</digest>
			<description>
				The word <m>apply</m>, followed by list consisting of one to three symbols or numbers, will apply a windowing function to the current contents of a <o>buffer~</o>.				<br />
				<br />
				The word <m>apply</m>, followed by a single symbol that designates a windowing function, will apply that function to the current contents of the <o>buffer~</o>. Supported functions include triangle, hamming, hanning, blackman, welch, and kaiser. An additional second symbol argument of <m>half</m> (e.g. <m>apply blackman half</m>) will calculate the function and apply only the second half to the whole <o>buffer~</o>.				<br />
				<br />
				Note: The kaiser function requires a second floating point argument that specifies the beta parameter and precedes an optional <m>half</m> argument (e.g. <m>apply kaiser 4.5 half</m>).
				<br />
				<br />
				The word <m>apply</m>, followed by the word <m>gain</m> and a floating-point number that specifies a gain value, will scale every sample by the gain coefficient. <m>offset</m> and a floating-point number that specifies a constant value that will be added to every sample in the buffer~.
				<br />
				<br />
				The word <m>apply</m>, followed by the word <m>getdeltas</m>, will replace every sample value with the a new value representing the difference from the previous sample.
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Erase the contents of the <o>buffer~</o> 
			</digest>
			<description>
				Erases the contents of <o>buffer~</o>.
			</description>
		</method>
		<method name="clearlow">
			<arglist />
			<digest>
				Erase the contents of the <o>buffer~</o> as a low-priority task
			</digest>
			<description>
				Erases the contents of the buffer like the <m>clear</m> message, but performs the clear as a low-priority task.
			</description>
		</method>
		<method name="crop">
			<arglist>
				<arg name="start and end times" optional="0" type="list" />
			</arglist>
			<digest>
				Trim the <o>buffer~</o> contents to new start and end points
			</digest>
			<description>
				The <m>crop</m> message, followed by two numbers that specify start and end time in milliseconds, will trim the audio data in the buffer. It resizes the buffer~ to the selection length.
			</description>
		</method>
		<method name="filetype">
			<arglist>
				<arg name="file-type-code" optional="0" type="symbol" />
			</arglist>
			<digest>
				Set the file type used by the <o>buffer~</o> object
			</digest>
			<description>
				The word <m>filetype</m>, followed by symbol which specifies an audio file format, sets the file type used by the <o>buffer~</o> object. The default file type is AIFF.Supported file types are identified as follows:
				<br />
				<br />
				<m>aiff</m>- Apple Interchange File Format (default)
				<br />
				<m>wave</m>- WAVE
				<br />
				<m>raw</m>- raw
				<br />
				<m>au</m>- NeXT/Sun
			</description>
		</method>
		<method name="fill">
			<arglist>
				<arg name="constant/function" optional="0" type="list" />
			</arglist>
			<digest>
				Fill a <o>buffer~</o> object with a constant or a mathematical function
			</digest>
			<description>
				The word <m>fill</m>, followed by list consisting of one to three symbols or numbers, specifies how the contents of a <o>buffer~</o> object will be filled.
				<br />
				<br />
				The word <m>fill</m>, followed by a single floating-point number, will set every sample in the <o>buffer~</o> to that value.
				<br />
				<br />
				The word <m>fill</m>, followed by a symbol that designates a function, will fill the <o>buffer~</o> with one cycle of that function. Supported functions include sin (sine), cos, (cosine), and sinc. An optional second argument (e.g. <m>fill sin 2</m>) can be used to define the number of cycles of the function used to fill the <o>buffer~</o>. An additional optional third argument defines a rational number of cycles with which to fill the <o>buffer~</o> (e.g. <m>fill cos 1 4</m> will fill a <o>buffer~</o> with a quarter cycle of the cosine function).
				<br />
				<br />
				Note: the sinc function requires two <m>int</m> arguments that specify the number of zero crossings and an additional flag that toggles starting the function at zero (e.g. <m>fill sinc 4 1</m>).
			</description>
		</method>
		<method name="format">
			<arglist>
				<arg name="bit-depth/sample-type" optional="0" type="list" />
			</arglist>
			<digest>
				Set the bit depth or sample type of the buffer
			</digest>
			<description>
				The word <m>format</m> followed by a number or a symbol will set the bit-depth or sample-type of the buffer.
				<br />
				<br />
				Numerical values are:
				<br />
				8 - 8-bit integer
				<br />
				16 - 16-bit integer
				<br />
				24 - 24-bit integer
				<br />
				32 - 32-bit integer
				<br />
				<br />
				Symbol values used to set bit-depth or sample type are:
				<br />
				int8 - 8-bit integer
				<br />
				int16 - 16-bit integer
				<br />
				int24 - 24-bit integer
				<br />
				int32 - 32-bit integer
				<br />
				float32 - 32-bit floating-point
				<br />
				float64 - 64-bit floating-point
				<br />
				mulaw - 8-bit mu-law encoding
				<br />
				alaw - 8-bit a-law encoding
			</description>
		</method>
		<method name="enumerate">
			<arglist />
			<digest>
				Post messages identifying all <o>buffer~</o> objects which reference the same data
			</digest>
			<description>
				Posts information in the Max Console identifying all <o>buffer~</o> objects which reference the same data stored in the <o>buffer~</o> object which received the <m>enumerate</m> message.(The labelling information: &quot;(this one)&quot;, will appear next to the address of the <o>buffer~</o> object which received the <m>enumerate</m> message).
			</description>
		</method>
		<method name="(mouse)">
			<digest>
				Open a file buffer display window
			</digest>
			<description>
				Double-clicking on <o>buffer~</o> opens a display window where you can view the contents of the <o>buffer~</o>. When the user clicks or drags with the mouse in the <o>buffer~</o> object's editing window, the cursor's time location in the <o>buffer~</o>, in milliseconds, is sent out the outlet.
			</description>
		</method>
		<method name="duplicate">
			<arglist>
				<arg name="buffer-name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Import the contents of another <m>buffer~</m>
			</digest>
			<description>
				The word <m>duplicate</m>, followed by a symbol that specifies the name of a <o>buffer~</o>, will import the contents of the named buffer.
			</description>
		</method>
		<method name="import">
			<arglist>
				<arg name="filename" optional="0" type="list" />
			</arglist>
			<digest>
				Import a file
			</digest>
			<description>
				The word <m>import</m>, followed by a filename, reads that file into <o>buffer~</o> immediately if it exists in Max's search path without opening the Open Document dialog box. Without a filename, import brings up an Open Document dialog box allowing you to choose a file. The imported file retains the sampling rate and word size of the original file, but looping points and markers are not imported. The filename may be followed by a float indicating a starting time in the file, in milliseconds, to begin reading. (The beginning of the file is 0.)
				<br />
				<br />
				The <o>buffer~</o> object uses QuickTime to convert a media file (including MP3 files) into the sample memory of a <o>buffer~</o>, and requires that QuickTime be installed on your system. If you are using Max on Windows, we recommend that you install QuickTime and choose a complete install of all optional components.
				<br />
				<br />
				Since the <m>import</m> message uses QuickTime, which specifies units of time for all files as 1/600 of a second rather than milliseconds, importing is not guaranteed to start at the specified offset with millisecond accuracy.
				<br />
				The starting time may be followed by a second argument - a floating point value that specifies the duration of sound, in milliseconds, to be read into <o>buffer~</o>. This duration overrides the current size of the object's sample memory. If the duration is specified by a negative value, <o>buffer~</o> reads in the entire file and resizes its sample memory and adjusts the number of channels in the file accordingly.
				<br />
				The duration may be followed by a third argument that specifies the number of channels to be read in. If the number of channels is not specified (i.e., if the message includes only offset and duration information), <o>buffer~</o> reads in the number of channels indicated in the header of the audio file.
				<br />
				If only two arguments are specified, <o>buffer~</o> imports the number of channels indicated in the header of the audio file. If three arguments are specified, <o>buffer~</o> imports the number of channels specified by the third argument. If the third argument is 0, <o>buffer~</o> imports the number of channels indicated in the header of the audio file.
			</description>
		</method>
		<method name="importreplace">
			<arglist>
				<arg name="filename" optional="0" type="list" />
			</arglist>
			<digest>
				Import a file with automatic resizing
			</digest>
			<description>
				The word <m>importresize</m>, followed by a filename, reads that file into <o>buffer~</o> immediately if it exists in Max's search path without opening the Open Document dialog box. Without a filename, import brings up an Open Document dialog box allowing you to choose a file. The imported file retains the sampling rate and word size of the original file, but looping points and markers are not imported. The <m>importreplace</m> is functionally identical to the <m>import</m> message, except that imports are performed with automatic duration and channel resizing enabled by default. Unless otherwise specified, the duration and channel count of the imported file will be used to resize the buffer's internal sample memory.
			</description>
		</method>
		<method name="name">
			<arglist>
				<arg name="buffer-name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Change the <o>buffer~</o> object name
			</digest>
			<description>
				The word <m>name</m>, followed by a <m>symbol</m>, changes the name by which other objects such as <o>cycle~</o>, <o>groove~</o>, <o>lookup~</o>, <o>peek~</o>, <o>play~</o>, <o>record~</o>, and <o>wave~</o> can refer to the <o>buffer~</o>. Objects that were referring to the <o>buffer~</o> under its old name lose their connection to it. Every <o>buffer~</o> object should be given a unique name; if you give a <o>buffer~</o> object a name that already belongs to another <o>buffer~</o>, that name will no longer be associated with the <o>buffer~</o> that first had it.
			</description>
		</method>
		<method name="open">
			<arglist />
			<digest>
				Open the <o>buffer~</o> display window
			</digest>
			<description>
				Opens the <o>buffer~</o> sample display window or brings it to the front if it is already open.
			</description>
		</method>
		<method name="normalize">
			<arglist>
				<arg name="normalization_factor" optional="0" type="list" />
			</arglist>
			<digest>
				Normalize the <o>buffer~</o> contents
			</digest>
			<description>
				The word <m>normalize</m>, followed by a floating point number, will scale the sample values in the <o>buffer~</o> object so that the highest peak matches the value given by the argument. This can cause either amplification or attenuation of the audio, but in either case, every value is scaled.
			</description>
		</method>
		<method name="printmodtime">
			<arglist />
			<digest>
				Post information about <o>buffer~</o> data modification
			</digest>
			<description>
				Posts information in the Max Console about when the <o>buffer~</o> was last modified (i.e. written into, or modified in attributes).
			</description>
		</method>
		<method name="read">
			<arglist>
				<arg name="filename" optional="0" type="list" />
			</arglist>
			<digest>
				Read an AIFF/Next/Sun/WAV file
			</digest>
			<description>
				Reads an AIFF, Next/Sun, or WAV file into the sample memory of the <o>buffer~</o>. The word <m>read</m>, followed by a filename, reads that file into <o>buffer~</o> immediately if it exists in Max's search path without opening the Open Document dialog box. Without a filename, <m>read</m> brings up an Open Document dialog box allowing you to choose a file. The imported file retains the sampling rate and word size of the original file, but looping points and markers are not imported. The filename may be followed by a float indicating a starting time in the file, in milliseconds, to begin reading. (The beginning of the file is 0.)
				<br />
				The starting time may be followed by a second argument - a floating point value that specifies the duration of sound, in milliseconds, to be read into <o>buffer~</o>. This duration does not override the current size of the object's sample memory.  It clears the current buffer~ data, then fills the requested amount at the beginning of the buffer~. However, if the duration is specified by a negative value, <o>buffer~</o> reads in the entire file and resizes its sample memory.
				<br />
				The duration may be followed by a third integer argument that specifies the number of channels to be read in.
				<br />
				If only two arguments are specified, <o>buffer~</o> reads in only the number of channels that the <o>buffer~</o> currently has.  If the audio file has more channels than the <o>buffer~</o> currently has, the audio from all channels will be summed. If three arguments are specified, <o>buffer~</o> reads the number of channels specified by the third argument. If the third argument is 0, <o>buffer~</o> reads in the number of channels indicated in the header of the audio file.
			</description>
		</method>
		<method name="set">
			<arglist>
				<arg name="buffer-name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Set the <o>buffer~</o> object name
			</digest>
			<description>
				The word <m>set</m>, followed by a <m>symbol</m>, changes the name by which other objects such as <o>cycle~</o>, <o>groove~</o>, <o>lookup~</o>, <o>peek~</o>, <o>play~</o>, <o>record~</o>, and <o>wave~</o> can refer to the <o>buffer~</o>. Objects that were referring to the <o>buffer~</o> under its old name lose their connection to it. Every <o>buffer~</o> object should be given a unique name; if you give a <o>buffer~</o> object a name that already belongs to another <o>buffer~</o>, that name will no longer be associated with the <o>buffer~</o> that first had it.
			</description>
		</method>
		<method name="setsize">
			<arglist>
				<arg name="ARG_NAME_0" type="float" optional="0" />
				<arg name="ARG_NAME_1" type="int" optional="0" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
			</attributelist>
		</method>
		<method name="sizeinsamps">
			<arglist>
				<arg name="buffer-duration" optional="0" type="int" units="samples" />
				<arg name="number-of-channels" optional="1" type="int" />
			</arglist>
			<digest>
				Set the size of the <o>buffer~</o> object's sample memory
			</digest>
			<description>
				The word <m>sizeinsamps</m>, followed by a duration in samples, sets the size of the <o>buffer~</o> object's sample memory. This limits the amount of data that can be stored, unless this size limitation is overridden by a <m>replace</m> message or a duration argument in a <m>read</m> message.
			</description>
		</method>
		<method name="sr">
			<arglist>
				<arg name="sampling-rate (samples-per-second)" optional="0" type="float" />
			</arglist>
			<digest>
				Set the <o>buffer~</o> object's sampling rate
			</digest>
			<description>
				The word <m>sr</m>, followed by a sampling rate, sets the <o>buffer~</o> object's sampling rate. By default, the sampling rate is the current output sampling rate, or the sampling rate of the most recently loaded audio file.
			</description>
		</method>
		<method name="readagain">
			<arglist>
				<arg name="filename" optional="0" type="list" />
			</arglist>
			<digest>
				Re-read the most recently loaded file
			</digest>
			<description>
				Reads sound data from the most recently loaded file (specified in a previous <m>read</m> or <m>replace</m> message).
			</description>
		</method>
		<method name="replace">
			<arglist>
				<arg name="filename" optional="0" type="list" />
			</arglist>
			<digest>
				Read an AIFF/Next/Sun/WAV file and resize the buffer
			</digest>
			<description>
				The <m>replace</m> message is equivalent to the <m>read</m> message with a negative duration argument.
			</description>
		</method>
		<method name="samptype">
			<arglist>
				<arg name="sample-type" optional="0" type="symbol" />
			</arglist>
			<digest>
				Set the sample type to use when interpreting audio sample data
			</digest>
			<description>
				In left inlet: The word <m>samptype</m>, followed by a symbol, specifies the sample type to use when interpreting an audio file's sample data (thus overriding the audio file's actual sample type). This is sometimes called &quot;header munging.&quot;
				<br />
				<br />
				The following types of sample data are supported:
				<br />
				<br />
				<m>int8</m>- 8-bit integer
				<br />
				<m>int16</m>- 16-bit integer
				<br />
				<m>int24</m>- 24-bit integer
				<br />
				<m>int32</m>- 32-bit integer
				<br />
				<m>float32</m>- 32-bit floating-point
				<br />
				<m>float64</m>- 64-bit floating-point
				<br />
				<m>mulaw</m>- 8-bit &quot;mu&quot;-law encoding
				<br />
				<m>alaw</m>- 8-bit a-law encoding
			</description>
		</method>
		<method name="wclose">
			<arglist />
			<digest>
				Close the <o>buffer~</o> display window
			</digest>
			<description>
				Closes the <o>buffer~</o> sample display window if it is open.
			</description>
		</method>
		<method name="write">
			<arglist>
				<arg name="filename" optional="0" type="symbol" />
			</arglist>
			<digest>
				Write the contents of <o>buffer~</o> to an audio file
			</digest>
			<description>
				Saves the contents of <o>buffer~</o> into an audio file. A standard file dialog is opened for naming the file unless the word <m>write</m> is followed by a symbol, in which case the file is saved in the current default folder, using the symbol as the filename. Unless you change the format with the Format pop-up menu in the standard Save As dialog box, the file will be saved in the format specified by the most recently received <m>filetype</m> message, or the file type of the most recently opened audio file. By default, <o>buffer~</o> saves in AIFF format.
			</description>
		</method>
		<method name="writeaiff">
			<arglist>
				<arg name="filename" optional="0" type="symbol" />
			</arglist>
			<digest>
				Write the contents of <o>buffer~</o> as an AIFF file
			</digest>
			<description>
				Saves the contents of the <o>buffer~</o> as an AIFF file. A standard Save As dialog is opened for naming the file unless the word <m>writeaiff</m> is followed by a symbol, in which case the file is saved in the current default folder, using the symbol as the filename.
			</description>
		</method>
		<method name="writeau">
			<arglist>
				<arg name="filename" optional="0" type="symbol" />
			</arglist>
			<digest>
				Write the contents of <o>buffer~</o> as a NeXT/Sun file
			</digest>
			<description>
				Saves the contents of the <o>buffer~</o> as a NeXT/Sun file. A standard Save As dialog is opened for naming the file unless the word <m>writeau</m> is followed by a symbol, in which case the file is saved in the current default folder, using the symbol as the filename.
			</description>
		</method>
		<method name="writeflac">
			<arglist>
				<arg name="filename" optional="0" type="symbol" />
			</arglist>
			<digest>
				Write the contents of <o>buffer~</o> as a FLAC file
			</digest>
			<description>
				Saves the contents of the <o>buffer~</o> into a FLAC file. A standard Save As dialog is opened for naming the file unless the word <m>writeflac</m> is followed by a symbol, in which case the file is saved in the current default folder, using the symbol as the filename.
			</description>
		</method>
		<method name="writeraw">
			<arglist>
				<arg name="filename" optional="0" type="symbol" />
			</arglist>
			<digest>
				Write the contents of <o>buffer~</o> as a raw file with no header
			</digest>
			<description>
				Saves the contents of the <o>buffer~</o> as a raw file with no header. The default sample format is 16-bit, but the output sample format can be set with the <m>samptype</m> message. A standard Save As dialog is opened for naming the file unless the word <m>writeraw</m> is followed by a symbol, in which case the file is saved in the current default folder, using the symbol as the filename.
			</description>
		</method>
		<method name="writewave">
			<arglist>
				<arg name="filename" optional="0" type="symbol" />
			</arglist>
			<digest>
				Write the contents of <o>buffer~</o> as a WAV file
			</digest>
			<description>
				Saves the contents of the <o>buffer~</o> into a WAV file. A standard Save As dialog is opened for naming the file unless the word <m>writewave</m> is followed by a symbol, in which case the file is saved in the current default folder, using the symbol as the filename.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="samps" get="1" set="1" type="float" size="1">
			<digest>
				length of the buffer~ in samples
			</digest>
			<description>
				The length of the buffer~ expressed in samples.
			</description>
		</attribute>
		<attribute name="size" get="1" set="1" type="float" size="1">
			<digest>
				length of the buffer~ in milliseconds
			</digest>
			<description>
				The length of the buffer~ expressed in milliseconds.
			</description>
		</attribute>
	</attributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="buffer~.png" caption="buffer~ can be used as a waveform table for an oscillator, or as a sample buffer" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="2d.wave~" />
		<seealso name="buffir~" />
		<seealso name="cycle~" />
		<seealso name="groove~" />
		<seealso name="info~" />
		<seealso name="lookup~" />
		<seealso name="peek~" />
		<seealso name="play~" />
		<seealso name="poke~" />
		<seealso name="polybuffer~" />
		<seealso name="record~" />
		<seealso name="sfplay~" />
		<seealso name="sfrecord~" />
		<seealso name="stretch~" />
		<seealso name="wave~" />
		<seealso module="msp" name="05_mspbasicchapter03" type="tutorial" />
		<seealso module="msp" name="07_samplingchapter05" type="tutorial" />
		<seealso module="msp" name="07_samplingchapter01" type="tutorial" />
		<seealso module="msp" name="07_samplingchapter03" type="tutorial" />
		<seealso module="msp" name="07_samplingchapter04" type="tutorial" />
		<seealso module="msp" name="10_midichapter03" type="tutorial" />
		<seealso module="msp" name="14_analysischapter03" type="tutorial" />
	</seealsolist>
	<discussion>
		The <o>buffer~</o> object is used in conjunction with many different objects, including <o>play~</o>/ <o>groove~</o> (plays the buffer), <o>record~</o> (records into the buffer), <o>info~</o> (reports information about the buffer), <o>peek~</o> (writes into/reads from the buffer like the <o>table</o> object), <o>lookup~</o> (uses the buffer for waveshaping), <o>cycle~</o> (specifies a 512-point waveform), and <o>wave~</o> (specifies a waveform).
	</discussion>
	<misc name="Output">
		<entry name="float">
			<description>
				When the user clicks or drags with the mouse in the <o>buffer~</o> object's editing window, the cursor's time location in the <o>buffer~</o>, in milliseconds, is sent out the outlet.
			</description>
		</entry>
	</misc>
</c74object>
