Unison script trigger multiple voices
--------------------------------------------------------------------------------
--! @example Unison.lua
--! Unison script
--! trigger multiple voices
--------------------------------------------------------------------------------
Voices =
Knob(
"numVoices", 5, 2, 10,
true)
Detune =
Knob("Detune", 10.0, 0, 40) -- cents
local nVoices = Voices.value
local detune = Detune.value
for i=1,nVoices do
local note = e.note
local i2 = math.floor(i/2)
local rest = i%2
local tune = detune * i2 / 100.0
if rest == 1 then
tune = tune * -1.0
end
local
id =
playNote{e.note, e.velocity, vol=1/math.sqrt(nVoices), tune=tune}
end
end
-- eat
event release is automatic in
playNote
end