Notch filter

User avatar
SirEdric
Fusionator
Posts: 1326
Joined: Tue Aug 05, 2014 10:04 am
Been thanked: 9 times
Contact:

Notch filter

#1

Post by SirEdric » Thu Jan 10, 2019 10:28 am

Hi Guys.

Has anyone ever built a Notch Filter in Fusion?
https://learn.foundry.com/nuke/9.0/cont ... hm_2d.html

To me it sounds like a combination of HiPass/LoPass Filters
(same you would do to remove skin blemishes etc.), or is there something more to it?

Cheerio.

Eric.

User avatar
Midgardsormr
Fusionista
Posts: 833
Joined: Wed Nov 26, 2014 8:04 pm
Location: Los Angeles, CA, USA
Contact:

Re: Notch filter

#2

Post by Midgardsormr » Thu Jan 10, 2019 10:53 am

That's pretty much exactly what it is. I've never built one for images, but I used them frequencyly when I did live audio. Very nice for knocking out single-tone feedback. You generally have a control to choose the center frequency, one for the width, and another for the slope.

User avatar
SirEdric
Fusionator
Posts: 1326
Joined: Tue Aug 05, 2014 10:04 am
Been thanked: 9 times
Contact:

Re: Notch filter

#3

Post by SirEdric » Thu Jan 10, 2019 11:07 am

Midgardsormr wrote:
Thu Jan 10, 2019 10:53 am
I used them frequencyly when I did live audio
Nice typo!...:-) :-)
Thanks!

User avatar
Midgardsormr
Fusionista
Posts: 833
Joined: Wed Nov 26, 2014 8:04 pm
Location: Los Angeles, CA, USA
Contact:

Re: Notch filter

#4

Post by Midgardsormr » Thu Jan 10, 2019 11:14 am

Thought you'd appreciate that one.

User avatar
SirEdric
Fusionator
Posts: 1326
Joined: Tue Aug 05, 2014 10:04 am
Been thanked: 9 times
Contact:

Re: Notch filter

#5

Post by SirEdric » Thu Jan 10, 2019 11:30 am

Hmmmm...
I was trying to remove some moire effect, but either I set up my 'filters' the wrong way, or the approach doesn't work....:-/

User avatar
Midgardsormr
Fusionista
Posts: 833
Joined: Wed Nov 26, 2014 8:04 pm
Location: Los Angeles, CA, USA
Contact:

Re: Notch filter

#6

Post by Midgardsormr » Thu Jan 10, 2019 12:00 pm

Can you share your setup?

User avatar
SirEdric
Fusionator
Posts: 1326
Joined: Tue Aug 05, 2014 10:04 am
Been thanked: 9 times
Contact:

Re: Notch filter

#7

Post by SirEdric » Thu Jan 10, 2019 12:42 pm

Sure. It's not my day today, though. Missing the vital point here...:-/

Code: Select all

{
	Tools = ordered() {
		Blur2 = Blur {
			Inputs = {
				XBlurSize = Input { Value = 8.5, },
				Input = Input {
					SourceOp = "Loader1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 440, 115.5 } },
		},
		Loader1 = Loader {
			Clips = {
				Clip {
					ID = "Clip1",
					Filename = "Comp:\\Moire.jpg",
					FormatID = "JpegFormat",
					StartFrame = -1,
					LengthSetManually = true,
					TrimIn = 0,
					TrimOut = 0,
					ExtendFirst = 0,
					ExtendLast = 0,
					Loop = 0,
					AspectMode = 0,
					Depth = 0,
					TimeCode = 0,
					GlobalStart = 0,
					GlobalEnd = 0
				}
			},
			Inputs = {
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
			},
			ViewInfo = OperatorInfo { Pos = { 275, 214.5 } },
		},
		HiPass = Custom {
			NameSet = true,
			Inputs = {
				LUTIn1 = Input {
					SourceOp = "CustomTool1LUTIn1",
					Source = "Value",
				},
				LUTIn2 = Input {
					SourceOp = "CustomTool1LUTIn2",
					Source = "Value",
				},
				LUTIn3 = Input {
					SourceOp = "CustomTool1LUTIn3",
					Source = "Value",
				},
				LUTIn4 = Input {
					SourceOp = "CustomTool1LUTIn4",
					Source = "Value",
				},
				RedExpression = Input { Value = "c1-c2+.5", },
				GreenExpression = Input { Value = "c1-c2+.5", },
				BlueExpression = Input { Value = "c1-c2+.5", },
				Image1 = Input {
					SourceOp = "Loader1",
					Source = "Output",
				},
				Image2 = Input {
					SourceOp = "Blur2",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 550, 115.5 } },
		},
		CustomTool1LUTIn1 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 204, Green = 0, Blue = 0 },
			NameSet = true,
		},
		CustomTool1LUTIn2 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 0, Green = 204, Blue = 0 },
			NameSet = true,
		},
		CustomTool1LUTIn3 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 0, Green = 0, Blue = 204 },
			NameSet = true,
		},
		CustomTool1LUTIn4 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 204, Green = 204, Blue = 204 },
			NameSet = true,
		},
		Blur1 = Blur {
			CtrlWZoom = false,
			Inputs = {
				XBlurSize = Input { Value = 38.5, },
				Input = Input {
					SourceOp = "Loader1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 440, 280.5 } },
		},
		CustomTool1_1 = Custom {
			Inputs = {
				LUTIn1 = Input {
					SourceOp = "CustomTool1_1LUTIn1",
					Source = "Value",
				},
				LUTIn2 = Input {
					SourceOp = "CustomTool1_1LUTIn2",
					Source = "Value",
				},
				LUTIn3 = Input {
					SourceOp = "CustomTool1_1LUTIn3",
					Source = "Value",
				},
				LUTIn4 = Input {
					SourceOp = "CustomTool1_1LUTIn4",
					Source = "Value",
				},
				RedExpression = Input { Value = "c1+2*c2-1", },
				GreenExpression = Input { Value = "c1+2*c2-1", },
				BlueExpression = Input { Value = "c1+2*c2-1", },
				Image1 = Input {
					SourceOp = "Blur1",
					Source = "Output",
				},
				Image2 = Input {
					SourceOp = "HiPass",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 660, 280.5 } },
		},
		CustomTool1_1LUTIn1 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 204, Green = 0, Blue = 0 },
			NameSet = true,
		},
		CustomTool1_1LUTIn2 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 0, Green = 204, Blue = 0 },
			NameSet = true,
		},
		CustomTool1_1LUTIn3 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 0, Green = 0, Blue = 204 },
			NameSet = true,
		},
		CustomTool1_1LUTIn4 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 204, Green = 204, Blue = 204 },
			NameSet = true,
		}
	}
}

User avatar
Midgardsormr
Fusionista
Posts: 833
Joined: Wed Nov 26, 2014 8:04 pm
Location: Los Angeles, CA, USA
Contact:

Re: Notch filter

#8

Post by Midgardsormr » Thu Jan 10, 2019 1:22 pm

You need to subtract both of the filtered images from the original in order to get the desired frequency band. Then use that to modify the image. Try this:

Code: Select all

{
	Tools = ordered() {
		Loader1_4 = Loader {
			Clips = {
				Clip {
					ID = "Clip1",
					Filename = "Comp:\\Moire.jpg",
					FormatID = "JpegFormat",
					StartFrame = -1,
					LengthSetManually = true,
					TrimIn = 0,
					TrimOut = 0,
					ExtendFirst = 0,
					ExtendLast = 0,
					Loop = 0,
					AspectMode = 0,
					Depth = 0,
					TimeCode = 0,
					GlobalStart = 0,
					GlobalEnd = 0
				}
			},
			Inputs = {
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
			},
			ViewInfo = OperatorInfo { Pos = { 0, 973.5 } },
		},
		PipeRouter4 = PipeRouter {
			Inputs = {
				Input = Input {
					SourceOp = "Loader1_4",
					Source = "Output",
				},
			},
			ViewInfo = PipeRouterInfo { Pos = { 165, 973.5 } },
		},
		Blur2_1 = Blur {
			Inputs = {
				XBlurSize = Input { Value = 1.6, },
				Input = Input {
					SourceOp = "PipeRouter4",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 275, 874.5 } },
		},
		HiPass_1 = Custom {
			NameSet = true,
			Inputs = {
				LUTIn1 = Input {
					SourceOp = "CustomTool1LUTIn1",
					Source = "Value",
				},
				LUTIn2 = Input {
					SourceOp = "CustomTool1LUTIn2",
					Source = "Value",
				},
				LUTIn3 = Input {
					SourceOp = "CustomTool1LUTIn3",
					Source = "Value",
				},
				LUTIn4 = Input {
					SourceOp = "CustomTool1LUTIn4",
					Source = "Value",
				},
				RedExpression = Input { Value = "c1-c2+.5", },
				GreenExpression = Input { Value = "c1-c2+.5", },
				BlueExpression = Input { Value = "c1-c2+.5", },
				Image1 = Input {
					SourceOp = "PipeRouter4",
					Source = "Output",
				},
				Image2 = Input {
					SourceOp = "Blur2_1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 385, 874.5 } },
		},
		CustomTool1LUTIn1 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 204, Green = 0, Blue = 0 },
		},
		CustomTool1LUTIn2 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 0, Green = 204, Blue = 0 },
		},
		CustomTool1LUTIn3 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 0, Green = 0, Blue = 204 },
		},
		CustomTool1LUTIn4 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 204, Green = 204, Blue = 204 },
		},
		Blur1_1 = Blur {
			Inputs = {
				XBlurSize = Input { Value = 17.7, },
				Input = Input {
					SourceOp = "PipeRouter4",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 275, 1039.5 } },
		},
		CustomTool1_1_1 = Custom {
			CtrlWZoom = false,
			Inputs = {
				LUTIn1 = Input {
					SourceOp = "CustomTool1_1_1LUTIn1",
					Source = "Value",
				},
				LUTIn2 = Input {
					SourceOp = "CustomTool1_1_1LUTIn2",
					Source = "Value",
				},
				LUTIn3 = Input {
					SourceOp = "CustomTool1_1_1LUTIn3",
					Source = "Value",
				},
				LUTIn4 = Input {
					SourceOp = "CustomTool1_1_1LUTIn4",
					Source = "Value",
				},
				RedExpression = Input { Value = "c1-c2-c3+1", },
				GreenExpression = Input { Value = "c1-c2-c3+1", },
				BlueExpression = Input { Value = "c1-c2-c3+1", },
				Image1 = Input {
					SourceOp = "PipeRouter4",
					Source = "Output",
				},
				Image2 = Input {
					SourceOp = "HiPass_1",
					Source = "Output",
				},
				Image3 = Input {
					SourceOp = "Blur1_1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 495, 1039.5 } },
		},
		CustomTool1_1_1LUTIn1 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 204, Green = 0, Blue = 0 },
			NameSet = true,
		},
		CustomTool1_1_1LUTIn2 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 0, Green = 204, Blue = 0 },
			NameSet = true,
		},
		CustomTool1_1_1LUTIn3 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 0, Green = 0, Blue = 204 },
			NameSet = true,
		},
		CustomTool1_1_1LUTIn4 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
					[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 204, Green = 204, Blue = 204 },
			NameSet = true,
		}
	}
}

That should help you to isolate the moire's frequency.