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

Разница не в «откуда» миди, а какое оно
В супе комплектом идёт библиотека грувов, набитых живыми барабанщиками. Со свингом, если надо, с оттяжечкой где надо, с разным велосити для каждого удара, хэт не совпадает с бочкой в «0» потому что живой человек очень редко попадает ногой и рукой с разницей в ноль сэмплов. См. фото https://1drv.ms/u/s!As_8MDK-AUkY6hM8Bk2A1Zq4paPK?e=pqsHcf
Я не знаю, как в туксгитаре, а в ГПро ты с такой детализацией партию не нарисуешь. А то, что нарисуешь, ;bdjcnm. будет напоминать игру мега-барабанщика по имени Yamaha RX-5. Группу Кино хорошо каверить.

Ровно такая же фигня и с басом из ГПро. Теоретически, в Контакте можно сделать очень хороший бас, который будет звучать лучше чем настоящий, но криворукий (как я) басист. Но всю артикуляцию, все позиции, слайды, скрипы, придётся писать вручную, миди-сигналами. Примерно так - https://youtu.be/ODsDKtyR02w

После этого всего мысль брать midi-поток из ГПро etc не кажется привлекательной. Как источник midi, daw однозначно может больше и лучше. Плюсы ГПро, это простота и читабельность а не гибкость.

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

едва начавшаяся работа над MuseScore. По которой, кстати, заметно, сколько идей он хочет притащить из Dorico

Я не большой знаток mscore (dorico разок видел в ютубе), но пока принципиально нового не видно. Видимо, всю силу этого дизайнера мы увидим позже, ждём, очень нужный софт, хотя, для чего-то серьёзного всё равно lilypond пока что.

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

Наверное ты пытался двигать не настоящую паузу, а ту хрень, которая до набора в пустом такте, ЕМНИП она не ведёт себя как музыка или графика, но на паузу похожа :-)

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

Что вы там все такое изображаете кажные пять шездесятчетвёртых в 13/8 такте? Что вам не живётся просто с басочком записанным по ладочкам? В миксе половины бульканий не слышно. Да, мелизмы это круто. Слэп и подстукивания - это круто, но совсем в другой музыке. А в Кине и пр. нужно просто чтобы он попадал хотя бы в музыку :)

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

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

По которой, кстати, заметно, сколько идей он хочет притащить из Dorico.

Говорят, что в Musescore-4 увидим его работу, там же говорят, что Dorico – огонь! Интересно пипец.

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

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

И, тогда, что характерно, хорошо набитый СупериорДруммер будет звучать даже лучше, чем плохо записанный настоящий Уася

Если нет возможности записать хорошо гитару или бас и нет миди клавиатуры

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

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

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

Nickelback

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

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

Не вижу смысла продолжать этот спор. У тебя какая-то своя особая правда.

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

А теперь идём включать моск. Скорость звука конечна и ощутима. 335 м/с примерно. В мс это 0.335/мс. Т.е. 30 см за 1 мс. Получается так, что из двух «проф-музыкантов», тот, что стоит чуть сзади должен будет жаловаться на задержку сильнее. Только по тому, что струна к уху дальше чем наушник. И идеальная задержка – это расстояние между струной и ухом. Тогда даже самые жирные школьники не заметят задержки, но будут врать, что она есть.

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

Я не Пушной, живу в многоквартирном доме
Жена и дети, как раз, простят и поймут, соседи уже точно нет

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

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

А если серьёзно - сейчас, получается, именно живые барабаны для записи самое сложное

Да нафиг, драм-машина наше всё. И нет ничего плохого в ней. Куортон всё своё на драм-машине делал и ничего.

Ну или дорогущие электрнонные (снять гараж/студию дешевле).

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

Ты, видимо, как-то по особенному любишь Кино, даже бочечки какие-то там различаешь. Но Кино это не про музыку, это про движуху тех лет. А музыка - это Pat Metheny, Zakk Wilde, Иван Смирнов и тому подобное. Ты где-то очень не там бочечки ищешь. От того тебе без смещений и скушно :)

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

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

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

Музыка - это такая медитация. «Скучно», «Весело» это вообще не о том.
Играешь и погружаешься себе в транс.

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

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

Iron_Bug ★★★★★
()

А по-моему Jack это замечательная идея. Возможность так сопрягать разные приложения просто победа. И carla, которая превращает каждый плагин в отдельную Jack сущность. Это очень хорошая индивидуальная фишка линукса.

А вот идеи объединения Jack и pulse мне кажутся утопичными.

@ChekPuk, а что ты думаешь о PipeWire?

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

Есть смутные подозрения, что это блоатваре называется Ardour :))

Шутка, если что. Но в каждой шутке есть доля шутки.

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

Я не могу понять, что этот пайпвайр делает. Его постоянно притягивает в систему по зависимости, но я ни разу не видел его работающим. Пока не о чем судить.

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

Джек - классная штука, когда он работает а не трещит. Нужен, да. И особенно приятно, когда джек у меня запущен на одной карте, а пульса на другой и они друг другу не мешают.

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

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

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

Pat Metheny

Это же как раз музыка для двух-трех задротов по версии анонимуса :)

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

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

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

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

Не до того было. Да и сейчас условий нет. Как отойду, возьму новую карту да и всё. И уже второй день пытаюсь расчехлить Фауста, пока читаю туториалы, вспоминаю что там где, хочу крутой сольник сделать, как с Садко говорили.

Вопрос к тебе. Как бы устроить в фаусте проигрывание пробного сэмпла? есть у него /usr/share/faust/soundfiles.lib - там, вроде, описано как сэмплы проигрывать, но онлайн редактор не знает о таких конструктах, а попытка компилировать пример списанный из этой либы грохается с дикими ошибками, то ли выпилили soundfile, то ли описание устарело.

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

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

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

Выкинь свою микроволновку (или на чём ты там линукс запускаешь) и подбери на той же помойке хотя бы Core 2 Duo какой.

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

Не компилируется.

Наверное она еще не готова. В документации только три не самодостаточные функции описаны.

Ты же семплер хочешь сделать?

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

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

Не, мне просто проигрывать пробный сэмпл при запуске в онлайн редакторе. В смысле, я работаю над эффектом в фаустовском онлайн редакторе (https://fausteditor.grame.fr/index.html). Чтобы проверить на лету эффект мне нужно пробный сэмпл воспроизводить. Тут или каждый раз через джек коммутировать плеер с файрфоксом, или просто по нажатию кнопки воспроизводить пробный сэмпл прямо в плагине.

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

Лучше коммутируй через джек, через фауст насколько я понимаю нормально этого не сделать пока. В онлайн редакторе так точно.

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

Странно. Раньше (много наркозов назад) я как-то делал сэмплы и пользовался, как мне кажется, именно soundfile. Может это в моей голове опять всё смешалось...

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

У них в копирайте написано 2018-2020, не похоже что это старая библиотека.

Слушай, а как в винде в этот онлайн фауст звук подают?

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

? не знаю. Я виндой не пользуюсь :) Туда микрофонный звук через браузер подаётся. Но мне это не подходит. Я стучал-стучал по микрофону, навертел звук, вроде, который подходит, скомпилил, врубил в daw, скормил сэмпл сольника - такая лажищща...

ChekPuk ★★★
()

Еще выскажу несколько в тему звука линукс - не линукс.

Сейчас собираю VST3 версию плагинов под линукс, дошли руки доделать наконец, и по сравнению с LV2 это не очень радостно. VST3 SDK тянет горы мусора. Ему зачем-то понадобилось gtkmm, и даже sqlite. И сам VST3 фреймворк это довольно тяжелая библиотека на C++, которая компилирутся в несколько раз дольше самих плагинов, и встаивается статически(!!!) в плагины. Статически! На линуксе.

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

Против этого - LV2, который просто набор хедеров на C. Он вообще не компилируется отдельно, это хедеры :) В результате все красиво, легко и быстро.

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

И все это под убунтой, с ее наркоманской пакетной системой, разбивающей одну сущность на пятьсот пакетиков, идиотскими *-dev пакетами и имбецильными добавлениями циферок 1, 2 к названию пакета без всякой предсказуемости.

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

если не заморачиваться с мордами, то lv2 и даже ladspa рулит простотой.

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

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

Перечитай внимательнее
В супе грувы набивал именно человек. Вернее, разные люди. Поэтому - не «как».

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

При чём здесь догмы? В одном случае ты сам наколотишь буратино-стайл, сугубо в сетку: сильная - бочка, слабая - рабочий,восьмушки хэтом. Звучит, в результате, как сраное караоке. В другом, подбираешь подходящие грувы по 8-16 тактов набитые специально обученным человеком, который знает, в каком месте по чайне можно стукнуть, в каком - по крэшу и который этим всю жизнь занимался. Конечно, если электронщину сочинять, это всё нафиг не нужно. А если хочется, чтобы хоть немного было похоже на сыгранное живыми людьми, то лучше использовать действительно сыгранное живыми людьми.

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