Data & Flow Types

This is the most complex section of this manual. Usine is “Intuitive” and you don’t need to understand all the concepts at the beginning. Of course, it will be necessary if you want to become an expert user.

The most important thing with Usine is to understand that the input sound is sliced and processed by blocks of samples. The best block size is calculated automatically, and is normally, something like 64,128. See About Bloc Processing.

At 44100Hz sample rate, with a 64 samples block size, patches will be recalculated each 64÷44100 = 1.45ms or approximately 690 time per second!

There are five main flow types in Usine, easily recognisable by their display color.

Audio

Yellow, contains audio information, as a block of samples at the sampling rate frequency. Typically, audio flows are blocks of numbers from -1 to +1, which describe the audio wave. Generally, audio data levels are expressed in decibels (typically from -80db to +12Db).

image060.jpg

Data

Purple, contains any sort of data information at various sample rates, depending on the data itself. For example delay, feedback, etc. Those flows can handle any numeric values.

image061.jpg

Midi

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

image062.jpg

Array

Red, contains a data array. An array is a set of data assembled together.

image063.jpg

Text

Light blue, contains text information. See Strings in Usine.

image064.jpg

Bitmap

White, contains bitmap an graphic informations. See Manipulate Bitmaps.

All flows are compatible, and you can connect any kind of flow to any kind of input to make unusual, and sometimes, creative patches. Also you don’t have to be careful with ranges, because all inputs in Usine are protected, and all unexpected data are ignored as in the example below:

image065.jpg

In this example, audio input modulates the delay parameter! The audio flow is supposed to be between something like -1 to 1. So the delay varies from 0 to 1 and the negative values are ignored. Try it…

Usine allows multiple connections like:

image066.jpg

In that case Usine does a simple addition of the input flow. The patch above is fully equivalent to:

image067.jpg

The + module does the addition of two inputs.

Editing values

They are several ways to modify the value of a control:

[Ctrl + Click] resets the control to its default value. image068.jpg
[Shift + Click + Move] increases the mouse precision. image069.jpg
[Double Click] Let you edit the current value with the keyboard. image070.jpg

Flow assignation

Most of module parameters have related input/output flow. For example, with the sampler module, you can access to parameters directly on the patch by connecting wires on the corresponding input/output.

image071.jpg Pitch is an input parameter.
image072.jpg Len is an output parameter.
image073.jpg File an input and output parameter.

The mapping between patch flow and parameter looks something like this:

image074.jpg

If you connect a wire to the input of a module, the associated parameter becomes a “slave” and can’t be adjusted directly but only by the “master”.

image075.jpg

Data types and Events

Data flows carry Events. An event can be a numeric value, or an array of numeric values. A new event passes through the wire each time the patch is recalculated, about 700 times per second. In other words, in a normal condition; there is always something that passes through the wire, even if the value has not changed.

Event representation examples

With Usine, all event flows have a visible representation. This allows you to modify easily module parameters or see their value.

image076.jpg image077.jpg This parameter is a fader or a Knob. In this example, it receives or sends events data. Generally, the event data range corresponds to the displayed value.
image078.jpg This is a switch. It receives or sends events with 0 values if the switch is off or 1 if it is on.
image079.jpg image080.jpg image081.jpg Those are List box, List Box Buttons, Combo Box, which contains a list of available choices. For example, here, you can choose between four values: [A,B,C,D]. Each symbolic value corresponds to a number. In this example, the first parameter (A) has the numeric value 0, the second (B) the value 1, the third (C) the value 2 and so on. If nothing is selected the output value is -1.
image082.jpg This is a Button. It receives or sends event data value 1 when the button is pressed, 0 otherwise.
image083.jpg This is a Led. It is almost the same as the switch, but with a different graphic design.

Expand Modules

As we have seen before, patches are made of various modules and wire to connect them.

Generally, a module contains a limited number of inlets and outlets. Some of the parameters can’t be directly connected on a patch.

For example by default, a fader is displayed, in the patch, as :

image084.jpg

With only one inlet/outlet which correspond to the fader value.

Some time it can be useful to have a total access to all parameters of the fader, for example to change it’s color in real time. Click on the expand button:

image085.jpg

Now the fader module display’s all it’s parameters so you can connect all inlets/outlets as you want to make complex or absurd patches like change in tempo the size of a list box!

Tired of big modules on your patch? Click again on the expand button:

image086.jpg

No more inlet/outlet available.

manual/guide/data_and_flow_types.txt · Last modified: 2013/04/19 02:20 (external edit)