LINUX.ORG.RU
Ответ на: комментарий от ChekPuk

Хочу опенсорс аналог для vim-а, режимы переключать.

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

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

https://yadi.sk/d/sdJSg1oAo-ks8g

https://yadi.sk/d/HXPCJ8ZmgGDSmQ

https://yadi.sk/d/Z_OjkCLfUQvmag

Последний звук на максимальном Level - бас режется.

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

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

То же самое через тюбамп бы :)

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

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

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

и тюбамп с чистой моделью, да? Без подтравливания? Такое ощущение, что не только фуз срезает. Да, третий вариант лучше. (извини, я тут с ночной в ночную, отсыпаюсь, могу пропасть)

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

А нормально звучит ведь
Уже можно альбомы записывать

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

Очередная проблема - с Qtractor поломан GUI плагинов KPP начиная с версии KPP 1.1 - это как раз переход на xcb с xlib.

В чем проблема. Хост, в данном случае QTractоr, передает id своего окна, в котором плагин должен создать дочернее. При создании окна через xlib все получается, через xcb - никак, вылетает ошибка Bad Match. При этом если создать дочернее окно от корневого окна экрана, все работает, но выскакивает отдельное окно, от того специального которое создает QTractor.

В Ardour 5, Ardour 6, Carla все работает с xcb без проблем.

Пока пытаюсь понять, ошибка у меня или у QTractor. Но не могу найти плагины, как ни смешно, которые на xcb.

Вот и LSP у @sadko4u на его тулките, который поверх xlib. Они работают в QTractor нормально.

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

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

И главное, за все это время никто в issues не написал про это. Видимо никто не использует QTractor )))

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

Ого... Блин, вечер уже, а с завтрашнего дня опять смены начинаются. Потерпишь до вторника? Соберу на своём утюге, потестю :)

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

Даю 99% что проблема глобальная, а не у меня. Версия 1.0 то у меня работает и работала.

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

Все чаще хочется убить авторов LV2 спецификации за то что они не запилили в нее графический API и вынуждают удалять гланды через зад и в 2020 году писать GUI на низкоуровневом API в линуксе, долбани его через колено! Это блин далеко даже не WinAPI, а еще намного печальнее.

Вот итог - реализовал диалог выбора файла на xcb+cairo - 600+ строк кода, чтобы выбрать долбаный файл! Для диалога больше кода чем для основного интерфейса плагина с крутилками!

Вот так люди поковыряются, поковыряются да и свалят на винду. Диверсия какая-то.

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

Юниксвей, свобода, вот это всё. И безалаберность. Мне так кажется, я не специалист. А так да. Вроде, как AP пишет, то тут, то там, много чего есть, много чего работает и прямо даже огого как работает. Но всегда есть риск, что именно у тебя, в твоём частном случае, что-то заработает не так, или вообще не заработает.

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

Это да.

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

Если бы не опенсорс, я бы никогда эти плагины не сделал, и даже бы не взялся. Одно только преобразование Фурье, если бы не было опенсорс реализаций, то хрен бы реализовал за разумное время. Пришлось бы покупать поштучно, а потом свой проект продавать поштучно (чтобы окупить), все это считать, учитывать, и не дай бог что нарушить. Весь этот ад вместо того, чтобы просто разрабатывать то что хочешь и использовать разработанное другими, то что тебе нужно.

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

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

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

Прошу прощения, не так часто заглядываю на LOR.

На XCB не пробовал. Но, когда дойду до 1.2.0, это будет сделать не так сложно, благо весь зависящий от Windowing Subsystem Layer вынес в отдельный небольшой репозиторий: https://github.com/sadko4u/lsp-ws-lib

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

Всякие BadMatch’и и BadWindow’ы обычно вылезают из-за несвоевременной синхронизации с X11-сервером. И в XLib они прилетают неожиданно, и не сразу, так что можно заподозрить в сбое не ту операцию обращения к X-серверу. В этом проблема XLib и её дизайна.

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

Все чаще хочется убить авторов LV2 спецификации за то что они не запилили в нее графический API

У меня тоже много критики в сторону Drobilla и его политики относительно LV2. Достаточно почитать мой топик боли вот тут: https://github.com/sadko4u/lsp-plugins/issues/86

Коротко говоря: народ объединил функцию включения плагина в цепь и soft bypass, хотя это как бы совсем две разные функции, где одна управляет цепью эффектов, а другая - просто использованием эффекта в цепи.

Ещё есть пулл-реквест, где предлагают изменение значения порта со стороны плагина инициировать через атомы: https://github.com/lv2/lv2/pull/42

С чем я категорически не согласен и предложил использовать extension interface для этого. Так что если есть желание высказать своё «фи» или одобрение на этот счёт, вэлкам туда.

Но по поводу графического API я всё-таки не соглашусь. Уж сильно он отличается на разных системах (Windows, Linux, MacOS), поэтому ИМХО оставить на откуп разработчику плагинов решать, как будет работать UI, было правильным решением. Другое дело, предоставить какие-то стандартные механизмы вроде выбора файлов и т.п. было бы неплохо, да. Сейчас, вроде, есть уже какой-то черновик для этого в lv2 mailing lists.

Вот итог - реализовал диалог выбора файла на xcb+cairo - 600+ строк кода, чтобы выбрать долбаный файл

Ну мне тоже пришлось писать свой диалог. Жалею ли я об этом? Да нет, просто пришлось один раз время потратить, чтобы потом оно у меня заработало везде там, где надо. Если у вас код переиспользуется, то это не так критично ИМХО.

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

Никогда такого не было, чтобы «просто сесть и сделать».

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

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

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

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

Спасибо за информацию.

можно заподозрить в сбое не ту операцию обращения к X-серверу

Оказалось, что я с неудачными, с точки зрения создания дочернего окна, параметрами вызывал xcb_create_window. Но почему-то это проявлялось только с Qtractor.

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

Уж сильно он отличается на разных системах (Windows, Linux, MacOS), поэтому ИМХО оставить на откуп разработчику плагинов решать, как будет работать UI, было правильным решением.

Моя позиция вот какая. Сейчас мы и так все по сути рисуем интерфейс на уровне примитивов, никак не используя особенности ОС. Так вот, если бы вместо создания дочернего окна через xcb и встраивания его в уже готовое окно хоста, просто предоставлялось бы api для рисования. И вместо cairo с обвязкой на xlib/xcb можно было бы рисовать то же самое через него, в уже готовое окно. Разве это не лучше?

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

Если вы с этой позиции - тогда понятно. Просто не пояснили, и я неправильно понял вашу мысль.

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

Уже сложившемуся бизнесу поддерживать жалкие статистические 2% ПК на Linux совершенно не выгодно, проще забить.

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

То есть, имеем ситуацию, когда Linux, к сожалению, догоняет, а не находится в авангарде.

Однако спасибо отдельным людям и организациям, которые принципиально делают свои решения и под GNU/Linux в том числе. Как говорится, вода камень точит.

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

Проблема здесь в самом понятии «рисовать».

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

Кому-то нужно что-то вроде Cairo. Хотя с моей стороны есть тоже определённая критика в сторону cairo, а именно - нет возможности использовать буферы для рисования примитивов, которые могли бы ускорить работу API.

А кому-то нужно полноценное 3D API вроде openGL/DirectX/Vulkan/Metal (и, опять же, под разными ОС и на разных машинах работает свой набор).

В LSP я использую, в основном, cairo (при этом, все элементы у меня отрисовываются кодом, нет какого-либо специального пререндеринга). Но для отрисовки 3D-сцен мне пришлось реализовывать специальный интерфейс плагинов для UI. В итоге эти плагины могут рендерить переданную им сцену в оффлайн-буфер и передают этот буфер назад в UI по запросу, который уже рендерится поверх cairo.

Так что цель понятна - нарисовать UI - а вот различных способов её достижения масса.

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

Вот так работает, когда visual и window class копируется с родительского окна.

xcb_create_window(win->connection, XCB_COPY_FROM_PARENT,
                    win->win, parentXwindow,
                    0, 0, win->width, win->height, 0, XCB_WINDOW_CLASS_COPY_FROM_PARENT,
                    XCB_COPY_FROM_PARENT, mask, mask_values);

А так нет, видимо из-за несовпадения этих параметров с родительским окном. Вот в этом случае xcb_create_window не создает окно с ошибкой Bad match. Причем - только в Qtractor, с остальными хостами работает.

xcb_create_window(win->connection, XCB_COPY_FROM_PARENT,
      win->win, parentXwindow,
      0, 0, win->width, win->height, 0, XCB_WINDOW_CLASS_INPUT_OUTPUT,
      screen->root_visual, mask, mask_values);
curufinwe ★★★★★
()
Последнее исправление: curufinwe (всего исправлений: 1)
12 сентября 2020 г.

Жэмс! А Жемс? James_Holden!

Я тут опять расчехлил Файста и не врублюсь никак. Не добавляет одного контрола. Сократил максимально, не фурычит, вынес в переменную, всё то же. Вот пример:

import("stdfaust.lib");
gain = hslider("Gain",0.5,0,1,0.01);
process = +~(re.jcrev:+,+:+:*(gain):_);
В чём дело? В онлайн редакторе, глянь, он сам генерит правильную картинку, но при запуске нет крутилки. Чодеить?

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

Хм. Изменил последнюю строку на

process = +~(re.jcrev:+,+:*(gain),*(gain):+);

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

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

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

process = +~(re.jcrev:-,-:*(gain),*(gain):+);

Работает смешивание. Опять изменил на практически то же самое, что и вначале

process = +~(re.jcrev:-,-:+:*(gain));

И контрол появляется. И даже

process = +~(re.jcrev:-,-:+:*(hslider(«Gain»,0.5,0,1,0.01)));

работает. Значит ему не нравились плюсы? Но почему?

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

Он может убирать крутилку если считает что она не на что не влияет. А вот почему в ланном примере не влияет - надо разбираться.

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

У него четыре выхода. Но я разобрался, похоже. Там две пары выходов полностью противоположных, если я их плюсую, то гарантировано получаю ноль, а после ноля и крутить нечего. Это он так оптимизирует. И ещё нервался на проблему в другом месте, когда изменение плюса на минус делало мне из одного выхода пять, а из одного входа четыре. Как???? Пол дня воевал с формулой, плюнул, пошёл гулять :)

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

Привет всем в чатике!

@ist76

Пока Садко занимается созданием драйвера, (что делает его просто эталоном линуксоида, вот так бы каждый - что не работает, то брал и добавлял, вот так же сурово), я решил начать работы по железячному tubeAmp. Медведь в лесу сдох.

Та отладочная плата ADAU1452, что я купил, долго пылилась, но теперь она в строю!

Чтобы разобраться с ее программированием, накидал пару проектов эмуляции усилков, просто задав все фильтры вручную. Зверь машина! Оказалось программировать его весьма просто, для человека который имеет опыт работы с faust. Там почти то же самое все.

Мой «DI box» на макетке, который годами служит мне для подключения гитары во встройку ноутбука, оказалось, прекрасно работает с DSP платой, давая уровень сигнала именно тот что надо.

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

Осталось всего ничего (на самом деле 90% работы) - подружить микроконтроллер STM32 с DSP. Надо реализовать заливку прошивки в DSP с контроллера при включении, и руление параметрами в прошивке DSP, чтобы работали регуляторы громкости, гейна, тембра и т. д.

P. S., персонально для @ist76. Я пока не ощущаю разницы от игры в проц и в плагины по задержке. То есть задержка у проца микроскопическая, должна быть точно меньше 1 ms. Но я не чувствую , что вот теперь то стало круто, а в плагины я страдал.

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

персонально для @ist76. Я пока не ощущаю разницы от игры в проц и в плагины по задержке. То есть задержка у проца микроскопическая, должна быть точно меньше 1 ms. Но я не чувствую , что вот теперь то стало круто, а в плагины я страдал.

Это может быть очень индивидуально, я думаю
Я на фоно никогда не занимался, и поэтому мне задержки связки миди-клавиатура+vst-сэмплер совершенно ничего не ломают (ну и ещё, на клавишах я играю даже хуже, чем на гитарах).
И потом, на Кларете плагины сильно лучше работают, чем на Е-му.
Но всё равно наблюдение такое: я достаточно много записываю. В плагин мне записывать проще, но в результате получается стыд и срам (в смысле пресловутого «попадания в бочку»). С директ-мониторингом я лажу слышу сразу, прямо когда записываю, с плагинами, иногда, нет.

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

Блин... народ... какие же вы все молодцы... А я вчера заковырялся, запутался в параметрах своего плагина, плюнул и уехал опять на море. Умственная деятельность меня переутомляет и я дурю. Даже сегодня штормит, не отошёл ещё... как я вам завидую...

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

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

Куда меня кастовать? Я больной сильно, пришлось даже 7 октября концерт отменять, т.к. нос не дышит, голоса нет. COVID не подтвердился (что хорошо), так что списываем самочувствие на грипп/ОРВИ.

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

вотэтапаварот... Выздоравливай. Так тыещё и больной всем этим занимаешься? А ну болей как полагается! :)

А скастовать - просто предложил переползти сюда. Там человек просто про звук попросил объяснить, а мы развели. А тут своё болото :) Но если хочешь, можно и там продолжать.

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

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

https://github.com/sadko4u/focusrite-scarlett-backports/commit/aa7866ce164ef7ec44723377dcc90a898ee18627

@kott теперь можно тащить в openSUSE Leap 15.2.

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

Ну теперь-то цыферки в студию? :)

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

Понятно, в принципе я так и думал что в этом дело. Допилю проц, и тогда откроются хорошие возможности по записи - можно через него мониторить, а DI посылать в DAW.

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

Ага, реализуй усб звуковуху с возможностью посыла обработанного, необработанного звука и возврат-посыла (для реампа). У мена теперь больше нет возможности отштамповать корпус под напольный «педалборд», к сожалению, так бы я опять приложился к виду твоего железного плагина :)

Если довести до ума, за сколько бы ты взялся собрать мне такую плату? Я бы с удовольствием вложился бы в твой проект.

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

Сейчас это выливается в около 100$. Отладочная DSP 50 баксов на али, плюс аналоговые добавки, кнопки-педали и stm32 плата с графическим дисплеем.

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

Пример - плата DSP 50$ сейчас, а сама микросхема DSP - 7$. Заказная плата, саморазведенная (голая без компонентов) - 5$ за 5 штук. Вот и прикинь, насколько можно удешевить, особенно если мелкими сериями собирать, от 5 экземпляров.

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

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

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