Trigger CHOP
Summary
The Trigger CHOP starts an audio-style attack/decay/sustain/release (ADSR) envelope to all trigger pulses in the input channels. A trigger point occurs whenever the first input's channel increases across the trigger threshold value. Most commonly, an ADSR starts when the input goes from 0 to 1.
Note: To get a channel with the full waveform, turn off the Time Slice parameter on the Common page, and don't connect an input.
The envelope consists of six major sections: delay, attack, peak, decay, sustain and release.
From the time the threshold is reached and while the channel's value is above the release threshold, the envelope is in its sustain phase during which it will delay, attack, peak-hold, decay and then maintain its sustain value.
After the inputs drops below the release threshold, the envelope start its release phase and will drop to 0.
The peak and sustain levels can be set independently, but peak value can never be less than sustain.
This CHOP works with both time-sliced inputs or with static input channels.
For jittery inputs, if you don't want it to trigger until its input has been On for some period, see the OP Snippets for the Trigger CHOP, example "trigger after a time threshold", which uses the Count CHOP.
Note: See examples in OP Snippets.
See also: Timer CHOP, Count CHOP, Speed CHOP, Event CHOP
Parameters - Trigger Page
threshold
- If on, the trigger and release thresholds are the same value.
threshup
- The trigger threshold (see above).
threshdown
- The release threshold (see above).
retrigger
- The amount of time after a trigger point that a new trigger may occur.
retriggerunit
-
mintrigger
- The minimum amount of time that the trigger will remain active.
mintriggerunit
-
triggeron
- ⊞ - Determines whether a trigger occurs on an increasing slope or decreasing slope when passing the trigger threshold. A release will occur on the opposite slope.
- Increasing Values
increase
-
- Decreasing Values
decrease
-
multitrigger
- ⊞ -
- Ignore During Attack
ignore
-
- Add
add
-
- Restart Envelope
restart
-
clamppeak
- Clamp the additive effect of Multi-Triggers Additive at the level set in Peak Level parameter.
triggerpulse
- Instantly trigger an envelope (regardless of input).
updateonce
-
complete
- If on, a complete envelope is produced for each trigger point. If off, the envelope may be terminated at any time by a release point.
remainder
- ⊞ - See Remainder Options. What to do with remaining samples at end of the interval:
- Discard Remainder
crop
- Output interval = input interval.
- Make Output Longer
extend
- Output longer if envelope unfinished.
- Mix Remainder with Beginning
mix
- Add remainder to samples at the start.
Parameters - Attack Page
delay
- The amount of time to delay the envelope after the trigger point.
delayunit
-
attack
- The amount of rise time from zero to the peak level.
attackunit
-
ashape
- ⊞ - The shape of the attack ramp.
- Linear
linear
-
- Ease In
easein
-
- Ease Out
easeout
-
- Ease in Ease out
halfcos
-
peak
- The peak level it will rise to in the attack phase.
peaklen
- The length of time of the peak is held before going into the decay phase.
peaklenunit
-
Parameters - Sustain Page
decay
- The amount of decay time from the peak level to the sustain level.
decayunit
-
dshape
- ⊞ - The shape of the decay ramp.
- Linear
linear
-
- Ease In
easein
-
- Ease Out
easeout
-
- Ease in Ease out
halfcos
-
sustain
- The sustain level. This level is held until a release point is reached (the input goes below the threshold).
minsustain
-
minsustainunit
-
release
- The amount of release time from the sustain level to zero.
releaseunit
-
rshape
- ⊞ - The shape of the release ramp.
- Linear
linear
-
- Ease In
easein
-
- Ease Out
easeout
-
- Ease in Ease out
halfcos
-
Parameters - Chan Page
channame
- Name of channels output.
specifyrate
- Allows you to specify the sample rate in the Sample Rate parameter below.
rate
- Sets the sample rate of the output. Only used when Specify Rate is turned on.
Parameters - Common Page
timeslice
- Turning this on forces the channels to be "Time Sliced". A Time Slice is the time between the last cook frame and the current cook frame.
scope
- To determine which channels get affected, some CHOPs use a Scope string on the Common page. See Pattern Matching.
srselect
- ⊞ - Handle cases where multiple input CHOPs' sample rates are different. When Resampling occurs, the curves are interpolated according to the Interpolation Method Option, or "Linear" if the Interpolate Options are not available.
- Resample At First Input's Rate
first
- Use rate of first input to resample others.
- Resample At Maximum Rate
max
- Resample to the highest sample rate.
- Resample At Minimum Rate
min
- Resample to the lowest sample rate.
- Error If Rates Differ
err
- Doesn't accept conflicting sample rates.
exportmethod
- ⊞ - This will determine how to connect the CHOP channel to the parameter. Refer to the Export article for more information.
- DAT Table by Index
datindex
- Uses the docked DAT table and references the channel via the index of the channel in the CHOP.
- DAT Table by Name
datname
- Uses the docked DAT table and references the channel via the name of the channel in the CHOP.
- Channel Name is Path:Parameter
autoname
- The channel is the full destination of where to export to, such hasgeo1/transform1:tx
.
autoexportroot
- This path points to the root node where all of the paths that exporting by Channel Name is Path:Parameter are relative to.
exporttable
- The DAT used to hold the export information when using the DAT Table Export Methods (See above).
Operator Inputs
- Input 0: -
Info CHOP Channels
Extra Information for the Trigger CHOP can be accessed via an Info CHOP.
Common CHOP Info Channels
- start - Start of the CHOP interval in samples.
- length - Number of samples in the CHOP.
- sample_rate - The samplerate of the channels in frames per second.
- num_channels - Number of channels in the CHOP.
- time_slice - 1 if CHOP is Time Slice enabled, 0 otherwise.
- export_sernum - A count of how often the export connections have been updated.
Common Operator Info Channels
- total_cooks - Number of times the operator has cooked since the process started.
- cook_time - Duration of the last cook in milliseconds.
- cook_frame - Frame number when this operator was last cooked relative to the component timeline.
- cook_abs_frame - Frame number when this operator was last cooked relative to the absolute time.
- cook_start_time - Time in milliseconds at which the operator started cooking in the frame it was cooked.
- cook_end_time - Time in milliseconds at which the operator finished cooking in the frame it was cooked.
- cooked_this_frame - 1 if operator was cooked this frame.
- warnings - Number of warnings in this operator if any.
- errors - Number of errors in this operator if any.
TouchDesigner Build: