Если мы работаем в bash, нам не нужно использовать индексы
#!/bin/bash
read N
read -a A
for elem in "${A[@]::N}"; do
((ar_sum+=$elem))
done
echo $ar_sum
for-loop можно заменить на
expr $(printf '%b + ' "${A[@]::N}"\\c)
У вас есть только два аналого-цифровых преобразователя (Узлы аудиовхода ), называемые ALSA «ALC887 -VD Analog» и «ALC887 -VD Alt Analog». Таким образом, лучшее, чего вы можете добиться с точки зрения программного обеспечения, — это два источника, где вам придется вручную переключать порты для обоих (, как вы делаете сейчас для одного источника ). Это не так просто настроить, вам нужно возиться с профилями и путями в /usr/share/pulseaudio/alsa-mixer/profile-sets/
, а также вручную выгружать и загружать модули Pulseaudio. Я поиграл с ним в своей системе, и у меня до сих пор нет удовлетворительной конфигурации.
Однако, если вашей целью является «Я хочу подключить аппаратные аудиовходы к аппаратным аудиовыходам (наушники )» вместо «Мне нужно несколько источников Pulseaudio, чтобы я мог закольцовывать в Pulseaudio любые приемники», вы можно просто использовать аппаратные микшеры (это, вероятно, то, что вы делали в Windows 7 и xfce4 -микшер ).
Поэтому используйте alsamixer
или amixer
или аналогичную программу для управления настройками аппаратного замыкания на себя, и она должна работать так же, как и раньше.
Кажется, я нашел решение вашего вопроса здесь . Идея заключается в следующем:
Получить список доступных звуковых карт и входов ALSA:
$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: Generic [HD-Audio Generic], device 0: ALC887-VD Analog [ALC887-VD Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
и обратите внимание на номера карт и устройств (в моем примере выше естьcard 1
и два устройства ввода:device 0
иdevice 2
).
Если у вас нет файла конфигурации PulseAudio для -пользователя, сделайте копию:
cp /etc/pulse/default.pa ~/.config/pulse/default.pa
и откройте свою копию с помощью простого текстового редактора. Найдите раздел, связанный с настройкой статических устройств, и добавьте строки для ваших устройств ALSA, например:
### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink
load-module module-alsa-sink device=hw:1,0 name="ALSAOutput"
load-module module-alsa-source device=hw:1,0 name="ALSASource1" source_properties=device.description="ALSASource1"
load-module module-alsa-source device=hw:1,2 name="ALSASource2" source_properties=device.description="ALSASource2"
### Automatically load driver modules depending on the hardware available
#.ifexists module-udev-detect.so
#load-module module-udev-detect
#.else
### Use the static hardware detection module (for systems that lack udev support)
#load-module module-detect
#.endif
В этих строках вы должны отредактировать параметр device=hw:1,0
в соответствии с вашей конфигурацией. Здесь первая цифра — это номер карты , а вторая — номер устройства , который вы должны запомнить из предыдущего шага.
Обратите внимание, что вы также должны закомментировать следующий раздел об автоматической загрузке драйвера с помощью udev.
Перезапустите PulseAudio для вашего пользователя:
$ systemctl --user restart pulseaudio
Как только вы это сделаете, в pavucontrol
вы увидите одно устройство вывода и два независимых устройства ввода:
Обратите внимание, что устройства ввода в pavucontrol
имеют имена, которые мы присвоили им в нашем файле конфигурации выше (параметраsource_properties=device.description="ALSASource1"
). Это удобный способ присвоить устройствам отличительные имена.
alsamixer
в вашей консоли, выбрать звуковую карту, нажав F6, затем нажать F4, чтобы переключиться на вкладку «Захват» и назначить необходимые входы, как это:В моем примере я выбрал Line in
в качестве первого входа и Front Mic
в качестве второго входа.
Также следует убедиться, что эти два устройства захвата включены. Чтобы включить их, просто переключитесь на элементы управления Capture
и Capture 1
с помощью клавиш со стрелками влево/вправо и нажмите пробел. Вы увидите красное слово 'CAPTURE ', когда устройство ВКЛЮЧЕНО .
Итак, на данный момент у вас есть два порта одного устройства, разделенные на два отдельных устройства в PulseAudio, а затем вы можете делать с ними все, что хотите, используя pavucontrol
по-прежнему. Например, чтобы соединить сигнал от этих двух источников, вы можете использовать этот рецепт .
Чтобы отменить все эти изменения, вы можете отредактировать файл ~/.config/pulse/default.pa
, закомментировав новые строки и раскомментировав старые. Или вы можете просто удалить этот файл. Затем снова перезапустите PulseAudio.
П.С. Я считаю, что должен быть более разумный способ сделать это (, например, путем создания пользовательского профиля устройства для PulseAudio ), но я не знаком с этим. Может тут еще кто подскажет.