LoginSignup
7
5

More than 3 years have passed since last update.

LinuxでVOCALOIDを歌わせる

Last updated at Posted at 2019-11-18

はじめに

LinuxでもVOCALOIDに歌わせられると聞いたが,やってみたら古い記事しかなくてハマったので書いておきます.

概要

LinuxでWindows向けのソフトを使用するために Wine を使います.また,VOCALOIDのエディタであるPiapro StudioはVSTプラグインです.VSTプラグインを開くために VSTホスト というものが必要なので,今回は dssi-vst を使用します.

環境

Ubuntu 18.04.3 LTS (UbuntuStudio)
VOCALOID4 鏡音リン・レン
Piapro Studio VSTi 2.0.4.3

方法

VOCALOIDをインストール

VOCALOIDを買ってきましょう.

  1. Windows用のDVDをセットします.
    RinRen/Crypton Software Installer (32bit)/setup.exeWine で開いてインストールしてください. 32ビット バージョンなので,間違えないようにしましょう.

  2. RinRen/RINLEN V4X Installer/setup.exeWine で開いてインストールしてください.

  3. ~/.wine/drive_c/Program Files (x86)/VOCALOID4/Activator/Activate4.exeWine で開いてアクティベートします.

dssi-vstでPiapro Studioを使えるようにする

  1. GitHubからdssi-vstをインストールします.

  2. ライブラリをインストールします.
    何も考えずに以下をターミナルにコピペしてください.

$ sudo apt install -y libasound2-dev lib32z1-dev liblo-dev wine32-tools ; sudo apt install -y libjack-dev:i386 ; sudo cp /usr/lib/i386-linux-gnu/libjack.a libjack.a.bkup ; sudo cp /usr/lib/i386-linux-gnu/libjack.so libjack.so.bkup ; sudo apt install -y libjack-dev ; sudo mv libjack.so.bkup /usr/lib/i386-linux-gnu/libjack.so ; sudo mv libjack.a.bkup /usr/lib/i386-linux-gnu/libjack.a ;

このコマンドで何をやっているかというと...

必要なライブラリをインストールしています.libasound2-dev lib32z1-dev liblo-dev wine32-tools libjack-devが必要です.

ただし,libjack-devは32bitのライブラリを残しつつ64bitバージョンをインストールしています.まず32bitバージョン(libjack-dev:i386)をインストールし,ライブラリを一旦カレントディレクトリにコピーします.次に64bitバージョンをインストールしますがこの際に32bitバージョンは削除されます.そして,コピーしておいた32bitのライブラリを元の場所に戻します.

最後に$ sudo makeでコンパイル,$ sudo make installでLinuxにインストールします.

エラー: 「bits/c++config.h: そのようなファイルやディレクトリはありません」が出たら...
In file included from dssi-vst-scanner.cpp:10:
/usr/include/c++/9/iostream:38:10: fatal error: bits/c++config.h: そのようなファイルやディレクトリはありません
   38 | #include <bits/c++config.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
winegcc: g++ failed
make: *** [Makefile:78: dssi-vst-scanner.wine.o] エラー 2

上のようなエラーが出た人は以下のコマンドを実行してからmakeでコンパイルを試してみてください.

sudo apt-get install -y gcc-multilib g++-multilib

実行

$ env WINEPREFIX=/home/USERNAME/.wine VST_PATH='/home/USERNAME/.wine/drive_c/Program Files (x86)/Vstplugins/' WINE_RT=15 WINE_SVRT=10 vsthost 'Piapro*Studio*VSTi.dll'

USERNAMEのところは適切に書き換えてください.
上記コマンドで実行できますが,デスクトップエントリも作っておきましょう.以下のファイル~/.local/share/applications/PiaproStudio.desktopを作成すると,アプリケーションを検索できるようになります.

~/.local/share/applications/PiaproStudio.desktop
[Desktop Entry]
Name=Piapro Studio
GenericName=Piapro Studio VSTi
Comment=VOCALOID4 Editor  
Exec=env WINEPREFIX=env WINEPREFIX=/home/USERNAME/.wine VST_PATH='/home/USERNAME/.wine/drive_c/Program Files (x86)/Vstplugins/' WINE_RT=15 WINE_SVRT=10 vsthost 'Piapro*Studio*VSTi.dll'
Icon=/home/USERNAME/.wine/drive_c/Program Files (x86)/Crypton/Piapro Studio VSTi/Data/images/icon/notification/PPS48.png
Terminal=false
Type=Application
Categories=AudioVideo;   

ハマった箇所

この章は読み飛ばしてもらって構いません.

主に64bitか32bitかでハマりました

主に64bitか32bitかでハマりました.aptでインストールするときに:i386をつけると32bitバージョンがインストールできるようです.また,aptで64bitバージョンと32bitバージョンを同時にインストールしようとすると片方が削除されてしまいます.

まず,.h: No such file or directoryというエラーは必要なライブラリをインストールしていないことによるものでした.

m32をつけて32bitで.oファイルを作ったのに64bitでリンクしようとすると以下のようなエラーが出ました.

ld: 形式 elf32-i386 (/usr/lib/i386-linux-gnu/wine/libwinecrt0.a(exe_entry.o)) から形式 elf64-x86-64 (dssi-vst-scanner.iGjSnK.o) への再配置を伴う再配置可能リンクはサポートされていません

sudo apt install wine32-toolsをしないと以下のようなエラーが出ます.64bitバージョンがインストールされているときも同じようになりました.

wineg++ -m64 dssi-vst-scanner.wine.o libremoteplugin.wine.a -m64 -L/lib/x86_64-linux-gnu -L/usr/lib -L/usr/lib/wine -L/usr/lib/x86_64-linux-gnu/wine -lpthread -lrt -lz  -o dssi-vst-scanner.exe
/usr/bin/ld: -ladvapi32 が見つかりません
/usr/bin/ld: -luser32 が見つかりません
/usr/bin/ld: -lwinecrt0 が見つかりません
/usr/bin/ld: -lkernel32 が見つかりません
/usr/bin/ld: -lntdll が見つかりません
/usr/bin/ld: -lwine が見つかりません
collect2: error: ld returned 1 exit status

sudo apt install libjack-devで64bitのlibjackをインストールすると,以下のようなエラーが出ました.

wineg++ -m32 dssi-vst-server.wine.o libremoteplugin.wine.a -m32 -L/lib/i386-linux-gnu -L/usr/lib32 -L/usr/lib32/wine -L/usr/lib/i386-linux-gnu/wine -lpthread -lrt -lz  -ljack -o dssi-vst-server.exe
/usr/bin/ld: 互換性のないを //usr/lib/x86_64-linux-gnu/libjack.so スキップしました (-ljack を探索している時)
/usr/bin/ld: 互換性のないを //usr/lib/x86_64-linux-gnu/libjack.a スキップしました (-ljack を探索している時)
/usr/bin/ld: -ljack が見つかりません
collect2: error: ld returned 1 exit status

かと言って,sudo apt install libjack-dev:i386で32bitのlibjackをインストールすると,以下のようなエラーが出ます.

No package 'jack' found
g++ remotevstclient.o vsthost.o libremoteplugin.unix.a  -lpthread -lrt -lz  -o vsthost
vsthost.o: 関数 `jackProcess(unsigned int, void*)' 内:
vsthost.cpp:(.text+0x94): `jack_port_get_buffer' に対する定義されていない参照です

32bitのライブラリを残しつつ,64bitライブラリをインストールすることで解決できました.

VSTホストFST(FreeST) というのも代表的なのですが,コンパイルできませんでした.これも32bitのglibがないのが原因と思われます.必要そうなライブラリをインストールしてコンパイルすると,以下のようなエラーが出ました.

/usr/include/glib-2.0/glib/gmacros.h:142:29: error: size of array ‘_GStaticAssertCompileTimeAssertion_0’ is negative

終わりに

これで,Linux上でVOCALOIDが歌ってくれます.DAWと同期する方法は現在模索中です.

参考

WineHQ: Applications by Yamaha
dssi-vst
GitHub: falkTX/dssi-vst
雑メモ: dssi-vst のインストール(Ubuntu Studio 8.04)

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5