example of jah's MMFilter module for R engine
| engine.name = 'R' | |
| local R = require 'r/lib/r' | |
| local Option = require 'params/option' | |
| local Formatters = require 'formatters' | |
| local KEY2 = 0 | |
| local edit = "cutoff" | |
| function init() | |
| engine.new("LP", "MMFilter") | |
| engine.new("HP", "MMFilter") | |
| engine.new("SoundIn", "SoundIn") | |
| engine.new("SoundOut", "SoundOut") | |
| engine.connect("SoundIn/Left", "LP/In") | |
| engine.connect("SoundIn/Right", "HP/In") | |
| engine.connect("LP/Lowpass", "SoundOut/Left") | |
| engine.connect("HP/Highpass", "SoundOut/Right") | |
| filter_frequency_spec = R.specs.MMFilter.Frequency:copy() | |
| filter_frequency_spec.default = 2000 | |
| params:add { | |
| type="control", | |
| id="LPfrequency", | |
| name="LP.Frequency", | |
| controlspec=filter_frequency_spec, | |
| action=function(value) engine.set("LP.Frequency", value) end | |
| } | |
| params:add { | |
| type="control", | |
| id="HPfrequency", | |
| name="HP.Frequency", | |
| controlspec=filter_frequency_spec, | |
| action=function(value) engine.set("HP.Frequency", value) end | |
| } | |
| local filter_resonance_spec = R.specs.MMFilter.Resonance:copy() | |
| filter_resonance_spec.default = 0.4 | |
| params:add { | |
| type="control", | |
| id="LPresonance", | |
| name="LP.Resonance", | |
| controlspec=filter_resonance_spec, | |
| formatter=Formatters.percentage, | |
| action=function(value) engine.set("LP.Resonance", value) end | |
| } | |
| params:add { | |
| type="control", | |
| id="HPresonance", | |
| name="HP.Resonance", | |
| controlspec=filter_resonance_spec, | |
| formatter=Formatters.percentage, | |
| action=function(value) engine.set("HP.Resonance", value) end | |
| } | |
| params:read() | |
| params:bang() | |
| end | |
| function enc(n, delta) | |
| if n == 1 then | |
| mix:delta("output", delta) | |
| elseif n == 2 then | |
| if KEY2 == 1 then | |
| params:delta("LPresonance", delta) | |
| else | |
| params:delta("LPfrequency", delta) | |
| end | |
| elseif n == 3 then | |
| if KEY2 == 1 then | |
| params:delta("HPresonance", delta) | |
| else | |
| params:delta("HPfrequency", delta) | |
| end | |
| end | |
| redraw() | |
| end | |
| function key(n,z) | |
| if n == 2 and z == 1 then | |
| KEY2 = 1 | |
| edit = "resonance" | |
| else | |
| KEY2 = 0 | |
| edit = "cutoff" | |
| end | |
| redraw() | |
| end | |
| function redraw() | |
| screen.clear() | |
| screen.font_size(8) | |
| screen.level(15) | |
| screen.move(0, 10) | |
| screen.level(edit=="cutoff" and 15 or 2) | |
| screen.text("LP Cutoff: "..params:string("LPfrequency")) | |
| screen.move(0, 20) | |
| screen.level(edit=="resonance" and 15 or 2) | |
| screen.text("LP Resonance: "..params:string("LPresonance")) | |
| screen.move(0,40) | |
| screen.level(edit=="cutoff" and 15 or 2) | |
| screen.text("HP Cutoff: "..params:string("HPfrequency")) | |
| screen.move(0, 50) | |
| screen.level(edit=="resonance" and 15 or 2) | |
| screen.text("HP Resonance: "..params:string("HPresonance")) | |
| screen.update() | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment