To be updated, sorry.
With the transducers modules, we are generating a vibration to represent a selected value of the data received from the games.
The vibration can be then felt with a speaker or a mechanical device.
The vibration is defined with 3 parameters:
Noise, a value between 0 and 1.
Frequency, a value between 0 and 200.
Amplitude (volume), a value between 0 an 1.
So we receive a value and we need to treat it (filter/transform) so it fits in the ranges of the parameters.
So let's use RPM as an example. RPM gives us a value that might go from 0 to 10000 rpm.
Let's start with amplitude. We want the amplitude to increase with the rpm.
So let's say, for 800 rpm we want amplitude of 0.5 and for 7000 rpm we want amplitude of 1.
For that we can use a filter like:
This means that amplitude increase from 0.5 to 1 between 800 rpm and 7000 rpm.
Now let's define frequency. We want to have a low frequency at low rpm and high frequency at high rpm.
So let's use a filter like this:
This means that frequency increases from 0 to 180 hz between 0 and 10000 rpm.
For noise , we keep it at 0. We don't add any distortion.
So resuming, what we need to do, is fit the values into the ranges of the parameters.
To do it, we can use the filters available in Mover.
The interface allows the user to define a general volume for each effect defined in the module.
We can also define a gain on the received value before sending it for filtering.