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)

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

И не про коммутации, а сохранение разных штуков в разных прогах. И открытие также.

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

Наверное, все это и не взлетит. Потому что начинает напоминать концепции BeOS уже. То есть такая утопия, ОС которой нет.

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

Почему у нас ненужно тогда?

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

Меж тем создатель и бывший мейнтейнер джека сказал следующее:

I still think JACK is an incredibly cool idea, if I say so myself...

...One problem with JACK is that it means that you have what some people would call a modular setup. You got a bunch of distinct programs talking to each other. You don't have any really good way to save the state of all the programs at once. We had attempts and they are not bad. But it's still nowhere near as convenient as using a single program that has everything happening inside of it.

And that creates an environment for a lot of users that, I think, is much more complicated than what they really want. Even the basic idea of JACK for a lot of new users, when they have to deal with that as the first thing they have to deal with… It's just not an obvious concept to them...

...Now, when you get deeply into it, when you are really involved in pro audio workflows and stuff, you start to understand, like, «Oh man, this JACK thing is actually really cool for some things». But it's really not something you want to put in the path of a person who's just starting out using this kind of software.

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

Про того, кто официально продавать это будет. Надо же, как бэ, лицензия.

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

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

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

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

А вообще его идея о том чтобы убить сложные возможности в угоду упрощению для новичков

Ты можешь процитировать, где он говорит про убийство сложных возможностей?

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

А потом упрощатели скажут что C++ сложна, надо писать плагины на всякой параше, чтобы их писало больше людей и их было больше. И побегу под KPP покупать 16-ядерник. А так и будет - я тут пробовал свои плагины в javascript-варианте, у меня ноут даже один kpp_bluedream не тянул.

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

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

А если никто не будет использовать - оно само и отомрет (это уже мой прогноз).

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

А на каждую проблему с jack будут отвечать - а ты не используй его.

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

он говорит что надо советовать новичкам не использовать jack

Нет, он говорит, что он лично не советует. Без обобщений, которые ты ему приписываешь :)

Не будет стимула улучшать jack

Ой, да ладно. Все 18 лет развития джека прошли у меня на глазах. Времени и возможностей было полно.

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

Впилить сохранялку прямо в джек - цены бы ему небыло. Однако сильно разрастаться в приложениях тоже не особо хорошо. Например, в современной daw я нажимаю на такой-то дорожке на такой-то эффект и точно знаю что откроется. А если закрою - то оно спрячется и не будет составлять путаницы. А если я из daw кину петлю во внешний хост или сэмплер, или инт, и для каждого канала насоздаю окнов - то через пять минут я перестану понимать какое окно к какому каналу относится. Тоесть, даже если запилить сохранялку сессий, то каши и макаронов со стола это не уберёт. Сомнительная польза. Поэтому всё и тяготеет к плагинам внутри daw. И заметь, раньше это называли секвенсорами, а теперь именно DAW. Рабочая среда внутри приложения, а не юниксвейное однозадачие.

Это же происходит, кстати, и с клавишными. Куда делись навороченные станции? Ушли в комп, в DAW.

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

Это же происходит, кстати, и с клавишными. Куда делись навороченные станции?

Никуда не делись. Корг стабильно выпускает модификации Krome и Kronos. В прошлом году запилили аранжировщик Pa1000.

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

Извиняюсь за оффтоп, просто тут спросить быстрее. Сейчас скачал и поставил последний гимп на десятку, а там - только английский интерфейс и на другие не переключается. У вас там бага не было такого последнее время?

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

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

Вот, кстати, только сегодня смотрел про ролландовский fa-08, там подтвердили мои мысли про дижитали воркстэйшоны на пианинах.

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

А, ну сам фауст нагенерировал? Странно. Ведь у тебя там не так и сложно в блюдриме. Может проблема в том КАК они это генерировали, или в самом педалборде их? Я сложные фаустовские примеры в html компилил, не тормозило ничего. Даже в fft.

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

А потом упрощатели скажут что C++ сложна, надо писать плагины на всякой параше

так ведь C++ тоже параша, только ещё и незаслуженно переусложнённая

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

а там - только английский интерфейс и на другие не переключается. У вас там бага не было такого последнее время?

Вроде бы (вроде бы) это завязано на интерфейс gtk
Его надо переключить в конфиге gtk где-то в хомяке, но это не точно. У меня наоборот было - поставил гимп, а интерфейс на русском. Я чуть умом не помешался. Покопай на эту тему.

p.s. вот, посмотри в
C:/Documents and Settings/All Users/Application Data/gtk-3.0/settings.ini
C:/Documents and Settings/username/Local Settings/Application Data/gtk-3.0/settings.ini

или в вокруг

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

не, абсолютно другая манера общения, ты шо

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

это её единственный плюс

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

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

ОК, а «на другие не переключается» значит что именно? Не раскрывается список с языками? Или раскрывается и даёт выбрать, но переключения после перезапуска программы не происходит?

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

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

Но работать это должно без костылей, из коробки.

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

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

Мало того, для разработчика есть ещё одно весомое преимущество: плагин запускается именно как приложение. Иными словами, можно спокойно дебажить написанный код как локальное приложения, без необходимости запускать хост, в который загружать плагин, потом подцепляться удалённо через gdb и дебажить, что там происходит.

Быстро, просто, эффективно. Скорость разработки вырастает в разы.

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

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

Либо просто забили, т.к. слишком мелкая рыба для Steinberg.

Но это пока Steinberg к ним не постучится.

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

А пока получается, что FalkTX своё, sadko4u своё, всякие Полы Дэвисы во главе с Прокудиными вообще третье…

Так а что в этом плохого?

У нас что, VST плагины под винду совместно всеми компаниями выпускаются? Или AAX/RTAS под MacOS по такому принципу делаются? Нет, тут каждый занимает свою нишу.

FalkTX занимается хостом для плагинов и что-то в последнее время мутит для MOD Devices. Я делаю инструменты, которые крайне необходимы при микшировании треков в DAW. Hermann Meyer концентрирует внимание непосредственно на гитарных эффектах. Paul Davis и Robin Gareus пилят DAW.

Каждый занят своим делом и никто друг другу не мешает. Мало того, всегда за помощью можно обратиться в #lv2 либо #ardour.

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

мальчик, тебе сколько годиков(еее, эйджизом на марше!)? наверное не сильно больше, чем DX(i)?

А DX(i) вообще какие-нибудь сурьёзные компании, разрабатывающие плагины, продают вообще? Или есть помельче компании, которые на этом специализируются? Нет? Значит, стандарт скорее мёртв чем жив.

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

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

Вы только что изобрели Non-Session-Manager?

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

Если писать в духе «Си с классами» - то далеко не параша. Просто не надо всякое говно типа Boost и STL использовать - и будет вам счастье.

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

FalkTX занимается хостом для плагинов и что-то в последнее время мутит для MOD Devices.

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

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

А потом упрощатели скажут что C++ сложна, надо писать плагины на всякой параше, чтобы их писало больше людей и их было больше

Я уже повидал аудиософт на Java и на Go. И это системы, которые, как бы, должны с риалтаймом работать :facepalm:. Не хватало ещё аудиоплагинов на питоне. Вот это будет окончательный зашквар.

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

Я уже повидал аудиософт на Java и на Go.

на питоне

ну сорта же

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

Если писать в духе «Си с классами» - то далеко не параша.

так ведь Си (даже без классов) - тоже самое и есть

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

А DX(i) вообще какие-нибудь сурьёзные компании, разрабатывающие плагины, продают вообще?

ну, лет 15 назад вполне себе продавали наравне с встями

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

ну сам DSP на питоне я тоже не очень представляю, а вот «высокоурвневые» скрипты внутри DAW и на lua(в сабже об этом есть) и на питоне пишут и юзают

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

Сервер jack. Как и с плагинами - хост управляет.

А там это есть? Я не большой специалист по джеку, но что если параллельно работающие приложения с разной задержкой будут?

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

FalkTX пишет dpf, которым никто не пользуется, потому что, например, sadko4u пишет свой велосипед, потому что Paul Davis пишет такую daw, которая ломает гуи плагинам так, а rncbc пишет daw, который ломает гуи сяк. И надо лавировать и изобретать велосипед каждому, отдельно, потому что а как же иначе полёт гения?

А потом я пишу плагин на фаусте, а он уже, оказывается, морду для lv2 на кутях не генерирует, мол, кути больше не котируются, всё везде поломано, пиши морду сам. Всю одну неповторимую кнопочку bypass с dbmeter, потому что воспользоваться существующими наработками гуёв FalkTX и sadko4u - непонятно, что они там навертели, а в гуях я ничего не понимаю, а стандартного решения нет ибо свобода у нас от стандартов.

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

Хе-хе, видел тут компьютерчик Maximite2 - народ счастлив, что армовского процессора зватает на то, чтобы изобразить подобие стритфайтера на бейсике, мол, до чего дошёл прогресс. И я с ними согласен - нахрен все эти векторы, авэиксы, спекулятивные чего-тотам... Я хочу просто, скриптовенько написать логику работы моего приложения. Мне плевать на низкоуровневую составляющую, она должна автоматически всё оптимизировать. Фауст - очень хороший пример того, куда должны идти технологии, я пишу логику, а остальное должно автоматом генерироваться. Иначе - наворотили наворотов каждый в свой огород, а я, чтобы написать одну сраную кнопочку должен перемолоть все эти ваши фреймворки-хунеймворки и выяснить какой из них в данный конкретный момент подойдёт мне хуже всего. Вместо написания логики я должен изучать реализации всякой левой, абсолютно не интересной понебени. А хочется включить комп и начать «for a = 0 to 10 print hello»

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

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

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

вот в LV2 как раз вашпе нет стандарта даже де-факто, в отличие от VST, но относительно новые - чаще DPF используют
либо свои велосипеды: LSP, Gx

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