Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: ALSA производит ресемлинг до 48000  (Прочитано 1572 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tevssar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 54
    • Просмотр профиля
ALSA производит ресемлинг до 48000
« : 04 Сентября 2020, 04:12:13 »
ALSA производит ресемлинг до 48000 независимо от настроек в "~/.asoundrc" и "/etc/asound.conf", устройства(вывод Nvidia и USB blasterx g5) и файла источника.

Будь то вывод 192000, 44100 файлов из deadbeef прямо в ALSA, Будь то вывод PulseAudio s24le 192000

Будь то разные настройки с просторов интернета, некоторые из них:
Код: (javascript) [Выделить]
pcm.!default {
 type plug
 slave.pcm hw
}
Код: (javascript) [Выделить]
pcm.!default {
    type hw
    card G5
}

ctl.!default {
    type hw
    card G5
}
Код: (javascript) [Выделить]
pcm.!default {
        type plug
        slave.pcm "dmixer"
}

ctl.!default {
        type hw
        card G5
}

pcm.dmixer {
        type dmix
        ipc_key 48000
        slave {
                pcm "hw:2,0"
                channels 2
                rate 192000
                format S24_3LE
        }
}
Код: (javascript) [Выделить]
defaults.pcm.dmix.!rate 192000 //в том числе смена значения в /usr/share/alsa/alsa.conf

ничего не дает никакого эффекта
cat /proc/asound/G5/pcm0p/sub0/hw_params
Код: (javascript) [Выделить]
access: RW_INTERLEAVED
format: S24_3LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1024
buffer_size: 8192

cat /proc/asound/NVidia/pcm7p/sub0/hw_params

Код: (javascript) [Выделить]
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 4096
buffer_size: 8192

Оффлайн altwazar

  • Активист
  • *
  • Сообщений: 430
    • Просмотр профиля
Re: ALSA производит ресемлинг до 48000
« Ответ #1 : 04 Сентября 2020, 07:06:40 »
Ух. Для начала надо понять, что куда и как выводит. С настройками это будет проблематично.

По умолчанию всё выводит в алса, и простой сменой настроек в ~/ и /etc это не изменить. Причина - в debian системах это намертво прописано в "/usr/share/alsa/pulse-alsa.conf". Файл этот можно убрать, но спешить с настройками алсы не стоит.
Игнорировать эту настройку могут приложения типа deadbeef, где можно явно указать вывод на железку. Если звук выводится в железку на прямую, то и сэмплрейт выбирается соответствующий.

Если отталкиваться от системы с настройками по умолчанию, то проверить вывод звука с нужным симпл рейтом можно так:

1. Пока ни одно приложение не выводит звук hw_params должен возвращать closed. Если он возвращает параметры, значит что-то использует этот саб-поток.
2. Если он свободен, то можно открыть deadbeef. В настройках выбрать нужный выход с "Direct hardware device without any conversions". На всякий случай перезапустить программу и начать проигрывание. В hw_params битность и частота должны соответствовать проигрываемому файлу (если железка их поддерживает). Тут же можно включить "Переопределить частоту дискретизации" и повыставлять разные целевые частоты, hw_params должен в этом случае подхватывать их налету.

Если всё работает, то уже после этого можно думать о смене настроек алсы и пульсы. Так как в настройках алсы черт ногу сломит, то лучше раньше времени их не ковырять.
В ubuntu 20.04 переключение частоты проверял на встройке и e-mu 0204.

Оффлайн vladimirzhuravlev

  • Старожил
  • *
  • Сообщений: 1794
    • Просмотр профиля
Re: ALSA производит ресемлинг до 48000
« Ответ #2 : 04 Сентября 2020, 13:49:59 »
Никогда не лезу в настройки как в первом сообщении. Стерео 24/192000 deadbeef выводит как нужно на цап или на ресивер. На этих железках частота индицируется, работает автомат частоты. Настраиваю только альса миксер и пав контроль. Разные дистрибутивы Ubuntu, дебиан, мх-19.... проблем нигде не видел, самое главное в терминал попусту не соватся.

Оффлайн tevssar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 54
    • Просмотр профиля
Re: ALSA производит ресемлинг до 48000
« Ответ #3 : 04 Сентября 2020, 16:09:06 »
1. Пока ни одно приложение не выводит звук hw_params должен возвращать closed. Если он возвращает параметры, значит что-то использует этот саб-поток.
2. Если он свободен, то можно открыть deadbeef. В настройках выбрать нужный выход с "Direct hardware device without any conversions". На всякий случай перезапустить программу и начать проигрывание. В hw_params битность и частота должны соответствовать проигрываемому файлу (если железка их поддерживает). Тут же можно включить "Переопределить частоту дискретизации" и повыставлять разные целевые частоты, hw_params должен в этом случае подхватывать их налету.

Да, hw_params возвращает closed, если карта ничего не воспроизводит.


Blasterx g5 не зависимо от файла выводится 24бит(S24_3LE)/48кГц, если в настройках DSP(не уверен за что отвечает) удалить Resampler, 24бит/192кГц файл воспроизводится сильно искаженным. Карта должна поддерживать 24бит/192кГц.

Nvidia не смогла вывести в 96000, максимальные для нее, но смогла в 44100 Все с S32_LE. Через пульс смогла оставить S16_LE у трека.

Сейчас еще проверил встройку. Она таки смогла вывести 24бит/192кГц как S32_LE/192кГц.


Видимо ALSA просто совсем не поддерживает данную USB карту, хотя на форумах пишут об обратном.
« Последнее редактирование: 04 Сентября 2020, 16:13:46 от tevssar »

Оффлайн altwazar

  • Активист
  • *
  • Сообщений: 430
    • Просмотр профиля
Re: ALSA производит ресемлинг до 48000
« Ответ #4 : 04 Сентября 2020, 18:43:13 »
Карта должна поддерживать 24бит/192кГц.
Угу, возможно под линуксом не все возможности Blasterx g5 поддерживаются. У меня печальный опыт использования креативовских карточке под линуксом. Только e-mu 0404 и 0204 без заморочек работают (еще бы под виндой себя так вели).

Оффлайн tevssar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 54
    • Просмотр профиля
Re: ALSA производит ресемлинг до 48000
« Ответ #5 : 05 Сентября 2020, 00:15:39 »
Не совсем решение, но, если карту физически отключить и включить на уже запущенной системе, ALSA внезапно начинает видеть 44100, 48000, 88200 и 96000, а не только 48000. 192000 все еще не видит, но уже хотя-бы не совсем мертва карта.
« Последнее редактирование: 05 Сентября 2020, 00:22:32 от tevssar »

 

Страница сгенерирована за 0.031 секунд. Запросов: 25.