0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【MIDI/音ゲー】Linux Mint/UbuntuのWineHQでWindowsアプリSynthesiaを起動する

Last updated at Posted at 2022-03-07

Linux Mint 20.3 / Ubuntu Studio 20.04 でMIDIを鳴らすことができたのでSynthesiaで遊びます。ついでに、Synthesiaを簡単に起動できるようシェルスクリプトを作成し、シンボリックリンク(ショートカット)をデスクトップにおいてみました。

短く言うと

「WineHQ(Synthesia)」→「TiMidity++」→「PulseAudio」→「ALSA」→発音
となるように設定します。

「Download Synthesia」からzip版のSynthesiaをダウンロードして/opt ディレクトリに展開します。

次にTiMidity++がWineHQ(Synthesia)からのMIDIデータを受け取れるように起動/設定します。

Terminal
timidity -iAD -B2,8 -Os1l -A100 -s 44100 -x'soundfont /usr/share/sounds/sf2/default-GM.sf2 order=1'

WineHQでSynthesiaを起動します。

Terminal
wine /opt/Synthesia-10.8/Synthesia.exe 

※ちなみに、SynthesiaをWineHQから削除するには

Terminal
wine uninstaller 

はじめに

※省略

今回の環境

Synthesiaをダウンロード

zip版「Synthesia 10.8 for Windows(zip package)」をダウンロードします。

今回はinstaller版を使用しません。

※installer版で自動生成される「Synthesia.desktop1」のExecが複雑すぎるため。

「Download Synthesia」からzip版のSynthesia(Synthesia-10.8.zip)をダウンロードして/opt ディレクトリに展開します。

Terminal
sudo unzip ~/Downloads/Synthesia-10.8.zip -d /opt/

lsコマンドを使うと以下のように表示されます。

Terminal
ls /opt/Synthesia-10.8/
Synthesia.exe  bassmidi.dll  readme.html      vcruntime140.dll
bass.dll       msvcp140.dll  vccorlib140.dll  win10-midi.dll

TiMidity++を起動

コマンドを用い、TiMidity++をデーモンモードで起動/設定します。

以下のコマンドでTiMidity++を起動/設定し、WineHQ(Synthesia)からのMIDIデータを受け取れるようにします。

Terminal
timidity -iAD -B2,8 -Os1l -A100 -s 44100 -x'soundfont /usr/share/sounds/sf2/default-GM.sf2 order=1'

WineHQでSynthesiaを起動

コマンドを用い、WineHQでSynthesiaを起動します。

Terminal
wine /opt/Synthesia-10.8/Synthesia.exe 

シェルスクリプトを作成

「TiMidity++起動」→「Synthesia起動」をシェルスクリプトにします。

完成したシェルスクリプトを自動開始させれば、ログイン直後にSynthesiaが立ち上がります。

「サービス・プロセスの起動確認するシェルスクリプト」を参考にして作ったシェルスクリプト2を修正して「play_synthesia.sh」を作成します。

Terminal
sudo vi /opt/Synthesia-10.8/play_synthesia.sh
#!/bin/bash

ProcessName=timidity
SynthVersion=10.8
MIDIVolume=100
# MIDIVolume=800,100a

# timidity++が起動していない→起動 / 起動している→そのまま次に進む

count=`ps -ef | grep $ProcessName | grep -v grep | wc -l`
if [ $count = 0 ]; then
  echo "!!!!!!!!!!!!!!!!!"
  echo "$ProcessName is dead."
  echo "!!!!!!!!!!!!!!!!!"
  timidity -iAD -B2,8 -Os1l -A$MIDIVolume -s 44100 -x'soundfont /usr/share/sounds/sf2/default-GM.sf2 order=1'

else
  echo "$ProcessName is alive."
fi

# Synthesiaを起動する

wine /opt/Synthesia-$SynthVersion/Synthesia.exe

作成したファイルを実行可能にします。

Terminal
sudo chmod 755 /opt/Synthesia-10.8/play_synthesia.sh

完成したシェルスクリプトを実行します。

Terminal
sh /opt/Synthesia-10.8/play_synthesia.sh

ログイン時に自動開始させるには、

  • Linux Mint の場合:「設定」→「自動開始させるアプリ」→「+」→「カスタムコマンド」→
  • Ubuntu Studio の場合:「設定」→「セッションと起動」→「自動開始アプリケーション」→「+追加」→「アプリケーションの追加」→「コマンド」→
「コマンド」
/opt/Synthesia-10.8/play_synthesia.sh

デスクトップエントリを作成

デスクトップにデスクトップエントリ(シンボリックリンク / ショートカット)を作ります。

あらかじめ「Synthesia.png」を/opt/Synthesia-10.8 に置いてください。

~/Download/ディレクトリにSynthesia.pngがあったとして、

Terminal
sudo cp ~/Downloads/Synthesia.png /opt/Synthesia-10.8/
Terminal
vi ~/play_synthesia_sh.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Exec=/opt/Synthesia-10.8/play_synthesia.sh
Name=Synthesia
Comment=start Timidity++ daemon and Synthesia10.8
Icon=/opt/Synthesia-10.8/Synthesia.png
Terminal=true
Categories=Audio;AudioVideo;Midi;
Keywords=Audio;MIDI;ALSA;timidity;Synthesia;
Terminal
chmod 755 ~/play_synthesia_sh.desktop
Terminal
mv ~/play_synthesia_sh.desktop ~/Desktop/

さらに、デスクトップのアイコンをランチャーに移動するには

Terminal
mv ~/Desktop/play_synthesia_sh.desktop ~/.local/share/applications/

おわりに

※省略

  1. [Desktop Entry]
    Name=Synthesia
    Exec=env WINEPREFIX="/home/piano/.wine" wine C:\\users\\Public\\Desktop\\Synthesia.lnk
    Type=Application
    StartupNotify=true
    Path=/home/piano/.wine/dosdevices/c:/Program Files (x86)/Synthesia
    Icon=84DD_Synthesia.0
    StartupWMClass=synthesia.exe

  2. https://qiita.com/johnnystg/items/891ad5e9d85627b37a8e#%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?