NEWS
Аудиоплеер для мультирума
-
Или если задача подавления шума усилителя в паузе не стоит, то не стоит заморачиватся с отдельным DAC? `
Совершенно верно.Если Вы только не хотите получить 24бит 192кГц звук.
Корпус любой, можно и стандартный.
Если к усилку можно подключить через HDMI, то и DAC никакой не нужен, для 24бит 192кГц звука.
-
А в какой корпус можно засунуть апельсину и DAC? В оригинальный полупрозрачный войдет?
Хотелось бы иметь приличный вид у такой сборки. `
Испытываю некоторые сомнения что поместится…!

<link_text text="https://uploads.tapatalk-cdn.com/201702 ... d14020.jpg">https://uploads.tapatalk-cdn.com/20170202/b6e620edf9bf551ff899efd349d14020.jpg</link_text>" /> -
"Элементарно Ватсон!" `
Ух ты! В картинках - это как раз для нас, чайников :-)
@MSapogov:Внимательно изучаем даташит на TDA7492, `
Вот тут собственно и началась проблема - в виду слабой теоретической подготовки понимание даташитов не является моей сильной стороной… сходу понимаю в них только габаритные размеры да температурный режим :-)
@MSapogov:смотрим на плату и находим куда идет 20 нога (это и есть стендбай)… А на плате она идет через резистор 3К к 3.3В.
Делаем небольшую модернизацию... передвинув резистор в свободную сторону к 3.3В и на освободившуюся площадку подпаиваем проводок для управления питанием. `
Ага, значит сняв радиатор это все проделывать надо."Сдвинув в сторону" - это типа остался на одной ноге висеть чтобы не потерялся на случай если назад запаивать?
@MSapogov:На ES9023 перерезаем MCLK (он все равно не используется) и вместо него делаем сигнал пробуждения для усилка. `
Уууу… монтаж SMD... Чувствую что к комплекту мелких жал для паяльника придется еще и увеличительное стекло докупить...Дорожка дремелем перебита?
@MSapogov:1. у меня используется обычный инвертор на биполярном транзисторе, под рукой был bc817 в корпусе sot23 и 2 резистора на 6,8к. В моем случае когда на 16 ноге "0", то на выходе транзистора будет "1" - это +5В, их я и подаю на усилок для пробуждения. `
http://www.smd-component.ru/webcatalog/ … code=08131 - правильно понимаю что два добавленных элемента с маркировкой 6801 это такие резисторы как по ссылке описаны?http://www.s-manuals.com/ru/smd/6b - а вот тут собственно искомые транзисторы
К ножке MCLK разъема получается коллектор транзистора припаян и туда же через резистор приходит напруга?
-
Адаптированная инструкция автора темы под Orange Pi Zero с использованием штатного аудио-выхода.
https://www.armbian.com/orange-pi-zero/ - качаем Armbian (Debian Jessie)
Разворачиваем образ на SD карту (под Win использую SDFormatter и Win32DiskImager)
Вставляем карточку в апельсинку.
Подключаем локальную сеть, питание.
После старта смотрим на маршрутизаторе какой адрес она получила (по умолчанию используется имя хоста orangepizero)
Второй вариант это вооружиться USB-UART с уровнем 3.3в и подключиться к UART'у на апельсинке - 3 пина рядом с сетевой картой, по умолчанию туда привязана консоль и можно через терминальную программу наблюдать процесс загрузки/произвести начальную настройку.
С помощью вашего любимого SSH-клиента (puTTY?) подключаемся к апельсинке, входим по умолчанию с root / 1234
Сразу после входа требуют сменить пароль - меняем.
Поскольку медиаплеер это не сервер Пентагона дополнительного пользователя для работы не завожу, нажимаю Ctrl-C.
Учитывая что при входе настойчиво попросили перезагрузиться чтобы закончить процедуру растягивания корневого раздела на весь доступный объем SD-карты - перезагружаемся (reboot)
После перезагрузки и повторного входа обновляем систему:
apt-get update apt-get upgradeСтавим дополнительных программ для комфортной работы
apt-get install mc htopС помощью программы nmtui (Network Manager Text User Interface) настраиваем параметры подключения к сети (Wired и/или Wi-Fi)
Смотрим что у нас с аудио устройствами
root@orangepizero01:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC sndcodec-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: sndhdmi [sndhdmi], device 0: SUNXI-HDMIAUDIO sndhdmi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC sndcodec-0 [] - это интересующий нас аудиовыход
Ставим squeezelite (тянет за собой пачку зависимых пакетов, поэтому вручную последнюю версию не стал)
apt-get install squeezeliteДобавляем его в автозагрузку
systemctl enable squeezelite.serviceСмотрим доступные для squeezelite устройства вывода звука
root@orangepizero01:~# squeezelite -l Output devices: null - Discard all samples (playback) or generate zero samples (capture) default:CARD=audiocodec - audiocodec, - Default Audio Device sysdefault:CARD=audiocodec - audiocodec, - Default Audio Device dmix:CARD=audiocodec,DEV=0 - audiocodec, - Direct sample mixing device dsnoop:CARD=audiocodec,DEV=0 - audiocodec, - Direct sample snooping device hw:CARD=audiocodec,DEV=0 - audiocodec, - Direct hardware device without any conversions plughw:CARD=audiocodec,DEV=0 - audiocodec, - Hardware device with all software conversions default:CARD=sndhdmi - sndhdmi, - Default Audio Device sysdefault:CARD=sndhdmi - sndhdmi, - Default Audio Device dmix:CARD=sndhdmi,DEV=0 - sndhdmi, - Direct sample mixing device dsnoop:CARD=sndhdmi,DEV=0 - sndhdmi, - Direct sample snooping device hw:CARD=sndhdmi,DEV=0 - sndhdmi, - Direct hardware device without any conversions plughw:CARD=sndhdmi,DEV=0 - sndhdmi, - Hardware device with all software conversionsПравим настройки squeezelite (кому в каком редакторе привычней, кто-то может через WinSCP захочет редактировать)
nano /etc/default/squeezeliteили
mcedit /etc/default/squeezeliteили
vi /etc/default/squeezeliteМожно прописать свое имя плееру (по умолчанию используется системное hostname которое настраивается через nmtui)
SL_NAME="$(hostname -s)"Указать звуковую карту для вывода звука
SL_SOUNDCARD="default:CARD=audiocodec"По желанию указать IP-адрес LMS (если не указывать будет искать автоматом в локальной сети)
SB_SERVER_IP="192.168.x.y"Запускаем squeezelite
systemctl start squeezelite.serviceОткрываем управление LMS, видим появившийся плеер, запускаем воспроизведение - из колонок играет музыка.
К варианту с микшированием (чтобы одновременно могли играть звук более одной программы) попробую вернутся чуть позже - не до конца правильно пока понимаю что надо прописывать в asound.conf
-
а как по памяти - 512 хватает ? `
С головой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 карточку не мусолить
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 -
По совместному использованию аудиовыхода двумя программами.
Получилось примерно следующее.
Ставим дополнительный пакет
> apt-get install alsa-oss
Редактируем /etc/asound.conf до следующего состояния (nano /etc/asound.conf):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
speaker-test -D default -c2указав ему использовать устройство воспроизведения default и тестировать 2 канала.
Параллельно с музыкой слышим шум теста по очереди из правой и левой колонки.
P.S. А linphone сволочь не заработал нормально… Как-то по своему видит имеющиеся в системе звуковые устройства...
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, а то в последней итерации и звонок перестал проходить - вначале короткий звук и тишина.
-
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
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" задаем "по вкусу")
[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 по аналогии
[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 )
systemctl enable squeezelite_left.service systemctl enable squeezelite_right.serviceЕсли не хотите перезагружаться, то запустить сервисы
systemctl start squeezelite_left.service systemctl start squeezelite_right.serviceСкоро обновлю шапку…
PS: Аптайм превысил 45 дней... глюков не замечено.
-
Привет! Спасибо. Очень интересная тема. Поделюсь своим опытом. Я использую OrangePi Zero. LMS и плеер стоит на OPiZero 512M, а просто плеера на OPiZero 256. Дешево и сердито. Есть LAN, WiFi, Audio Out, USB, I2S. Есть комплекты с корпусом(если нужно аудиовыход без усилителя). Софт полностью соответствует, как у вас. Только прошивка Arambian для OPiZero. Ресурсов хватает для комфортной работы LMS. Слушаю только Flac (до 192к). С обычным СД форматом (44100) стримил 5 потоков без проблем. Для плееров вообще хватает с головой(и WiFi в наличии).
-
Может кто подскажет???? Как команду выключения плеера Squeezelit вывести на какую нибудь ногу GPIO??? Пробовал через опцию -G , но оно пишет что мой плеер не на Raspberry и запускаться не хочет. Хочется звук брать с AUX и через GPIO отключать усилитель. Спасибо.
-
Может кто подскажет???? Как команду выключения плеера Squeezelit вывести на какую нибудь ногу GPIO??? Пробовал через опцию -G , но оно пишет что мой плеер не на Raspberry и запускаться не хочет. Хочется звук брать с AUX и через GPIO отключать усилитель. Спасибо. `
Пробуй через комманду -S <power script="">Absolute path to script to launch on power commands from LMSЕсли не получится, то только через GPIO и внешний скрипт, который через Telnet API проверяет состояние плеера и дергает нужной ногой.</power>
-
MSapogov
Прочитал тему и заинтересовался так как у самого нужно что то колхозить, правильно ли я понимаю что можно купить несколько переходников USB-DAC, подключить их в свободные гнёзда, после чего прописать а уже к ним подключать усилители + акустика в разных комнатах?
-
@RIK:MSapogov
Прочитал тему и заинтересовался так как у самого нужно что то колхозить, правильно ли я понимаю что можно купить несколько переходников USB-DAC, подключить их в свободные гнёзда, после чего прописать а уже к ним подключать усилители + акустика в разных комнатах? `
Да, Вы правильно поняли.В линуксе, Ваши USB-DAC, будут как отдельные устройства, которые вы прописываете в конфиге каждой копии Squeezelite.
-
@RIK:MSapogov
Вы уже пользуетесь 2 года своим проектом, как вы считаете на счёт железа, хотели бы что то изменить в в вашей конфигурации? `
Я тут с марта месяца как-то забросил все… некогда было. К строительству бани готовился. А потом и сама стройка... А тут решил проверить как работает....Включил музыку, а она играет. Ничего не зависло... Ничего не поломалось. Uptime больше 150 дней.
Думаю..., что ничего менять не буду.
Зимой буду думать как озвучивать дачу. Хотя и так птички там поют. О как классно услышать фразу: "Прошу уйти с газона! Включаю полив." :-)
-
подскажите пробую запускать скриптом через 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
-
подскажите пробую запускать скриптом через systemctl плееры и получаю ошибки: `
А если выполнить -/usr/bin/squeezelite -o default:CARD=sunxicodec -s localhost -n "Bathroom" -z
То работает, или есть ошибки ?
-
Да, так работает. Проблема именно в systemctl start запуске. Запускать пробовал как от рута так и от другого пользователя.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden