Skip to content

Instantly share code, notes, and snippets.

@130db
Last active December 15, 2022 23:43
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save 130db/6001343 to your computer and use it in GitHub Desktop.
This piece of Liquidsoap is written by me and used by Pieci http://pieci.lv. I would appreciate, if you have an idea how to improve it. You can hear it at work on Pieci live streaming.
#
# Pieci / 5 koncerti sound processing
# http://pieci.lv
#
# Author: Aigars Sukurs <aigars@130db.lv>
# Copyright: (C) 2013 130DB
# Licence: MIT
#
s = ladspa.gate(s, threshold = -60.0, attack = 0.15, hold = 1.0, decay = 200.0, range = -25.0)
# Wideband AGC
s = normalize(target = 0., window = 0.03, gain_min = -16., gain_max = 0., s)
# Initial compression low ration
s = ladspa.sc4(rms_peak=0.3, attack_time = 0.5, release_time = 3., threshold_level = -36.0, ratio=1., makeup_gain = 6., s)
# Emulate a five-band crossover network
sub = filter.iir.eq.low(frequency = 190.,)
lhi = filter.iir.eq.high(frequency = 190.,)
llo = filter.iir.eq.low(frequency = 700.,)
mhi = filter.iir.eq.high(frequency = 700.,)
mlo = filter.iir.eq.low(frequency = 2500.,)
hhi = filter.iir.eq.high(frequency = 2500.)
hlo = filter.iir.eq.low(frequency = 6500.)
shi = filter.iir.eq.high(frequency = 6500.)
slo = filter.iir.eq.low(frequency = 15000.)
c = ladspa.sc4(rms_peak = 0.5)
l = ladspa.tap_limiter(limit_level = -0.5)
# Emulate a five-band AGC compresor and limit
s = add(normalize=false,
[
l(c(attack_time = 2.25, release_time = 40., threshold_level = -10., ratio=3., makeup_gain = 2., sub(s))),
l(c(attack_time = 2.25, release_time = 40., threshold_level = -13., ratio=3., makeup_gain = 2., llo(lhi(s)))),
l(c(attack_time = 2.25, release_time = 40., threshold_level = -9., ratio=3., makeup_gain = 2., mlo(mhi(s)))),
l(c(attack_time = 2.25, release_time = 40., threshold_level = -6., ratio=3., makeup_gain = 1.5, hlo(hhi(s)))),
l(c(attack_time = 2.25, release_time = 40., threshold_level = -4., ratio=3., makeup_gain = 1., slo(shi(s))))
])
# Limit, if there is something to limit
s = l(s)
@ZipName80
Copy link

For the last version of liquidsoap add s=radio and radio = s

s = radio

s = ladspa.gate(s, threshold = -60.0, attack = 0.15, hold = 1.0, decay = 200.0, range = -25.0)

# Wideband AGC
s = normalize(target = 0., window = 0.03, gain_min = -16., gain_max = 0., s)

# Initial compression low ration
s = ladspa.sc4(rms_peak=0.3, attack_time = 0.5, release_time = 3., threshold_level = -36.0, ratio=1., makeup_gain = 6., s)

# Emulate a five-band crossover network
sub = filter.iir.eq.low(frequency = 190.,)

lhi = filter.iir.eq.high(frequency = 190.,)
llo = filter.iir.eq.low(frequency = 700.,)

mhi = filter.iir.eq.high(frequency = 700.,)
mlo = filter.iir.eq.low(frequency = 2500.,)

hhi = filter.iir.eq.high(frequency = 2500.)
hlo = filter.iir.eq.low(frequency = 6500.)

shi = filter.iir.eq.high(frequency = 6500.)
slo = filter.iir.eq.low(frequency = 15000.)

c = ladspa.sc4(rms_peak = 0.5)
l = ladspa.tap_limiter(limit_level = -0.5)

# Emulate a five-band AGC compresor and limit 
s = add(normalize=false,
  [
  l(c(attack_time = 2.25, release_time = 40., threshold_level = -10., ratio=3., makeup_gain = 2., sub(s))),
  l(c(attack_time = 2.25, release_time = 40., threshold_level = -13., ratio=3., makeup_gain = 2., llo(lhi(s)))),
  l(c(attack_time = 2.25, release_time = 40., threshold_level = -9., ratio=3., makeup_gain = 2., mlo(mhi(s)))),
  l(c(attack_time = 2.25, release_time = 40., threshold_level = -6., ratio=3., makeup_gain = 1.5, hlo(hhi(s)))),
  l(c(attack_time = 2.25, release_time = 40., threshold_level = -4., ratio=3., makeup_gain = 1., slo(shi(s))))
  ])

# Limit, if there is something to limit
s = l(s)

radio = s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment