Страница 1 из 1

FreeBSD 8.2 качество звука

Добавлено: 2011-10-14 21:54:13
Bayerische
Надо отметить, уши у меня музыкальные, и с переходом на FreeBSD сразу заметил ухудшение качества звука. На слух, что-то связанное с передискретизацией - интерполяцией, в общем, грязно звучит. Сегодня жахнул немного, включил погромче металлистов, и уши-то повяли.
Никак не могу статью найти про новшества в звуковой системы 8-й ветки, ни то на opennet, ни то на ЛОРе была, хотя бы по-русски.
Ладно, полез сам.
man snd
hw.snd.feeder_rate_max
Maximum allowable sample rate.
у меня 2016000, т.е. 2МГц, чё-то много. фиг знает, какое надо.
hw.snd.feeder_rate_polyphase_max
Adjust to set the maximum number of allowed polyphase entries
during the process of building resampling filters. Disabling
polyphase resampling has the benefit of reducing memory usage, at
the expense of slower and lower quality conversion. Only appli?
cable when the SINC interpolator is used. Default value is
183040. Set to 0 to disable polyphase resampling.
Судя по всему, фильтрация при передискретизации. У меня 183040. Максимум неизвестен.
hw.snd.feeder_rate_quality
Sample rate converter quality. Default value is 1, linear inter?
polation. Available options include:

0 Zero Order Hold, ZOH. Very fast, but with poor quality.

1 Linear interpolation. Fast, quality is subject to personal
preference. Technically the quality is poor however, due to
the lack of anti-aliasing filtering.

2 Bandlimited SINC interpolator. Implements polyphase banking
to boost the conversion speed, at the cost of memory usage,
with multiple high quality polynomial interpolators to
improve the conversion accuracy. 100% fixed point, 64bit
accumulator with 32bit coefficients and high precision sample
buffering. Quality values are 100dB stopband, 8 taps and 85%
bandwidth.

3 Continuation of the bandlimited SINC interpolator, with 100dB
stopband, 36 taps and 90% bandwidth as quality values.

4 Continuation of the bandlimited SINC inteprolator, with 100dB
stopband, 164 taps and 97% bandwidth as quality values.
Вроде как вид/качество интерполяции. По дефолту 1, т.е. линейная интерполяция. Ставлю 4, на слух ничерта не меняется. В 0 тоже.
Sample rate rounding threshold, to avoid large prime division at
the cost of accuracy. All requested sample rates will be rounded
to the nearest threshold value. Possible values range between 0
(disabled) and 500. Default is 25.
Похоже на приблежение частот дискретизации к близжайшим значениям. Не влияют.
dev.pcm.%d.bitperfect
Enable or disable bitperfect mode. When enabled, channels will
skip all dsp processing, such as channel matrixing, rate convert?
ing and equalizing. The pure sound stream will be fed directly
to the hardware. If VCHANs are enabled, the bitperfect mode will
use the VCHAN format/rate as the definitive format/rate target.
The recommended way to use bitperfect mode is to disable VCHANs
and enable this sysctl. Default is disabled.
Отключение обработки звука. Не влияет.

Вроде всё, связанное непосредственно с качеством.
Не понимаю.

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-14 21:59:38
Bayerische

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

# dmesg | grep hda
hdac0: <ATI SB600 High Definition Audio Controller> mem 0xf9ef4000-0xf9ef7fff irq 16 at device 20.2 on pci0
hdac0: HDA Driver Revision: 20100226_0142
hdac0: [ITHREAD]
hdac0: HDA Codec #0: VIA VT1708S_0
hdac0: No jack detection support at pin 29
pcm0: <HDA VIA VT1708S_0 PCM #0 Analog> at cad 0 nid 1 on hdac0
pcm1: <HDA VIA VT1708S_0 PCM #1 Digital> at cad 0 nid 1 on hdac0

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-15 0:43:00
jammin
Надо полагать, речь идет об одном и том же железе?

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-15 0:57:14
Bayerische
Разумеется.

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-15 1:26:25
Bayerische
Мне даже более интересно, почему дёрганья за sysctl ничего не меняет.

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-15 11:23:31
ygor
А если поглядеть в сторону OSS?

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-17 23:05:36
Alex Keda
как хорошо, что
1. мне медведь по ушам прошёлся
2. использую встроенные динамики

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-17 23:10:19
Bayerische
Alex Keda
Да, сразу можно вычеркнуть достаточно много проблем.
А ведь бывают крайности, люди начинают слушать провода!

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-24 1:07:28
Гость
А какая частота стоит в dev.pcm.X.play.vchanrate? Если только dev.pcm.X.play.vchans явно не установлено в 0, в эту частоту будет передискретизироваться все воспроизводимое.

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-24 12:55:31
Bayerische
48000 стояло. В 0 не хочет, invalid argument.
Согласно только на 44100 48000 96000 192000.
Поставил последнее. Фиг знает, уже не пойму, все уши испортил звуком.

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-24 18:51:38
ADRE
Bayerische писал(а):48000 стояло. В 0 не хочет, invalid argument.
Согласно только на 44100 48000 96000 192000.
Поставил последнее. Фиг знает, уже не пойму, все уши испортил звуком.
забавно, нахера тебе такая дескритзация? мп3 ну максисум в 48000 бля для 192000 нужен студийный чипсет аля аудиджи, с золотыми выводами... =)) ставь 44100 - сдром тебе в помощь... в 0 оно не станет минимум 22050 - и то на 1 канал

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-24 18:56:25
Bayerische
Это если запись в 44100. А если с DVD, то 48000, а если потоковое вещание, там и 31000 бывает. А как оно будет передискретезироваться, если частоты некратные? Правильно, с помощью интерполяции. => убитый в усмерть звук.

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-24 19:15:44
ADRE
Bayerische писал(а):Это если запись в 44100. А если с DVD, то 48000, а если потоковое вещание, там и 31000 бывает. А как оно будет передискретезироваться, если частоты некратные? Правильно, с помощью интерполяции. => убитый в усмерть звук.
ну вообще-то не с двд, а аудио кодек ac3 =) можно и мп3 в двд заховать на 96000

Re: FreeBSD 8.2 качество звука

Добавлено: 2011-10-30 0:48:30
mav
Bayerische писал(а):Это если запись в 44100. А если с DVD, то 48000, а если потоковое вещание, там и 31000 бывает. А как оно будет передискретезироваться, если частоты некратные? Правильно, с помощью интерполяции. => убитый в усмерть звук.
Зависит от алгоритма интерполяции, но влюбом случае понятно что это не bit-perfect.

Если тебе необходима возможность играть несколько звуковых потоков, то интерполяции не избежать, так как частоты могут быть разные. Можно только выбрать одну частоту которая будетиграться наилучшим образом. Возможно установка максимально поддерживаемой кодеком частоты смешивания даст какое-то преимущество за счет наиболее полной передачи исходных сигналов.

Если воспроизводить несколько звуков одновременно не нужно, можно просто отключить vchans: dev.pcm.0.play.vchans=0.