My intended design is to seamlessly crossfade between three groups using the Mod Wheel. Group 1
is at full volume when CC01 = 0
. Then as CC01
increases, the volume of Group 1
decreases and Group 2
increases and so on.
Is there an established method of accomplishing this?
This is should work by my estimation (which shouldn't be trusted at all), but doesn't:
on controller
$inc_value := (%CC[$CC_NUM] * 2) * 7812
if ($CC_NUM = 1)
select(%CC[$CC_NUM])
case 0 to 63
set_engine_par($ENGINE_PAR_VOLUME, 1000000 - (((%CC[$CC_NUM] * 2) / 128) * 1000000), 0, -1, -1)
set_engine_par($ENGINE_PAR_VOLUME, $inc_value, 1, -1, -1)
set_engine_par($ENGINE_PAR_VOLUME, 0, 2, -1, -1)
case 64 to 127
set_engine_par($ENGINE_PAR_VOLUME, 0, 0, -1, -1)
set_engine_par($ENGINE_PAR_VOLUME, 1000000 - (((%CC[$CC_NUM] * 2) / 128) * 1000000), 1, -1, -1)
set_engine_par($ENGINE_PAR_VOLUME, $inc_value, 2, -1, -1)
end select
end if
end on