Звук в программах (Регулируется PCM)

Разные проблемы звука, видео, обсуждение разных устройств и т.д.

Модератор: Модераторы разделов

MaGIc laNTern
Сообщения: 537
Статус: 人です
ОС: Gentoo

Звук в программах

Сообщение MaGIc laNTern »

Пока Я на протяжении нескольких лет работал в ОС Microsoft Windows, очень привык к такой удобной мазе что почти каждая программа (Winamp, Light Alloy и прочие) регулирует только свой собственный звук.
То есть если у меня одновременно играет музыка в Winamp'е и фильм в Light Alloy, то если я меняю громкость в Winamp встроенным регулятором, то это никак не скажется на громкости фильма.
Причем там опять-же регулируются сразу все каналы, а когда Я в ОС Linux (звуковой драйвер ALSA), например в XMMS регулирую встроенным регулятором уровень звука - регулируется только PCM-канал, то есть фронт, а у меня 5.1, то есть надо что-бы регулировались сразу и Wave Surround, Wave Center и Wave LFE, причем как Я уже писал, регулируется этот самый PCM-канал в общем микшере, то есть громкость PCM-канала меняется и во всех остольных программах.
Опять же очень не удобно то что что-бы моменять громкость приходится лезть в микшер (Gnome'овский грузится секунды три вдобавок, а в консоль в alsamixer лезть лениво).
А канал Master в микшере опять-же влияет лишь на PCM, то есть на фронт, а не на все выходные каналы.
В общем подскажите плиз как-бы мне решить эти проблемы, может если это в ALSA нельзя исправить - можно в другом драйвере...
Звуковая карточка - Sound Blaster Live! (на чипсете snd-emu10k1).
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Звук в программах

Сообщение sash-kan »

такая же карточка. такие же грабли. где-то на форуме обсуждалось, ссылки были на доки с сайта алсы. все руки не доходят поковырять.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
zenwolf
Бывший модератор
Сообщения: 3139
Статус: Страшный и злой
ОС: Slackware..Salix..x86_64

Re: Звук в программах

Сообщение zenwolf »

во первых странно что меняется сразу во всех прогах звук ,не под рутом случайно сидим ?

во вторых как бы лениво небыло а в консоль слазить надо
alsamixer
alsactl
alsactl store

в третьих внимательно посмотри настройки в xmms ,там можно разные варианты регулировки добиться,например
в настройках драйвера и настройках микшера отключить вывод через PCM
Quae videmus quo dependet vultus. (лат) - То, что мы видим, зависит от того, куда мы смотрим.
Спасибо сказали:
MaGIc laNTern
Сообщения: 537
Статус: 人です
ОС: Gentoo

Re: Звук в программах

Сообщение MaGIc laNTern »

Ага, под root'ом, такой уж я ленивый дибилоид пока-что. =)
Все хочу на юзера пересесть, но для этого много чего выучить надо, а иначе работать под юзером просто не реально.
Собсно вот:
[root@pivo ~]# alsactl
alsactl: Specify command...
[root@pivo ~]# alsactl store
[root@pivo ~]#
alsamixer же просто выводит их родной микшер, который Я видел и раньше.
Там всё тоже самое, что и в Gnome'овском микшере.
Спасибо сказали:
Аватара пользователя
Warderer
Модератор
Сообщения: 1056
Статус: киберпИнгвин на гусеничном ходу
ОС: Debian unstable

Re: Звук в программах

Сообщение Warderer »

Для Sash Kan:
А я поковырял по ссылкам. Добился практически всего, кроме установки частоты среза для сабвуфера. Какого-то пакета не хватило, забил пока, но продолжу. Так то, что master регулирует фронт - это достаточно известный баг, и как решение предлагается простейший скрипт принимающий "+", "-" и цифру от 1 до 100, и выставляющий эту величину через alsamixer на три канала. Повесить его на горячие клавиши - нет проблем.
Читаю вслух с выражением маны - $50/ч + стоимость звонка. Настраиваю сервисы за Вас - $100/ч + стоимость выезда и проживания.
И восемь строк матом...(бесплатно)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Звук в программах

Сообщение sash-kan »

Для Strangerrr:
чужой пример вдохновляет.
вот как-нибудь на выходных (sblive - на дом. компе) соберусь с мыслями... (:
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
MaGIc laNTern
Сообщения: 537
Статус: 人です
ОС: Gentoo

Re: Звук в программах

Сообщение MaGIc laNTern »

Угу, вариант со скриптом - хороший вариант.
У меня как раз мультимедийные кнопочки на клаве, в т. ч. громкость + и -.
У меня щас + через sven забиндин на поднятие громкости и - на опущение.
Опять-же эти манипуляции sven проводит с master'ом, но Я могу без проблем перебиндить эти клавиши на вызов скрипта с параметрами.
А у тебя случайно нет примера такого скрипта?
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Звук в программах

Сообщение elide »

Код: Выделить всё

#!/bin/sh
master=Master
first=Front
second=Surround
config=~/.vol
###############################################################################

function vol_get_opt(){
    sed -rn "/$1:/{s/$1: *(.*)$/\1/;p}" "$config"
}

function vol_set_opt(){
    sed -i "/$1:/d" "$config" >&/dev/null
    echo "$1: $2" >> "$config"
}

function vol_get(){
    amixer sget "$1" | grep -o \\w*% | sed -n 's/%//;1p'
}

function vol_set(){
    amixer sset "$1" "$2" >&/dev/null
}

ch=`vol_get_opt channel`
volume=`vol_get "$master"`
newch=''
case `basename $0` in
    'vol_switch')
  case "$ch" in
      "$first")
    newch="$second"
  ;;
      "$second")
    newch="$first"
  ;;
      *)
    newch="$first"
  ;;
  esac
  vol_set "$ch" 0
  vol_set "$newch" 100
  vol_set_opt channel "$newch"
;;
    'mute')
  tmp=`vol_get_opt muted`
  [ "$tmp" == 'yes' ] && {
      vol_set $master `vol_get_opt volume`
      vol_set_opt muted no
  } || {
      vol_set_opt volume `vol_get "$master"`
      vol_set $master 0
      vol_set_opt muted yes
  }

;;
    'vol')
  p=${1:-'%'}
  case "${p:0:1}" in
    '%')
      echo "$volume"
      exit 0
    ;;
    '+')
      op='+'
      val=`expr ${p:1} + 0` || val='5'
      vol_set_opt muted no
    ;;
    '-')
      op='-'
      val=`expr ${p:1} + 0` || val='5'
    ;;
    *)
      val=`expr $p + 0 2>/dev/null`
      [ "G"$val == "G" ] && {
        echo "usage: vol [+-]<num>"
        exit 1
      }
      volume=''
      op=''
    ;;
  esac
  new=`expr $volume $op $val`
  [ $new -le 0 ] && new=0
  vol_set $master $new
;;
esac

вот мой собственный. он немного не совсем тот, что нужен - у меня нет глюка с мастером, да и 5.1 у меня нету.
зато я подключаю на задний канал наушники и потом по vol_switch переключаюсь. mute - соответственно временно отключает звук, а vol меняет громкость. и, да, мультимедийные клавы рулят (:
слава роботам!
Спасибо сказали:
MaGIc laNTern
Сообщения: 537
Статус: 人です
ОС: Gentoo

Re: Звук в программах

Сообщение MaGIc laNTern »

Так.......
Что интересно, есть такой видео-прогигрыватель - Totem.
Так в нём с громкостью никкаких подобных глюков нет!
Регулируется именно ЕГО ВНУТРЯННЯЯ громкость, а не общая!
Это в нём очень понравилось, всё как во всех виндовых прогах нормальных (Light Alloy, Winamp, etc).
Пускаю Totem под рутом.

И ещё.......
В опять-же виндовых (ну извините что всё винда, да винда, просто Я с неё уже почти окончательно слез, и хочется чтоб всё как у людей без неё было) драйверах kX Project есть такая фича - меняются передние и задние динамики местами.
И Я поменял их местами....... То есть просто в звуковую карту задние каналы вставил в слот для передних, а передние вставил в слот для задних.
А в Linux'е непонятно, как ALSA сказать, чтоб она то что посылается на задние слала на передние и то что посылается на передние слала на задние......
Просто от этого заметно улучшается качество звука.
Спасибо сказали:
Аватара пользователя
estarchak
Сообщения: 1368
Статус: Оракловод

Re: Звук в программах

Сообщение estarchak »

В amaroK есть такая же опция (это звуковой проигрыватель).

А вообще -- разве не говорила сестрица Алёнушка братцу Иванушке:"Не сиди в иксах под рутом, козлёночком станешь".
Дети любят тигра больше, чем Пржевальский лошадей. © Тимур Шаов.

Топик не читал, но внимательно просмотрел.
Спасибо сказали: