Thanks, Romain!

the vorbis issue is sorted, all cool!
all radios working with some features disabled and i'll list the parts i had to comment-out here:

strip_blank doesn't work - as you've already explained that skip_blank is now blank_skip, same might apply here.

now this crossfade doesn't work:

def crossfade (~start_next=5.,~fade_in=3.,~fade_out=3.,
                    ~default=(fun (a,b) -> sequence([a, b])),
                    ~high=-15., ~medium=-32., ~margin=4.,
                    ~width=2.,~conservative=true,s)
#  fade.out = fade.out(type="sin",duration=fade_out)
#  fade.in  = fade.in(type="sin",duration=fade_in)
 add = fun (a,b) -> add(normalize=false,[b, a])
#  log = log(label="crossfade")
end

commented lines show what i had to take out to avoid startup errors.

this transition doesn't work either:

 def transition(a,b,ma,mb,sa,sb)
   list.iter(fun(x)-> log(level=4,"Before: #{x}"),ma)
   list.iter(fun(x)-> log(level=4,"After : #{x}"),mb)
   log("Transition: crossed, fade-in, fade-out.")
#    add(fade.out(sa),fade.in(sb))
 end


this definition of cross:

#  cross(width=width, duration=start_next, conservative=conservative,
#              transition,s)

also this:
#radio = crossfade(radio)

then this important contraption which allowed me to insert metadata on the fly and also print out track names which have played:

#x = insert_metadata(radio)
#insert = fst(x)
#radio = snd(x)
#def set_meta(~protocol,~data,~headers,uri) =
#    x = url.split(uri)
#    meta = metadata.export(snd(x))
#    ret =
#    if meta != [] then
#    insert(meta)
#    "O jaa!"
#else
#    "nier metadatos!"
#    end

#http_response(protocol=protocol,code=200,headers=[("Content-Type","text/html")],data="<html><body><b>#{ret}</b></body></html>")
#end

#harbor.http.register(port=8020,method="GET","/setmeta",set_meta)

# execute script on_metadata

# radio = on_metadata(fun (meta) -> system("echo %date% %time% #{(meta[\"artist\"])} #{(meta[\"title\"])} >> c:/grojo.txt"), radio)


then this jingle system and also primitive gain control:
# radio = add([radio, switch([({30m31s},dzinglas)])])
# radio = skip_blank(radio)
# radio = fallback(track_sensitive=false, [ fail(), radio, fallback_file ])
# limradio = amplify(0.9, radio)

compression and normalization written like that also have no luck:
#  target = interactive.float("target",-17.)
#  k_up = interactive.float("k_up",10.)
#  k_down = interactive.float("k_down",0.2)
#  gain_min = -6.
#  gain_max = 10.
#  window = 10.
#  threshold = interactive.float("threshold",-30.)

#radio = normalize(target=target,k_up=k_up,k_down=k_down,gain_min=gain_min,gain_max=gain_max,window=window,threshold=threshold,radio) #radio = compress(attack=0.5,threshold=-9.,ratio=12.,gain=6., release=2000.,radio)

a simple limiter doesn't want to function:
#radio = limit(attack=0.01, release=5000., threshold=-1., radio)

and finally, radio = register_flow is also commented out but i don't remember if i did it because of LS v2 or some time earlier..:)

as for memory leaks, now they seem more predictable and not as speedy. i already can get around without automatically killing the processes every morning - they don't bloat so badly (~1G in one day) and also if there are no harbours in the config and no one touches telnet the leak doesn't happen and it keeps at under 100MB. can't say it's fixed but it's definitely not worse than it was, seems it's better now.

also one transition for fallback including live harbour that Martin Kirchgessner suggested earlier:
def crossfade_1s(a,b)
   faded = add(normalize=false, [
       fade.in(duration=1., type="exp", b),
       amplify(mkfade(duration=1., start=1., stop=0., type="exp", a) ,a)
   ])
   add_timeout(3., { source.skip(a) ; -1.})
   faded
end

that behaved absolutely unusably shitty (fading in and out multiple times and never completing the fade, skipping tracks on fades happening in background in pre-V2 liquidsoap), now works absolutely perfect ;)

regards,
p



_______________________________________________
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to