Trying to adapt smart_crossfade I would like to be able to change ALL
parameters depending on the volumes in and out but in this version of me
(number 16 in a week trial and error) I once again get errors. Perhaps
somebody with a deeper knowledge of the language can help me out here
because I am stuck?
def smart_crossfade (a,b,ma,mb,sa,sb,
~start_next=2.0,~fade_in=0.,~fade_out=2.,
~default=(fun (a,b) -> add([fade.out(a),b])),
~high=-5., ~medium=-32., ~margin=4.,
~width=2.5,~conservative=false,s)
add = fun (a,b) -> add(normalize=false,[b, a])
log = log(label="smart_cross80s")
set("log.level",3)
list.iter(fun(x)-> log(level=4,"Before: #{x}"),ma)
list.iter(fun(x)-> log(level=4,"After : #{x}"),mb)
if
a <= medium and b <= medium and abs(a - b) <= margin
then
log("TRANSITION: A. crossed, fade-out 0.4.")
smart_cross(width=width, duration=start_next,
conservative=conservative,
add(fade.out(sa,type="log",duration=0.4),sb),s)
elsif
b >= a + margin and a >= medium and b <= high
then
log("TRANSITION: B. crossed, fade-out 0.3.")
smart_cross(width=width, duration=start_next,
conservative=conservative,
add(fade.out(sa,type="log",duration=0.3),sb),s)
elsif
a >= b + margin and b >= medium and a <= high
then
log("TRANSITION: C. crossed, fade-out 0.4.")
smart_cross(width=width, duration=start_next,
conservative=conservative,
add(fade.out(sa,type="log",duration=0.4),sb),s)
elsif
b >= a + margin and a <= medium and b <= high
then
log("TRANSITION: D. fade-out 0.2 fade-in 0.2 duration 0.5")
smart_cross(width=width, duration=0.5, conservative=conservative,
add(fade.out(sa,duration=0.2),fade.in(sb,duration=0.2)),s)
else
log("TRANSITION: E. Using default set to : crossed, fade-out 0.1
duration 0.5")
smart_cross(width=width, duration=0.5, conservative=conservative,
add(fade.out(sa,type="log",duration=0.1),fade.in(sb,type="exp",duration=0.1)),s)
end
end
------------------------------------------------------------------------------
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users