bitshift~
Bit shifting for floating point signals
Description
Use the bitshift~ object to perform bitwise operations on a floating point signal as bits or as an integer.
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]: 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'
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
Sets the operational mode of the bitshift~ object as described by the message.
- operational-mode
[int]
float
Performs the same function as
.- operational-mode (0 or 1)
[float]
shift
In left inlet: The word
, 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).- number-of-bits/direction-of-shift
[int]
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 |