Created
May 31, 2019 12:45
-
-
Save dndrks/28ae4d8d0d816ab36c6e7bb2771e2616 to your computer and use it in GitHub Desktop.
example of jah's MMFilter module for R engine
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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