LINUX.ORG.RU

rtirq-init влияние на звук

 , ,


0

2

Я заморочен звуком, и недавно случайно узнал, что приоритеты потоков влияют на звук (обратное мне доказывать не надо здесь). Постараюсь описать проблему. Речь пойдет о rtirq-init (это пакет, который повышает приоритеты потоков, относящиеся к звуку). Кроме его установки, есть конфиг sudo nano /etc/default/rtirq, приведу его фрагмент:

# IRQ thread service names
# (space separated list, from higher to lower priority).
RTIRQ_NAME_LIST="rtc snd usb i8042"

# Highest priority.
RTIRQ_PRIO_HIGH=90

# Priority decrease step.
RTIRQ_PRIO_DECR=5

# Lowest priority.
RTIRQ_PRIO_LOW=51

# Whether to reset all IRQ threads to SCHED_OTHER.
RTIRQ_RESET_ALL=0

# On kernel configurations that support it,
# which services should be NOT threaded 
# (space separated list).
RTIRQ_NON_THREADED="rtc snd"

Тут есть параметр RTIRQ_PRIO_HIGH=90. В комбинации с моими остальными настройками и в моей конкретной системе звук меняется до неузнаваемости, если 90 поменять на 95, затем перезапустить плеер mpd. Но проблема в том, что после перезагрузки системы, когда этот параметр сразу имеет значение 95, звук совсем не тот! Это совершенно не того уровня звук, а намного-намного ниже.

Моя гипотеза, что когда я меняю с 90 на 95 (именно столько, потому что на слух подбирал), и перезапускаю mpd, то лишь некоторые процессы (потоки) меняют приоритет, а часть не меняют (даже если rtirg подразумевает другой приоритет) и приоритеты встают в правильном порядке . А после перезагрузки системы каждый поток встает так, как ему укажет rtirg.

К сожалению, пока не знаю, куда копать. Но варианта 2. Либо написать код, который бы менял этот параметр автоматически. Либо как-то установить приоритеты вручную (а перед этим узнать их порядок для всех звуковых приложений). Либо методом тыка натыкать, но это долго и нудно.

Что вы посоветуете? Как узнать порядок приложений по приоритету, когда все работает? Чтобы хотя бы знать, в чем отличие до и после перезагрузки. Может быть, достаточно немного поменять код.



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

Ответ на: комментарий от burato

это не играет роли jack или pulseaudio или голая alsa. Главное, как настроишь все параметры разом, такой и звук получится. Конкретно приоритеты влияют на характер звука. Чем больше приоритет - тем светлее звук. Но самый светлый не равно самый лучший. И надо именно под конкретную систему подбирать. А что по моей проблеме? Как мне узнать приоритеты? Я так понял, те приоритеты, которые в утилите top или по команде ps - это не те же самые приоритеты, которые нужны мне (реального времени). Вот тут нашел команду, но она не работает (чтобы вы не думали, что я совсем лентяй). https://www.audio-linux.com/html/realtime.html

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

ну не совсем, но доля истины в этом есть. Я понимаю, что ты хотел пошутить. Но когда настраиваешь на одну песню, на другой может быть хуже. Это правда. Но можно найти компромиссную настройку, которая устроит на любых жанрах. Вот у меня сейчас лежит плеер astell kern ak320. Он сейчас играет значительно хуже, чем мой настроенный неттоп азус на встройке! Я его настраиваю уже 2.5 года, и делаю успехи. Год назад, когда я услышал этот плеер, то просто охренел, какой светлый и комфортный звук! Теперь плеер после неттопа простовато звучит. Я даже в ютуб записал. Но конечно, скажешь что-нибудь про качество, что радиоточка так же круто будет играть. https://www.youtube.com/watch?v=1cnwnErXp1g - астель керн https://www.youtube.com/watch?v=vhhmaTYKpq4 - неттоп с realtek alc887

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

Крутой совет. Я уже нашел тот звук, который нужен. Притом, что больше 2 лет у меня был тот, который устраивает. У меня было 3 собственных цапа, за которые я платил не маленькие деньги, и ни один меня не впечатлил. Только научившись настраивать звук в линукс, я получил то, чего хотел, вообще без денежных вливаний. Если не говорить про дорогой межблочник, который у меня давно уже есть. Без него… Не звучит!

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

Всё верно… Я обратное утверждаю, что ДОСТАТОЧНО и обычного кодека при правильной настройке. А цапы с запредельными параметрами типа топпингов и смслей оказались не лучше! В винде лучше звучали, это бесспорно. Да кому я рассказываю. Идите и покупайте звуковоспроизводящую аппаратуру)))

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

А ещё заметил, что когда что-то подкрутишь своими руками, то оно всегда кажется лучше. Потом проходит время, ты опять подкручиваешь и получается ещё лучше. Потом — внезапно — ты понимаешь, что вернул настройки по умолчанию.

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

Считаю, что больше смысла в том, чтоб заморачиваться в выборе издания: сведение, мастеринг, динамический диапазон, искажения частот. Это влияет на звучание записи гораздо больше.

Grapow ★★
()
Ответ на: комментарий от papin-aziat

Друг, ты все правильно написал. Я сам с этим сталкивался, и наперед знаю это. Поэтому всегда сравниваю с тем, что было, и потом еще пару дней слушаю. Если не надоело - значит ОНО! А так да. Слух у нас относителен. Раньше неттоп играл хорошо, но темнее. На его фоне плеер играл очень светло (я не знал и не мог сделать светлее раньше), и казалось слышно больше. Но теперь все иначе. Хотел его покупать, продал вещи на авито, попросил у друга дать мне убедиться еще раз окончательно. А когда мы сравнили… Ну мягко говоря, как будто подменили.

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

У каждого свое мнение и свой опыт.

Ребята, я поискал информацию в сети. Как я понял, этот RTIRQ_NAME_LIST=«rtc snd usb i8042» у меня даже неверно настроен. Там вместо rtc snd usb надо своё подставлять. Но когда я подставил, стало только хуже… А еще, узнал про команду sudo nano /proc/interrupts Оттуда и надо брать, похоже, эти rtc snd… Но, что интересно, звук-то меняется, когда я меняю тот параметр с 90 на 95!!! Начинает штырить. А заменял значения rtc и snd свои, и звук хуже. Тут что-то неспроста… Но на звук однозначно влияет!!! Я так понял, у меня это вообще всё не должно работать, но на звук влияет колоссально. Однако, пока не перезагрузишься. Наверное, играет роль лишь вот это

# Highest priority.
RTIRQ_PRIO_HIGH=90

Наверное, важно даже не СКОЛЬКО там стоит, а НАСКОЛЬКО ИДЕТ СМЕЩЕНИЕ, когда я перезапускаю плеер. То есть, если он загрузился на 90, я меняю на 95, и меня уносит. Будет стоять 70, поменяю на 75, и тоже будет штырить (но я это не проверял).

Одним словом, подскажите мне теперь, каким образом можно редактировать этот файл, именно один параметр. Целиком весь контент надо переписывать, или есть хитрые команды?

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

Во второй половине 19-ого и начале 20-го во Франции жил фармацевт по имени Эмиль Куэ. Этот замечательный во всех отношениях дядька много всякого интересного сделал в жизни, но в историю вошёл как автор нескольких тоненьких книжек. Категорически рекомендую, например эту: Сознательное самовнушение как путь к господству над собой

Там обретёшь ты окончательный ответ.

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

Да я примерно такой реакции и ожидал. Никакой помощи нет от вас. Еще никто не сказал, что у меня плохой звук)) Но видят, что играет дешевый компьютер, и начинают искать там недостатки. Тот мой друг, при первом знакомстве, еще не принес с собой плеер, но стал говорить про отличия плеера с моим звуком. Мол у него все равно лучше. Но комон! Это встройка! Кровь из ушей не пошла - уже должен быть шок!

Короче, нашел вот что With the rt kernel and the rtirq script you could prioritize IRQ threads but with a modern kernel it is possible to use the rtirq script with a generic kernel and the threadirqs kernel option.

То есть, всё у меня работает. Просто напросто, видимо, последний процесс i8042 передвигается. Или где-то глобально меняется переменная. Но на звук влияет колоссально… Еще разберусь немного, и конечно же нихрена не напишу никому. Я уже привык, что мне никто не верит. Но как источник звука, неттоп обошел даже плеер за сотку! И цапы за 10 и 28 тысяч тоже обошел (они были подробнее, но раздражали слух).

honestvova
() автор топика

Короче… Сейчас пробовал много разного. Но звучит только как, как я написал. RTIRQ_PRIO_HIGH с 90 на 95 менять и плеер перезапускать. При этом, /etc/default/grub у меня отключена опция threadirqs. То есть, эта хрень вообще не должна работать. Но видимо, где-то в каком-то месте (может быть самим плеером mpd) учитывается именно эта переменная.

А когда первый раз я удалил этот конфиг (думал, он не нужен больше после удаления rtirq-init), то звук стал просто ужасный.

Короче. Я ничего там не понимаю, но случайным образом выяснил, что нужно делать. Неделю назад меня вштырило, потом перестало (после перезагрузки на следующий день). Я все пытался найти тот самый звук, но не мог. А оно вон как оказывается. Перезагрузил - считай зря жил. Потом с 95 можно хоть на сколько менять - никогда не будет так звучать. Надо именно при старте ставить 90!

Короче. Помогите! Как это сделать!!!! Сейчас я придумал только сделать 2 версии этого конфига: 0.conf и 1.conf При выключении копировать содержимое 1.conf в /etc/default/rtirq, а при включении 0.conf и перезапускать плеер.

Но!!!!! Плеер перезапускается через systemctl. То пароль требует, то файл найти не может. В общем, у меня получилось сделать только через rc.local перезапуск плеера, но только в режиме systemctl –system, а systemctl –user выдает ошибку. Короче. Я уже замучился. До свидания! Я всё равно сделаю то, что мне надо. А вы так и будете покупать ненужные железки и кровь из ушей вытирать через 5 минут.

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

p.s. Всё бы ничего, но плеер mpd, запущенный через systemctl –system звучит хуже!!!! Не штырит. Сегодня утром проверял.

Я короче не все рассказал. Оказывается, если mpd перезапустить, то он играет чуть лучше. Раз 5-7 перезапустил, и с каждым разом он чуток лучше. Ну а больше уже не слышно разницы. Короче. Пока. Я к доктору.

honestvova
() автор топика

Я короче все понял. Вот тут RTIRQ_NAME_LIST=«rtc snd usb i8042» i8042 это типа драйвер клавиатуры с мышкой. Видимо, у него приоритет высоченный изначально.

Когда я поднимаю RTIRQ_PRIO_HIGH с 90 до 95, то другие процессы звука, отличные от i8042, после перезапуска плеера имеют больший приоритет, а у i8042 остается старый (он ведь к звуку никак не относится, и после запуска плеера не меняется). Таким образом, по отношению к «звуку», клавиатура с мышкой опускается ниже на 5 пунктов (а надо именно столько, так совпало).

А когда запускаю систему с параметром 95, и меняю на 90, то проиходит все наоборот - i8042 подрастает по отношению к звуку (хотя он как был 85, так и остался, но звук вместо 95 стал 90).

Вот такие пироги. Завтра проверю эту гипотезу. Просто сделаю 95 и опущу на 5 пунктов сразу клавиатуру с мышкой.

Если, конечно, кто-нибудь что-нибудь понял.

honestvova
() автор топика

Короче. Влияет не только лишь один криво настроенный rtirg, а вообще все, что я делал, когда настраивал на слух. Стоит перезагрузить, и звук уже не тот. Чтобы было как надо - надо поставить как было, а после перезагрузки всё разом поменять. Тогда заштырит. Сейчас этим занимаюсь.

honestvova
() автор топика

Был тут в гостях у человека - в каждой комнате дома, в гараже, в бильярдной - по 8 колонок, по 4 усилителя (по штуке на каждую пару акустики) и профессиональные микшеры. И своя студия звукозаписи в городе. Вот человек звуком заморочен, так заморочен.

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

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

Тот человек заморочен в плане «хочешь послушать - купи подороже», а я нищий аудиофил, поэтому могу только лишь настраивать свой дешевый неттоп, и не вижу смысла тратить 30-40 тысяч на ненужный цап, которые не лучше в целом, а в чем-то конкретно может лучше, но это слишком маленькая разница.

honestvova
() автор топика

В заключении, хотелось бы сделать выводы. Я разобрался, почему пропадает штыр после перезагрузки, какие бы параметры не ставил. Дело в systemctl. Когда правишь любые конфиги, которые не относятся к mpd, а именно:

sudo nano ~/.asoundrc
sudo nano /usr/lib/systemd/system/mpd.service
sudo nano /etc/default/rtirq
sudo nano /etc/sysctl.conf
sudo nano /etc/asound.conf

То разница при настройке на слух есть до тех пор, пока не очухался systemctl. По идее, его после манипуляций с этими файлами надо перезапускать командой sudo systemctl daemon-reload, об этом даже предупреждает mpd при перезапуске в консоли. Но! Стоит перезапустить, как звук становится примерно такой же, какой и был до манипуляций! Иными словами, разница есть, пока есть некое смещение параметрв от того, что внутри systemctl с момента загрузки системы. При этом на звук влияет и начальное значение параметров, а не только конечное. Поэтому, если слышно позитивную разницу, то надо перед выключением возвращать исследуемый параметр обратно, а после запуска системы и запуска плеера, снова менять значение и перезапускать плеер. Верить в этом или нет - вам решать. Это не для всех, а для тех, кто действительно ищет истину. Я не претендую ни на что, просто кому-то это будет полезно однажды, надеюсь. Я не могу это объяснить, просто выяснил опытным путем, и догадался далеко не сразу. Сначала думал, кажется или заржался. Но потом понял, попробовал и убедился, в чем дело.

honestvova
() автор топика

В заключение, хочу сказать, что все так, как я и описал вначале. Сам скрипт rtirq-init и его конфиг влияют на что-то еще, кроме приоритетов irq. Потому что когда меняешь параметры конфига, то и звук тоже меняется с перезапуском плеера. Если удалить rtirq-init, то вроде как конфиг перестает влиять, или влияет незначительно, но в целом, звук становится хуже. Поэтому rtirq-init нужно ставить обязательно, а уже потом можно самому выставить приоритеты вручную.

И да, действительно, играет роль, какой он был во время запуска. Допустим, если RTIRQ_PRIO_HIGH был 95, а ты поставил 96, то это не то же самое, что он был при запуске 90, а ты поставил 96. Это играет роль.

honestvova
() автор топика