Merge pull request #65 from radiorabe/feature/liquidsoap-workaround-cue_cut

Problem: liquidsoap sometimes clips audio
This commit is contained in:
Robb 2017-03-12 15:16:42 -04:00 committed by GitHub
commit b4cb7adb4e
1 changed files with 22 additions and 0 deletions

View File

@ -40,10 +40,32 @@ just_switched = ref false
sources = ref []
source_id = ref 0
def check_version(~version=liquidsoap.version, major, minor) =
v = list.map(int_of_string, string.split(separator="\.", version))
list.nth(v,0) > major or list.nth(v,0) == major and list.nth(v,1) >= minor
end
def create_source()
l = request.equeue(id="s#{!source_id}", length=0.5)
l = audio_to_stereo(id="queue_src", l)
# cue cut fix for liquidsoap <1.2.2
#
# This was most likely broken on 1.1.1 (debian) as well.
#
# adapted from https://github.com/savonet/liquidsoap/issues/390#issuecomment-277562081
#
if not check_version(1, 3) then
l = map_metadata(fun (~cue_in_metadata='liq_cue_in', m) ->
# 0.04 might need to be adjusted according to your frame size
if float_of_string(m[cue_in_metadata]) < 0.04 then
[(cue_in_metadata, "0")]
else
[]
end
end)
end
l = cue_cut(l)
l = amplify(1., override="replay_gain", l)