LINUX.ORG.RU

Заставить работать ALSA с E-MU Tracker Pre USB

 ,


0

1

Рабочая неделя закончилась, и я продолжаю попытки услышать звук в Linux. Неделю назад я и коллективный разум ЛОРа остановились на том, что звук вообще и ALSA в частности работают (это мы выяснили, указав в mplayer устройство вывода -ao alsa:device=default=USB). Просто в настоящий момент не сконфигурировано устройство «default».

Сегодня я добрался до компа и дал команду:

# cat /proc/asound/cards
 1 [USB            ]: USB-Audio - E-MU Tracker Pre | USB
                      E-MU Systems, Inc. E-MU Tracker Pre | USB at usb-0000:00:1d.0-2, full speed
Таким образом я узнал символьное имя карточки - «USB».

(Обращаю внимание, что номер устройства 1. А устройства с номером 0, как это традиционно бывает, нет. Возможно, это связано с тем, что в системе есть еще две звуковых карточки - SBLive 5.1 и NVinia GeForce HDMI. Они отключены путем прописывания их модулей в файл /etc/modprobe.d/alsa-base-blacklist.conf)

Далее я создал файл /etc/asound.conf, и наполнил его следующим содержанием:
pcm.!default {
  type hw
  card USB
}

ctl.!default {
  type hw
  card USB
}

После чего перезагрузился. И звук появился... Но какой! Все хрипит и шипит, и кажется, что музыка играет на пару тонов ниже чем положено.

Еще замечено: если в PulseAudio движок регулятора громкости не мог регулировать громкость, но хотя бы отключал звук, когда движок был в самом низу, то сейчас на чистой ALSA движок громкости не только не регулирует громкость, но и не отключает звук в нижнем положении.

Вопрос 1: как сделать чтобы звук был чистым, не трещал, не понижал тон?

Вопрос 2: (только после того,как будет решен первый вопрос): как сделать регулировку громкости в ALSA? У карточки, насколько я понял, цифрового регулятора громкости нет.

Кастую: ZenitharChampion, i-rinat, qbe, dexpl, Ceiling_QB, AP, xndr, Quasar, alegz.

★★★★★

Последнее исправление: Xintrea (всего исправлений: 3)

Ответ на: комментарий от i-rinat

Прописал в /etc/asound.conf, он стал таким:

defaults.ctl.card 1
defaults.pcm.card 1

pcm.!default {
  type hw
  card USB
}

ctl.!default {
  type hw
  card USB
}


И перегрузился. Ничего не поменялось.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Так, походу нащупал.

Есть еще один движок, который по-умолчанию не виден, называется Clock Rate Selector. Он стоял в среднем положении. Когда передвинул в нижнее положение, звук стал нормальным.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

В общем, второй вопрос - регулировка громкости. В PulseAudio был какой-то модуль, в а ALSA есть подобное?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Предполагалось, что другие директивы, влияющие на default, ты уберёшь.

i-rinat ★★★★★
()
Ответ на: комментарий от Xintrea

Тут не знаю, у меня встроенное аудио. Мне всегда казалось, что там нет аппаратной регулировки громкости, только программная. Но это всё тем не менее просто работало.

i-rinat ★★★★★
()
Ответ на: комментарий от Xintrea

/etc/asound.conf

defaults.pcm.!card "USB"
defaults.ctl.!card "USB"

pcm.softvol {
    type        softvol
    slave {
        pcm     cards.pcm.default
    }
    control {
        name    "Main"
        card    "USB"
    }
}

pcm.!default {
    type        plug
    slave.pcm	"softvol"
}
Всё остальное содержимое файла закомментируй.

Далее надо заюзать этот новый pcm, чтобы он появился в alsamixer и amixer controls

$ speaker-test -D softvol -t wav
Ну или просто перезапустить программы (reboot тут не нужен), которые используют alsa и воспроизвести что-нибудь. После этих действий в alsamixer появится Main, он должен регулировать звук.

xndr
()

Кастую: dexpl

Лучшее, что могу посоветовать — верни все как было до сноса pulseaudio (в том числе и сам pulseaudio).

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

Так не интересно, чтобы кукарекать на лоре как он не работает его нужно удалить, иначе он, собака, просто работает.

anonymous
()
Ответ на: комментарий от xndr

Движок появился, но только после перезагрузки.

1. С чего ты взял, что команда теста звука speaker-test заюзает новый pcm без перезагрузки?

2. Регулятор громкости сдвоенный. Громкость регулирует правый движок. Левый движок ни на что не влияет. Можно ли как-нибудь сделать это регулятор как mono, или чтоб левый движок был «привязан» к правому?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

С чего ты взял, что команда теста звука speaker-test заюзает новый pcm без перезагрузки?

С того что так написано на wiki, и с того, что у меня так работает, и я не говорил что именно spekaer-test делает это. Это делает любая другая программа. Ну или ты хочешь сказать, что после каждого изменения конфигурации alsa нужно делать reboot? Это бред, достаточно просто перезапустить программу. Перехват конфига происходит при старте программы, а не при старте ядра.

Регулятор громкости сдвоенный. Громкость регулирует правый движок. Левый движок ни на что не влияет. Можно ли как-нибудь сделать это регулятор как mono, или чтоб левый движок был «привязан» к правому?

defaults.pcm.!card "USB"
defaults.ctl.!card "USB"

pcm.softvol {
    type        softvol
    slave {
        pcm     cards.pcm.default
    }
    control {
        name    "Main"
        card    "USB"
    }
}

pcm.!default {
    type        plug
    slave {
        pcm     "softvol"
        channels 2
    }
}

Вот так попробуй, изменил pcm.!default, добавил channels 2.

xndr
()
Ответ на: комментарий от Xintrea

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

anonymous
()
Ответ на: комментарий от xndr

Ну или ты хочешь сказать, что после каждого изменения конфигурации alsa нужно делать reboot?

Да, так прочитал в русскоязычной вики: «если вы редактировали ~/.asoundrc, то достаточно перезапустить приложения (или перелогиниться), в случае asound.conf потребуется перезагрузка»

https://wiki.debian.org/ru/ALSA/FAQ

Там правда не объясняется, каково назначение asound.conf и ~/.asoundrc, каков их синтаксис, какие директивы что значат, а просто приводятся куски кода практически без объяснений. Даже не сказано, что нужно прописывать в asound.conf и ~/.asoundrc, и вообще равнозначны ли настройки в этих файлах.

Если бы ~/.asoundrc назывался ~/.asound.conf, я бы еще понял, что это пользовательский файл, а /etc/asound.conf - общесистемный, и синтаксис у них одинаковый, и допустимые опции тоже одинаковы. Но об этом не написано. Поэтому остаюсь в неведении.


Это бред, достаточно просто перезапустить программу. Перехват конфига происходит при старте программы, а не при старте ядра.

В любом случае, у меня настройки в /etc/asound.conf применились только после перезагрузки.

Xintrea ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.