BPF
– Break-Point FunctionThe BPF
object is a list of ordered [x, y] points which represent a “function”, or relation of a given parameter to another parameter.
→ The “Curves and Functions” and “Interpolation” sub-packages of the “Basic Tools” package, also include numerous useful utilities to manipulate and process BPF data, such as
bpf-scale
,bpf-interpol
,bpf-crossfade
,bpf-spline
,x-transfer
/y-transfer
,om-sample
, and many more. See for instance the Functions/Classes Reference (menu “Help”).
The BPF points are specified with two separate lists of x and y coordinates (called respectively x-points
and y-points
).
The output values of these points can be either read via the corresponding x-points
and y-points
outputs, or using the point-pairs
function.
BPFs have a precision parameter, which can be set between 0 and 10 decimals.
Input x-points
and y-points
are automatically truncated to this precision.
Note: Precision is an important parameter to consider when converting data, e.g. from sound analysis to the symbolic level. A low precision value can be responsible for excessive rounding or truncating the values.
Other parameters can be set from optional inputs of the BPF
box, such as the name, the color, or others mentioned below.
Some additional display parameters can be set directly on the BPF
box through “box attribute” inputs.
The display-min
/ display-max
parameters change the vertical range that is displayed on the box.
The BPF box editor is constituted by a BPF-editing view (on the left) and a general property editing panel (on the right).
General parameters on the right allow setting most parameters that could otherwise be set from the BPF box optional inputs (see above — more will also be discussed below).
The main view on the left displays the BPF, and offers zoom/scroll utilities through two (vertical and horizontal) rulers, and standard corresponding mouse interactions.
The editor options at the bottom allow showing/hiding a grid in the background, displaying point indices, and other visualisation options described below.
The “Display” chooser allows switching between several visualizations of the BPF:
Use Tab or click on the icons at the top of the BPF view to switch between three edit/interaction modes:
In standard or “Draw” modes, double-clicking on a point allows setting its precise X and Y values in a dialog box.
In general, use the ← → ↑ ↓ arrow keys to move points, backspace or Del to remove them.
Zoom in/out with + / -
Use the Ctrl/⌘ + A shortcut for “Select All” (and select all points in the BPF)
Use the Ctrl/⌘ + R shortcut for “Reverse” (and reverse the order of the BPF points).
Use the Ctrl/⌘ + Z / Ctrl/⌘ + shift + Z shortcut for “Undo” / “Redo” commands.
time-sequence
A BPF
in also a time-sequence
: the x-axis can be considered as time (in milliseconds) and each point in the BPF can be considered as an object in time. It is therefore possible to edit the temporal/horizontal dimension of the BPF using a timeline view.
The “times” check-box in the visualization options allows displaying the time in millisecond if each point in the BPF.
It is also possible to play a BPF, using the standard play/pause/stop controls in the editor, or corresponding shortcuts in the patch editors.
The BPF
display paints the BPF contents in red as it passes through the play cursor.
Playing a BPF
generally makes sense when the object is associated to an action, performed with each point at rendering time (see below).
Several actions are available by default:
print
: Just prints the point values (mostly useful for tests or debug).send-as-osc
: Specify an OSC address, a target IP and a port number to send the point values as OSC.midi-controller
: Select a MIDI controller number, channel and port number to use the BPF values as MIDI continuous controllers.→ → →
Example: Send BPF values as OSC
Select the predefined action / Set the OSC parameters
Play!
An interpolation value can be set from the box attribute inputs or from the general properties panel of the BPF editor.
The interpolation is an interval specified in milliseconds. When activated, the it generates intermediate points separated by this ti,e interval between each point of the BPF, and performs the selected action at the corresponding times.
The BPF
editor supports integration in the COLLECTION
editor, where several BPF
objects can be jointly visualized and edited.