2
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 3 years have passed since last update.

WineでMIDIが再生できないとき

Posted at

はじめに

他の目的の作業をしているときの副産物なので正しく無いかもしれません。
実際に音が出ないを再現して直したわけじゃないです。
ノウハウを捨ててしまうのがもったいないので一応記事に残しておこう程度。

環境

OS : Ubuntu 20.10
Kernel : 5.8.0-49-generic
Wine : wine-6.5 (Staging)

最近のwineでは標準で入っているWine midi mapperがいい仕事してくれるらしいので
そもそもMIDI音が出ない事象自体が発生しないかもしれないです。

作業

DirectX診断ツールのインストール
winetricks dxdiag

wineに標準で入っているDirectX診断ツールは動かなかったのでwinetricksからネイティブ版を入れます。
wine6.5だと罠があってハマりますのでこちらをを先にやってください。

DirectX診断ツールの起動
wine dxdiag

0024:err:winediag:MIDIMAP_drvOpen No software synthesizer midi port found, Midi sound output probably won't work.

midi周りがだめだとこうやって落ちかもしれないです。
(何をしていた時にこのエラーが出ていたのか・・さっぱり覚えてないです。すみません。
多分wine6.0でなんかのゲームを起動しようとしていた時だったような・・)

wineHQのwikiに解決法が載ってます。

自分でもよくわかってないですが、
めっちゃ簡単に理解しようとするならば、
MIDIの出力をパススルーしてあげる。
そのためにいろいろ小細工が必要。ということかな?

MIDIの出力ポート一覧
$ aconnect -o
client 14: 'Midi Through' [type=カーネル]
    0 'Midi Through Port-0'

Wikiに表示してあるほど無い。

timidityのインストール
sudo apt install timidity timidity-daemon  alsa-utils
aplaymidiにtimidityを教えてあげる
echo "timidity -iAD -B2,8 -Os1l -s 44100 -x'soundfont /usr/share/midi/sf2/mypatches.sf2 order=1'" >> ~/.profile 
source ~/.profile

永続化するために.profideに書いて読んでます。

一応、rebootをかけて、MIDIのポートをもう一度見てみます。

MIDIの出力ポート一覧
$ aconnect -o
client 14: 'Midi Through' [type=カーネル]
    0 'Midi Through Port-0'
client 128: 'TiMidity' [type=ユーザ,pid=1528]
    0 'TiMidity port 0 '
    1 'TiMidity port 1 '
    2 'TiMidity port 2 '
    3 'TiMidity port 3 '

増えてる

aplaymidi -l
でも同様の結果が得られます。
適当なファイルをとってきて再生確認。

aplaymidi --port 128:0 Downloads/AIR001.MID

流れました。

次にwindowsのレジストリを触るようです。

これいらないかも
wine reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Multimedia\MIDIMap" /v "CurrentInstrument" /t REG_SZ /d "#1"

診断ツール起動してみる

DirectX診断ツールの起動
wine dxdiag

image.png

こんな感じでtimidityのポートが表示されていたらOK(多分)

参考

2
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
2
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?