
Yabridge — это самый толковый на сегодняшний день способ использовать VST и CLAP плагины для Windows под Linux. Проблема в том, что последний стабильный Yabridge v5.1.1 пока не работает с версиями Wine выше 9.21, а держать настолько старую версию Wine только ради плагинов — такое себе. К счастью, решается это довольно просто. Я пользуюсь Arch Linux, кстати говоря, и на его примере покажу, как это решить, но пример легко адаптируется под другие дистрибутивы.
Warning
Я не могу сказать, поможет ли вам этот гайд, если вы используете Flatpak. Надеюсь, что принцип действия будет вам понятен, а далее на свой страх и риск. Желаю удачи.
Wine
Системную версию Wine можно смело обновлять до последней, так как нам она не понадобится. Yabridge будет использовать именно v9.21, запускаемую из отдельной директории. Нужно найти пакет с этой версией. Для меня это wine-9.21-1-x86_64.pkg.tar.zst, который можно скачать из архива пакетов дистрибутива. Затем я распаковываю пакет и располагаю файлы в удобном для меня месте:
/home/imyarek/Applications/wine-9.21/
├── bin/
│ ├── function_grep.pl*
│ ├── msidb*
│ ├── msiexec*
│ ├── notepad*
│ ├── regedit*
│ ├── regsvr32*
│ ├── widl*
│ ├── wine*
│ ├── wine-preloader*
│ ├── wine64*
│ ├── wine64-preloader*
│ ├── wineboot*
│ ├── winebuild*
│ ├── winecfg*
│ ├── wineconsole*
│ ├── winecpp -> winegcc*
│ ├── winedbg*
│ ├── winedump*
│ ├── winefile*
│ ├── wineg++ -> winegcc*
│ ├── winegcc*
│ ├── winemaker*
│ ├── winemine*
│ ├── winepath*
│ ├── wineserver*
│ ├── wmc*
│ └── wrc*
├── include/
│ └── wine/
├── lib/
│ ├── binfmt.d/
│ └── wine/
├── lib32/
│ └── wine/
└── share/
├── applications/
├── fontconfig/
├── man/
└── wine/
Префикс
Предполагается, что у вас уже есть отдельный префикс Wine для плагинов, но если нет, погуглите и создайте. Именно к нему, лежащему в своей отдельной директории, будет обращаться Yabridge. Я это делаю через WineGUI и там же, в Edit Machine убираю галочку с “Use System Wine Binary Path” и указываю именно тот Wine v9.21, что лежит в отдельной папке.

Теперь можно устанавливать и удалять, делать бэкапы или быстро устанавливать дополнительные компоненты (например Direct X или что угодно, что делается через winetricks) через WineGUI.
Yabridge
Конфиг Yabridge лежит в ~/.config/yabridgectl/config.toml. В нём нас интересуют только первые строки:
plugin_dirs = [
'/home/imyarek/.local/share/winegui/prefixes/Music/drive_c/Program Files/Common Files/CLAP',
'/home/imyarek/.local/share/winegui/prefixes/Music/drive_c/Program Files/Common Files/VST3',
'/home/imyarek/.local/share/winegui/prefixes/Music/drive_c/Program Files/VstPlugins',
]Здесь указаны мои пути, по которым установлены все плагины. Как видно, располагаются они в отдельном префиксе. Вместо ~ указывайте полный адрес.
Скрипты и меню
Теперь для того, чтобы Yabridge использовал определённую версию Wine и определённый префикс, нужно запускать yabridgectl и любую DAW с соответствующими параметрами окружения. В них-то и вся магия. Для этого я использую скрипты, лежащие в ~/.local/bin/, а то, что лежит в нём, имеет больший приоритет перед файлами с тем же именем в /usr/bin или где-то ещё.
Скрипты
Предположим, вы установили какой-то плагин. Yabridge нужно синхронизировать (подробнее в документации к нему). Для этого у меня есть два скрипта:
yabridge-sync
#!/bin/bash
export WINELOADER="$HOME/Applications/wine-9.21/bin/wine"
export WINEPREFIX="$HOME/.local/share/winegui/prefixes/Music/"
yabridgectl syncyabridge-sync-prune
#!/bin/bash
export WINELOADER="$HOME/Applications/wine-9.21/bin/wine"
export WINEPREFIX="$HOME/.local/share/winegui/prefixes/Music/"
yabridgectl sync --pruneПервый для обычной синхронизации, а второй делает то же, но удаляет отсутствующие плагины.
Далее DAW. У меня это REAPER и Bitwig Studio.
reaper
#!/bin/bash
export WINELOADER="$HOME/Applications/wine-9.21/bin/wine"
export WINEPREFIX="$HOME/.local/share/winegui/prefixes/Music/"
exec /usr/lib/REAPER/reaper "$@"bitwig-studio
#!/bin/bash
export WINELOADER="$HOME/Applications/wine-9.21/bin/wine"
export WINEPREFIX="$HOME/.local/share/winegui/prefixes/Music/"
exec /opt/bitwig-studio/bitwig-studio "$@"
Оба скрипта ведут напрямую к бинарникам этих DAW в местах, куда они установлены. Поправьте все пути по необходимости и не забудьте сделать скрипты исполняемыми.
Меню
Осталось обычное меню запуска. Я уже не первый год неисправимый пользователь KDE, так что делаю это в самой проклятой манеры, тыкая правой кнопкой мыши на кнопку “Пуск” > “Редактировать меню”, затем нахожу там нужные мне DAW и меняю у них строку “Программа” соответственно тому, что в скриптах выше. Логично было бы вписать напрямую адрес бинарника и переменные окружения, как в скриптах, но по какой-то причине это приводит к падению DAW при попытке добавить на дорожку плагин в обёртке Yabridge. Если же просто указать адрес созданных ранее скриптов, всё работает и проекты с обёрнутыми плагинами в них нормально открываются.
Выглядит всё это как-то так:


Можно обойтись и без мыши, напрямую редактируя .desktop-файлы. Выглядит это примерно следующим образом:
~/.local/share/applications/cockos-reaper.desktop
[Desktop Entry]
Categories=Audio;Video;AudioVideo;AudioVideoEditing;Recorder;
Comment=REAPER
Encoding=UTF-8
Exec=/home/imyarek/.local/bin/reaper %F
GenericName=
Icon=cockos-reaper
MimeType=application/x-reaper-theme;application/x-reaper-project-backup;application/x-reaper-project;
Name=REAPER
NoDisplay=false
Path=
PrefersNonDefaultGPU=false
StartupNotify=true
StartupWMClass=REAPER
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=~/.local/share/applications/com.bitwig.BitwigStudio.desktop
[Desktop Entry]
Categories=AudioVideo;Music;Audio;Sequencer;Midi;Mixer;Player;Recorder
Comment=Modern music production and performance
DBusActivatable=false
Exec=/home/imyarek/.local/bin/bitwig-studio
GenericName=Digital Audio Workstation
Icon=com.bitwig.BitwigStudio
Keywords=daw;bitwig;audio;midi
MimeType=application/vnd.bitwig.dawproject;application/bitwig-template;application/bitwig-scene;application/bitwig-remote-controls;application/bitwig-project;application/bitwig-preset;application/bitwig-package;application/bitwig-module;application/bitwig-modulator;application/bitwig-extension;application/bitwig-device;application/bitwig-clip;
Name=Bitwig Studio
NoDisplay=false
Path=
PrefersNonDefaultGPU=false
StartupNotify=true
StartupWMClass=com.bitwig.BitwigStudio
Terminal=false
TerminalOptions=
Type=Application
Version=1.5
X-KDE-SubstituteUID=false
X-KDE-Username=
Опять же, исправьте все пути соответственно вашим.
Откатить изменения
Если вы передумали или Yabridge наконец-то научился работать со свежими версиями Wine, делайте по пунктам:
- Удалите Wine v9.21
- Если используете WineGUI, зайдите в “Edit” нужного префикса и верните галочку на “Use System Wine Binary Path”
- Удалите следующие файлы:
~/.local/bin/yabridge-sync~/.local/bin/yabridge-sync-prune~/.local/bin/reaper~/.local/bin/bitwig-studio
- Исправьте пути запуска DAW в меню на стандартные, находящиеся в
/usr/bin:Exec=/home/imyarek/.local/bin/reaper %F>Exec=/usr/bin/reaper %FExec=/home/imyarek/.local/bin/bitwig-studio>Exec=/usr/bin/bitwig-studio
Tip
Гайд оказался полезен и сэкономил вам время? Замечательно!
Теперь вы можете закинуть мне донат за старания в любом объёме на ваше усмотрение. Заранее спасибо.