A newer version of Max is available. Click here to access the latest version of the Max documentation

bitshift~ Reference

Bit shifting for floating point signals

bitshift~

Description

Use the bitshift~ object to perform bitwise operations on a floating point signal as bits or as an integer.

Examples

Discussion

Note that if you are converting the floats to ints and back that single precision floating point values only retain 24 bits of integer resolution. The floating point bits from left to right are <1 sign bit> <8 exponent bits> <23 mantissa bits>. Positive shift values correspond to left shifting that number of bits, negative shift values correspond to right shifting that number of bits.

Arguments

number-of-bits/direction-of-shift [int]

Optional

Sets the number of bits to be shifted on the incoming floating-point signal. Positive shift values correspond to left shifting that number of bits, negative shift values correspond to right shifting that number of bits.

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 shifting. 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.

Note: If you convert the floating-point signal input to an int and then convert it back, the resulting floating-point value will retain only 24 bits of integer resolution.

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. 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] (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.

jspainterfile [symbol]

JS Painter File

patching_rect [4 floats] (default: 0. 0. 100. 0.)

Sets the position and size of the object in the patcher window.

position [2 floats]

g/s(set)

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]

g/s(set)

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]

g/s(set)

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

Arguments

operational-mode [int]
Sets the operational mode of the bitshift~ object as described by the mode message.

float

Arguments

operational-mode (0 or 1) [float]
Performs the same function as int.

shift

Arguments

number-of-bits/direction-of-shift [int]
In left inlet: The word shift, followed by a positive or negative number, specifies the number of bits to be shifted on the incoming floating-point signal. Positive number values correspond to left shifting that number of bits (i.e., Left shifting a number n places is the same as dividing it by 2n). Negative numbers correspond to right shifting that number of bits (i.e., Right shifting a number n places is the same as dividing it by 2n).

signal

The bitshift~ object performs bit shifting on a floating-point signal as either raw 32-bit data or as an integer value.
Floating-point signal bit values are expressed in the following form: <1 sign bit> <8 exponent bits> <23 mantissa bits>

Output

signal

The resulting bit shifted floating-point signal.

See Also

Name Description
bitand~ Bitwise and-operation of floating point signals
bitor~ Bitwise or-operation of floating point signals
bitxor~ Bitwise exclusive-or-operation of floating point signals
bitnot~ Bitwise inversion of a floating point signal