From 7db54ea3b76a4499af8ac3e7099fcb5b2dbd0aef Mon Sep 17 00:00:00 2001 From: Jake Read <jake.read@cba.mit.edu> Date: Sun, 17 Nov 2019 17:39:42 -0500 Subject: [PATCH] at filter video --- hunks/data/exfilter.js | 33 +++++++++++++++++++++++++++++++++ hunks/primitive/counter.js | 4 ++-- 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 hunks/data/exfilter.js diff --git a/hunks/data/exfilter.js b/hunks/data/exfilter.js new file mode 100644 index 0000000..9795e1a --- /dev/null +++ b/hunks/data/exfilter.js @@ -0,0 +1,33 @@ +/* + +rolling filter, + +*/ + +import { Hunkify, Input, Output, State } from '../hunks.js' + +export default function Smooth(){ + Hunkify(this) + + let inNum = this.input('number', 'vals') + let outNum = this.output('number', 'smoother') + let reset = this.state('boolean', 'reset', false) + let weight = this.state('number', 'weight, 0-1', 0.9) + + let yl = 0 + + reset.onChange = (value) => { + yl = 0 + } + + weight.onChange = (value) => { + weight.set(Math.max(Math.min(value, 1), 0)) + } + + this.loop = () => { + if(inNum.io() && !outNum.io()){ + yl = weight.value * inNum.get() + (1 - weight.value) * yl + outNum.put(yl) + } + } +} diff --git a/hunks/primitive/counter.js b/hunks/primitive/counter.js index 729e279..53d20d7 100644 --- a/hunks/primitive/counter.js +++ b/hunks/primitive/counter.js @@ -14,8 +14,8 @@ import { function Counter() { Hunkify(this) - let evtInc = new Input('any', 'increment', this) - let evtDec = new Input('any', 'decrement', this) + let evtInc = new Input('number', 'increment', this) + let evtDec = new Input('number', 'decrement', this) let resetInp = new Input('boolean', 'reset', this) this.inputs.push(evtInc, evtDec, resetInp) -- GitLab