DTM on Wine

はじめに

この記事は、

2020年の元日から7日に至るまで、

DTM 環境を NixOS (Linux)に構築する

と言うことをしていて、特に VST を Wine 上で動かすことについてかなりの知見を得られたので、 今回はその辺りの話をまとめて書いて行きたいと思います。

と言う感じで正月明け早々に書いた記事であったんですが、 その後 Wine Prefix がぶっ壊れた関係で Wine Prefixの作り直しを行なって行った結果、 色々と動いてなかったやつが動いたりもしていたので、今回はその辺りを更新しています。

あとここに書いてある内容についての注意点として、その中身は無保証・自己責任であるのと、 時々書き漏らしている内容などもあるため、全部が全部、正しい内容が書かれているとは限りません。

また Wine で動作するソフトウェアについては Wine のバージョンによって動いたり動かなかったりもするため、その辺りについても注意が必要だと思います。

環境(2020-03-05)

  • NixOS kernel 4.19.107
  • Wine-staging 5.0

Wine Prefix の構成

基本的には、

  • オーソライザかソフトウェアベンダ毎に分ける
  • オーソライザが共通の場合には一つにまとめる
  • あと 32bit plugin と 64bit plugin も分ける

と言う感じで Wine Prefix を分けています。

ちなみに具体例で言うと、これは:

  • iLok 認証なプラグインは一つの Wine Prefix にまとめる
  • それ以外は KORG とか IK Multimedia などのベンダで分ける
  • あと古い 32bit プラグインは 64bit の Wine Prefix とは別にする

と言う感じです。

利用する Wine VST Bridge について

基本的に自分の環境では、

と言う辺りを適宜使い分けています。

まー他の Linux 環境だと基本的には LinVST か Carla だけで事足りるとは思うんですが、 自分は NixOS と言う若干特殊な Linux を使っていて、 Wine VST Bridge を行なうソフトウェアが動いたり動かなかったりするのでこういう構成になっています。

オーソライザ毎の Workaround

iLok

まず iLok の場合、Wine staging 5.0 では特に DLL Overrides をしなくても動くんですが、 iLok のドングルを認識させる方法が(たぶん)無いっぽく、iLok 認証を行うソフトウェアでは、 基本的にソフトウェア認証だけに頼る事となります。

そのため Wine Prefix が壊れたなどで iLok が起動しなくなるとライセンスがふっ飛ぶ恐れがあるので、 その点には注意して出来れば確実に復元できる方法でバックアップを取りましょう。

また iLok の入った Wine Prefix を別マシンに動かす際には、 認証したライセンスを Deactivate してから動かさないと、 たぶん認証が弾かれて死ぬと思います。ただやったことないんで正確なところは分かりませんが。

eLicenser

eLicenser の場合 workaround がめっちゃ面倒なんですが一応は動きます。

とは言え、一応起動するのを確認できたプラグインは

  • HALion Sonic SE 3

と言う無償のやつだけなんで、他の eLicenser 認証を要求するプラグインが動作するかは分かりませんが、 eLicenser 自体は下記の方法で動きます。

1. eLicenser をインストールする

まず普通に eLicenser を Wine Prefix にインストールします。

なお、この際 winetricks で vcrun2015dotnet45 辺りをインストールしておくと良いかもしれません。

2. Software eLicenser のシリアルを生成する

本来、この処理はインストーラー内部で行われるはずなんですが、 wine だとその辺りが上手く動かないため、ここは自分の手で手当する必要があります。

なお、コマンドのサンプルとしては、

$ wine drive_c/Program\ Files\ \(x86\)/eLicenser/POS/SYNSOPOS.EXE /RegSel

と言う感じです。

3. eLicenser で使いたいソフトウェアのライセンス認証を通す

これは eLicenser 認証が要求されるソフトウェアを使う手順と同じなんですが、 Wine 上で動かす際の注意点として、これを先にやっておかないと、 少なくとも HALion Sonic SE 3 はエラーも吐かずに起動が途中で止まります。

4. プラグインを動かす前に eLCC.exe を起動しておく

この辺り自分も微妙に勘違いしてたことなんですが、eLicenser を使う HALion Sonic SE3 を使う際には、 eLicenser のソフトウェア(eLCC.exe) を起動した状態で プラグインを起動しないと、 DCOM 周りのエラーが出てプラグインが死にます。

なお前回のこの記事を修正した際にはレジストリ云々の記述をしていたんですが、 結果としてこれは必要なく、 単に eLCC.exe を起動しておくだけで eLicenser 認証が必要なソフトウェアが動きます。

4. 使いたいソフトウェアプラグインを動かす

と言うことで事前準備はおしまいなので、 linvst とか carla などの Wine VST Bridge が出来るソフトウェアを使って、 プラグインを読み込ませましょう。

Native Instruments の Native Access

まず Native Instruments の Native Access は、 インストールの際に Wine Prefix の Windows バージョンが Windows 10 でないと、 インストーラーがISO ファイルをマウントするドライバをインストールしだして詰まります。

次に Native Access の起動ですが、Native Access は wine における dwrite が有効だと、 起動時に画面が真っ黒にしかならない上に、そのままアプリケーションがクラッシュして死ぬため、 Native Access の起動時には winecfg か何かを使ってdwrite を一時的に無効化する必要があります。

また Native Access を用いたプラグインのインストールもインストーラーが ISO ファイルをダウンロードし、 それをマウントして ISO イメージ内のインストーラーを起動する、と言うスタイルを取っているため、 ISO ファイルをダウンロードすること以外についての自動インストールは全部失敗します。

そのためこれについての Workaround は、

  1. Native Access に ISO ファイルをダウンロードさせる
  2. ISO ファイルの中身をすべて同じディレクトリなど取り出す
  3. 取り出したインストーラーで Wine Prefix にプラグインを入れる
  4. 最後に Native Access を起動し直してアクティベーションを通す

と言う感じになります。面倒ですね。

そして最後に dwrite の設定については、 Native Access の起動時以外では元に戻しておかないと(たぶん)プラグインが動作しません。

IK Multimedia の Authorizer

普通に何もしなくとも動くんで、特に workaround は必要ありません。

ただ、Sample Tank 4 とかインストールがクッソめんどいんで、 時間のある時にインストール作業をしないと作業的に死にます。

KORG Gadgets の Authorizer

まず KORG Gadgets for Windows のアクティベーションは、 スマーフォンアプリなどで有りそうな専用 URL Scheme を認証用アプリで開いて認証させる、 と言う方法を取っているので、 wine だとその辺りが上手く動かずに手作業でその辺りを手当する必要があります

それでそのための Workaround としては、

  1. KORG Gadgets のプラグインを立ち上げてライセンス認証画面を出す
  2. ライセンス認証画面からブラウザを開き、Network Inspector を表示する
  3. Network Inspector を開いた状態で KORG にログインしリダイレクト先 URL をメモ
  4. GadgetAuthorizer.exe を先のURLを引数にして起動
  5. その後ライセンス認証画面が推移するのでシリアルを入力して認証させる

と言う感じの作業が必要となります。面倒ですね。

プラグイン毎の Workaround や注意点

HALion Sonic SE 3.1.10

まずこのプラグインはインストール時に winetricks で dotnet40d3dcompiler_47 辺りを入れてないと、 インストーラーが起動せずにインストールできません。

またインストールには成功しても、

  • Standalone アプリの Form Control が正常に表示されない
  • HALion Library Manager が正常に動作しない
  • あと最新の 3.4 系だとそもそもインストーラーが動かない

と言う感じで使いモノにならないため、HALion Sonic SE 3 を実用するのはスッパリと諦めた方が良いです。

DAW 毎の注意点

Bitwig Studio 3 for Linux

これは何が原因でそう言う事がおきるのかは良く分かってないのですが、 Linux Native な Bitwig Studio 3 は LinVST を使った Windows プラグインの読み込みの際に、

KORG や IK Multimedia などを読み込むとGUI が出ずにプラグインが死ぬ

と言うトラブルがプラグインによって出たり出なかったりするので、これの Workaround としては、

VST Host となる VST プラグインを Bitwig Studio との 間に挟む

と言う事が必要となります。なので面倒と言えば面倒。

FL Studio 20 on Wine

基本的には大体動くんですが、32bit の wineasio を有効にしていると、 FL Studio が 32bit の wineasio を使おうとした際にフリーズして死にます。 そのため FL Studio を動かす際には 32bit wineasio は厳禁です。

また 64bit な FL Studio では 64bit から 32bit への bridge が動かないらしい (これは winehq の AppDB に書いてあった)ので、その辺りも注意する必要があります。

あと VST Plugin と FL Studio の Wine Prefix を分離とかしていると、 そのままでは Wine Prefix 間でのプラグインの共有が出来ないので、この辺りについては

と言うプラグインで Jack Audio を経由してなんとかしています。

それと FL Studio を Wine で動かす際には winetricks で corefonts を入れておかないと 画面のフォントが全部表示されずに詰みます。

その他

なお、自分が使ってる NixOS での定義ファイルは、

nixos-configurations/overlays at master · nyarla/nixos-configurations

My configuration.nix files for NixOS. Contribute to nyarla/nixos-confi...

https://github.com/nyarla/nixos-configurations/tree/master/overlays

にだいたい入っているので、参考にしたい方は上記リポジトリを直接参照してください。

nyarla が大体に記述

Scrapbox でコメントや意見を書く