Package MSP

bitxor~

Bitwise exclusive-or-operation of floating point signals

Description

Use the bitxor~ object to perform a bitwise "exclusive or" operation on two incoming floating-point signals as either raw 32-bit data or as integer values. The bits of both incoming signals are compared, and the corresponding output bit will be set to 1 if the two bit values are different, and 0 if the two values are the same. The output is a floating-point signal composed of the resulting bit pattern.

Arguments

bitmask[int]
optional

Sets the bitmask to be used by the bitxor~ object. The default is 0 . An integer value can be used as a bitmask regardless of the mode; the binary representation of this integer is the bitmask.

operational-mode[int]
optional

Specifies whether the floating-point signal or floating-point value will be processed as a raw 32-bit floating-point value or converted to an integer value for bit inversion. The modes of operation are listed below.

0: Treat floating-point signal input as a raw 32-bit value (default).
1: Convert the floating-point signal input to an integer value.

Attributes

mode[int]

Specifies whether the floating-point signal or floating-point value will be processed as a raw 32-bit floating-point value or converted to an integer value for bit inversion. The modes of operation are listed below.

0: Treat floating-point signal input as a raw 32-bit value (default).
1: Convert the floating-point signal input to an integer 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]

You can override the default appearance of a user interface object by assigning a JavaScript file with code for painting the object. The file must be in the search path.

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 right inlet: An integer value can be used as a bitmask when supplied to the right inlet of the bitxor~ object, provided that the proper mode is set.

Arguments:
  • bitmask [int]

bits

In left inlet: The word bits , followed by a list containing 32 ones or zeros, specifies a bitmask to be used by bitxor~. Alternately, a bitmask value can be set by using an int value in the right inlet.

Arguments:
  • bitmask (32 ones or zeros) [list]

signal

In left inlet: The floating-point signal is compared, in binary form, with the floating-point signal in the right inlet. The signal can be treated as either a floating-point signal or as an integer.
In right inlet: The floating-point signal to be compared with the signal in the left inlet. The signal can be treated as either a floating-point signal or as an integer.
The raw floating-point signal bit values are expressed in the following form:
<1 sign bit> <8 exponent bits> <23 mantissa bits>

Output

signal

The two floating-point signals or ints received in the inlets are compared, one bit at a time. A 1 is output if the two bit values are different, 0 if they are the same. The output is a floating-point signal composed of the resulting bit pattern.

See Also

Name Description
bitshift~ Bit shifting for floating point signals
bitand~ Bitwise and-operation of floating point signals
bitor~ Bitwise or-operation of floating point signals
bitnot~ Bitwise inversion of a floating point signal