Pull to refresh
0
Pixonic
Developing and publishing games since 2009

Как мы делаем корпоративное радио для своих

Reading time4 min
Views13K


Когда-то нашему саунд-дизайнеру пришла идея крутить в офисном туалете свою музыку (прям как в барах). Решили протестировать, поставили первый сетап: в ящике лежал смартфон с плейлистом в AIMP, который подключался к трансляционному усилителю, а сам плейлист закачивался на карту памяти с компа. Костыли, но зато всё заработало моментально. Треки всем зашли, и стали развивать идею до внутреннего радио. Расскажу, какую статью на Хабре мы взяли за основу, что поменяли и бонусом покажу комикс — презент от коллег за музыку.

Сначала телефон в ящике казался неплохим вариантом для концепта. Но постоянно загружать музыку в телефон не хотелось и как-то на корпоративе мы с саунд-дизайнером Ильей Викторовым разговорились про вещание в интернете. Сошлись, что будет круто, если во всех туалетах компании от Белгорода до Лимассола будет играть одна и та же хорошая музыка. Тем более плейлист очень зашел команде (в Слаке постоянно просили скинуть треки).

Полез я на Хабр и наткнулся на статью «Организация музыкального сопровождения торгового зала». Там @Teon_501 дает несколько полезных ссылок и рассказывает, как практично организовать вещание на связке из одного компа с LibreTime и второго — принимающего. Плюс он настроил запуск рекламы по времени. Если кратко, то его решение состоит из готовой сборки LibreTime, которая включает в себя web-админку с LiquidSoap, и с вещанием через IceCast.



Отличный вариант, мы попробовали сделать так же (но без рекламы) и довольно долго его использовали. В результате составили актуальный на тот момент список плюсов и минусов для нашей ситуации.

Плюсы:

  • Удобная и простая настройка.
  • Стабильность (у нас ничего не падало).
  • Есть страничка с онлайн-плеером и расписанием.

Минусы (на текущий момент многие из них уже исправлены):

  • Встроенный модуль, который при автозагрузке треков сам высчитывает Fade in и Fade out, и делает это очень плохо. Многие треки обрезает до минуты (UPD: сейчас поможет обновление библиотеки silan до последней версии).
  • Не обновляется (UPD: тогда проект не обновлялся так часто, как сейчас)
  • Необходимость обязательно делать расписание вещания отдельно на каждый день (UPD: в комментариях говорят, что уже нет — можно сделать «связанную» программу и раскатывать до бесконечности).
  • Излишняя для нашей простой задачи функциональность.
  • Не устраивал встроенный перемешиватель музыки, треки часто повторялись.
  • Ограниченная длина плейлиста.

Мы же для себя собрали огромный плейлист, который хотели залить и рандомно проигрывать очень долгое время. Поэтому в следующей итерации всё упростили и заменили LibreTime на связку IceCast с MPD. На Хабре найдётся много статей, описывающих всё это (вдохновится можно здесь или здесь), а я приведу краткое описание настройки.

В качестве сервера вещания я выбрал Ubuntu Server 18.04:

Ставим Icecast и MPD
sudo apt install mpd icecast2

Потом правим конфиг MPD
sudo vi /etc/mpd.conf

И приводим его к такому виду (по факту это конфиг по умолчанию с отредактированными настройками выходного устройства и буфера)
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/tag_cache"
log_file "/var/log/mpd/mpd.log"
pid_file "/run/mpd/pid"
state_file "/var/lib/mpd/state"
sticker_file "/var/lib/mpd/sticker.sql"
user "mpd"
bind_to_address "0.0.0.0"
port "6600"
log_level "default"
metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
auto_update "yes"
auto_update_depth "3"
default_permissions "read,add,control,admin"
audio_output
{
type "shout"
encoding "mp3"
name "Pixonic FM"
host "localhost"
port "8000"
mount "/_a"
password "613112"
bitrate "192"
format "44100:16:2"
protocol "icecast2"
}
replaygain "auto"
replaygain_preamp "0"
replaygain_missing_preamp "0"
replaygain_limit "yes"
volume_normalization "no"
filesystem_charset "UTF-8"
audio_buffer_size "2048"
buffer_before_play "50%"


Заливаем файлы, включаем как службу и перезапускаем mpd
systemctl enabled mpd
systemctl restart mpd && systemctl status mpd


Конфиг IceCast из коробки рабочий, но я всё же советую поменять хотя бы пароль в файле /etc/icecast2/icecast.xml (по умолчанию это hackme).

На данном этапе настройка завершена, теперь можете подключиться любимым плеером к серверу mpd и запустить треки. Мне нравится ncmpc, но можно выбрать другой по душе. Там же есть веб-клиенты, чтобы управлять плейлистом через браузер, но наш плейлист не меняется так часто.

Теперь на your_server:8000/_a можно прослушать свою трансляцию, но лучше, конечно, вставить ссылку в VLC.

Хотя планов еще много, это тот случай, когда надо делать проще. Например, сделать главную страницу. Сейчас мы просто отдаём поток для клиентов, который можно слушать через VLC.

To-Do List:

  • сделать, чтобы сотрудники могли сами предлагать треки прямо в вебе;
  • и голосовать за следующую композицию.

За звук у нас отвечает Илья, которому изначально и пришла идея. Сейчас в плейлисте уже много треков, плюс специально сделанные для такого случая джинглы.

Музыка, в основном, подбиралась фоновая. Хотелось, чтобы она всем нравилась, и тут помог большой опыт написания треков и составления плейлистов для мероприятий. Преимущественно это легкий liquid funk, chillwave, deep house, dub techno, немного эмбиента, электронный поп, немного инди-рока и несколько пасхалок из игр. Плюс отдельные плейлисты для рождественских праздников, дня святого Валентина, Хеллоуина, дня рождения War Robots и других событий.

P.S. Приятное лично для нас, захотелось поделиться. Когда все заработало, ребята из других отделов — Егор Гафидов, Даша Карякина, Анастасия Колчина и Софья Соломонова — сделали нам крутой подарок в виде комикса:



ПРОДОЛЖЕНИЕ КОМИКСА









Tags:
Hubs:
Total votes 47: ↑40 and ↓7+33
Comments23

Articles

Information

Website
pixonic.com
Registered
Founded
Employees
201–500 employees
Location
Кипр