Guest User

Liquidsoap Multi-band AGC

a guest
May 13th, 2014
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. # LOG FILES HELP! Leave these fuckers in
  2. set("log.file",false)
  3. set("log.stdout",true)
  4. set("log.level",4)
  5.  
  6. # Stick your source stream here
  7. url = "http://fillyradio.com:8000"
  8.  
  9. # Liquidsoap bitches at fallible sources. Let's pretend this one's infallible
  10. audio = mksafe(input.http(url))
  11.  
  12. # Gate any noisy shit
  13. staudio = ladspa.gate(staudio, threshold = -60.0, attack = 0.15, hold = 1.0, decay = 200.0, range = -25.0)
  14.  
  15. # One big AGC to normalise incoming shit
  16. staudio = normalize(target = 0., window = 0.03, gain_min = -16., gain_max = 0., staudio)
  17.  
  18. # Low ratio compression (smooth that fucker out)
  19. staudio = ladspa.sc4(rms_peak=0.3, attack_time = 0.5, release_time = 3., threshold_level = -36.0, ratio=1., makeup_gain = 6., staudio)
  20.  
  21. # This is the 5-band crossover setup for the block underneath
  22. sub = filter.iir.eq.low(frequency = 190.,)
  23.  
  24. lhi = filter.iir.eq.high(frequency = 190.,)
  25. llo = filter.iir.eq.low(frequency = 700.,)
  26.  
  27. mhi = filter.iir.eq.high(frequency = 700.,)
  28. mlo = filter.iir.eq.low(frequency = 2500.,)
  29.  
  30. hhi = filter.iir.eq.high(frequency = 2500.)
  31. hlo = filter.iir.eq.low(frequency = 6500.)
  32.  
  33. shi = filter.iir.eq.high(frequency = 6500.)
  34. slo = filter.iir.eq.low(frequency = 15000.)
  35.  
  36. # Basic RMS for use below
  37. c = ladspa.sc4(rms_peak = 0.5)
  38. # Basic Limiter for use below
  39. l = ladspa.tap_limiter(limit_level = -0.5)
  40.  
  41. # This is basically a bunch of limiters working together to make a 5-Band AGC
  42. staudio = add(normalize=false,
  43. [
  44. l(c(attack_time = 2.25, release_time = 40., threshold_level = -10., ratio=3., makeup_gain = 2., sub(studio))),
  45. l(c(attack_time = 2.25, release_time = 40., threshold_level = -13., ratio=3., makeup_gain = 2., llo(lhi(staudio)))),
  46. l(c(attack_time = 2.25, release_time = 40., threshold_level = -9., ratio=3., makeup_gain = 2., mlo(mhi(staudio)))),
  47. l(c(attack_time = 2.25, release_time = 40., threshold_level = -6., ratio=3., makeup_gain = 1.5, hlo(hhi(staudio)))),
  48. l(c(attack_time = 2.25, release_time = 40., threshold_level = -4., ratio=3., makeup_gain = 1., slo(shi(staudio))))
  49. ])
  50.  
  51. # If you can limit it, limit the fucker
  52. # Blame Final Draft if it breaks
  53. finaldraft = l(staudio)
  54.  
  55. # Setup your codecs/outputs here (Copy pasta for multiple outputs)
  56. output.shoutcast(
  57. %aacplus(channels=2, bitrate=64),
  58. host="208.67.6.112", port=8004, password="PENGUINS-UP-MY-ARSE",
  59. finaldraft)
  60. # Thanks, Final Draft...
Advertisement
Add Comment
Please, Sign In to add comment