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.
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).
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.
Light blue, contains text information. See Strings in Usine.
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:
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:
In that case Usine does a simple addition of the input flow. The patch above is fully equivalent to:
The + module does the addition of two inputs.
They are several ways to modify the value of a control:
|[Ctrl + Click] resets the control to its default value.|
|[Shift + Click + Move] increases the mouse precision.|
|[Double Click] Let you edit the current value with the keyboard.|
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.
|Pitch is an input parameter.|
|Len is an output parameter.|
|File an input and output parameter.|
The mapping between patch flow and parameter looks something like this:
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”.
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.
|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.|
|This is a switch. It receives or sends events with 0 values if the switch is off or 1 if it is on.|
|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.|
|This is a Button. It receives or sends event data value 1 when the button is pressed, 0 otherwise.|
|This is a Led. It is almost the same as the switch, but with a different graphic design.|
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 :
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:
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:
No more inlet/outlet available.