Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/local/bin/liquidsoap
- # мета
- out = output.icecast(
- host = "pool.akigami.ru",
- port = 8585,
- user = "source",
- password = "1337akisource",
- name = "Akigami.Radio",
- genre = "Anime",
- url = "http://akigami.ru",
- encoding = "UTF-8"
- )
- # функция crossfade
- def crossfade(~start_next,~fade_in,~fade_out,s)
- s = fade.in(duration=fade_in,s)
- s = fade.out(duration=fade_out,s)
- fader = fun (a,b) -> add(normalize=false,[b,a])
- cross(fader,s)
- end
- # функция компрессии и нормализации
- def nrj(s)
- compress(
- threshold=-2.0,
- attack=6.5,
- release=3.0,
- ratio=2.0,
- gain=0.0,
- knee=3.0,
- normalize(s)
- )
- end
- # метадата жсон
- meta = ref []
- def update_meta(m) =
- m = list.remove_assoc("metadata_block_picture", m)
- file_path = m["filename"]
- duration = string_of(file.duration(file_path))
- m = list.add(("duration", string_of(duration)), m)
- system('/usr/bin/nodejs /akigami/rcontroller/next.js next &')
- #log("#{dur}")
- recode = string.recode(out_enc="UTF-8")
- def f(x) =
- (recode(fst(x)),recode(snd(x)))
- end
- meta := list.map(f,m)
- end
- radio = on_metadata(update_meta,radio)
- def get_meta(~protocol,~data,~headers,uri) =
- m = !meta
- http_response(
- protocol=protocol,
- code=200,
- headers=[("Content-Type","application/json; charset=utf-8")],
- data=json_of(m)
- )
- end
- #пёрлхарбор
- set("harbor.bind_addr","0.0.0.0")
- harbor.http.register(port=7000,method="GET","/getmeta",get_meta)
- #set("log.stdout", true)
- # сокеты
- #set("server.socket",true)
- #set("server.socket.path","/home/user/socket.sock")
- #телнет
- set("server.telnet.bind_addr","127.0.0.1")
- set("server.telnet",true)
- set("server.telnet.port",1234)
- #шоэто
- set("audio.converter.samplerate.libsamplerate.quality","best")
- # абсолютный путь к рабочей директории
- wd = "/radio"
- # техническая папка
- tech = "#{wd}/logs"
- # логи
- set("log.file.path","#{tech}/liquidsoap.log") # путь к файлу лога
- set("log.level", 3) # уровень логирования
- # загружаем плейлисты, джинглы, вставки, программы
- muz_pl = playlist ("#{wd}/scripts/disk.playlist.txt", mode = "normal", reload_mode="watch")
- #muz_pl = playlist (reload = 3600, "#{wd}/scripts/disk.playlist.txt", reload_mode="watch")
- # убираем тишину в треках
- radio = mksafe(muz_pl)
- # добавляем crossfade
- radio = crossfade(start_next=3., fade_out=1.5, fade_in=1.5, radio)
- # преамп и нормализация
- radio = nrj(radio)
- # запускаем вещалки с разным качеством
- out(
- %vorbis(
- samplerate=44100,
- channels=2,
- quality=0.8
- ),
- description = "Vorbis 44k .8Q",
- mount = "ar.ogg",
- mksafe(radio)
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement