#! /data/studio/upipe/apps/nuke/11.1v1/bin/linux/centos7/libnuke-11.1.1.so -nx
version 11.1 v1
Group {
name bm_CameraShake
help "Gives more control than Nuke's built-in CameraShake gizmo.\n\nCamera float, shake & sub-frame jitter settings are defined independently, then all 3 curves are added together into a final, new expression so your output curve has plenty of detail (especially in the motion blur) & only filters your image once."
 tile_color 0x222222ff
 note_font Verdana
 mapsize {0.15 0.15}
 addUserKnob {20 Options}
 addUserKnob {26 ""}
 addUserKnob {6 switchCheckerboard l Test t "Replaces input image with checkerboard so you can see your camera shake uncontaminated." +STARTLINE}
 addUserKnob {4 noiseType l "       Noise Type " -STARTLINE M {fBm Turbulence Noise "" "" "" ""}}
 addUserKnob {26 ""}
 addUserKnob {7 globalAmt l "Global Amount" t "Overall amount of camera shake." R 0 5}
 globalAmt 1
 addUserKnob {26 ""}
 addUserKnob {20 fineControl l "    C O N T R O L S" n 1}
 addUserKnob {26 spacer01 l "" +STARTLINE T " "}
 addUserKnob {6 toggleJitter l Jitter +STARTLINE}
 toggleJitter true
 addUserKnob {7 jitterAmt l "  " t "How much jitter?" -STARTLINE R 0 5}
 jitterAmt 1
 addUserKnob {6 toggleShake l Shake +STARTLINE}
 toggleShake true
 addUserKnob {7 shakeAmt l "" t "How much camera shake?" -STARTLINE R 0 5}
 shakeAmt 1
 addUserKnob {6 toggleFloat l Float +STARTLINE}
 toggleFloat true
 addUserKnob {7 floatAmt l "  " t "How much camera float?" -STARTLINE R 0 5}
 floatAmt 1
 addUserKnob {20 endGroup n -1}
 addUserKnob {26 ""}
 addUserKnob {20 weightGroup l "    E D G E   C O M P E N S A T I O N" n 1}
 weightGroup 0
 addUserKnob {26 unnames l "" +STARTLINE T " "}
 addUserKnob {4 edgePulldown l "Edge Type" M {None Spread Mirror ""}}
 addUserKnob {26 edgeSpacer l " "}
 addUserKnob {14 edgeScale l Scale R 0 100}
 edgeScale 1
 addUserKnob {20 endGroup_2 l endGroup n -1}
 addUserKnob {26 ""}
 addUserKnob {20 moblurGroup l "    M O T I O N   B L U R" n 1}
 moblurGroup 0
 addUserKnob {26 spacer_02 l "" +STARTLINE T " "}
 addUserKnob {6 toggleMoblur l "Motion Blur" +STARTLINE}
 toggleMoblur true
 addUserKnob {26 spacer_03 l "" +STARTLINE T " "}
 addUserKnob {41 filter T jitterCTRL_fBm.filter}
 addUserKnob {26 spacer_misc l "" +STARTLINE T " "}
 addUserKnob {7 moblurSamples l INVISIBLE +INVISIBLE}
 moblurSamples 1
 addUserKnob {3 GUISamples l "GUI Samples"}
 GUISamples 1
 addUserKnob {3 RenderSamples l "    Render Samples" -STARTLINE}
 RenderSamples 16
 addUserKnob {26 spacer_misc2 l "" +STARTLINE T " "}
 addUserKnob {41 shutter T jitterCTRL_fBm.shutter}
 addUserKnob {41 shutteroffset l "shutter offset" T jitterCTRL_fBm.shutteroffset}
 addUserKnob {41 shuttercustomoffset l "" -STARTLINE T jitterCTRL_fBm.shuttercustomoffset}
 addUserKnob {20 endGroup_1 l endGroup n -1}
 addUserKnob {26 ""}
 addUserKnob {26 overallOutput l "" -STARTLINE T "Load these values into the curve editor to view the overall animation curve.\n"}
 addUserKnob {12 outputOverallValue l " "}
 outputOverallValue {{(toggleJitter==1?jitterCTRL_fBm.translate.x:0)+(toggleShake==1?shakeCTRL_fBm.translate.x:0)+(toggleFloat==1?floatCTRL_fBm.translate.x:0)} {(toggleJitter==1?jitterCTRL_fBm.translate.y:0)+(toggleShake==1?shakeCTRL_fBm.translate.y:0)+(toggleFloat==1?floatCTRL_fBm.translate.y:0)}}
 addUserKnob {26 ""}
 addUserKnob {20 jitterTab l Jitter}
 addUserKnob {26 ""}
 addUserKnob {14 jitterTranslate l Translate R 0 100}
 jitterTranslate {4 3}
 addUserKnob {7 jitterRotate l Rotate R 0 3}
 addUserKnob {26 ""}
 addUserKnob {3 jitterOctaves l Octaves}
 jitterOctaves 3
 addUserKnob {7 jitterSpeed l Frequency R 0 5}
 jitterSpeed 3
 addUserKnob {3 jitterSeed l Seed}
 jitterSeed 71526
 addUserKnob {22 jitterSeedRandomBtn l "  Random Seed  " -STARTLINE T "import random\nnuke.thisNode().knob('jitterSeed').setValue(random.randint(1,99999))"}
 addUserKnob {26 ""}
 addUserKnob {26 drg l "" +STARTLINE T "Load these values into the curve editor to view the jitter animation curve.\n"}
 addUserKnob {12 outputJitterValue l " "}
 outputJitterValue {{(jitterCTRL_fBm.translate.x)} {(jitterCTRL_fBm.translate.y)}}
 addUserKnob {26 ""}
 addUserKnob {20 shakeTab l Shake}
 addUserKnob {26 ""}
 addUserKnob {14 shakeTranslate l Translate R 0 100}
 shakeTranslate {10 7}
 addUserKnob {7 shakeRotate l Rotate R 0 3}
 shakeRotate 0.2
 addUserKnob {26 ""}
 addUserKnob {3 shakeOctaves l Octaves}
 shakeOctaves 2
 addUserKnob {7 shakeSpeed l Frequency R 0 5}
 shakeSpeed 1.5
 addUserKnob {3 shakeSeed l Seed}
 shakeSeed 70497
 addUserKnob {22 shakeSeedRandomBtn l "  Random Seed  " -STARTLINE T "import random\nnuke.thisNode().knob('shakeSeed').setValue(random.randint(1,99999))"}
 addUserKnob {26 ""}
 addUserKnob {26 ehhkmlkjhg l "" +STARTLINE T "Load these values into the curve editor to view the shake animation curve.\n"}
 addUserKnob {12 outputShakeValue l " "}
 outputShakeValue {{(shakeCTRL_fBm.translate.x)} {(shakeCTRL_fBm.translate.y)}}
 addUserKnob {26 ""}
 addUserKnob {20 floatTab l Float}
 addUserKnob {26 ""}
 addUserKnob {14 floatTranslate l Translate R 0 100}
 floatTranslate {40 32}
 addUserKnob {7 floatRotate l Rotate R 0 3}
 floatRotate 7
 addUserKnob {26 ""}
 addUserKnob {3 floatOctaves l Octaves}
 floatOctaves 1
 addUserKnob {7 floatSpeed l Frequency R 0 5}
 floatSpeed 0.06
 addUserKnob {3 floatSeed l Seed}
 floatSeed 72424
 addUserKnob {22 floatSeedRandomBtn l "  Random Seed  " -STARTLINE T "import random\nnuke.thisNode().knob('floatSeed').setValue(random.randint(1,99999))"}
 addUserKnob {26 ""}
 addUserKnob {26 wd l "" +STARTLINE T "Load these values into the curve editor to view the float animation curve.\n"}
 addUserKnob {12 outputFloatValue l " "}
 outputFloatValue {{(floatCTRL_fBm.translate.x)} {(floatCTRL_fBm.translate.y)}}
 addUserKnob {26 ""}
 addUserKnob {20 info l Info}
 addUserKnob {26 "" +STARTLINE}
 addUserKnob {26 versionInfo l "" +STARTLINE T "\nCreated by Ben McEwan\nwww.benmcewan.com\n\nVersion 2.1\nLast Updated: January 23rd, 2018\n"}
 addUserKnob {26 "" +STARTLINE}
}
 CheckerBoard2 {
  inputs 0
  linecolor 0
  linewidth 60
  name CheckerBoard1
  xpos -144
  ypos -390
 }
 Dot {
  name Dot2
  xpos -110
  ypos -273
 }
 Input {
  inputs 0
  name Input
  xpos 17
  ypos -374
 }
 Switch {
  inputs 2
  which {{switchCheckerboard i}}
  name Switch1
  xpos 17
  ypos -277
 }
 Crop {
  box {0 0 {input.format.w} {input.format.h}}
  crop {{edgePulldown==1?0:1}}
  name Crop1
  xpos 17
  ypos -223
  disable {{edgePulldown==1?1:0 x1009 1}}
 }
set Na27a400 [stack 0]
 Dot {
  name Dot11
  label "  "
  note_font "Arial Black"
  note_font_size 16
  xpos 298
  ypos -219
 }
 Dot {
  name Dot12
  label "  "
  note_font "Arial Black"
  note_font_size 16
  xpos 298
  ypos 365
 }
push $Na27a400
 Dot {
  name Dot10
  label "  "
  note_font "Arial Black"
  note_font_size 16
  xpos -87
  ypos -151
 }
set Naf103d0 [stack 0]
 Mirror {
  Horizontal true
  name Mirror8
  xpos -121
  ypos -133
 }
 Transform {
  translate {{-input.format.w} 0}
  center {1075 860}
  shutteroffset centred
  name Transform8
  xpos -121
  ypos -107
 }
push $Naf103d0
 Dot {
  name Dot9
  label "  "
  note_font "Arial Black"
  note_font_size 16
  xpos -197
  ypos -151
 }
set Naf2c040 [stack 0]
 Mirror {
  Horizontal true
  Vertical true
  name Mirror7
  xpos -228
  ypos -131
 }
 Transform {
  translate {{-input.format.w} {input.format.h}}
  center {1075 860}
  shutteroffset centred
  name Transform7
  xpos -228
  ypos -105
 }
push $Naf2c040
 Dot {
  name Dot8
  label "  "
  note_font "Arial Black"
  note_font_size 16
  xpos -315
  ypos -151
 }
set Naf46830 [stack 0]
 Dot {
  name Dot7
  label "  "
  note_font "Arial Black"
  note_font_size 16
  xpos -425
  ypos -151
 }
set Naf4b9d0 [stack 0]
 Dot {
  name Dot6
  label "  "
  note_font "Arial Black"
  note_font_size 16
  xpos -535
  ypos -151
 }
set Naf4fbe0 [stack 0]
 Dot {
  name Dot5
  label "  "
  note_font "Arial Black"
  note_font_size 16
  xpos -645
  ypos -151
 }
set Naf549b0 [stack 0]
 Dot {
  name Dot4
  label "  "
  note_font "Arial Black"
  note_font_size 16
  xpos -748
  ypos -151
 }
set Naf59520 [stack 0]
 Mirror {
  Vertical true
  name Mirror2
  xpos -782
  ypos -134
 }
 Transform {
  translate {0 {-input.format.h}}
  center {1075 860}
  shutteroffset centred
  name Transform2
  xpos -782
  ypos -108
 }
push $Naf549b0
 Mirror {
  Horizontal true
  Vertical true
  name Mirror3
  xpos -679
  ypos -133
 }
 Transform {
  translate {{input.format.w} {-input.format.h}}
  center {1075 860}
  shutteroffset centred
  name Transform3
  xpos -679
  ypos -107
 }
push $Naf4fbe0
 Mirror {
  Horizontal true
  name Mirror4
  xpos -569
  ypos -134
 }
 Transform {
  translate {{input.format.w} 0}
  center {1075 860}
  shutteroffset centred
  name Transform4
  selected true
  xpos -569
  ypos -108
 }
push $Naf4b9d0
 Mirror {
  Horizontal true
  Vertical true
  name Mirror5
  xpos -459
  ypos -133
 }
 Transform {
  translate {{input.format.w} {input.format.h}}
  center {1075 860}
  shutteroffset centred
  name Transform5
  xpos -459
  ypos -107
 }
push 0
push $Naf46830
 Mirror {
  Vertical true
  name Mirror6
  xpos -349
  ypos -133
 }
 Transform {
  translate {0 {input.format.h}}
  center {1075 860}
  shutteroffset centred
  name Transform6
  xpos -349
  ypos -107
 }
push $Naf59520
 Dot {
  name Dot3
  label "  "
  note_font "Arial Black"
  note_font_size 16
  xpos -851
  ypos -151
 }
 Mirror {
  Horizontal true
  Vertical true
  name Mirror1
  xpos -885
  ypos -133
 }
 Transform {
  translate {{-input.format.w} {-input.format.h}}
  center {1075 860}
  shutteroffset centred
  name Transform1
  xpos -885
  ypos -107
 }
 Merge2 {
  inputs 8+1
  name Merge1
  xpos -459
  ypos -49
 }
push $Na27a400
 Merge2 {
  inputs 2
  name Merge2
  xpos 17
  ypos -49
  disable {{edgePulldown==2?0:1}}
 }
 Dot {
  name Dot1
  label "  "
  note_font "Arial Black"
  note_font_size 16
  xpos 51
  ypos 50
 }
set Nb006190 [stack 0]
 Transform {
  translate {{noise(((jitterSeed+frame)*jitterSpeed),2.5,3.5)*jitterTranslate.w*globalAmt*jitterAmt} {noise(2.5,((jitterSeed+frame)*jitterSpeed),3.5)*jitterTranslate.h*globalAmt*jitterAmt}}
  rotate {{noise((jitterSeed+frame)*jitterSpeed,jitterOctaves,.5)*jitterRotate*globalAmt*jitterAmt}}
  scale {1 1}
  center {{toggleJitter==1?((noise(noise(((jitterSeed+frame)*jitterSpeed),2.5,3.5))*input.width)+input.width/2):(input.width/2)*globalAmt*jitterAmt} {toggleJitter==1?((noise(noise(((jitterSeed+frame)*jitterSpeed),2.5,3.5))*input.height)+input.height/2):(input.height/2)*globalAmt*jitterAmt}}
  filter {{jitterCTRL_fBm.filter}}
  clamp {{jitterCTRL_fBm.clamp}}
  black_outside {{jitterCTRL_fBm.black_outside}}
  motionblur {{jitterCTRL_fBm.motionblur}}
  shutter {{jitterCTRL_fBm.shutter}}
  shutteroffset {{jitterCTRL_fBm.shutteroffset}}
  shuttercustomoffset {{jitterCTRL_fBm.shuttercustomoffset}}
  name jitterCTRL_noise
  xpos 169
  ypos 108
  disable {{!toggleJitter}}
 }
 Transform {
  translate {{noise(((shakeSeed+frame)*shakeSpeed),2.5,3.5)*jitterTranslate.w*globalAmt*jitterAmt} {noise(2.5,((shakeSeed+frame)*shakeSpeed),3.5)*jitterTranslate.h*globalAmt*jitterAmt}}
  rotate {{noise((shakeSeed+frame)*shakeSpeed,shakeOctaves,.5)*shakeRotate*globalAmt*shakeAmt}}
  scale {1 1}
  center {{toggleShake==1?((noise(noise(((shakeSeed+frame)*shakeSpeed),2.5,3.5))*input.width)+input.width/2):(input.width/2)*globalAmt*shakeAmt} {toggleShake==1?((noise(noise(((shakeSeed+frame)*shakeSpeed),2.5,3.5))*input.height)+input.height/2):(input.height/2)*globalAmt*shakeAmt}}
  filter {{jitterCTRL_fBm.filter}}
  clamp {{jitterCTRL_fBm.clamp}}
  black_outside {{jitterCTRL_fBm.black_outside}}
  motionblur {{jitterCTRL_fBm.motionblur}}
  shutter {{jitterCTRL_fBm.shutter}}
  shutteroffset {{jitterCTRL_fBm.shutteroffset}}
  shuttercustomoffset {{jitterCTRL_fBm.shuttercustomoffset}}
  name shakeCTRL_noise
  xpos 169
  ypos 134
  disable {{!toggleShake}}
 }
 Transform {
  translate {{noise(((floatSeed+frame)*floatSpeed),2.5,3.5)*jitterTranslate.w*globalAmt*jitterAmt} {noise(2.5,((floatSeed+frame)*floatSpeed),3.5)*jitterTranslate.h*globalAmt*jitterAmt}}
  rotate {{noise((floatSeed+frame)*floatSpeed,floatOctaves,.5)*floatRotate*globalAmt*floatAmt}}
  scale {1 1}
  center {{toggleFloat==1?((noise(noise(((floatSeed+frame)*floatSpeed),2.5,3.5))*input.width)+input.width/2):(input.width/2)*globalAmt*floatAmt} {toggleFloat==1?((noise(noise(((floatSeed+frame)*floatSpeed),2.5,3.5))*input.height)+input.height/2):(input.height/2)*globalAmt*floatAmt}}
  filter {{jitterCTRL_fBm.filter}}
  clamp {{jitterCTRL_fBm.clamp}}
  black_outside {{jitterCTRL_fBm.black_outside}}
  motionblur {{jitterCTRL_fBm.motionblur}}
  shutter {{jitterCTRL_fBm.shutter}}
  shutteroffset {{jitterCTRL_fBm.shutteroffset}}
  shuttercustomoffset {{jitterCTRL_fBm.shuttercustomoffset}}
  name floatCTRL_noise
  xpos 169
  ypos 160
  disable {{!toggleFloat}}
 }
push $Nb006190
 Transform {
  translate {{turbulence((jitterSeed+frame)*jitterSpeed,2.5,3.5,jitterOctaves,2,.5)*jitterTranslate.w*globalAmt*jitterAmt} {turbulence((jitterSeed+frame)*jitterSpeed+100,10.5,11.5,jitterOctaves,2,.5)*jitterTranslate.h*globalAmt*jitterAmt}}
  rotate {{turbulence((jitterSeed+frame)*jitterSpeed,20.5,21.5,jitterOctaves,2,.5)*jitterRotate*globalAmt*jitterAmt}}
  scale {1 1}
  center {{toggleJitter==1?((turbulence((jitterSeed+frame)*jitterSpeed,2.5,3.5,jitterOctaves,2,.5)*input.width)+input.width/2):(input.width/2)*globalAmt*jitterAmt} {toggleJitter==1?((turbulence((jitterSeed+frame)*jitterSpeed+100,10.5,11.5,jitterOctaves,2,.5)*input.height)+input.height/2):(input.height/2)*globalAmt*jitterAmt}}
  filter {{jitterCTRL_fBm.filter x1 0}}
  clamp {{jitterCTRL_fBm.clamp}}
  black_outside {{jitterCTRL_fBm.black_outside}}
  motionblur {{jitterCTRL_fBm.motionblur}}
  shutter {{jitterCTRL_fBm.shutter}}
  shutteroffset {{jitterCTRL_fBm.shutteroffset}}
  shuttercustomoffset {{jitterCTRL_fBm.shuttercustomoffset}}
  name jitterCTRL_turbulence
  xpos 17
  ypos 109
  disable {{!toggleJitter}}
 }
 Transform {
  translate {{turbulence((shakeSeed+frame)*shakeSpeed,2.5,3.5,shakeOctaves,2,.5)*shakeTranslate.w*globalAmt*shakeAmt} {turbulence((shakeSeed+frame)*shakeSpeed+100,10.5,11.5,shakeOctaves,2,.5)*shakeTranslate.h*globalAmt*shakeAmt}}
  rotate {{turbulence((shakeSeed+frame)*shakeSpeed,20.5,21.5,shakeOctaves,2,.5)*shakeRotate*globalAmt*shakeAmt x7 70}}
  scale {1 1}
  center {{toggleShake==1?((turbulence((shakeSeed+frame)*shakeSpeed,2.5,3.5,shakeOctaves,2,.5)*input.width)+input.width/2):(input.width/2)*globalAmt*shakeAmt} {toggleShake==1?((turbulence((shakeSeed+frame)*shakeSpeed+100,10.5,11.5,shakeOctaves,2,.5)*input.height)+input.height/2):(input.height/2)*globalAmt*shakeAmt}}
  filter {{jitterCTRL_fBm.filter x14 2}}
  clamp {{jitterCTRL_fBm.clamp}}
  black_outside {{jitterCTRL_fBm.black_outside}}
  motionblur {{jitterCTRL_fBm.motionblur}}
  shutter {{jitterCTRL_turbulence.shutter}}
  shutteroffset {{jitterCTRL_fBm.shutteroffset}}
  shuttercustomoffset {{jitterCTRL_turbulence.shuttercustomoffset}}
  name shakeCTRL_turbulence
  xpos 17
  ypos 135
  disable {{!toggleShake}}
 }
 Transform {
  translate {{turbulence((floatSeed+frame)*floatSpeed,2.5,3.5,floatOctaves,2,.5)*floatTranslate.w*globalAmt*floatAmt} {turbulence((floatSeed+frame)*floatSpeed+100,10.5,11.5,floatOctaves,2,.5)*floatTranslate.h*globalAmt*floatAmt}}
  rotate {{turbulence((floatSeed+frame)*floatSpeed,20.5,21.5,floatOctaves,2,.5)*floatRotate*globalAmt*floatAmt}}
  scale {1 1}
  center {{toggleFloat==1?((turbulence((floatSeed+frame)*floatSpeed,2.5,3.5,floatOctaves,2,.5)*input.width)+input.width/2):(input.width/2)*globalAmt*floatAmt} {toggleFloat==1?((turbulence((floatSeed+frame)*floatSpeed+100,10.5,11.5,floatOctaves,2,.5)*input.height)+input.height/2):(input.height/2)*globalAmt*floatAmt}}
  filter {{jitterCTRL_fBm.filter x14 2}}
  clamp {{jitterCTRL_fBm.clamp}}
  black_outside {{jitterCTRL_fBm.black_outside}}
  motionblur {{jitterCTRL_fBm.motionblur}}
  shutter {{jitterCTRL_fBm.shutter}}
  shutteroffset {{jitterCTRL_fBm.shutteroffset}}
  shuttercustomoffset {{jitterCTRL_fBm.shuttercustomoffset}}
  name floatCTRL_turbulence
  xpos 17
  ypos 161
  disable {{!toggleFloat}}
 }
push $Nb006190
 Transform {
  translate {{fBm((jitterSeed+frame)*jitterSpeed,2.5,3.5,jitterOctaves,2,.5)*jitterTranslate.w*globalAmt*jitterAmt} {fBm((jitterSeed+frame)*jitterSpeed+100,10.5,11.5,jitterOctaves,2,.5)*jitterTranslate.h*globalAmt*jitterAmt}}
  rotate {{fBm((jitterSeed+frame)*jitterSpeed,20.5,21.5,jitterOctaves,2,.5)*jitterRotate*globalAmt*jitterAmt}}
  scale {1 1}
  center {{toggleJitter==1?((fBm((jitterSeed+frame)*jitterSpeed,2.5,3.5,jitterOctaves,2,.5)*input.width)+input.width/2):(input.width/2)*globalAmt*jitterAmt} {toggleJitter==1?((fBm((jitterSeed+frame)*jitterSpeed+100,10.5,11.5,jitterOctaves,2,.5)*input.height)+input.height/2):(input.height/2)*globalAmt*jitterAmt}}
  black_outside false
  motionblur {{toggleMoblur==0?0:moblurSamples}}
  shutteroffset centred
  name jitterCTRL_fBm
  xpos -128
  ypos 101
  disable {{!toggleJitter}}
 }
 Transform {
  translate {{fBm((shakeSeed+frame)*shakeSpeed,2.5,3.5,shakeOctaves,2,.5)*shakeTranslate.w*globalAmt*shakeAmt} {fBm((shakeSeed+frame)*shakeSpeed+100,10.5,11.5,shakeOctaves,2,.5)*shakeTranslate.h*globalAmt*shakeAmt}}
  rotate {{fBm((shakeSeed+frame)*shakeSpeed,20.5,21.5,shakeOctaves,2,.5)*shakeRotate*globalAmt*shakeAmt x7 70}}
  scale {1 1}
  center {{toggleShake==1?((fBm((shakeSeed+frame)*shakeSpeed,2.5,3.5,shakeOctaves,2,.5)*input.width)+input.width/2):(input.width/2)*globalAmt*shakeAmt} {toggleShake==1?((fBm((shakeSeed+frame)*shakeSpeed+100,10.5,11.5,shakeOctaves,2,.5)*input.height)+input.height/2):(input.height/2)*globalAmt*shakeAmt}}
  filter {{jitterCTRL_fBm.filter x14 2}}
  clamp {{jitterCTRL_fBm.clamp}}
  black_outside {{jitterCTRL_fBm.black_outside}}
  motionblur {{jitterCTRL_fBm.motionblur}}
  shutter {{jitterCTRL_fBm.shutter}}
  shutteroffset {{jitterCTRL_fBm.shutteroffset}}
  shuttercustomoffset {{jitterCTRL_fBm.shuttercustomoffset}}
  name shakeCTRL_fBm
  xpos -128
  ypos 127
  disable {{!toggleShake}}
 }
 Transform {
  translate {{fBm((floatSeed+frame)*floatSpeed,2.5,3.5,floatOctaves,2,.5)*floatTranslate.w*globalAmt*floatAmt} {fBm((floatSeed+frame)*floatSpeed+100,10.5,11.5,floatOctaves,2,.5)*floatTranslate.h*globalAmt*floatAmt}}
  rotate {{fBm((floatSeed+frame)*floatSpeed,20.5,21.5,floatOctaves,2,.5)*floatRotate*globalAmt*floatAmt}}
  scale {1 1}
  center {{toggleFloat==1?((fBm((floatSeed+frame)*floatSpeed,2.5,3.5,floatOctaves,2,.5)*input.width)+input.width/2):(input.width/2)*globalAmt*floatAmt} {toggleFloat==1?((fBm((floatSeed+frame)*floatSpeed+100,10.5,11.5,floatOctaves,2,.5)*input.height)+input.height/2):(input.height/2)*globalAmt*floatAmt}}
  filter {{jitterCTRL_fBm.filter x14 2}}
  clamp {{jitterCTRL_fBm.clamp}}
  black_outside {{jitterCTRL_fBm.black_outside}}
  motionblur {{jitterCTRL_fBm.motionblur}}
  shutter {{jitterCTRL_fBm.shutter}}
  shutteroffset {{jitterCTRL_fBm.shutteroffset}}
  shuttercustomoffset {{jitterCTRL_fBm.shuttercustomoffset}}
  name floatCTRL_fBm
  xpos -128
  ypos 153
  disable {{!toggleFloat}}
 }
 Switch {
  inputs 3
  which {{noiseType i}}
  name Switch4
  xpos 17
  ypos 242
 }
 Transform {
  scale {{edgeScale} {edgeScale}}
  center {1075 860}
  black_outside {{edgePulldown==0?1:0}}
  shutteroffset centred
  name edgeScale
  xpos 17
  ypos 293
 }
 CopyBBox {
  inputs 2
  name CopyBBox1
  xpos 17
  ypos 361
 }
 Output {
  name Output1
  xpos 17
  ypos 460
 }
end_group
