Как стать автором
Обновить

Комментарии 58

А как вы добились описанного в начале статьи поведения на Windows? Мне даже не нужно переключать конфигурацию каналов. Просто поканальный вывод с фильтрами я смог сделать только очень замороченным способом, у которого есть нежелательные побочные эффекты.
В Windows никаких специальных плясок делать не приходилось — работало из коробки. Для сабвувера используется специальный разъем. Т.е. это не джек. Видимо, сделано так было для того, чтобы можно рассчитывать, что ничего кроме сабвуфера к этому разъему подключаться не будет и захардкодить в драйвере нужное поведение
То есть прямо в драйвере многоканального звукового устройства можно настроить фильтр сабвуфера? У меня задача чуть-чуть отличалась, конечно, настройками драйвера она не решалась.
тут много странной неописанной магии

www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules

и «вдогонку»
askubuntu.com/questions/43950/how-can-i-apply-a-ladspa-plugin-to-a-pulseaudio-stream

к сожалению хороших гайдов еще не выгуглил, но доки намекают на немалые возможности… а ещё если все это «запитонить на гуях...»
Посмотрю, спасибо
Поздравляю вы столкнулись с intel hda. У меня была такая проблема поначалу. Но параметр options snd-hda-intel model всё поправил. В последних версиях вроде само работает из коробки.

Но есть другие чудеса в ubuntu. (У меня 14.04 LTS)
1. Например хочется записать звук который воспроизводится на колонки. Оказывается это делается весьма замысловато.
loop-device
/etc/modprobe.d/sound.conf
options snd_hda_intel index=0
options snd_aloop index=1

/etc/modules-load.d/alsa-loop-device.conf
snd_aloop

/etc/asound.conf
pcm.xxx {
type plug
slave.pcm {
type multi
slaves {
a { channels 2 pcm "hw:0,0" } # the real device
b { channels 2 pcm "hw:1,0" } # the loopback driver
}
bindings {
0 { slave a channel 0 }
1 { slave a channel 1 }
2 { slave b channel 0 }
3 { slave b channel 1 }
}
}
ttable [
[ 1 0 1 0 ] # left -> a.left, b.left
[ 0 1 0 1 ] # right -> a.right, b.right
]
}

/etc/modules-load.d/alsa-loop-device.conf
asnd_loop

/etc/modprobe.d/sound.conf
options snd_hda_intel index=0
options snd_aloop index=1


2. Бывает что чудо редактор audacity любит воспроизводить звуки реликтового излучения.
Лечится примерно так
env PULSE_LATENCY_MSEC=30 audacity

п 1 делается вот так:
image
У меня такого нету. Без п1 Loopback Input не появляется.
image
Почему-то в списке того, что трогалось, ни слова про pactl /pacmd. У последнего есть даже интерактивный шелл с двумя экранами команд.
Pulseaudio особо трогать пока не пришлось. Добавлю, спасибо
Опечатка у вас в третьем предложении `менять`
поправил спасибо
Получается, если звук на компьютере не задействуется по прямому назначению — можно добавить «входной» канал:

При замыкании разъёмов аудиовыхода/микрофона соответствующим сопротивлением можно инициировать запуск shell-скрипта?
там и на кнопки извлечения оптических дисков скрипты вешали
Не могу утверждать наверняка, но скорее всего это так — должна же быть какая-то триггерная модель, чтобы обслуживать подключение нового устройства к звуковой карте
Кнопки на гарнитуре именно так и работают.
Ага, значит можно ещё отслеживать величину сопротивления подключенного устройства?
Это наверное зависит от чипа. А на стареньком неттопе 3Q интересно — есть такой функционал?
Многие, кто пилит alsa, pulseaudio и далее по списку — для них это такое же хобби.
Возможно, имеет смысл напрямую связаться и спросить как и что.
Да. Думаю, дойдет до этого) Именно это подтверждает мои слова о том, что никто особо в звук не вкладывает. Странно, что до сих пор не нашлось аналога Canonical или RedHat, зарабатывающего на Linux в сообществе звукорежиссеров etc. Публика весьма платежеспособная и платит сейчас немалые деньги за софт, которым пользуется. Хотя, это, конечно субъективный взгляд. Возможно объем разработки и маркетинга, чтобы довести в Linux это до ума переманить этих людей с маков — это неподъемная величина
supercollider.github.io/tutorials

вот еще интересный, наверное, проект

там еще был какой-то проект по графическому проектированию звука, но наиболее зрелые что-то не очень-то и развиваются(ИМХО) ну и внезапные падение порой… случаются
НЛО прилетело и опубликовало эту надпись здесь
Поскольку у меня есть брат-близнец друг-звукорежиссер, то добавлю к предыдущему посту.

Оплата работы — идет за время. Уменьшил скорость из-за освоения нового софта — все равно, что поднял расценки.

Звукорежиссеру очень важна программа, с которой идет работа. Тот самый автоматизм на уровне пальцев. Смена программы — это примерно год-два на освоение на уровне автоматизма. Даже смена версии происходит со скрипом из-за мелких отличий в интерфейсе.

Кроме программы используется набор плагинов, тем или иным способом, обрабатывающих звук. Часть из них купленная, часть — вылеченная «таблеткой от жадности», но в целом этот набор — подороже программы. И опять-таки, переучиться на другой набор — можно, но долго. А для плагинов из имеющегося набора, звукорежиссер просто знает, что при каких положениях ручек, этот набор выдаст.

Железо — очень специфично. Например звуковая карта за $5000 — это всего лишь АЦП, без ЦАП (для ЦАП — вторая звуковуха). Подключается оно по FireWire и предназначено для монтажа в стойку. Поток данных — больше характерен для видео, чем для аудио — 192кГц на 48 бит на 8 каналов.

Сама операционка и комп — не важны. Когда Logic Pro перестал выходить под windows, то проще было сменить железо и устроить hackintosh, чем переходить на другую программу.

Водяное охлаждение… ну или оно, или вытаскивать экран, клавиатуру и мониторы в другую комнату. Водяное — было сделать проще, чем IP-KVM.

Задачки там чудные. Что стоит устройство внутреннего телевидения ради передачи кивка от аккомпаниатора к солисту.

Такого уровня студий — 5-10 в Питере, наверное до 1000 в России. Это же не высший пилотаж, а почти любительская студия.
но при этом доступ этот монопольный — включить песню в VLC и открыть видео в браузере, увы, не получится

Тут вас кто-то обманул. Я, прочтя это, сильно удивился, пошёл запустил видео в vlc, открыл youtube ролик в хроме и включил песню в амароке. Все три источника заиграли одновременно и беспроблемно. Голая alsa.
Ну, то есть kde поверх неё ещё ;)

Насколько я знаю, в kde есть для этого phonon.

НЛО прилетело и опубликовало эту надпись здесь

У меня тоже всё работает безо всяких дурацких надстроек (типа pulseaudio). Единственное назначение pulseaudio — удовлетворить зависимости того плохо написанного софта, который не знает про alsa но знает про pulseaudio (например ms после покупки скайпа быстро его привели к данному состоянию).

Поддерживая gentoo, alsa only. Все работает шикарно на ноуте 12 года

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

Слушайте, но смешно же. Попробуйте уже сами, всё прекрасно выводится, я же написал, что хотя и был уверен, но удивился и специально пошёл проверять — включил vlc, YouTube и amarok.
Зы пришлось отказаться от файрфокса, который не осилил в алса, это менее болезненно, чем лезть в этот кошмар с пульсой.

НЛО прилетело и опубликовало эту надпись здесь

Так микшер входит в пакет ALSA и делает всё то, о чём вы написали "вы несколько недопонимаете зачем нужен общесистемный микшер, каковым и является PulseAudio". Зачем мне выводит напрямую в устройство и иметь проблемы с монопольным доступом, если я могу выводить это через микшер, который уже есть в алсе? И, тк у меня уже есть микшер, зачем мне ещё пульс городить? Вывод из vlc и ютюба спокойно работает "из коробки".

НЛО прилетело и опубликовало эту надпись здесь

Вы на вопрос так и не ответили. Зачем нужен микшер из левой надстройки (pulseaudio), когда микшер есть и без неё?

НЛО прилетело и опубликовало эту надпись здесь
В альсе есть микшер, это модуль dmix, его просто надо настроить. Так что, автору явно ещё матчасть нужно подучить.
Посмотрю, что это такое

Сколько помню, он всегда из коробки работал. Другое дело, что у альсы обычно фиксированная задержка (latency), на встроенном звуке порядка 20-25 мс, а у пульсы она динамическая, вплоть до 0.5 мс. Но там хватает своих проблем, например, если ядро не PREEMPT, даже со всеми реалтаймовыми и высокоприоритетными хаками пульса порой скипает, т.е. буфер опустошается, и слышен щелчок. При этом пульса начинает адаптироваться и увеличивать внутренние вотермарки и минимальную задержку. Если проц был сильно нагружен, то задержка может прыгнуть очень высоко, вплоть до 100-160 мс, и что интересно, механизмов автоматического её снижения, а также задания отличного от 0.5 мс минимума в коде нет, я смотрел (можно задать фиксированную задержку, как в альсе, но динамическая всегда начинается от 0.5). Задержка сбросится только после перезапуска демона.


Я чисто из-за этих трюков собираю собственное ядро с CONFIG_PREEMPT и таймером 1000 Гц, потому что в дебиане 100 Гц без преемптивности. Раньше долго сидел на альсе, но пульса в итоге пролезла везде и победила, да и стримить с ней куда проще, чем городить лупбэки.

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
А вы уверены что что на Windows применяется фильтр НЧ и ВЧ? Просто у меня ноут N550JK и там, ну саб понятно всегда звучит низко, а фронтальные как с сабом, так и без саба звучат абсолютно одинаково. У меня версия драйвера 6.0.1.7250
Я тоже раньше думал, что это сам саб звучит низко, а канал на нем без фильтров. Но когда реально услышал, как саб звучит без бильтров — понял, что НЧ-фильтр точно там есть
Попробуйте всё-таки Jack.
Правда я не думаю что получится сделать с ним такую конфигурацию, как описана в начале поста (хотя qjackctl поддерживает разные скрипты, которые можно запускать при старте/остановке сервера), но вполне вероятно что проблем именно с написанием музыки будет чуть меньше.
По крайней мере, у меня так. Я где-то семь лет уже занимаюсь тем же хобби и 4 года из них с Jack. Не могу сказать что работает он безупречно (его тоже надо настраивать и разные версии могут работать по разному), однако с задачей обрабатывать звук в реальном времени он справляется. А так работаю в Ardour, выходы на аппаратуру переключаю из него же.
Плюс удобная маршрутизация через какую-нибудь Catia есть (в qjackctl тоже можно, но там несколько топорно это сделано, на мой взгляд).
Кроме того, пользуюсь ещё и модулем jack-pulseaudio. Можно создать «мост» через который звук pulseaudio будет поступать в jack (решит задачу «записать звук с колонок», о которой писали в комментариях, правда несколько иным путем, поскольку он не с колонок будет записываться а с приложения, которое будет передавать звук на колонки), и наоборот. В Cadence есть поддержка «мостов» alsa-jack, pulseaudio-jack, alsa-midi и т.д.
Посмотрите этот софт, возможно, он поможет.

Cadence и qjackctl — софт для запуска и конфигурации Jack. Не могу сейчас точно написать (далеко от компьютера), но вроде бы скрипты для запуска и прочего есть только в qjackctl. Но я не уверен.

И ещё, последнее — Jack может здорово забивать свой собственный лог, который, как правило, находится в домашней папке (если вы запускаете его от обычного пользователя, разумеется). Поэтому убедитесь заранее в том, что на диске есть место, и периодически проверяйте размер лога Jack. Я не имею ввиду что так случается постоянно, но у меня раз в 3-4 месяца точно бывает, при том что я работаю с ним по выходным. В моем случае система установлена на ssd (домашний раздел, конечно, тоже), где не очень много места, поэтому лог Jack размером в пару десятков гигабайт иногда приходится удалять.
Возможно, я его просто плохо настроил. Возможно, это его баг. Не задавался этим вопросом, но предупредить, мне кажется, стоит.
Очень не хочется иметь Pulseaudio и JACK одновременно. Особенно если первый нужен, так, как описано здесь) habrahabr.ru/post/343718/#comment_10549216
НЛО прилетело и опубликовало эту надпись здесь
Когда я начну подключать рабочий аппарат, то знаний у меня, конечно, поприбавится — может, даже на продолжение накапает) Я пока(и похоже правильно) решил начать с самого простого — заставить работать ноут.
з.ы. главная проблема тут не в том, как в этом разобраться. Можно и спеку HDA раскурить, и из комментов информацию собрать, на худой конец можно сорцы почитать. Главная проблема — что в этом вообще нужно разбираться.
Может, задокументируй разработчики ALSA, как по их мнению надо настраивать звук по шагам с описанием архитектуры, структуры конфигов, как что и для чего крутить, API, то и проблемы бы никакой не было. А я пока вижу, что клочки информации непроверенной разбросаны повсюду, а мой тикет за 3 недели даже отфутболить никто не берется.
Может, задокументируй вы вот эту процедуру настройки мпдшки, многие люди прошли бы с ее помощью на шаг дальше.
А время, которое я потрачу на разбор, я бы с удовольствием потратил на другие вещи — на разбор того же муз. софта доступного, плагинов и т.д.
НЛО прилетело и опубликовало эту надпись здесь
Монуалов по настройке звука на линуксе нехватает. По мне смотреть ролики в ютубе и общаться по скайпу через пульсу норм, но вот своих любимых альбомов не узнал, они лишились некоторой интонации. А если настроить плеер через alsa, то все ок.
Стал гуглить про настройку звука — там в основном описывается два состояния: звука нет и звук есть. И как перейти от первого ко второму. А о том, что звук может быть, но что-то не очень не заикаются. Более интересная инфа, про тот же существование того же dmix, на LORе, но там все тонет в субъективных и категоричных постах типа «у меня все из коробки нормально пашет, если у тебя не так, значит ты криворук» или «ты че, такой дохера аудиофил? Пульса лучше чистой альсы, не выеживайся». Субъективности очень много, много рецептов плясок с бубном и т.д. Я пытался править некоторые конфиги, типа resample-method, чтобы как-то улучшить ситуёвину, слушаю до сих пор через alsa.
Но я не о том хотел сказать. Все-таки жутко раздражает вся эта субъективность в настройках звука. После того, как я начитался инфы по форумам, я например сам себе не доверяю. Очень нехватает какого-то объективного способа оценить корректность работы со звуковой картой типа RightMark Audio Analyzer, или манула по каким-то объективным замерам на основании которых можно судить о том, хорошо настроено или плохо. Были бы средства диагностики проблем — легче было бы подобрать способ лечения. На хабре есть статья про анализ звука в линуксе через Audiolab M-DAC. Но это дорогая хреновина. И потом, режим BitPrefect говорит о наличии\отсутствии проблем в принципе, а не указывает, где именно кривит.
В общем, если кто знает о том, как производить объективный замер корректности работы звуковухи на линуксе, просьба просветить.
НЛО прилетело и опубликовало эту надпись здесь
Ну, а как это лучше сделать? Чем записать? Использовать что-нибудь консольное, типа arecord или pacat? Или какие-то проги типа QARecord или audacity? Просто боюсь перепутать искажения программы записи с искажениями звука альсы\пульсы? Громкость вообще как на это влияет? Файлы могут получиться разные по продолжительности, как бы их обрезать и потом сравнить? Что-то типа сравнения в тотлкоммандере?
В написании музыки — 0, думаю изучать LMMS или Ardour, поэтому интересно почему по мнению автора с LMMS сложно работать?
Не сложно. В плане сложности как раз все хорошо.
Но там явно есть косяки. Одним из первых приемов, который я проверяю в DAW, является sidechain. И вот LMMS на тесте показал, что sidechain работает плохо — клик присутствует даже на 12мс атаке. На эту тему заведен баг, но пока не починено. А без этого дальше испытывать тулзу вообще смысла не имеет.
Забавно, на днях как раз пытался подключить блютуз-наушники к своему асус-н на убунте. После длительного шаманства музыка все же заиграла, но стабильность примерно никакая. Чтобы отключиться и подключиться опять приходится ресетить девайс целиком. Не знаю можно ли с такими артефактами жить в профессиональной области.
какие все-таки конфиги надо править для правки маппинга портов??

Настраиваю маппинг портов для получения конфигурации 5.1 с трёх портов, которые по-умолчанию сконфигурированы как mic, speaker, line_in.
Конфигурацию hda размещаю по пути:
/lib/firmware/snd-hda-intel.fw
Чтобы она грузилась при старте системы добавляем файл:
/etc/modprobe.d/hda-intel.conf
со следующим содержимым
options snd-hda-intel patch=snd-hda-intel.fw


Изменять настройки без перезагрузки системы возможно через hda-verb (информация о ней есть по вашей же ссылке.


Содержимое snd-hda-intel.fw и что писать с помощью hda-verb можно понять, разобравшись с упомянутым вами HDAAnalyzer-ом.
Я в универе пытался написать прогу, чтобы маппинг можно было через GUI делать, но так и не выложил тогда её никуда (для каждой модели кодека выявляются свои особенности в графе, которые не было просто общим алгоритмом разрулить). Выложил исходники, может запустите на своём кодеке.

Долгое время изучал нюансы вывода звука в Windows, даже полсайта этой теме посвятил. На днях поставил Ubuntu, почитал вот теперь эту статью, и чувствую, что выводу звука в Linux можно посвятить целый отдельный сайт…
Отдельного упоминания стоит квест по подключению в Ubuntu старых (десятилетнтиих) интегрированных аудио карточек. Притом, особую пикантность подключению придает задача не просто поднять звук на локальной машине (наушники и микрофон), а перенаправить их на удаленную виртуальную машину Citrix. Остановился на пробросе только лишь наушников. Микрофон удаленная машина даже не видит… Ubuntu такое ubuntu
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории