Skip to content

Instantly share code, notes, and snippets.

@dndrks
Created May 31, 2019 12:45
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dndrks/28ae4d8d0d816ab36c6e7bb2771e2616 to your computer and use it in GitHub Desktop.
Save dndrks/28ae4d8d0d816ab36c6e7bb2771e2616 to your computer and use it in GitHub Desktop.
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