8 независимых моноканалов на 7.1 звуковой карте, но возможность воспроизведения звука на 8 каналах одновременно

Для личного звукового проекта с малиной PI 3 и звуковой картой USB 7.1, мне нужно использовать звуковую карту как 8 независимых моноканалов, чтобы воспроизводить разные монофонические звуки по каналу специфики. И когда-то 2 или более монозвуковых звуков автомобиль будет воспроизводиться (смешанный) в одно и то же время на данном канале. Я наконец нашел способ сделать это в моем .asoundrc конфигурации .asoundrc :

 pcm_slave.usbsoundcard { pcm "hw:1" rate 44100 channels 8 periods 128 period_time 0 period_size 1024 buffer_time 0 buffer_size 4096 } pcm.ch1 { type dmix slave usbsoundcard ipc_key 1001 bindings [ 0 ] } pcm.ch2 { type dmix slave usbsoundcard ipc_key 1001 bindings [ 1 ] } pcm.ch3 { type dmix slave usbsoundcard ipc_key 1001 bindings [ 6 ] } pcm.ch4 { type dmix slave usbsoundcard ipc_key 1001 bindings [ 7 ] } pcm.ch5 { type dmix slave usbsoundcard ipc_key 1001 bindings [ 2 ] } pcm.ch6 { type dmix slave usbsoundcard ipc_key 1001 bindings [ 3 ] } pcm.ch7 { type dmix slave usbsoundcard ipc_key 1001 bindings [ 4 ] } pcm.ch8 { type dmix slave usbsoundcard ipc_key 1001 bindings [ 5 ] } 

С помощью этого конфигурационного файла я могу играть то, что хочу, на нужном канале, и я могу воспроизводить несколько звуков в одно и то же время на каждом независимом канале, если это необходимо, с такими командами:

 aplay -D plug:ch3 sound1_mono.wav & aplay -D plug:ch3 sound2_mono.wav & # sound 2 mixed with sound 1 on channel 3 aplay -D plug:ch7 sound3_mono.wav & aplay -D plug:ch8 sound4_mono.wav & 

и т.д…

Но я хочу добавить еще одну возможность. Я хочу добавить виртуальный канал с именем «все», который должен маршрутизировать воспроизводимый звук на ВСЕ 8 моноканалах. Конечная цель – настроить систему Asterisk pbx, настроенную как домофон, чтобы использовать этот канал: при вызове Asterisk будет автоответчиком, и я хочу, чтобы голосовое маршрутизированное (смешанное) на всех 8 каналах звуковой карты.

Я наивно пытался:

 pcm.all { type dmix slave usbsoundcard ipc_key 1001 bindings [ 0 1 2 3 4 5 6 7 ] } 

Но это не сработает. Для тестирования я также воспроизвожу монофонический звук на виртуальном канале «все». Если я это сделаю: aplay -D plug: all sound5_mono.wav Звук правильно воспроизводится на всех каналах ch1 … ch8, где не воспроизводится ни один другой wav-файл. Но на канале, где уже воспроизводится звук, невозможно услышать sound5_mono. wav, но у меня есть треск

Как я могу написать свой. файл asoundrc, чтобы он работал? То, что я хочу сделать, – это разновидность аудиозаписей: играть в монохромный файл на каждом канале ch1 …. ch8 в разных комнатах, а когда я звоню малине с помощью SIP-телефона, во всех комнатах воспроизводится голос (смешанный).

  • Звуковое шумоподавление звука микрофона с помощью JACK, ALSA, Audacity?
  • Нет звука с новейшей версией ядра - это ошибка ядра или что-то еще?
  • Может ли кто-нибудь диагностировать это сообщение об ошибке JACK?
  • Как звук обычно работает на компьютере и какие инструменты у меня есть?
  • Измените выход (приемник) с помощью терминала
  • Проблемы с USB-микрофоном
  • Почему на моем Debian 7 нет звука?
  • Доля устройства захвата alsa с alsaloop
  • 2 Solutions collect form web for “8 независимых моноканалов на 7.1 звуковой карте, но возможность воспроизведения звука на 8 каналах одновременно”

    Я не уверен, что вы можете использовать разные определения dmix с тем же ipc_key ; возможно, было бы лучше использовать общее устройство dmix .

    Чтобы иметь возможность воспроизводить файл стека на всех каналах, сначала нужно преобразовать его в моно.

     pcm.dmix8 { type dmix slave { pcm "hw:1" rate 44100 channels 8 period_size 1024 buffer_size 32768 } } pcm.ch1 { type plug slave.pcm dmix8 ttable.0.0 1 } pcm.ch2 { type plug slave.pcm dmix8 ttable.0.1 1 } # and so on with "ttable.0.x 1" pcm.all { type plug slave { pcm { type route slave.pcm dmix8 ttable [ [ 1 1 1 1 1 1 1 1 ] ] } channels 1 } } 

    даже если ваше последнее предложение не работает для виртуального канала «все», это очень помогло мне, и я попробовал что-то, что отлично работает на моем компьютере с той же USB-звуковой картой.

    Вот конфигурационный файл:

     pcm.dmix8 { type dmix ipc_key 1001 slave { pcm "hw:2" rate 44100 channels 8 period_size 1024 buffer_size 32768 } } pcm.ch1 { type plug slave.pcm dmix8 ttable.0.0 1 } pcm.ch2 { type plug slave.pcm dmix8 ttable.0.1 1 } pcm.ch3 { type plug slave.pcm dmix8 ttable.0.6 1 } pcm.ch4 { type plug slave.pcm dmix8 ttable.0.7 1 } pcm.ch5 { type plug slave.pcm dmix8 ttable.0.4 1 } pcm.ch6 { type plug slave.pcm dmix8 ttable.0.5 1 } pcm.ch7 { type plug slave.pcm dmix8 ttable.0.6 1 } pcm.ch8 { type plug slave.pcm dmix8 ttable.0.7 1 } pcm.all { type plug slave.pcm dmix8 ttable.0.0 1 ttable.0.1 1 ttable.0.2 1 ttable.0.3 1 ttable.0.4 1 ttable.0.5 1 ttable.0.6 1 ttable.0.7 1 } 

    С этим конфигурационным файлом все работает так, как ожидалось! Канал «все» используется Asterisk в качестве локального программного телефона, а ch1 … ch8 используются для воспроизведения разных монофонических звуков в 8 разных комнатах. И когда я звоню в Asterisk, он автоматически отвечает, и я слышу голос в 8 HP, смешанный с существующим звуком комнаты 🙂

    Большое спасибо за Вашу помощь !

    Следующим шагом, попробуйте мою доску малины PI 3, но нет причин иметь другое поведение.

    Linux и Unix - лучшая ОС в мире.