play~
Position-based sample playback
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~.
Arguments
buffer-name[symbol]
optional
number-of-output-channels[int]
optional
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]: 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'
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]: 0
Toggles whether an object ignores mouse clicks in a locked patcher.
jspainterfile[symbol]
JS Painter File
patching_rect[4 floats]: 0. 0. 100. 0.
Sets the position and size of the object in the patcher window.
position[2 floats]
write-only
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]: 0
Sets whether an object belongs to the patcher's presentation.
presentation_rect[4 floats]: 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]
write-only
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]
write-only
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
In left inlet: 1 (or non-zero value) begins playback of the currently set buffer~ object, and 0 stops playback.
- start/stop-playback
[int]
(mouse)
pause
In left inlet: Sending the message
causes the playback to pause at its current playback position. Playback can be restarted with the message.
resume
In left inlet: If playback was paused, playback resumes from the paused point in the audio buffer.
set
signal
In left inlet: The position (in milliseconds) into the sample memory of a buffer~ object from which to play. If the signal is increasing over time, play~ will play the sample forward. If it is decreasing, play~ will play the sample backward. If it remains the same, play~ outputs the same sample repeatedly, which is equivalent to a DC offset of the sample value.
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
In left inlet: The word buffer~ and begins playing. After the start time, an optional end time can be specified, which will set a point for playback to stop. A third optional value can be provided to set the playback duration from the start point to the end point. When used without arguments, start will begin at the beginning of the buffer~ and play to the end (equivalent to using the integer value 1 to start playback). The start time may be greater than the end time, in order to play a segment of the buffer in reverse.
, followed by a start time in milliseconds, moves to the specified position in the current- start-time
[list]
- end-time
[list]
- duration
[list]
stop
In left inlet: The
message causes the playback to stop at its current playback position. (This is equivalent to sending the integer value 0 to stop playback).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 |