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)

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

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

огромное количество коммерческого аудиософта продаётся «за еду»

В СПО такой возможности практически нет

эмм, есть, просто нужно делать нормальный продукт

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

Музыканту надо музыку писать, а не разбираться, под какой лицензией ты ему компрессор написал.

музыкант купил гитару и делает с ней что хочет, а вот с софтом несостыковочка выходит

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

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

ммм, незачем, юзаю джек без всей этой свистопляски много лет

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

Нет, закрытость приложений вообще не при чём. Представь себе студию, где отдельно запущен секвенсор, драммашина, сэмплеры, эффекты, всё это отдельно. Как это всё сохранить? Ladish так и не доделали. Он хрен проссышь как работает. И это главное, что сдерживает опенсорсный звук на линуксе - там всегда надо самому что-то настраивать, коммутировать, сохранять, а хочется врубить и играть. В результате на линуксе копаются со звуком (почти) только экспериментаторы, которым джек и вся эта размазня по отдельным приложениям - манна небесная (очень круто, в смысле).

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

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

Как ты себе представляешь вендорлок при том, что vst работает примерно везде?

А так, что VST это не часть WinAPI, а огороженный стандарт одной фирмы. И чтобы ему соответствовать, надо согласовывать лицензию, интерфейсы, доступные API, используемые библиотеки и фреймворки, возможности и функции своего приложения с тем что предлагает Steinberg. И даже среду разработки надо согласовывать. Попробуйте собрать VST3 плагин под винду не в Visual Studio. Это вендор лок в чистом виде.

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

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

Дай угадаю, не лаптоп, да? И никаких наушников в usb никогда не подключал и не обламывался, внезапно, тому, что звук не переключается на них, а надо перенастраивать джек? И внешнюю звуковуху «на лету» не втыкал, чтобы в неё поиграть, а то лаптоповская встройка и фонит и буффера ей зверские нужны, чтобы не иксрунила? И за разрядом батареи не наблюдал, как джек её буквально съедает, да? Легко вам в бункерах живётся :)

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

Дай угадаю, не лаптоп, да?

и он тоже

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

эмм, подключал

И за разрядом батареи не наблюдал, как джек её буквально съедает, да?

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

а то лаптоповская встройка и фонит

а на что может влиять фон лэптоповской встройки? на «послушать» качество вполне приемлемое, гитару втыкать в совмещённый разъём - надо быть особенным дебилом, записывать с ноута на аналоговый носитель как бы тоже нет смысла

Легко вам в бункерах живётся

отлично

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

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

вспомнил Kontakt и заплакал, NI - мудаки

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

Как это всё сохранить?

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

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

Ну не знаю, я вот не могу в винде врубить DAW и играть. Там надо настраивать еще больше.

Была бы возможность не плагины делать, а «инкапсулировать» приложения в одно мегаприложение

Для этого нужно две вещи - советская власть и электрификация всей страныjack и возможность встраивать окна в окна другого процесса. Первое уже есть, со вторым напряг.

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

И за разрядом батареи не наблюдал, как джек её буквально съедает, да?

Вот кстати да, есть такая проблема.

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

Конкретно VST и апликухи на винде практически все проприетарные, да. Но принцип по которому они работают стандартизирован, что и позволяет интегрировать всё во всё. У них даже в vst можно vst встроить. И сохранять весь проект одним щелчком. Это МЕГАкруто. А на линуксе - у каждого своя морзянка, договориться никак не могут. То работает только с gtkшными плагинами, то только с qtшными, то только со своей встроенной обработкой.

Я, вот, попробовал вчера собрал muse. Так там настройка liquidsfz работает только через мусевские контролы, в результате нет диалога выбора файла банка сэмплов (знакомая проблема?). А всё разброд, шатания и недоделанность. Включили бы выбор файлов в стандарт контролов и примитивов lv2, проблем стало бы меньше, но за столько лет никто не озаботился. Вот такого VST не допускает. Проприетарность тут не при чём, тут люди целенаправленно занимаются разработкой нужностей. А уж потом только обвешивают блоатварями и ценник вывешивают.

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

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

ну, всё как в хардварной студии, шо не так?

Но пока мы мучаемся и метаемся между ladspa, dssi, lv2, vst

а, чё? кто метается? пользователю похрен - он установил пакет и пользуется

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

кнопочка «сделать хорошо» это хорошо, но музыкантам она редко помогает

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

То работает только с gtkшными плагинами, то только с qtшными, то только со своей встроенной обработкой.

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

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

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

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

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

А кем стандартизирован? Разработчик ОС - Microsoft, а не штейнберг. А от microsoft я что-то стандарта на аудио-плагины не вижу. И VST что-то в WinAPI не входит. То есть это не стандарт де-юре, а стандарт де-факто. Просто все обделались, а штейнберг нет. Но, во-первых, сама винда тат не причем - если бы гипотетически Cubase выпускался с того же времени, но только под линукс, он бы точно так же посадил всех на VST под линуксом, по причине отсутствия конкурентоспособных альтернатив.

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

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

Я не разделяю такого оптимизма. Мое мнение спорное, но оно такое - ничего для людей они не делают. А делают для денег. А для людей получается тогда, когда эти цели пересекаются.

А кто не согласен, пусть сначала объяснит запрет на VST2 с точки зрения пользы для людей.

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

Вот про советскую власть ты правильно задвинул. Нужна централизованная разработка. А пока получается, что FalkTX своё, sadko4u своё, всякие Полы Дэвисы во главе с Прокудиными вообще третье... Даже своего, опенсорсного, трушного обмена данными между dawами и сэмплерами нету. Есть объедки с барского стола - sf2, sfz и пр.

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

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

Никакие любые ты не запускаешь. Это технически невозможно.

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

Даже своего, опенсорсного, трушного обмена данными между dawами и сэмплерами нету.

А что там у проприетастов, оно есть?

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

покажи, мол, какая у те система, какие настройки и каким софтом пишесси

*бунта 18.04 с кхстудиёй, настройки (джека) обычно дефолтные(реально, не помню, когда последний раз настраивал чтото), использую Ardour, Carla и Muse (как секвенсырь для барабанов)

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

Понятия не имею, я просто спросил, без иронии.

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

А от microsoft я что-то стандарта на аудио-плагины не вижу.

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

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

Даже своего, опенсорсного, трушного обмена данными между dawами и сэмплерами нету. Есть объедки с барского стола - sf2, sfz и пр.

ЯННП. Какими конкретно данными? При чем тут сэмплеры?

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

Так блин. Тогда подлинную историю создания jack надо рассказывать иначе - у нас нет плагинов типа vst, поэтому давайте сразу запилим rewire.

И к чему тогда «ненужность» jack, если у штейнберга оно было за 10 лет до и есть поныне. В винде же нужно. Почему у нас ненужно тогда?

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

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

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

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

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

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

Вот серьезно - достаточно в jack добавить хранилище произвольных данных, сигналы «сохранить настройки», «восстановить настройки», «показать окно GUI» - и можно вместо плагинов standalone приложения делать. Хорошо это тем, что не будет проблем с фремворками, не будет проблем с тем что плагин крашась сносит все остальное нахрен, и не будет проблем с отладкой. Да, попробуйте-ка отладить плагин.

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

А какой набор барабанов у меня в Hydrogen знать не знает.

а вот Ardour про настройки linuxsampler знает, например

anonymous
()
Ответ на: обойдёсси от anonymous

Ну так почему этот стандарт никто не использует, а все использую VST? Что, жесткая рука (в пику зоопарку линукса) облажалась таки?

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

И к чему тогда «ненужность» jack, если у штейнберга оно было за 10 лет

Положим, за 4 максимум, а не за 10.

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

Нужно для очень специфических юзкейсов типа записи выхлопа vcv rack в ардур. И то станет ненужно с выходом vcv rack в vst.

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

Ну так почему этот стандарт никто не использует, а все использую VST?

я хз, мне, как пользователю, абсолютно пофиг, я юзаю и ladspa, и lv2, и vst, и даже один dssi (whysynth)

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

я хз, мне, как пользователю, абсолютно пофиг, я юзаю и ladspa, и lv2, и vst, и даже один dssi (whysynth)

В винде? Не верю.

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

Сэмплеры на линуксе тоже каждый в свой стандарт работают. Одни понимают буржуйский sf2, другие буржуйский sfz, а открытые - драмгизмо имеет свой, неповторимый формат, они абсолютно никак не могли договориться с Гидрогеном и запилить что-то вместе. У Руича тоже свои стандарты на samplv1 и весь набор абсолютно неоригинальных плагинов с уникальным форматом хранения данных. Так понятнее? Синты - мне нужна синусоида с такими-то атакой, спадом и пр. Ну никак нельзя сделать один описательный (расширяемый под разные имплеменации) формат алгоритма осциляторов и пилосинусоидов, которые в каждом синте одинаковые. Формат хранения данных в dav-ах тоже мог бы быть. Но его нет.

И сессию джековую никак нельзя обкультурить, чтобы запустил я все приложения как мне надо и сохранил бы их не каждое отдельно, а в Qjackctl, например, кнопочку Save As «My super session for saving world from COVID» нажать бы и сохранить и закрыть сессию и чтобы все апликухи закрылись. И открыть эту сессию и чтобы все приложения сами запустились бы с правильными настройками «каждый во своём чину».

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

Сэмплеры на линуксе тоже каждый в свой стандарт работают.

это классика для сэмплеров, ващет, не только на линуксе

Одни понимают буржуйский sf2, другие буржуйский sfz

linuxsampler понимает оба, ещё и gig (ископаемый, но шо поделать)

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

у авторов Drumgizmo NIH, гидроген тоже в текущем состоянии не пригоден ни на что серьёзное

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

Вот такое на заре звукозаписи в линуксе было. Помнятся всякие Цицилии, всякие однодорожечные секвенсоры, которые запускались кучей. Если пройтись по старым спискам софта по звуку, найдёшь много такого. Даже первый «гитарный процессор» был кучей чего-то на экране.

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

Оно отслеживает только коммутацию. А какой набор барабанов у меня в Hydrogen знать не знает.

Ты не поверишь, но для всего этого и придумывались разные там LADISH, LASH, NSM и еще чертова туча извращений.

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

Прекрасное описание коммутиации в джеке, я считаю :)

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

Так ведь, в ардуре пока с VST3 не того?

https://github.com/Ardour/ardour/commits/vst3

В каком тогда vst выйдет vcv rack?

VCV Rack for DAWs will be available as a 64-bit VST2 plugin for around $99 shortly after Rack v2 is released around Jan-Feb 2020. VST3/AU/AAX/LV2 versions might be released afterwards, but this is not yet confirmed.

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

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

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