Как поменять стереоканалы в Ubuntu?

29

В настоящее время я использую Ubuntu 9.04. Я хотел поменять стереоканалы, но не смог найти эту опцию в настройках громкости.

Есть ли способ сделать это, не касаясь файла конфигурации? (Я не могу войти в систему как root на этой машине)

Орон
источник
1
Поменять местами колонки?
Гравитация
4
Я должен обменять свои динамики. Вот почему я хотел переназначить стереоканалы: D
Auron

Ответы:

32

Способ PulseAudio (протестирован на Ubuntu 10.04, должен работать на 9.04):

Копировать /etc/pulse/default.paв ~/.pulse/default.pa, и добавьте следующие две строки в конце:

load-module module-remap-sink sink_name=reverse-stereo master=0 channels=2 master_channel_map=front-right,front-left channel_map=front-left,front-right
set-default-sink reverse-stereo

Перезапустите PulseAudio, запустив его pactl exitв командной строке.

Оставьте вторую строку, если вы не хотите использовать реверсивный стерео по умолчанию. Вы можете переключаться между инвертированным и нормальным стерео выходом на вкладке «Выход» в «Настройки звука». Если у вас есть root и вы хотите, чтобы эта система /etc/pulse/default.paработала в масштабе всей системы, вы можете просто добавить строки вместо того, чтобы настраивать пользовательскую конфигурацию.

Эта конфигурация делает несколько основных предположений: карта, для которой вы меняете каналы, является картой 0; что вам нужно иметь дело только с 2 каналами; и что эти каналы называются front-leftи front-right.

Если у вас есть видеокарта с выходом HDMI, скорее всего, аналоговым выходом вашей материнской платы будет карта 1, а не 0; так мастер = 1. (Передняя панель наушников скорее всего на этом аналоговом канале)

Для получения дополнительной информации см. Документацию PulseAudio для module-remap-sink .

Брайан Грубер
источник
Первоначально, казалось, добился цели 14.04. Но после перезагрузки pulseaudio daemon не запустился. пришлось удалить звонок, чтобы исправить это.
Амир Увал
Работает через pacmdтоже (т.е. не нужно копировать config и перезапустить pulseaudio).
ulidtko
1
Если у вас есть больше приемников, вы можете использовать их pacmd list-sinksдля отображения списка существующих приемников и их индексов. чем заменить master=0наmaster=IndexOfTheSinkToSwap
user1182474
1
Это прекрасно работает и под Ubuntu 16.04. Сохраняется при перезагрузке, как и ожидалось.
Старейшина Компьютерщик
Отличный ответ! Единственная проблема, с которой я сталкиваюсь, заключается в том, что объем переназначенного приемника основан на базовом приемнике. Это означает, что если я переключусь на базовый приемник и увеличу громкость до 50%, то переназначенный приемник теперь сможет подняться только до 50% объема (это 100% будет «реальным» 50%). Любой способ обойти это?
srfrnk
10

По сути, тот же подход, что и у Брайана, но не затрагивая файл конфигурации:

pactl load-module module-remap-sink \
    sink_name=reverse-stereo \
    master=0 \
    channels=2 \
    master_channel_map=front-right,front-left \
    channel_map=front-left,front-right

Это создаст на лету дополнительный приемник PA с обращенными каналами. (Он исчезнет после перезапуска pulseaudio). Чтобы переключиться на это:

pactl set-default-sink reverse-stereo

- ИЛИ, вы также можете переключиться вручную через панель управления звуком:

окно регулировки громкости импульса

Конечно, можно переключаться вперед и назад, например, во время экспериментов.


Этот способ лучше, если вы хотите попробовать что-то быстро, а не сохранить настройки навсегда.

ulidtko
источник
pactl set-default-sink reverse-stereoне удалось No valid command specified.на Ubuntu 12.04.
Аурон
1
@Auron отлично работает 14.04.
ulidtko
Хм, мне бы пришлось это проверить.
Аурон,
1
@ Auron, смотрите обновление; Вы также можете переключаться вручную через звуковую панель.
ulidtko
6

Если вы используете ALSA, добавьте это в свой ~/.asoundrcфайл:

pcm.swapped {
    type         route
    slave.pcm    "cards.pcm.default"
    ttable.0.1   1
    ttable.1.0   1
}

pcm.default      pcm.swapped

Через ALSA FAQ

Сатьяджит Бхат
источник
+1 бить меня за секунды ... обратите внимание, Ubuntu 9.04 устанавливает PulseAudio по умолчанию, который, вероятно, имеет свой собственный способ сделать это.
шарлатан-кихот
@ ~ шарлатан, разве PulseAudio не направляет звуки в ALSA?
Сатьяджит Бхат
да, просто сказать, что PA, вероятно, может сделать обмен самостоятельно, по принципу «Есть больше, чем один способ сделать это». :)
шарлатан-кихот
@ ~ Кря, Ах, Гоча;)
Сатьяджит Бхат