Description
Use the adsr~ object when you need a sample-accurate Attack-Decay-Sustain-Release signal envelope which can be controlled by signals. In some situations, a combination of the function and line~ objects may be a useful alternative.
Examples
Discussion
Any non-zero value in the trigger inlet will trigger an envelope with that amplitude. Like an adsr~ triggered by an input float, a zero value represents "note-off" and will begin the release stage. unlike the event-trigger model, a signal-triggered adsr~ must receive a zero before it will retrigger.
The adsr~ object uses the Max time format syntax; envelope times can be specified in either fixed or tempo-relative formats.
Arguments
attack [float]
A floating-point value specifies the initial values for the attack parameter.
decay [float]
A floating-point value specifies the initial values for the decay parameter.
sustain [float]
A floating-point value specifies the initial values for the sustain parameter.
release [float]
A floating-point value specifies the initial values for the release parameter.
Attributes
attack [10 atoms]
Sets the attack of the ADSR-envelope in milliseconds.
decay [10 atoms]
Sets the decay of the ADSR-envelope in milliseconds.
legato [int]
Given as input, the word
, followed by a 0 or a non-zero number, disables or enables legato mode. If legato mode is enabled, the envelope will not drop to zero in the event of a retrigger while the envelope is active - instead, the envelope ramps to the new amplitude over the attack period.maxsustain [float]
Given as input, the word
, followed by a float, sets the maximum amount of time that the envelope will remain in the sustain stage. A negative number sets no maximum; the envelope will remain forever in the sustain stage until a note-off is received. To create a simple three-stage sustainless envelope (an ADR), you can use the message maxsustain 0.0.release [10 atoms]
Sets the release of the ADSR-envelope in milliseconds.
retrigger [float]
Given as input, the word
, followed by a float, sets the amount of time taken to ramp down to zero in the event of a retrigger while the envelope is active (the default is 5 milliseconds). This ramping prevents clicking.sustain [float]
Sets the sustain of the ADSR-envelope, as a factor of the amplitude. For example, a value of 0.5 means the sustain level will be half of the amplitude height.
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.
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 [float]
Sets the color for the object's text in RGBA format.
textjustification [int]
Text Justification
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
In second inlet: sets the envelope's attack time, in milliseconds.
In third inlet: sets the envelope's decay time, in milliseconds.
In fourth inlet: sets the envelope's sustain level, as a factor of the amplitude. For example, a value of 2 means the sustain level will be twice the value of the amplitude height.
In fifth inlet: sets the envelope's release time, in milliseconds.
float
Arguments
In second inlet: sets the envelope's attack time, in milliseconds.
In third inlet: sets the envelope's decay time, in milliseconds.
In fourth inlet: sets the envelope's sustain level, as a factor of the amplitude. For example, a value of 2 means the sustain level will be twice the value of the amplitude height.
In fifth inlet: sets the envelope's release time, in milliseconds.
list
Arguments
decay [float]
sustain [float]
release [float]
anything
Arguments
decay [float]
sustain [float]
release [float]
Any other inlet: A list may be used to specify time in one of the Max time formats.
signal
In second inlet: sets the envelope's attack time, in milliseconds.
In third inlet: sets the envelope's decay time, in milliseconds.
In fourth inlet: sets the envelope's sustain level, as a factor of the amplitude. For example, a value of 0.5 means the sustain level will be half of the amplitude height.
In fifth inlet: sets the envelope's release time, in milliseconds.
Output
message
The right outlet sends poly~ instance muting with the thispoly~ object.
messages suitable for managing internalmessage
The fourth outlet responds to query messages for the various attributes (i.e.
).signal
Left outlet: the envelope.
Middle outlet: signals the beginning of an envelope by sending when in the attack, decay, or sustain stages and otherwise (release, retrigger, or inactive). You can use this outlet in conjunction with the sah~ object to synchronize pitch (or other information) with the beginning of an envelope with sample accuracy.
See Also
Name | Description |
---|---|
function | Breakpoint function editor |
line~ | Linear ramp generator |
techno~ | Signal-driven step sequencer |
transport | Control a master clock |
zigzag~ | Linked list function editor |