Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. аппаратные средства
    4. Железо
    5. Аудиоплеер для мультирума

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      SolarW last edited by

      @VictorS:

      А в какой корпус можно засунуть апельсину и DAC? В оригинальный полупрозрачный войдет?

      Хотелось бы иметь приличный вид у такой сборки. `
      Испытываю некоторые сомнения что поместится…

      ! ![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201702 ... d14020.jpg">https://uploads.tapatalk-cdn.com/20170202/b6e620edf9bf551ff899efd349d14020.jpg</link_text>" />

      1 Reply Last reply Reply Quote 0
      • S
        SolarW last edited by

        @MSapogov:

        "Элементарно Ватсон!" `
        Ух ты! В картинках - это как раз для нас, чайников 🙂
        @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 разъема получается коллектор транзистора припаян и туда же через резистор приходит напруга?

        1 Reply Last reply Reply Quote 0
        • M
          MSapogov last edited by

          SolarW

          Резисторы на 6.8к и транзисторы просто осталось много от одного проекта, вот их и поставил.

          Дорожка перерезана скальпелем.

          По остальным вопросам - да.

          1 Reply Last reply Reply Quote 0
          • S
            SolarW last edited by

            Адаптированная инструкция автора темы под 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 #0
            

            card 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

            1 Reply Last reply Reply Quote 0
            • V
              VictorS last edited by

              @SolarW:

              Адаптированная инструкция автора темы под Orange Pi Zero с использованием штатного аудио-выхода.

              …. `

              а как по памяти - 512 хватает ?

              1 Reply Last reply Reply Quote 0
              • S
                SolarW last edited by

                @VictorS:

                а как по памяти - 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
                
                1 Reply Last reply Reply Quote 0
                • S
                  SolarW last edited by

                  По совместному использованию аудиовыхода двумя программами.

                  Получилось примерно следующее.

                  Ставим дополнительный пакет
                  > 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, а то в последней итерации и звонок перестал проходить - вначале короткий звук и тишина.

                  1 Reply Last reply Reply Quote 0
                  • M
                    MSapogov last edited by

                    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 дней... глюков не замечено.

                    1 Reply Last reply Reply Quote 0
                    • C
                      chief last edited by

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

                      1 Reply Last reply Reply Quote 0
                      • A
                        Andrii last edited by

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

                        1 Reply Last reply Reply Quote 0
                        • A
                          Andrii last edited by

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

                          1 Reply Last reply Reply Quote 0
                          • M
                            MSapogov last edited by

                            @Andrii:

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

                            Если не получится, то только через GPIO и внешний скрипт, который через Telnet API проверяет состояние плеера и дергает нужной ногой.</power>

                            1 Reply Last reply Reply Quote 0
                            • R
                              RIK last edited by

                              MSapogov

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

                              1 Reply Last reply Reply Quote 0
                              • M
                                MSapogov last edited by

                                @RIK:

                                MSapogov

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

                                В линуксе, Ваши USB-DAC, будут как отдельные устройства, которые вы прописываете в конфиге каждой копии Squeezelite.

                                1 Reply Last reply Reply Quote 0
                                • R
                                  RIK last edited by

                                  MSapogov

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

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    MSapogov last edited by

                                    @RIK:

                                    MSapogov

                                    Вы уже пользуетесь 2 года своим проектом, как вы считаете на счёт железа, хотели бы что то изменить в в вашей конфигурации? `
                                    Я тут с марта месяца как-то забросил все… некогда было. К строительству бани готовился. А потом и сама стройка... А тут решил проверить как работает....

                                    Включил музыку, а она играет. Ничего не зависло... Ничего не поломалось. Uptime больше 150 дней.

                                    Думаю..., что ничего менять не буду.

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

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      pistoletov last edited by

                                      подскажите пробую запускать скриптом через 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

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        MSapogov last edited by

                                        @pistoletov:

                                        подскажите пробую запускать скриптом через systemctl плееры и получаю ошибки: `
                                        А если выполнить -

                                        /usr/bin/squeezelite -o default:CARD=sunxicodec -s localhost -n "Bathroom" -z

                                        То работает, или есть ошибки ?

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          pistoletov last edited by

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

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            MSapogov last edited by

                                            @pistoletov:

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

                                            ExecStart= /usr/bin/squeezelite -D -v -o default:CARD=sunxicodec -n Bathroom -m 00:00:00:00:00:05

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

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            509
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            40
                                            19403
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo