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 sync
  • yabridge-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, делайте по пунктам:

  1. Удалите Wine v9.21
  2. Если используете WineGUI, зайдите в “Edit” нужного префикса и верните галочку на “Use System Wine Binary Path”
  3. Удалите следующие файлы:
    • ~/.local/bin/yabridge-sync
    • ~/.local/bin/yabridge-sync-prune
    • ~/.local/bin/reaper
    • ~/.local/bin/bitwig-studio
  4. Исправьте пути запуска DAW в меню на стандартные, находящиеся в /usr/bin:
    • Exec=/home/imyarek/.local/bin/reaper %F > Exec=/usr/bin/reaper %F
    • Exec=/home/imyarek/.local/bin/bitwig-studio > Exec=/usr/bin/bitwig-studio

Tip

Гайд оказался полезен и сэкономил вам время? Замечательно!

Теперь вы можете закинуть мне донат за старания в любом объёме на ваше усмотрение. Заранее спасибо.