Flow types

Types of flows

There are different flow types within Usine that are easily recognizable by their color.

audio

Green contains audio information as a block of samples at the defined sampling rate frequency.

Internally audio flows are arrays of numbers from -1 to +1 which describe the audio wave. The size of the array is defined by the bloc-size in the setup-audio.

data

Contains any sort of data information at various sample rates depending on the data itself. For example delay, feedback values, etc. These flows can handle any type of scaled numeric values.

MIDI

Contains polyphonic MIDI message information (i.e. note, channel, velocity, etc).

array

Contains a data array. An array is a set of data assembled together ie. 0;0;0;1;0;0;1;0. Arrays are present in array, step, matrix modules, and more.

listbox combobox

Contains an integer, which is the order of the selected item in the combobox, starting by 0 (the first element). If nothing is selected it contains -1.

switch

Generally contains 0 if the switch is OFF and 1 if the switch in ON.

trigger

Contains trigger information, a 1 value followed immediately by a 0.

text

Contains text information. These can be expressed as a single text string, or as a comma separated text. This type is used in captions, lists, and so on. Internally it's an array of ascii characters. see ascii-table.

video or Bitmap

Contains frames or bitmaps information. Internally they are pointers to frames followed by a time information.

color

Contains color information as a RGBA set. It can also be an array of colors.

Generally, colors are set in hexadecimal format (char [0,1,2,3,4,5,6,7,8,9,A,B,C,F,E,F]) preceded by a $.

For example $FFAACC77 is

  • $FF=255 for Alpha channel,
  • $AA=170 for Red channel,
  • $CC=204 for Green channel,
  • $77=119 for the Blue channel.

bitwise

Contains an integer (a cardinal), which is considered as a set of bytes and can be manipulate by bitwise-modules.

Flow compatibility

All flows are not always compatible, and you can't connect them without following the table bellow.

flow1/flow2 audio data MIDI array listbox switch trigger text video color bitwise
audio X X - X - - - - - - -
data X X - X X X X ! - - -
MIDI - - X - - - - - - - -
array X X - X X X X ! - - -
listbox - X - X X X - - - - -
switch - X - X X X ! - - - -
trigger - X - X ! ! X - - - -
text - ! - ! - - - X - - -
video - - - - - - - - X - -
color - - - - - - - - - X !
bitwise - - - - - - - - - ! X
  • X means compatible
  • ! means possible if you know precisely what you are doing
  • - means not compatible

Usine is protected against incompatibles connexions but in case of mistakes, it can give gives unexpected result.

For example MIDI flows are not compatible with any other flows.

Usine will indicate that there is a problem by drawing a dashed wire.

Data range protection

Usine also provides protection against unexpected data ranges, therefore the routing of different data types or scaled ranges can be done without concern.

Below you can see an example of the internal protection provided by Usine:

In this example the audio input modulates the delay parameter! The audio flow provides variance between -1 to 1. In this case the delay will vary from 0 to 1 and negative values are ignored.

Multi connexions

Usine also allows multiple connections to a single inlet/outlet:

In this case Usine performs a simple addition of the input flow.
The patch above is fully equivalent to utilizing the + math module as shown below:

For MIDI flows, Usine does a concatenation of MIDI messages.

See also

version 4.0.191119

Edit All Pages