цифровые технологии и качественный звук

Недавно мы получили следующее письмо от читателя Александра из Уфы:

Здравствуйте, ПК Аудиофил!

Чтобы развить тему, предлагаю Вам построить новую систему (сервер или плеер), или перенастроить существующие ваши варианты I, II, III с переориентированием их на свободное программное обеспечение с использованием операционных систем Linux. Этот выбор я мотивирую тем, что «не готов», «не хочу» и т.п. покупать операционную систему Windows для построения НЕДОРОГОГО музыкального сервера. Да и вам, надеюсь, будет интересно раскопать эту тему. А тем более это интересно потому, что, скажем так, «топовые» цифровые проигрыватели типа Bryston BDP-2 тоже работают на оптимизированной Linux, с установленной картой Juli@, чего, собственно говоря, и не скрывают. А за основу можно взять либо их firmware, либо Audiophile Linux. А если вы разберётесь, допилите, и создадите модифицированный линуксовый дистрибутив, работающий из коробки, с корректным использованием внешних ЦАПов по оптике, коаксиалу и асинхронному USB, то цены Вам не будет!!! Лично я только простой пользователь линуксов, поэтому призываю всех продвинутых линуксоидов к Вам в помощь!

Александр, Уфа

Так совпало, что почти одновременно с этим письмом другой наш читатель Валерий Григорьев из Набережных Челнов прислал описание своего компьютера, работающего с ОС Linux. С его опытом мы хотим познакомить всех посетителей сайта ПК Аудиофил.

«…звучание в Linux лучше, в чём каждый может убедиться»

Для получения хорошего звука мной было озвучено перед самим собой несколько критериев:

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

- качественный ЦАП;

- качественные наушники.

Обеспечение тишины

Для обеспечения тишины необходимо убрать несколько источников шума. Шум с улицы значительно уменьшился с установкой новых окон. Кроме того, для прослушивания я использую спальню, где дополнительной звуковой изоляцией от шума улицы служит балкон со своей системой окон.

Шум от компьютера уменьшался поэтапно. Старый компьютер обладал кучей вентиляторов, жёстких дисков. Новый компьютер уже при покупке «заряжался» на то, чтобы быть бесшумным. Поэтому был выбран комбинированный процессор AMD APU A8-3870. У него есть четыре вычислительных ядра и одно видеоядро, то есть видеокарта, по сути, встроена в процессор, поэтому нет необходимости покупать отдельную систему охлаждения на видеокарту. Уменьшается количество источников шума: один радиатор охлаждает как процессор, так и видеокарту.

Соответственно, необходимо было выбрать достаточно эффективный процессорный радиатор. Им стал Glacial Tech Igloo H46 PWM. Его достоинством является поддержка PWM (Pulse Width Modulation ¬– широтно-импульсная модуляция, ШИМ), то есть возможность регулирования оборотов. Материнская плата была выбрана с твердотельными конденсаторами – Gigabyte GA-A75-D3H. Она позволяет автоматически регулировать скорость вращение вентиляторов с помощью PWM. Как показала практика, хотя разъёмов питания вентиляторов на материнской плате четыре, к сожалению, только два из них поддерживают управление PWM.

Блок питания. Выбрал вначале FSP 350, который погорел, потом X-Power 350. Критерий выбора – наличие большого вентилятора. К сожалению, безвентиляторые (пассивные) блоки питания стоят так дорого, что проще «моддить» уже имеющиеся недорогие. Моддинг, в общем-то, стандартный: разборка блока питания, и в цепь питания вентилятора впаивается резистор (как на фото), чтобы блок питания, с одной стороны, гарантированно самостоятельно запускался, а с другой стороны – чтобы вентилятор крутился как можно медленнее. Практически полученный результат – 300 оборотов в минуту. Таким образом шум от блока питания был сведён к минимуму.

Важный компонент – жёсткий диск. Обычные жёсткие диски на магнитных пластинах достаточно шумные. В момент чтения большого количество файлов происходит интенсивное «хрюканье», которое может сильно испортить наслаждение чистым звуком.

С развитием производства flash-памяти вполне очевидной стала мысль о том, чтобы производить флешки в формате жёстких дисков (с разъёмами SATA/PATA). Индустрия приняла эту мысль хорошо, и сейчас на полках компьютерных магазинов всегда есть SSD-устройсва (Solid-State Drive – твердотельный накопитель). Поэтому в моём компьютере надёждно обосновался SSD OCZ Agility 3. Кроме превосходных шумовых характеристик (там нет вращающихся деталей, нет шума) он ещё и феноменально быстр. Так, загрузка операционной системы Linux Debian 6 происходит за 5 – 6 секунд.

Как уже было указано, материнская плата позволяет   регулировать скорость вращения вентиляторов, что даёт возможность избежать выбора между тишиной и вероятным выходом из строя системы по причине перегрева. В зависимости от температуры процессора, вентиляторы могут либо переходить на минимальные обороты/останавливаться (в режиме малой нагрузки, например, при прослушивании музыки), либо вращаться с максимальной скоростью (что, очевидно, необходимо в режиме большой загрузки, например, во время игры). Я использовал оба управляемых разъёма для подключения вентиляторов. Один вентилятор стоит на радиаторе процессора (основной, разъём CPU-FAN), второй (вспомогательный, SYSTEM-FAN) – сзади на корпусе, вытягивая горячий воздух.

Настройка BIOS

После установки вентиляторов необходимо соответствующим образом настроить BIOS для управления их скоростью. Для этого в BIOS’e, в разделе PC Health Status (или System Monitoring) надо для CPU-FAN и SYSTEM-FAN включить опции Smart Fan (см. фото). Эта же опция может называться Q-FAN или AI-FAN. После этого стало слышно, как в процессе загрузки ОС вентиляторы сами меняют скорость вращения. Итак, теперь необходимо настроить в Windows/Linux скорости вращения вентиляторов. Для Linux это стандартная утилита fancontrol (используйте sudo apt-get install fancontrol), для Windows – это SpeedFan. Логика программ достаточно простая: в зависимости от выбранного температурного источника (например, северный мост, или процессор) регулировать скорость вращения какого-либо вентилятора. Настройка speedfan происходит через GUI посредством мышки, а fancontrol требует конфигурационного файла /etc/fancontrol и если его нет, то в диалоговом режиме помогает его создать.

Пример конфигурационного файла fancontrol:

# Configuration file generated by pwmconfig, changes will be lost;
INTERVAL=1 # интервал в секундах;
DEVPATH=hwmon1=devices/platform/it87.552 # какие драйвера устройств используются;
DEVNAME=hwmon1=it8720;
FCTEMPS=hwmon1/device/pwm2=hwmon1/device/temp3_input hwmon1/device/pwm1=hwmon1/device/temp3_input # какие температурные входы имеются;
FCFANS=hwmon1/device/pwm2=hwmon1/device/fan2_input hwmon1/device/pwm1=hwmon1/device/fan1_input # задаётся связь скорости вращения венитиляторов и управлящего порта;
MINTEMP=hwmon1/device/pwm2=30 hwmon1/device/pwm1=41 # какая температура считается минимальной, при которой в PWM отправляются значения minstart;
MAXTEMP=hwmon1/device/pwm2=45 hwmon1/device/pwm1=51 # температура, начиная с которой в PWM отправляются максимальные значения = 255;
MINSTART=hwmon1/device/pwm2=52 hwmon1/device/pwm1=72 # минимальные значения PWM, при которых вентиляторы начинают крутиться (несколько выше значения MINPWM);
MINSTOP=hwmon1/device/pwm2=48 hwmon1/device/pwm1=68;
MINPWM=hwmon1/device/pwm2=48 hwmon1/device/pwm1=0 # минимальные значения PWM, при которых вентиляторы продолжают вращение без остановки.
 

На словах это означает следующее: вспомогательный вентилятор работает в зависимости от температуры процессора, а при температуре ниже 41 °С он не вообще крутится. При этой температуре или выше – заводится, а с каждым следующим градусом скорость вращения растёт в такой пропорции, чтобы при температуре процессора в 51 °С вентилятор вращался бы максимально быстро. Основной вентилятор крутится всегда (PWM = 48), минимальная точка роста скорости вращения – 30 °С. При температуре 45 °С он работает на максимальной скорости. Таким способом вентилятор на процессоре был переведён в практически бесшумный режим (около 300 оборотов в минуту).

Компьютер собран, в нём всего два малошумящих вентилятора. Таким образом была решена задача уменьшения шума от главных его источников.

ЦАП Pegasus и наушники AKG K-601

Купить хорошую звуковую карту я хотел достаточно давно. Началось всё с SB Live, потом M-Audio Revolution, а потом друг дал послушать ЦАП Pegasus. Я был очень восхищён звуком и решил заказать себе такой же, о чём, собственно, не жалею.

Наушники я выбирал долго. Первыми, «почти хай-файскими», были Sennhiser EH-350, у которых на коробке было написано Natural Sound. Купив Pegasus и немного побаловавшись, я понял: наушники слабоваты и не раскрывают возможностей ЦАПа. Так как у нас в Набережных Челнах выбор хай-фай наушников скромный, я ждал оказии, вроде поездки в Москву. Собственно тогда-то я и купил наушники, описав потом свои мытарства на сайте магазина Doctorhead (см. мой отзыв, начинающийся со слов "К601 - мой выбор"), специалистам которого я очень благодарен за помощь в подборе наушников.

Linux и звук

Казалось бы, этого достаточно, чтобы получить качественный звук. Но нет!

Ещё на старенькой звуковой карте Sound Blaster Compact PCI я заметил, что в DOS’е эта звуковая карта играла как-то «шире», а звук был прозрачнее. В Windows же такого ощущения не было, однако я долго списывал это на настроение. Позже, когда Linux вошёл в мою жизнь, я стал замечать, что те же песни звучат как-то лучше в Linux, чем в Windows, но тоже долго списывал это на настроение.

Из форумов я узнал, что не я один чувствую такую разницу в звуке. А объяснение этому я нашёл в далеко не аудифильской книге о принципах работы операционных систем. Вот маленький «ликбез» по функционированию компьютеров, который, как мне кажется, поможет объяснить эту разницу.

Звук из компьютера в ЦАП попадает по интерфейсу USB или шине PCI. Данные отправляет микропрограмма-драйвер. Упрощённо эту микропрограмму можно представить в виде некоторой процедуры (которая не относится к программе, воспроизводящей звук, а относится к операционной системе, является её частью), которая периодически, через определённый промежуток времени вызывается системой (это событие называют прерыванием). Эта процедура читает данные из памяти и выводит часть из них (или все) в звуковое устройство. Всё дело в том, что прерываний очень много, например, для обслуживания жёсткого диска, для обслуживания видеокарты, для обслуживания мышки/клавиатуры и т.п. Кроме того, у прерываний есть значение приоритета, когда какое-либо прерывание может не выполняться из-за того, что исполняется другое, более приоритетное прерывание.

Очевидно, что при воспроизведении музыки именно процедуре вывода звука должен присваиваться самый высокий приоритет. Однако тут и возникает самый главный нюанс. В Windows все прерывания делятся на прерывания ядра и прерывания приложений. Любое прерывание ядра всегда приоритетней прерывания приложения, даже если оно имеет самый высокий приоритет и должно работать в реальном времени. Этот принципиальный момент, который, как я думаю, делает практически невозможным качественно вывести звук в Windows, даже с использованием ASIO. Хотя удаление неиспользуемых служб и остановка ненужных процессов, конечно, улучшают звук.

В Linux же приоритеты процессов не делятся таким способом. И процесс, имеющий приоритет реального времени, будет прерывать другие, но сам не будет прерван. В Linux основная на данный момент система звука – ALSA (хотя есть OSS, разница между ними больше в интерфейсах программ), и её процессы имеют самый высокий приоритет. Что и делает звучание в Linux лучше, в чём каждый может убедиться.

Валерий Григорьев   01.12.2013

Вверх