Package MSP

what~

Generate Impulses for a List of Audio Values

Description

The what~ object generates an impulse -- a signal value of 1 for one sample -- when its input signal crosses a value threshold. The object accepts a list of threshold values and will generate impulses for all of them. Connect a phasor~ to what~ to create a repeating rhythm. For example, when sending in a list of 0 0.25 0.5 and 0.75 , what~ will output an impulse four times for each phasor~ ramp.

Discussion

The what~ object is sample-accurate when Scheduler in Audio Interrupt is enabled. More details here.

Arguments

values[list]
optional

If one or more values are arguments to what~ they define the initial list of values.

Attributes

matches[atom]

Sets the values to detect

syncupdate[int]

When syncupdate is enabled, messages to change the values to detect do not take effect until the input phasor resets. A reset is defined as a direction reversal in the signal.

triggermode[int]: 2

Determines how what~ matches values in the signal input. Possible values:

0 = 'Ascending' ( Detect value in an ascending ramp )
The previous sample must be less than or equal to the target and the current sample must be greater than the target.

1 = 'Descending' ( Detect value in an descending ramp )
The previous sample must be greater than or equal to the target and the current sample must be less than the target.

2 = 'Ascending or Descending' ( Detect value in an asecending or descending ramp )
The value is detected if either the ascending or descending condition is true. This mode is useful for detecting ramps in phasors with either positive and negative frequencies.

3 = 'Equals' ( Detect exact value )
The value is detected if it is exactly equal to the current sample. This mode is not recommend for phasor ramps since it is unlikely the ramp will output a sample exactly equal to any particular value.

Common Box Attributes

Below is a list of attributes shared by all objects. If you want to change one of these attributes for an object based on the object box, you need to place the word sendbox in front of the attribute name, or use the object's Inspector.

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. background 1 adds the object to the background layer, background 0 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]: 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]: 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

An int sets a single value to detect, replacing any existing values.

float

An float sets a single value to detect, replacing any existing values.

list

list sets the new values to detect, replacing any existing values. A list message is alternative to setting the matches attribute. If syncupdate is enabled, the new values are not used until the input phasor resets.

clear

The clear message removes all values that have been added to the what~ object. If syncupdate is enabled, the values are not cleared until the input phasor resets.

signal

The input signal used for theshold analysis, usually a phasor, though any signal can be used.

See Also

Name Description
click~ Create an impulse
edge~ Detect logical signal transitions
delta~ Signal of sample differences
phasor~ Generate sawtooth signals
sah~ Sample and hold a signal
stash~ Store and Recall Audio Signal Values
where~ Report Elapsed and Remaining Time of a Phasor