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)

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

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

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

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

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

И джюс тут не выход

Да, вот именно. Я вообще не понимаю этого поклонения божественным фреймворкам поверх фреймворков.

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

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

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

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

Но ты же хочешь просто рисовать кнопочки, а не ипать себе моск? Это цена. Универсальные ГИПы универсальны, но тяжелы.

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

Мне больше нравится подход Садко - свой тулкит который может работать поверх всего. Но до этого надо дорасти.

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

Со свингом, если надо, с оттяжечкой где надо

где надо им, а не тебе

с разным велосити для каждого удара

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

хэт не совпадает с бочкой в «0» потому что живой человек очень редко попадает ногой и рукой с разницей в ноль сэмплов

опять же, мидиплагин, фильтруем по note-событию, кидаем задержку сайдчейном

После этого всего мысль брать midi-поток из ГПро etc не кажется привлекательной.

даже с твоим подходом как первая итерация - почему нет, особенно если кто-то уже набил эту партию.

Каминаут - я-то сам набиваю барабаны в DAW изначально, что не отменяет того, что когда приходится работать с чужим материалом - я юзаю «гитарпро» как первичную базу, потому что перенабивать чужие барабаны вручную — неблагодарное дело (и тут вспомнил, как Comfortably numb целиком забил по концертной записи)

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

Мне больше нравится подход Садко - свой тулкит который может работать поверх всего

а он потом такой берёт и глючит в любой непонятной ситуации (например с тайловыми WM)

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

Почему? В чем разница между VSTGUI4 и своим тулкитом при работе с тайловыми WM? Кто гарантирует что любой GUI для аудио плагинов не будет глючить с тайловыми WM? Зачем работать с плагинами и с DAW, где идет плотная работа с мышью, в тайловых WM?

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

а вот барабанную установку я себе домой не могу, и её придётся мышкой

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

Патамучта в припеве, когда певец орёт, бочечку можно немножечко вперёд, а в куплете чуть чуть назад

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

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

Вообще я подумываю о более глобальной задаче - создании header-only тулкита поверх cairo общего назначения, не только для плагинов. Надоела жирнота Qt, «си с классами» на указателях и всякие moc в нем.

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

Почему

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

В чем разница между VSTGUI4

хз, а что его использует?

Кто гарантирует что любой GUI для аудио плагинов не будет глючить с тайловыми WM?

никто не гарантирует, просто условный «любой GUI» обычно имеет больший охват юзеров, чем one-man поделие

Зачем работать с плагинами и с DAW, где идет плотная работа с мышью, в тайловых WM?

максимально занимать рабочее пространство несколькими окнами, например, автоматизировать переключение, да мало ли? В конце концов, что мне, каждый раз, когда надо запустить ardour (который, кстати, отлично работает в тайлинге), перезапускать сессию и страдать?

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

блин, 40 лет, «примерно с меня», а старпёрствуешь как старпёр

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

А в чем эти глюки появляются? Что-то я не могу пока понять, как работа окна плагина должна зависеть от WM. Это просто окно, то что в него рисуется никак не связано с тем какой WM.

хз, а что его использует?

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

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

А в чем эти глюки появляются?

в комбобоксах очень сложно выбрать нужный пункт

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

я тоже не могу, но нативным гуём LSP пользоваться малореально

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

Широкий культурный пласт - это когда Металлика, ДримТеатр или Animals as Leaders.
А когда Вася с Петей в дропе не семиструнах форшмачат под бластбит - говнарство и есть.

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

Так. я читаю фауст и раскручивая их макароны уже запутался. Что делает эта функция?

delay(n,d,x) = x @ min(n, max(0,d));
Это из delay.lib

Я понимаю если бы они просто вытаскивали 'x @ d', или 'x @ n'. Но зачем они берут минимум из 'n' и 'd'? При этом в описании 'd' обязан быть меньше 'n', тоесть, всегда будет использоваться 'd'.

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

В daw и с нуля удобнее чем в условно гитарпро. Кладёшь оригинал в одну дорогу, подбираешь ритм и один-в-один срисовываешь.
Дело привычки

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

Защита от дурака просто, чтобы делай не был отрицательным и не был больше максимума гарантированно.

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

В daw и с нуля удобнее чем в условно гитарпро.

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

Кладёшь оригинал в одну дорогу, подбираешь ритм и один-в-один срисовываешь.

как минимум не будет слышно остальных инструментов

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

Широкий культурный пласт - это когда Металлика, ДримТеатр или Animals as Leaders.

господи, как банально и избито, ты хотя бы Таунсенда да Haken с Leprous вспомнил

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

Кстати, что плохого в дропах (квинтовый строй ваще более тру, Фрипп одобряет), семиструнках и бластбитах?

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

Не восторженно, но хотя бы иметь понятие о.

Чтобы что? Просто прими как данность: никто никому не обязан быть в курсе чего-то там.

В виде исключения послушал часть https://mechanicalpoet.bandcamp.com/album/creepy-tales-for-freaky-children. Ни новых идей, ни неожиданных ходов. Прошло всего пять минут, а я уже не могу вспомнить ни одного риффа, ни одной мелодической фразы, ни одной строчки текста.

Ну и зачем, спрашивается, мне было нужно иметь об этом представление? Даже в тупиковом жанре митола есть команды поинтереснее. Даже при всей вторичности музла у этих команд есть хотя бы классные музыканты (невротиков из 'A Perfect Circle' одно время слушал преимущественно из-за их барабанщика).

Да господи, возьми хоть древний Post-альбом Крупнова с закосом под Металлику в «Семь бед». Глубоко вторичные риффы, но хотя бы интересная подача и стебные тексты. Нет, надо ж обязательно на сложных щах играть прогрессив-митол с таким видом, будто ты как минимум рок-реинкарнация Себастьяныча.

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

Кстати, что плохого в дропах

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

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

а, ну я тут вообще несколько лет не появлялся (до недавнего времени), так что не в курсе

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

https://mechanicalpoet.bandcamp.com/album/creepy-tales-for-freaky-children.

не скажу, что это мой любимый альбом

Даже в тупиковом жанре митола

митол тупиковый не более, чем любой другой жанр (а то и менее большинства)

невротиков из ‘A Perfect Circle’ одно время слушал преимущественно из-за их барабанщика

«Tool - не прог»

Да господи, возьми хоть древний Post-альбом Крупнова с закосом под Металлику в «Семь бед».

разве это не говнарство?

интересная подача и стебные тексты.

а, ну русский рок, да

Нет, надо ж обязательно на сложных щах

MP-то на сложных щах? Ну ооооок…

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

не скажу, что это мой любимый альбом

У меня, извини, уже сил нет слушать какой-то более любимый лично тобой.

митол тупиковый не более, чем любой другой жанр (а то и менее большинства)

Это спорная тема, и не сказать чтоб самая интересная.

разве это не говнарство?

Я не разбираюсь, сорян. Вспомнил что вспомнил из русского — просто потому что недавно переслушивал из соображений ностальгии по юности. Наверное, есть какие-то критерии говнорока, но мне отечественный рок как направление последние NN лет в принципе не интересен, так что жаба может ходить на свидание с гадюкой сколько ей влезет без моего участия :)

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

Почитал. И где жопа? В большом тексте говорится про интерфейс GTK, про YouTube-блоггеров, а про «жопу со звуком в Linux» сказана только одна строчка: «Звуковой стек в Linux – кромешный ад, лучше CoreAudio в макоси пока ничего не придумано».

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

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

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

а некоторые тут воют, что у них на современных компах нихрена не работает

Правда? Ай-яй-яй! Кто же эти бестолковые люди?

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

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

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

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

Хотя кому что нравится, конечно.

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

Ни другие инструменты ни суфлер уже не нужен, когда знаешь, в каком такте что тебе играть

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

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

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

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

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

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

Чего пристал - чего пристал, скучно мне. Лежу, в носу ковыряюсь и ничего нельзя. Можно хоть на лоре поумничать? :)

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

Лежу, в носу ковыряюсь и ничего нельзя

Ну как же это ничего нельзя — вот в носу ковыряешься!

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

Это ж каким нужно быть дегенератом, чтобы поверх alsa или oss натягивать еще один демон?

Я пыщьпыщьаудиофилов презираю не меньше, чем вантузоидов, а также пользователей systemd!

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

Это ж каким нужно быть дегенератом, чтобы поверх alsa или oss натягивать еще один демон?

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

Я пыщьпыщьаудиофилов презираю не меньше, чем вантузоидов, а также пользователей systemd!

Эдик, тебя снова выпустили из палаты?

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

Ну вот я вижу, что ты - осел.

Никогда не встречал проблем с «голой» alsa! Работает, жрать не просит. И не «пыщь-пыщь».

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

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

Но, в любом случае, сейчас UI у LSP Plugins далеко не идеал, и я занят переделыванием TK под новые требования. Но это будет уже в релизе 1.2.0.

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

О, а я и не знал, что zita-convolver не умеет буферы разной длины. Значит, не зря я свой zero-latency convolver в своё время писал, не зря.

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

Именно поэтому я хочу взять от VST3 минимум - интерфейсы для взаимодействия с хостом. Остальное всё - ну нахер. Но руки пока до VST3 не доползли. На другое приходится время тратить.

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