LINUX.ORG.RU

Skype проклятущий

 


0

2

Привет.

Линуксовый сабж 4.3 жутко страждет б-гомерзкий пульсаудио и на все звуковые устройства пишет Virtual Device. А я не хочу эту дрянь на компе держать.

Вопрос на соточку баксов: а как бы уговорить сабж использовать православную алсу?

Перемещено leave из general

★★★★★

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

это не мои слова, а слова автора софтины о ней.

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

Iron_Bug ★★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от reprimand

А вообще можно взять SDL и сделать себе жизнь проще. Для всех платформ.

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

Iron_Bug ★★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от reprimand

А можно узнать с какой версии ведра они пофиксили этот мелкий баг?

Это не в ядре, это в alsa-lib. И судя по всему, баг ещё там. В snd_pcm_direct_poll_revents() всё ещё проверяется (avail < pcm->avail_min).

Хз почему аналогично нельзя было сделать с пульсой

Они решают разные задачи. В PulseAudio клиент может сказать «хочу играть S16_LE@32000Hz». В JACK клиент должен робко спросить, что желает сервер. Если сервер сказал FLOAT_LE@96000Hz, ты должен в лепёшку расшибиться, но предоставить ему именно этот формат. В этом вся фишка JACK — он не делает передискретизации, не делает преобразования форматов. Просто складывает готовые числа. Поэтому задержку можно выкручивать хоть до нуля. Лишь бы приложения и железо успевали.

либо адаптировать JACK под десктопное использование.

Как ты собираешься это делать? И чем он сейчас не подходит для десктопа?

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

недопустимы

А ты случайно на компе не QNX используешь?

Ну я могу понять, что кому-то нужен JACK ради этой самой маленькой латентности. Но вот что я не могу понять, так это почему эти люди считают свой use-case единственно-верным? «Мне надо, значит всем надо. Мне не надо, значит никому не надо.»

при записи с нескольких карт и микшировании даже 10 миллисекунд недопустимы

Сомневаюсь, что ты вытянешь лучше 20 мс без ядра с realtime патчами.

i-rinat ★★★★★ ()

web.skype.com

Skype beta for Linux

Второе, это первое завернутое в электрон.

Сам горючие слёзы лью.

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

Как ты собираешься это делать?

прикрутить передискретизацию, volume-per-channel, pulseaudio эмуляцию - и jack для десктопа готов

И чем он сейчас не подходит для десктопа?

тем, что нет фич, названных выше

Они решают разные задачи.

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

Короче, я мечтаю дабы кто-то допилил JACK до вменяемого вида. Быть может, через пару лет это буду я, но пока маловато опыта и знаний.

reprimand ★★★★★ ()

Вот и придурок. Настрой нормально тренд.
ps: Откудаж вы такие упоротуе беретесь.
Сам начинал с koi-8 и concolefonts и не ору же что utf говно.

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

прикрутить передискретизацию, volume-per-channel, pulseaudio эмуляцию - и jack для десктопа готов

Только от этого JACK потеряет свои фичи и превратится в новый PulseAudio, только хуже. Задержки взлетят до небес, потребление CPU станет значительно больше.

Хотя громкость можно прикрутить без потерь. Наверняка это уже есть.

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

Только от этого JACK потеряет свои фичи

как jack может потерять фичи от добавления новых фич?

Задержки взлетят до небес, потребление CPU станет значительно больше

доступ к jack через его родное API никто не будет отбирать, проф. софт как работал так и будет работать одинаково. А потребительский будет на уровне с пульсой или aplay.
О каких задержках и сжирании cpu идет речь? Дополнительный function call из-за эмуляции пульсы? Нагрузка на проц из-за передискретизации? Сейчас большинство софта по дефолту использует 44100, вот пусть по дефолту и jack будет 44100. Да и плюс алгоритмов для передискретизации достаточно, и у пульсы если выбрать тот, что выдает годное качество CPU тоже прыгнет.
Но это всё не имеет значения для тех, у кого не древний проц.

А, да насчет громкости (она же логарифмическая амплитуда). Почти каждая программа имеет внутри себя от 1 до N способом отрегулировать громкость. И ничего, как-то живут.

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

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

а «риалтайм» кернел - это гут. это никогда не помешает, если работа с железом предполагается.

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

как jack может потерять фичи от добавления новых фич?

Фича JACK состоит в том, что у него мало фич. Сервер задаёт единую частоту дискретизации, все клиенты работают с ней. Формат отсчётов всегда фиксированный, 32-битный float. Чередования каналов нет. Это всё позволяет принимать данные от приложений очень маленькими кусочками. Так как частота и формат у всех совпадают, достаточно микшировать по одному отсчёту.

О каких задержках и сжирании cpu идет речь? Дополнительный function call из-за эмуляции пульсы?

Допустим, у тебя звук выводится в 44100, а от клиентов пришло 8000, 96000, 48000 и 43000. Как ты будешь преобразовывать это в 44100? Распиши алгоритм на словах.

доступ к jack через его родное API никто не будет отбирать, проф. софт как работал так и будет работать одинаково.

Начав принимать разные форматы, ты потерял sample accuracy. Так что софт, который на неё расчитывал, получит фигу.

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

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

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

Iron_Bug ★★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от i-rinat

В общем, там таймер с периодом в период. Всё было бы замечательно, если таймеры были абсолютно точными.

...

Это не в ядре, это в alsa-lib.

Да ну? Для menuconfig (выдирать теги из .config мне лень)

General setup -> Timers subsystem

И все параметры там внутри - как раз об этом.

Во-первых, можно включить HRT. Для той самой абсолютной точности.

Во-вторых, главное, в Timer tick handling включить Periodic timer ticks (constant rate, no dynticks) вместо Full dynticks (tickless) - как раз будут жесткие периоды, а не динамические.

Ну ещё имеет смысл включить HPET в Device drivers -> Character devices и в ALSA включить HR-timer backend support с Use HR-timer as default sequencer timer.

Проблема в том, что «умные» разрабы шапок-дебиланов имеют обыкновение собирать вёдра с Full dynticks ... а потом всякие погромисты возмущаются на ALSA и проповедуют пульсу... :(

slamd64 ★★★★★ ()
Последнее исправление: slamd64 (всего исправлений: 1)
Ответ на: комментарий от slamd64

Да ну? Для menuconfig (выдирать теги из .config мне лень)

General setup -> Timers subsystem

И все параметры там внутри - как раз об этом.

Меня всегда поражает такая необоснованная уверенность. Увидел слово «таймер» там и решил, что это оно? И всё, в код смотреть не нужно?

Во-первых, можно включить HRT. Для той самой абсолютной точности.

Нет. Во-первых, high resolution это не абсолютная точность. Во-вторых, генераторы частоты у процессора и аудиокодека физически разные, они никак не могут совпасть по частотам. И они не синхронизированы. Это было бы глупо.

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

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

Шариковая ручка победит стержень, топор победит топорище, а молоток - рукоятку от молотка. И тогда заживем.

curufinwe ★★★★★ ()

Не хочешь не держи.

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

Ближайшее время ничего не воспроизводилось.

Ну чо, пульса отстой. Так?

Вообще интересно, чем он там занимается. По идее, PulseAudio на событиях работает, значит его что-то дёргает.

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

По идее, PulseAudio на событиях работает, значит его что-то дёргает.

Ну да, если отключить устройства ввода/вывода в pavucontrol то нагрузка уходит.(если убрать ввод то уполовинивает нагрузку) А если закрыть все приложения, которые висят в микшере то ничего не меняется.

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

Интересная статья, но там почти каждый пункт/тезис можно разбить в 0. Чем-то напомнило хабр.

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

Фича JACK состоит в том, что у него мало фич. Сервер задаёт единую частоту дискретизации, все клиенты работают с ней.

отлично, пусть jack клиенты и работают с ней!

Это всё позволяет принимать данные от приложений очень маленькими кусочками. Так как частота и формат у всех совпадают, достаточно микшировать по одному отсчёту.

суть того что я предлагал - это «привести всё к общему знаменателю». Общий знаменатель, в моем случае, это jack.

Допустим, у тебя звук выводится в 44100, а от клиентов пришло 8000, 96000, 48000 и 43000. Как ты будешь преобразовывать это в 44100? Распиши алгоритм на словах.

Тебе расписать алгоритм передискретизации? Их ЕМНИП не 1 и не 2.
По пунктам:
1) В реальной жизни такой ситуации как ты описал почти не найти. Обычно у меня несколько клиентов, и они выдают 44100 либо 48000.
2) 8000, 96000, 48000, 43000 буду преобразовывать в 44100. Нет, или ты предлагаешь какой-либо другой вариант ИЗБЕГАЯ передискретизации? Или использовать 96000 jack-сервером, а остальные передискретизировать?
В любом случае, это можно настроить, а значит в таких критических ситуациях решаемо.

Начав принимать разные форматы, ты потерял sample accuracy.

Расскажи подробнее что ты подразумеваешь под «sample accuracy».

Так что софт, который на неё расчитывал, получит фигу.

хм... какой бы это мог бы быть софт... Мне приходит в голову проф. софт, который используют музыканты.
Но вот-то интересная история - этот софт обычно имеет поддержку jack. Problem solved?

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

Чувак пульсаудио стандарт де-факто.

А де-юре нет: https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Desktop-generic/LSB-Deskto...

При этом от ALSA никуда не деться, это стандарт и де-юре, и де-факто, но более низкого уровня. При этом pulseaudio умеет прикидываться алсой.

te111011010 ()
Ответ на: комментарий от reprimand

Тебе расписать алгоритм передискретизации?

Ну вообще да, было бы неплохо.

В реальной жизни такой ситуации как ты описал почти не найти.

В реальной жизни я не видел железок, которые FLOAT64_BE принимают. Но такой формат всё равно есть.

или ты предлагаешь какой-либо другой вариант ИЗБЕГАЯ передискретизации?

Я предлагаю представить себе детальнее работу микшера с передискретизацией.

Расскажи подробнее что ты подразумеваешь под «sample accuracy».

Допустим, у тебя один из клиентов выдаёт поток, в котором все отсчёты — 0. И внезапно один из отсчётов — 1.0. На выходе после всех преобразований должен быть 0, и один отсчёт не 0. Не несколько рядом, не смазанные. Он не обязательно должен быть 1.0, но должен быть один.

Но вот-то интересная история - этот софт обычно имеет поддержку jack. Problem solved?

Нет, not solved. Потому что твой «доработанный JACK» — уже не JACK. Софт, может, и поддерживает JACK, только твой сервер — уже нет.

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

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

Вот когда эти детали воплотятся в готовый код, можно будет обсуждать предметно.

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

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

Я с тобой согласен. Просто хотелось бы перед работой обсудить предмет разговора с понимающим в теме человеком. И так оказалось, что ты

i-rinat ★★★★★ (15.02.2017 14:15:45) мощный разработчик

(заметка уже висит более 2-х лет)

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

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

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

А меня не радует зонд, который хочет номер телефона и что-то вякает о своей безопасности и защите данных.

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

обеспечение работы новых Firefox

А давно ff требует pulseaudio? В ебилдах 51-я версия без нее обходится.

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

А давно ff требует pulseaudio?

Вроде бы, с 52 версии. Баг 1247056 закрыт с формулировкой RESOLVED FIXED, цель указана как mozilla52.

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

Просто хотелось бы перед работой обсудить предмет разговора

Ну вот и обсудили.

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

При этом pulseaudio умеет прикидываться алсой.

У тебя мысли путаются. В поставке PA есть плагин для alsa, позволяющий заворачивать вывод alsa-приложений в PA, которое затем все проиграет через ту же самую alsa, но не через !default, а в (plug)?hwX. При этом приложения работают с библиотеками alsa, которые уже в своих потрохах дергают pa-плагин.

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

Это будет полная копия PulseAudio. Проще использовать PulseAudio.

Pulseaudio, насколько я знаю, монопольно захватывает звуковое устройство. То есть нельзя, чтобы одно приложение работало напрямую с alsa (не эмуляцией его через pulseaudio), а одновременно запущенное другое — через pulseaudio.

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

Ну а откуда тогда у всех такая ненависть к pulseaudio? Пусть тогда рассматривают его просто как компонент отдельных программ.

te111011010 ()
Ответ на: комментарий от reprimand

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

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

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

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

ну вот, теперь поцелуйтесь, и сделайте уже для хип-хопа что-нибудь.

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

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

Iron_Bug ★★★★ ()

Почему бы не использовать web.skype.com ?

Почему бы не забить на эту дрянь и перестать ее использовать

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

твоё предложение было и есть хорошее.

при этом мне «что он ожидаемо на реализацию забил» видится чутка иначе ибо я оставил в стороне твоё предложение как не интересное мне как реализатору - возможно по причине недостаточного понимания «а зачем это не только мне но и кому либо ещё»

зы. успехов.

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