55 lines
989 B
Text
55 lines
989 B
Text
|
class:: Hasher
|
||
|
summary:: Scrambled value with a hash function.
|
||
|
categories:: UGens>Filters>Nonlinear, UGens>Random
|
||
|
|
||
|
Description::
|
||
|
|
||
|
Returns a unique output value from -1 to +1 for each input value
|
||
|
according to a hash function. The same input value will always produce
|
||
|
the same output value. The input need not be in the range -1 to +1.
|
||
|
|
||
|
classmethods::
|
||
|
|
||
|
method::ar, kr
|
||
|
|
||
|
argument::in
|
||
|
The input signal.
|
||
|
|
||
|
argument::mul
|
||
|
Output will be multiplied by this value.
|
||
|
|
||
|
argument::add
|
||
|
This value will be added to the output.
|
||
|
|
||
|
Examples::
|
||
|
|
||
|
code::
|
||
|
{ Hasher.ar(Line.ar(0,1,1), 0.2) }.play;
|
||
|
|
||
|
// Even adding a small amount to the input can result in a very different output. Compare these two examples:
|
||
|
(
|
||
|
{
|
||
|
SinOsc.ar(
|
||
|
Hasher.kr(MouseX.kr(0,10).round(1), 300, 500)
|
||
|
) * 0.1
|
||
|
}.play;
|
||
|
)
|
||
|
|
||
|
(
|
||
|
{
|
||
|
SinOsc.ar(
|
||
|
Hasher.kr(MouseX.kr(0,10).round(1) + 0.0001, 300, 500)
|
||
|
) * 0.1
|
||
|
}.play;
|
||
|
)
|
||
|
|
||
|
// Output stays constant while not moving the mouse.
|
||
|
(
|
||
|
{
|
||
|
SinOsc.ar(
|
||
|
Hasher.kr(MouseX.kr(0,10), 300, 500)
|
||
|
) * 0.1
|
||
|
}.play;
|
||
|
)
|
||
|
::
|