Wine の音声を、PulseAudio を経由せずに、ALSA の、JACK 用出力モジュールを用いて、JACK Audio Connection Kit に出力する


1. 以下の、ALSA の、JACK 用 PCM 出力モジュールがあるか、確認

● x86_64 のパッケージ

/usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_pcm_jack.so

>> 上記ファイルが無ければ、libasound2-plugins をインストールする

● x86 のパッケージ

/usr/lib/i386-linux-gnu/alsa-lib/libasound_module_pcm_jack.so

>> 上記ファイルが無ければ、libasound2-plugins:i386 をインストールする

※Ubuntu Studio 22.04 LTS には、デフォルトでインストールされていたと思う

2.ALSA が、JACK の出力を使用するための定義を、~/.asoundrc という、ALSA の設定ファイルに記述する

# ~/.asoundrc というファイルが無ければ、~/ に、.asoundrc という名前のファイルを作成する
>> ~/.asoundrc に、次の内容を記述する

pcm.jackplug {
        type plug
        slave.pcm "jack"
}

pcm.jack {
        type jack
        playback_ports {
                0 system:playback_1
                1 system:playback_2
        }
}


3.Wine から、JACK へ出力するために、Wine のレジストリを設定する

# Wine のレジストリエディターを開く
wine regedit

# Wine で、ALSA のサウンド出力ドライバを使用する設定
>> HKEY_CURRENT_USER\Software\Wine\Drivers に、新規 > 文字列値 を追加、Audio という名前の項目を作成する
>> Audio という名前で、REG_SZ という型の項目が出来たら、それをダブルクリックするか、右クリックから変更を選択
>> データの欄に、alsa と記述

# ALSA の出力先を、~/.asoundrc で記述した、JACK の出力( jackplug )にする設定
>> HKEY_CURRENT_USER\Software\Wine\Drivers\winealsa.drv というキーがあるか確認、無ければ作成する
>> HKEY_CURRENT_USER\Software\Wine\Drivers\winealsa.drv というキーが出来たら、そこに、ALSAOutputDevices という項目を、複数文字列値で作成
>> HKEY_CURRENT_USER\Software\Wine\Drivers\winealsa.drv に、ALSAOutputDevices という名前で、REG_MULTISZ という型の項目が出来たら、その項目のデータを、jackplug に変更する
>> レジストリエディタを終了する

# ALSA と、Wine の設定を反映させるために、再起動

# JACK Audio Connection Kit( QjackCtl )を起動し、JACK を開始する


4.Wine の設定で、オーディオ出力先を設定する

# Wine 設定を開く
wine winecfg
>> Wine 設定 の、オーディオ タブで、選択されたドライバー:winealsa.drv と表示されているのを確認
>> 出力デバイス: を、Out:jackplug にして、音をテスト をクリックし、音が出ることを確認し、Wine 設定 を閉じる


5.Wine アプリケーションで動作確認

#ここでは、foobar2000 で、音楽再生
>> foobar2000 の File >> Preferences >> Output >> Device で、Default : Out: jackplug を選択し、OK をクリック
>>楽曲を再生
>> JACK Audio Connection Kit( QjackCtl )の、グラフで、alsa-jack.jackP.3157.48 (数字は異なるかも)というような出力デバイスが表示され、system の、playback ポートと接続されているのを確認する

以上