LINUX.ORG.RU

Ardour, JACK и что делать с жопой под названием «звуковой стек Linux»

 ,


2

3

У меня тут вышло большое интервью с Полом Дэвисом (главный разработчик Ardour и бывший разработчик JACK) в двух частях.

Можно слушать как подкаст, можно читать отредактированную расшифровку на английском.

Первая часть: http://libregraphicsworld.org/blog/entry/podcast-ep-002-paul-davis-on-the-deep-rewrite-of-ardour-daw

Вторая часть: http://libregraphicsworld.org/blog/entry/podcast-ep-003-paul-davis-on-fixing-big-linux-audio-issues

Переводить на русский целиком я задолбаюсь, поэтому главные тезисы:

  • Некоторые пользователи не заинтересованы в ковырянии кода, они хотят чтоб как в Reaper – пишешь плагин на Lua, которые меняет вообще что угодно. Но в рипер Lua встроили явно на очень раннем этапе, сделать похожее в Ardour сейчас уже технологически сложно, поэтому покрытие API в привязках Lua хоть и расширяется, но ряд ограничений останется.

  • Последние несколько лет команда грохнула огромное количество времени на рефакторинг кода и переписывание реализации некоторых ключевых концепций в программе. На момент выпуска версии 6 остались два момента, которые отложены: более точная работа с перескоком между музыкальным временем и выборками (разработчики пока не договорились о ряде моментов в реализации) и встроенный лупинг. В остальном, переписанную часть можно больше не трогать ещё лет 10. Там есть, например, фундамент для запланированной возможности смены частоты сэмплирования на лету без перекодирования.

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

  • В последние годы проект понемногу уходит от применения GTK. Сейчас тулкит используется для всего нескольких вещей: упаковка виджетов на форме, файловые диалоги, текстовый ввод и виджет дерева (treeview). Остальное рисуется на Cairo. Если бы Пол начинал писать DAW сейчас, он бы выбрал готовый специализированный тулкит вроде JUCE. Переписывать виджет текстового ввода он, например, в принципе не возьмётся – масштаб такой работы часто недооценивается, там можно вообще концы отдать. А вот упаковка виджетов на constrained layout – в планах. На момент выхода второй части интервью уже есть ветка, где ведется эта работа.

  • Пол недавно упоминал, что общается с Мартином Кири (Tantacrul), который в прошлом году вышел на работу UX-дизайнером MuseScore (у Мартина популярный блог на ютубе, где он разбирает косяки в юзабилити программ для набора нот с применением фокус-групп пользователей). На прямой вопрос Пол ответил, что пока ничего конкретного сказать не может, но выразил восхищение работой Мартина и заметил, что нужно быть просто тупым, чтобы не хотеть слушать инсайты пользователей, которые работают с твоим софтом впервые.

  • Звуковой стек в Linux – кромешный ад, лучше CoreAudio в макоси пока ничего не придумано. Но в macOS несколько релизов назад часть функциональности убрали в user space демон. Примерно тот же принцип получается при сопряжении ALSA и PipeWire. Автор PipeWire вроде как прислушивается к тому, что ему говорят парни, пишущие звуковой софт, поэтому есть некоторая надежда сделать ситуацию не такой печальной.

  • У Пола накопился ряд претензий к JACK, который он сам же когда-то и создал. Особенно не нравится JACK2, который написан совсем другими людьми. В какой-то момент Пол сложил с себя все полномочия мейнтейнера и с тех пор пребывает в счастливом неведении, что там вообще происходит. Поддержку JACK из программы никто не выпилит, но пользователям Ardour он советует пользоваться бэкендом ALSA, при использовании которого всё просто работает.

  • OMF и AAF – хреновые форматы для обмена проектами, добавлением их поддержки в команде никто не хочет заниматься. Есть некий интерес к OpenTimelineIO, но надо смотреть более предметно.

  • VCV Rack – офигенный проект, Пол признается, что вынужден себя режимить каждый раз, когда запускает этот синтезатор, иначе может играться просто часами (в перерыве между выходами двух частей подкаста я ему с подачи @ist76 показал SOLAR 50, и Пол за полвечера накидал похожий софтовый аналог в Рэке). Сейчас модулей для Rack вдвое больше, чем LV2-плагинов, хотя проекту всего три года, а LV2 – уже больше десятка лет. Сказалась идея на старте прибить гвоздями модули к ровно одному, но очень мощному синтезатору, и убрать у разработчика сложный выбор, на каком тулките писать GUI. Перенести этот опыт на LV2 априори невозможно, но в последнее время выручают фреймворки, с которыми можно генерировать плагины в любом формате (т.е. под любой популярный API). Это заметно улучшает ситуацию со скоростью разработки и доступностью плагинов.

  • Mixbus как единственный успешный коммерческий отпрыск Ardour выжил потому, что разработчики а) на старте не имели проблем с GPL (Solid State Logic сломались уже на этом), б) приняли подход команды к разработке GUI (на этом погорели Waves Audio со своим Tracks Live), в) оказались готовыми интегрироваться в процесс разработки Ardour (тут Waves тоже нишмагли – в какой-то момент кодовые базы безвозвратно разошлись).

★★★★★

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

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

Я был молод и мне были нужны деньги. Сейчас бы я так не сделал, конечно. Просто «Интерфейс».

AP ★★★★★
() автор топика

И не напоминай мне про этот ужас. Ardour + Jack - ну и приснится же такое! Только ImpulseTracker + pulseaudio. Оно хотя бы как-то работает.

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

Умеет ли ваш ASIO в коммуникацию между приложениями как Jackd?

Нет. А зачем? У нас в пределах любого из десятков DAW отлично уживаются и одновременно запущенные сэмплеры (типа Kontakt и Superior Drummer) и VST-синты, и посыл-возврат midi-потока внутрь и наружу на отдельные железные устройства и непосредственно звуковой поток с реалтайм-обработкой. На венде и макоси это просто ни к чему, всё-всё работает в пределах daw как vst/au

Ну да, нельзя включить отдельно гитарриг, отдельно рипер и послать звук с гитаррига в рипер. Но можно запустить гитарриг прямо в рипере.

Единственное, приходящее в голову применение такому - из гитарпро в DAW отправлять звук. Но нахрена это надо?

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

Какая сетевая прозрачность в студии звукозаписи?
А для серьёзной работы на больших площадках - Dante.

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

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

Но у нас обоих есть быстрый интернет и я могу просто по сети записать его голос, через какой-нибудь netjack или jacktrip. У меня будет Ardour, а у него просто микрофон и Jackd.

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

Но у нас обоих есть быстрый интернет и я могу просто по сети записать его голос, через какой-нибудь netjack или jacktrip.

Интернет-то у вас быстрый, а задержка до Австралии и обратно у вас какая будет?
Непонятно, зачем тут сеть, зачем тут это всё. Посылаешь ему куски фильма, под которые надо наговорить текст, сразу с субтитрами. Или ссылку на ютуб с этими кусками. Он у себя спокойно наговаривает в микрофон, присылает тебе запись, ты кладешь на видео или куда там тебе надо.
Для этого достаточно простейшей программы записи, типа «диктофон».
Более того, он таки может просто наговорить что он там хотел прямо в микрофон смартфона и прямо со смартфона тебе отправить. Для этого вообще никакой ни jack ни asio не нужен.

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

и что, с джеком это работает, пробовали? есть ninjam, jamulus для таких вещей

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

Тот же Рипер. И др. Да, среди опенсорса можно быть королём, просто потому что полуконкурентов две штуки. Но он же не для того консоли свои делает? Ему же их кормить чем-то надо, а для этого уже дааавно не достаточно быть просто dav'ом.

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

Про Австралию я пошутил.

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

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

Я как человек своими ушами слышавший кучу всяких фандаб озвучек говорю.

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

как, например, без jackd обеспечить сетевую прозрачность

Ставь пшшаудио ^_^

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

Но он же не для того консоли свои делает? Ему же их кормить чем-то надо,

Кто «он»? Какие консоли? Что значит «кормить»?

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

Харрисоновские консоли же. Или он с ними не связан? У меня каша в голове. А кормить - звукорежам же теперь не достаточно морды к микшеру, им надо нечто посерьёзнее. Вот и Ардор для этого, не?

Ладно, видимо мне и дальше надо молчать, туман.

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

Пол не работает над Миксбасом и не сидит на зарплате у Харрисон.

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

Не вижу там никакой опечатки.

Сорян, это я криво прочитал. Два раза подряд.

Пол там рассказывает, что GTK не рассчитан на применение паттерна Model-View-Control, поэтому нормально работает для среднестатистических десктопных приложений, но не очень годится для сложных типа Ardour.

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

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

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

Удваиваю. Несколько лет назад созрел до такого же решения и доволен.

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

лёжа под нарькозом

Это ты так свой алкоголизм называешь?

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

И как мне через голую Alsa соединять к входу Ardour выход других приложений? Или как, например, без jackd обеспечить сетевую прозрачность, которую так любят хвалить фанаты Х11?

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

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

Так его ещё и как-то по-особенному запускать надо? Т.е. просто запустить DAW и записывать музыку, как в венде и какоси нельзя, надо опять в конфиги лезть.

Справедливости ради, на РММ треды по твикам системы, АСИО и DAW собирают тысячи комментариев. Там тоже не всё так просто.

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

По твикам, а не по «как вообще заставить работать»
Вот тут выше пример был - пдф-ка на оффсайте Зума «что делать если нет звука в DAW» и решение - верните в настройках буфера с 64 сэмплов в более человеческое значение. Это при том, что после установки драйвера, подозреваю, там не 64. Т.е. это решение для рукосуев, которые уже выставили 64 и у них звук пропал. Хотя, от зума любой фигни ожидать можно.
Ну а так, да, в идеале, надо отключить все вайфаи, обновления, удалить весь софт кроме DAW. Обычно работает и без этого, это всё для совсем перфекционистов (если не сказать другое, обидное слово).

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

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

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

вы повыкиньте у себя всякий жирногном и прочее и не будет задержек

Какие глубочайшие познания в предметной области!

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

А то!
Третью неделю задержка - это жирный гном виноват.

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

Revo5.1, Juli@, Emu0404, Clarett 2 - все они отлично у меня работали и работают в ASIO, а в Jack даже банальная 0404 не завелась.

с Jack вообще без проблем работали:

SB Live 5.1 (не помню уже конкретную модель), Emu0404 (PCI), Mia Midi, Esi Juli@(PCI), M-audio delta 1010LT

Единственная проблема с ОЧОЧ была с тем, что в железке через одно место была организована работа с 24-битным звуком, потому ALSA-шный драйвер дуплексно поддерживал только 16.

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

Единственное, что есть хорошего в Muse - редактор перкуссии, в остальном он не нужен

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

Единственное, приходящее в голову применение такому - из гитарпро в DAW отправлять звук. Но нахрена это надо?

как тебе сказать… чтобы при необходимости правки табулатуры не нужно было лезть в отдельную софтину, править, ждать, когда оно перерендериться, переимпортировать треки итп. В tuxguitar же с поддержкой jack transport - милое дело.

Ах, да, Guitar Pro для профессиональной работы со звуком - говно

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

Больше 3 мс. Для проф.работы это критично.

  • даже 5-6мс вполне достаточно для живой игры, а для записи во всех нормальных DAW (в т.ч. в сабже) есть компенсация задержек ( ну и вообще, у нормальных карт есть директ мониторинг)
anonymous
()
Ответ на: комментарий от anonymous

Зачем вообще в нормальную daw посылать звук из условного гитарпро? Партии синтов и ударки удобнее и быстрее делать в самой daw, а грубо сэмплированные бас/гитара оттуда звучат как дно при любом раскладе.

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

5-6мс, это очень оптимистично
Мерять задержку хорошо бы вообще снаружи, двумя микрофонами
В один дать щелчок, вторым засечь, когда щелчок выйдет, после всего тракта из колонки
И посмотреть: вдруг буфер 3мс, а реальный лаг, внезапно, 8
Вот будет неожиданность!

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

Зачем вообще в нормальную daw посылать звук из условного гитарпро? Партии синтов и ударки удобнее и быстрее делать в самой daw, а грубо сэмплированные бас/гитара оттуда звучат как дно при любом раскладе.

Итеративно перезаписывать, очевидно.

Потому что обычный воркфлоу типикал пользователя GP, которому надо (пере)записать всё вживую, это боль и страдание. Погугли количество запросов «guitar pro rewire, guitar pro daw synchronization» итп, мб удивишься. Я мало знаю «композиторов», которые не изменяют партии в процессе записи.

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

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

в Tuxguitar - незачем, там достаточно синкануть через Jack Transport и всё. Гитарпра же ничего подобного не поддерживает, потому при любом изменении приходится экспортировать из гитарпры и переимпортировать в daw.

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

Мерять задержку хорошо бы вообще снаружи, двумя микрофонами

зачем такие усложнения? просто выход ко входу соединить и всё

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

Что перезаписывать, я не понимаю?
Что такое «перезаписывать гитарпро вживую»? Это редактор табулатур со встроенной проигрывалкой, как и зачем его перезаписывать вживую?

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

Итеративно перезаписывать, очевидно.

А можно послушать пример музыки, написанной при помощи записи выхлопа туксгитара?

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

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

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

А я так делал первые пару треков - для баса
С известным результатом

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

вы повыкиньте у себя всякий жирногном и прочее и не будет задержек.

Дык и не сижу на нем, нафиг надо. А задержки - тема известная, старая.

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

А можно послушать пример музыки, написанной при помощи записи выхлопа туксгитара?

Дядь Саш, ты не выспался сегодня, штоле?

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

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

Внешнее измерение исключает любые возможные компенсации по определению.

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

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

Оно не внешнее, источник всё равно карта и приёмник тоже карта

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

И зачем это (записывать игру под туксгитаре) нужно, если не секрет? Или метроном/супериор/трек с живым барабанщиком в 2020ом году уже слишком по-старперски?

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

Оно не внешнее, источник всё равно карта и приёмник тоже карта

Только карта про это ничего не знает, она отдаёт сигнал во внешний мир и принимает сигнал из внешнего мира.

И зачем это (записывать игру под туксгитаре) нужно, если не секрет?

Ну, тут несколько плюсов:

— лажу сразу слышно

— если что-то меняется, можно тут же подправить табулатуру на актуальную

— Можно кидать барабанные и клавишные дороги по миди на нормальные сэмплеры/синты, так что звук подложки сразу будет как надо.

метроном

я предпочитаю записываться под полноценные партии

супериор

выше ответил, не отменяет

трек с живым барабанщиком

Ты поди найди этого живого барабанщика на каждое изменение в песне.

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