Аудиоплеер для мультирума

SolarW
starter
Beiträge: 25
Registriert: 31.10.2016, 17:49

Re: RE: Re: Аудиоплеер для мультирума

Beitrag von SolarW » 03.02.2017, 07:12

VictorS hat geschrieben:а как по памяти - 512 хватает ?
С головой

Code: Alles auswählen

root@orangepizero01:~# free
             total       used       free     shared    buffers     cached
Mem:        506820     289800     217020       5960      16312     209816
-/+ buffers/cache:      63672     443148
Swap:       131068          0     131068
И это при том что система еще кучку каталогов в памяти посоздавала чтобы всякими tmp и log карточку не мусолить

Code: Alles auswählen

root@orangepizero01:~# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/mmcblk0p1  15020296 1089132  13767304   8% /
udev               10240       0     10240   0% /dev
tmpfs             101364    4612     96752   5% /run
tmpfs             253408       0    253408   0% /dev/shm
tmpfs               5120       4      5116   1% /run/lock
tmpfs             253408       0    253408   0% /sys/fs/cgroup
tmpfs             253408       0    253408   0% /tmp
log2ram            51200    1036     50164   3% /var/log
tmpfs              50684       0     50684   0% /run/user/0

SolarW
starter
Beiträge: 25
Registriert: 31.10.2016, 17:49

Re: Аудиоплеер для мультирума

Beitrag von SolarW » 03.02.2017, 18:09

По совместному использованию аудиовыхода двумя программами.
Получилось примерно следующее.
Ставим дополнительный пакет
apt-get install alsa-oss
Редактируем /etc/asound.conf до следующего состояния (nano /etc/asound.conf):

Code: Alles auswählen

pcm.dmixer  {
  type dmix
  ipc_key 1024
  slave {
    pcm "hw:0,0" # "hw:1,0" means HDMI change to "hw:0,0" for analog lineout jack output
    period_time 0
    period_size 1024
    buffer_size 4096
    rate 44100
  }
  bindings {
           0 0
           1 1
  }
}

ctl.dmixer {
           type hw
           card 0
}

pcm.!default {
             type plug
             slave.pcm "dmixer"
}

ctl.!default {
             type hw
             card 0
}
Указываем squeezelite использовать устройство default для воспроизведения (nano /etc/default/squeezelite)
SL_SOUNDCARD="default"
Перезапускаем систему чтобы подхватились настройки (reboot)
После старта системы запускаем с LMS воспроизведение, убеждаемся что музыка в колонках играет.
Так как второго плеера у меня не установлено то одновременно из консоли запускаем speaker-test

Code: Alles auswählen

speaker-test -D default -c2
указав ему использовать устройство воспроизведения default и тестировать 2 канала.
Параллельно с музыкой слышим шум теста по очереди из правой и левой колонки.

P.S. А linphone сволочь не заработал нормально... Как-то по своему видит имеющиеся в системе звуковые устройства...

Code: Alles auswählen

linphonec> soundcard list
0: ALSA: default device
1: ALSA: audiocodec
2: ALSA: sndhdmi
3: OSS: /dev/dsp
4: OSS: /dev/dsp1
5: PulseAudio: default
Если не запускать squeezelite и отдать linphone в исключительное использование звуковую карту - то все нормально.
А одновременно максимум удалось добиться чтобы звонок воспроизводился одновременно с музыкой, если ответить на вызов - то тишина.
Подозреваю что надо еще "крутить" asound.conf, а то в последней итерации и звонок перестал проходить - вначале короткий звук и тишина.

MSapogov
professional
Beiträge: 126
Registriert: 13.08.2015, 07:23

Re: Аудиоплеер для мультирума

Beitrag von MSapogov » 05.02.2017, 08:15

5. Хардварное управление плеерами. (частично реализовано здесь - http://forum.iobroker.net/viewtopic.php?f=33&t=5119)

2.2 - разделение внутреннего аналогового стерео выхода на два независимых источника моно вывода звука.
Варианты применения:
Сделать озвучку Ванная (моно) + Уборная (моно) без DACа. Это будут отдельные устройства для LMS
Ванная например левай канал, Уборная Правый, запущено будет 2 копии squeezelite, каждая на своем канале.
Привожу конфиги для alsa и запуск двух squeezelite как сервисов.
Получилось создать 2 независимых плеера с mono сигналом на OrangePi one без DAC.
asound.conf

Code: Alles auswählen

pcm.mix_left {
type plug
slave.pcm {
type dshare
ipc_key 123456
slave.pcm "hw:0"
slave.channels 2
bindings.0 1
}
}

pcm.mix_right {
type plug
slave.pcm {
type dshare
ipc_key 123456
slave.pcm "hw:0"
slave.channels 2
bindings.0 0
}
}
Создаем service-файл squeezelite_left.service в директории /lib/systemd/system/ (МАС адрес "-m" и название "-n" задаем "по вкусу")

Code: Alles auswählen

[Unit]
Description=Squeezelite_left (squeezebox emulator for linux)
After=multi-user.target

[Service]
Type=simple
ExecStart= /usr/bin/squeezelite -D -v -o mix_left -n Orange_left -m 00:00:00:00:00:05


[Install]
WantedBy=multi-user.target
Создаем service-файл squeezelite_right.service по аналогии

Code: Alles auswählen

[Unit]
Description=Squeezelite_right (squeezebox emulator for linux)
After=multi-user.target

[Service]
Type=simple
ExecStart= /usr/bin/squeezelite -D -v -o mix_right -n Orange_right -m 00:00:00:00:00:06


[Install]
WantedBy=multi-user.target
Включить только что созданный файл сервиса в автозагрузку (это создаст symlink-и в папке \etc\systemd\system\multi-user.target.wants )

Code: Alles auswählen

systemctl enable squeezelite_left.service
systemctl enable squeezelite_right.service
Если не хотите перезагружаться, то запустить сервисы

Code: Alles auswählen

systemctl start squeezelite_left.service
systemctl start squeezelite_right.service
Скоро обновлю шапку...

PS: Аптайм превысил 45 дней... глюков не замечено.

chief
Beiträge: 1
Registriert: 18.02.2017, 18:14

Re: Аудиоплеер для мультирума

Beitrag von chief » 18.02.2017, 18:47

Здравствуйте! Будет ли анонсированое продолжение (MPD, ...)?

Andrii
Beiträge: 2
Registriert: 20.03.2017, 19:14

Re: Аудиоплеер для мультирума

Beitrag von Andrii » 20.03.2017, 19:29

Привет! Спасибо. Очень интересная тема. Поделюсь своим опытом. Я использую OrangePi Zero. LMS и плеер стоит на OPiZero 512M, а просто плеера на OPiZero 256. Дешево и сердито. Есть LAN, WiFi, Audio Out, USB, I2S. Есть комплекты с корпусом(если нужно аудиовыход без усилителя). Софт полностью соответствует, как у вас. Только прошивка Arambian для OPiZero. Ресурсов хватает для комфортной работы LMS. Слушаю только Flac (до 192к). С обычным СД форматом (44100) стримил 5 потоков без проблем. Для плееров вообще хватает с головой(и WiFi в наличии).

Andrii
Beiträge: 2
Registriert: 20.03.2017, 19:14

Re: Аудиоплеер для мультирума

Beitrag von Andrii » 20.03.2017, 19:34

Может кто подскажет???? Как команду выключения плеера Squeezelit вывести на какую нибудь ногу GPIO??? Пробовал через опцию -G , но оно пишет что мой плеер не на Raspberry и запускаться не хочет. Хочется звук брать с AUX и через GPIO отключать усилитель. Спасибо.

MSapogov
professional
Beiträge: 126
Registriert: 13.08.2015, 07:23

Re: Аудиоплеер для мультирума

Beitrag von MSapogov » 21.03.2017, 02:29

Andrii hat geschrieben:Может кто подскажет???? Как команду выключения плеера Squeezelit вывести на какую нибудь ногу GPIO??? Пробовал через опцию -G , но оно пишет что мой плеер не на Raspberry и запускаться не хочет. Хочется звук брать с AUX и через GPIO отключать усилитель. Спасибо.
Пробуй через комманду -S <Power Script> Absolute path to script to launch on power commands from LMS
Если не получится, то только через GPIO и внешний скрипт, который через Telnet API проверяет состояние плеера и дергает нужной ногой.

RIK
Beiträge: 2
Registriert: 30.07.2017, 12:58

Re: Аудиоплеер для мультирума

Beitrag von RIK » 30.07.2017, 13:10

MSapogov
Прочитал тему и заинтересовался так как у самого нужно что то колхозить, правильно ли я понимаю что можно купить несколько переходников USB-DAC, подключить их в свободные гнёзда, после чего прописать а уже к ним подключать усилители + акустика в разных комнатах?

MSapogov
professional
Beiträge: 126
Registriert: 13.08.2015, 07:23

Re: Аудиоплеер для мультирума

Beitrag von MSapogov » 31.07.2017, 12:51

RIK hat geschrieben:MSapogov
Прочитал тему и заинтересовался так как у самого нужно что то колхозить, правильно ли я понимаю что можно купить несколько переходников USB-DAC, подключить их в свободные гнёзда, после чего прописать а уже к ним подключать усилители + акустика в разных комнатах?
Да, Вы правильно поняли.
В линуксе, Ваши USB-DAC, будут как отдельные устройства, которые вы прописываете в конфиге каждой копии Squeezelite.

RIK
Beiträge: 2
Registriert: 30.07.2017, 12:58

Re: Аудиоплеер для мультирума

Beitrag von RIK » 31.07.2017, 13:31

MSapogov
Вы уже пользуетесь 2 года своим проектом, как вы считаете на счёт железа, хотели бы что то изменить в в вашей конфигурации?

MSapogov
professional
Beiträge: 126
Registriert: 13.08.2015, 07:23

Re: Аудиоплеер для мультирума

Beitrag von MSapogov » 31.07.2017, 13:46

RIK hat geschrieben:MSapogov
Вы уже пользуетесь 2 года своим проектом, как вы считаете на счёт железа, хотели бы что то изменить в в вашей конфигурации?
Я тут с марта месяца как-то забросил все... некогда было. К строительству бани готовился. А потом и сама стройка... А тут решил проверить как работает....
Включил музыку, а она играет. Ничего не зависло... Ничего не поломалось. Uptime больше 150 дней.
Думаю..., что ничего менять не буду.

Зимой буду думать как озвучивать дачу. Хотя и так птички там поют. О как классно услышать фразу: "Прошу уйти с газона! Включаю полив." :-)

pistoletov
Beiträge: 7
Registriert: 21.02.2015, 19:48

Re: Аудиоплеер для мультирума

Beitrag von pistoletov » 22.12.2017, 14:38

подскажите пробую запускать скриптом через systemctl плееры и получаю ошибки:
Dec 22 16:15:23 Archey systemd[1]: squeezelite@sunxi.service: State 'stop-sigterm' timed out. Killing.
Dec 22 16:15:23 Archey systemd[1]: squeezelite@sunxi.service: Unit entered failed state.
Dec 22 16:15:23 Archey systemd[1]: squeezelite@sunxi.service: Failed with result 'timeout'.
весь лог в таких сообщениях.
вот скрипт запуска:

[Unit]
Description=Squeezelite Daemon
After=multi-user.target

[Service]
Type=simple

# NOTE: using the "squeezeuser" user, NOT root.
#User=root

## note use your mac address as given by ifconfig and the name you wish to give your player
ExecStart=/usr/bin/squeezelite -o default:CARD=sunxicodec -s localhost -n "Bathroom" -z

[Install]
WantedBy=multi-user.target

MSapogov
professional
Beiträge: 126
Registriert: 13.08.2015, 07:23

Re: Аудиоплеер для мультирума

Beitrag von MSapogov » 23.12.2017, 04:35

pistoletov hat geschrieben:подскажите пробую запускать скриптом через systemctl плееры и получаю ошибки:
А если выполнить -
/usr/bin/squeezelite -o default:CARD=sunxicodec -s localhost -n "Bathroom" -z
То работает, или есть ошибки ?

pistoletov
Beiträge: 7
Registriert: 21.02.2015, 19:48

Re: Аудиоплеер для мультирума

Beitrag von pistoletov » 23.12.2017, 07:36

Да, так работает. Проблема именно в systemctl start запуске. Запускать пробовал как от рута так и от другого пользователя.

MSapogov
professional
Beiträge: 126
Registriert: 13.08.2015, 07:23

Re: Аудиоплеер для мультирума

Beitrag von MSapogov » 23.12.2017, 07:56

pistoletov hat geschrieben:Да, так работает. Проблема именно в systemctl start запуске. Запускать пробовал как от рута так и от другого пользователя.
Попробуй вот такую строчку (Прям скопируй)
ExecStart= /usr/bin/squeezelite -D -v -o default:CARD=sunxicodec -n Bathroom -m 00:00:00:00:00:05

PS: недавно добавлял еще 2 зоны... делал по этой-же инструкции... все заработало.

pistoletov
Beiträge: 7
Registriert: 21.02.2015, 19:48

Re: Аудиоплеер для мультирума

Beitrag von pistoletov » 23.12.2017, 09:40

Спасибо большое! Так работает. Если запускать на другом аудиоустройстве что поменять кроме -o. Мас адресс другой поставить?

pistoletov
Beiträge: 7
Registriert: 21.02.2015, 19:48

Re: Аудиоплеер для мультирума

Beitrag von pistoletov » 23.12.2017, 09:41

Мне нужно два сквизлайта. Каждый на свою карточку.

MSapogov
professional
Beiträge: 126
Registriert: 13.08.2015, 07:23

Re: Аудиоплеер для мультирума

Beitrag von MSapogov » 23.12.2017, 13:45

pistoletov hat geschrieben:Спасибо большое! Так работает. Если запускать на другом аудиоустройстве что поменять кроме -o. Мас адресс другой поставить?
Я меняю -o -n -m

pistoletov
Beiträge: 7
Registriert: 21.02.2015, 19:48

Re: Аудиоплеер для мультирума

Beitrag von pistoletov » 23.12.2017, 19:01

Спасибо! Работает. Теперь в планах научить плеера разговаривать от openhaba-)

Antworten