play~
Description
Use the play~ object as a playback interface for a buffer~. that plays back samples based on an offset within the buffer. It is typically used with the line~ object, but can be used with any signal that generates a changing position value in milliseconds. The groove~ object provides another option for sample playback.
When the play~ object is created as mcs.play~ all of its signal outlets are combined into a single multichannel outlet. The behavior of mcs.play~ is otherwise identical to play~.
Examples
Arguments
buffer-name [symbol]
The first argument names the buffer~ object whose sample memory is used by play~ for playback.
number-of-output-channels [int]
Specifies the number of output channels. The default number of channels is one. If the buffer~ being played has fewer channels than the number of play~ output channels, the extra channels output a zero signal. If the buffer~ has more channels, channels are mixed.
Attributes
interptime [float]
Sets the crossfade time for loop interpolation. If the value given is greater than the total loop duration, the total loop duration is used. The default crossfade duration is 50 milliseconds.
loop [int]
In loop mode, when playback reaches the end time (see
message) it continues again from the start time. Loop mode is off by default.loopinterp [int]
Enables interpolation around the start and end points for a loop. By default, loop interpolation is off.
Common Box Attributes
annotation [symbol]
Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.
background [int] (default: 0)
Adds or removes the object from the patcher's background layer.
adds the object to the background layer, removes it. Objects in the background layer are shown behind all objects in the default foreground layer.color [4 floats]
Sets the color for the object box outline.
fontface [int]
Sets the type style used by the object. The options are:
plain
bold
italic
bold italic
Possible values:
0 = 'regular'
1 = 'bold'
2 = 'italic'
3 = 'bold italic'
fontname [symbol]
Sets the object's font.
fontsize [float]
Sets the object's font size (in points).
Possible values:
'8'
'9'
'10'
'11'
'12'
'13'
'14'
'16'
'18'
'20'
'24'
'30'
'36'
'48'
'64'
'72'
hidden [int] (default: 0)
Toggles whether an object is hidden when the patcher is locked.
hint [symbol]
Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.
ignoreclick [int] (default: 0)
Toggles whether an object ignores mouse clicks in a locked patcher.
jspainterfile [symbol]
JS Painter File
patching_rect [4 floats] (default: 0. 0. 100. 0.)
Sets the position and size of the object in the patcher window.
position [2 floats]
Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.
presentation [int] (default: 0)
Sets whether an object belongs to the patcher's presentation.
presentation_rect [4 floats] (default: 0. 0. 0. 0.)
Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.
rect [4 floats]
Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).
size [2 floats]
Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.
textcolor [4 floats]
Sets the color for the object's text in RGBA format.
textjustification [int]
Sets the justification for the object's text.
Possible values:
0 = 'left'
1 = 'center'
2 = 'right'
varname [symbol]
Sets the patcher's scripting name, which can be used to address the object by name in pattr, scripting messages to thispatcher, and the js object.
Messages
int
Arguments
(mouse)
pause
resume
set
Arguments
signal
The direction and speed of playback of a play~ object can be set using integer messages provided to the play~ object at signal rate. Typically, this is done using a line~ object.
Integer messages come in pairs - an initial integer that specifies the position in the buffer (in milliseconds) at which to start, followed by a second pair of numbers that specify the ending position in the buffer and the time (in milliseconds) over which the playback will occur. These messages are often sent as messages separated by a comma. Here are some examples:
- Starting at the beginning of the buffer, play 2 seconds of audio at normal speed
- Play the first half second of a buffer backwards at normal speed.
- Play the first second of a buffer at double speed (i.e. transpose it up an octave)
start
Arguments
end-time [list]
duration [list]
stop
Output
See Also
Name | Description |
---|---|
2d.wave~ | Two-dimensional wavetable |
buffer~ | Store audio samples |
buffir~ | buffer-based FIR filter |
groove~ | Variable-rate looping sample playback |
record~ | Record sound into a buffer |
wave~ | Variable size wavetable |
index~ | Read from a buffer~ with no interpolation |
MSP Sampling Tutorial 1: Recording and Playback | MSP Sampling Tutorial 1: Recording and Playback |