Noise Curve

Learn how to randomize your curves using expressions controlled by knobs

Random noise as a curve is something I use all the time for all sorts of things. Here is an expression which uses Nuke's noise function to generate random noise along a curve. I use this to drive random flicker, luminance shifts, transforms or even camera float or film weave. Here, Nuke's noise function (noise (x,y,z)) is being called via some User Knobs. 

Noise Curve using different settings.

NoiseCurve

 There’s control over Frequency, Seed, Amplitude, Time Offset and Amount.

NoiseCurveProperties

Here's the code. Since it's only using the noise function, it should work for older versions of Nuke such as 5.x as well as recent versions like 6.0v5.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
set cut_paste_input [stack 0]
version 6.0 v5
push $cut_paste_input
Multiply {
 value {{"(1*(noise((frame+(timeOffset*100))*freq, (seed*5), 0)*2-1)*amp+(amp*.7))+amount" i}}
 maskChannelMask -rgba.alpha
 name NoiseCurve
 selected true
 xpos 61
 ypos -62
 addUserKnob {20 parameters l Parameters}
 addUserKnob {7 freq l Frequency}
 freq 0.15
 addUserKnob {7 seed l Seed t "\t\t\t\t\t\t" R 0 100}
 seed 2.5
 addUserKnob {7 amp l Amplitude}
 amp 0.5
 addUserKnob {7 timeOffset l "Time Offset" R 0 100}
 addUserKnob {7 amount l Amount}
 amount 0.75
 addUserKnob {26 ""}
 addUserKnob {41 channels_1 l channels T Noise.channels}
 addUserKnob {41 value_1 l value T Noise.value}
 addUserKnob {26 "" l mask T ""}
 addUserKnob {41 maskChannelMask_1 l "" -STARTLINE T Noise.maskChannelMask}
 addUserKnob {41 maskChannelInput_1 l "" -STARTLINE T Noise.maskChannelInput}
 addUserKnob {41 inject_1 l inject -STARTLINE T Noise.inject}
 addUserKnob {41 invert_mask_1 l invert -STARTLINE T Noise.invert_mask}
 addUserKnob {41 fringe_1 l fringe -STARTLINE T Noise.fringe}
 addUserKnob {41 unpremult_1 l "(un)premult by" T Noise.unpremult}
 addUserKnob {41 invert_unpremult_1 l invert -STARTLINE T Noise.invert_unpremult}
 addUserKnob {41 mix_1 l mix T Noise.mix}
}