レビューメディア「ジグソー」

GUIが軽量なOSを使用してソフトウェアミキサーを作成する

GUIが軽量と言われる Lubuntu を使用して、OBS Studio を活用しながらソフトウェアミキサーの環境を作成していく試みです。

 

Lubuntuとは、Ubuntuから派生したディストリビューションで、デスクトップ環境はLXQtです。

 

今回は Lubuntu 24.04.3 (Noble Numbat) を使用しました。

先に25.10 (Questing Quokka)を試していますが、ドライバの問題で前バージョンに落とすことになりました。

25.10でのスクリーンショット画面が残ってますが、やることは変わりないのでそのままとしました。

更新: 2026/01/13

事前にやってきたこと

Lubuntuを導入する前に、Ubuntu環境にOBS Studioを入れてソフトウェアミキサーの環境を作成済みです。

 

初回の1回目の構築はアナログオーディオを中心としてものでした。

2回目の構築からアナログではなくデジタルオーディオ(SPDIF)を中心で作成開始しています。

取っ掛かりはINPUT(入力)デバイスの導入です。

3回目の構築はOUTPUT(出力)デバイスの導入です。

4回目の構築はINPUT(入力)とOUTPUT(出力)を併せ持ったデバイスの導入です。

5回目の構築あたりからLubuntuを試しに入れて試行錯誤を行いました。

 

 

更新: 2026/01/14

使用するデバイス

上記でも出していますが、一覧ベースで列挙します。

■Lubuntu側で使用するもの

Cubilux SPDIF - USB A 入力アダプター 2つ

Cubilux UCSTR-B3 USB - SPDIF 入力出力アダプター 1つ

オーディオミキサーが稼働するPC(HP ProDesk 400 G2 Mini PC) 1つ

■Windows PCなどクライアント側で使用するもの

Cubilux USB A – SPDIF 光 オーディオ変換アダプタ  2つ(それぞれの環境で1つずつ使用)

 

 

音声出力は3デバイスあります。

・WindowsPC1 → 上記のSPDIF変換アダプタを使用

・WindowsPC2 → 上記のSPDIF変換アダプタを使用

・[PS4 / Nintendo Switch] HDMI切り替え+HDMI → SPDIF変換

 

上記の出力を受け止める入力デバイス(INPUT)がCubiluxの3つ。

 

最終的にCubilux UCSTR-B3 USB - SPDIF 入力出力アダプターのOUTからワイヤレスヘッドホンに送ります。

それと同時に「オーディオミキサーが稼働するPC」のミニジャックへ出力します。

ミニジャックの出力先は下記です。

 

更新: 2026/01/13

初期設定

Teraterm(コンソール)から色々と導入したいので、初期設定を行う。

 

Lubuntuのターミナルを起動し、下記のコマンドを実行する。

$ sudo apt update;sudo apt -y install openssh-server
$ sudo systemctl enable ssh

 

ip aなどのコマンドを使用して、現在のIPアドレスを確認しておく。

以降はTeratermから上記で確認したIPアドレスに接続する。

 

更新: 2026/01/13

OBS Studioの導入

今回初めて導入するにあたり、手探りでやっていきました。

 

メニュー>システム・ツール>Discoverを起動します。

 

パッケージ導入のアプリだと思いますので、OBSで検索すると出てきます。

しかし、バージョンが30で古いようです。

 

この時の最新バージョンは32です。

Ubuntu環境でも非公式ビルドの32バージョンを使用していました。

 

Lubuntu環境で色々と試しましたが依存関係地獄で大変なことになったため、結局は下記に落ち着きました。

$ sudo apt install flatpak
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
$ flatpak install flathub com.obsproject.Studio

 

Flatpakについて下記に説明がそれなりにありました。簡単に説明するなら、「環境を汚すこと無く仮想環境内でGUIアプリを実行させる」ためのものでしょうか。 Dockerが近いですが、それより緩いです。

https://qiita.com/_masa_u/items/07ddbacd3ff90bdc1b52

 

導入が出来たらOSの再起動を行う。

 

メニューの「サウンドとビデオ」の「OBS Studio」を右クリックして「デスクトップに追加する」を選択。この操作でデスクトップにショートカットを作成します。

 

OBS Studioを起動すると下記のウィザードが表示されます。

今回は音声のみの対応なので、「仮想カメラのみ使用する」でよいと思いました。

 

OBS Studio も「音声のみ」の利用だなんて想定しないでしょうwww

 

初期画面です。デフォルトは映像プレビューが有効になっていますが、使わないので無効化します。

更新: 2026/01/14

PulseWire と サウンドカード の設定

デフォルトは下記のように PipeWire がインストールされています。

$ pactl info
サーバー名: PulseAudio (on PipeWire 1.4.7)

 

PipeWire はPulseAudio互換として動作しますが、PulseAudioの導入は不要です。

PulseAudioをあえて入れようとするとPipeWire が削除されてしまいます。

必要なパッケージの導入を行います。

$ sudo apt update && sudo apt install \
pipewire \
pipewire-pulse \
pipewire-audio-client-libraries \
pulseaudio-utils \
wireplumber

 

PipeWire の設定を施す。

$ mkdir ~/.config/pipewire
$ cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire/pipewire.conf
$ vi ~/.config/pipewire/pipewire.conf
context.properties = {
    default.clock.rate          = 48000
    default.clock.allowed-rates = [ 48000 ]
    default.clock.quantum       = 256
    default.clock.min-quantum   = 256
    default.clock.max-quantum   = 512
    default.clock.quantum-limit = 1024
    default.clock.quantum-floor = 256
}

$ mkdir -p ~/.config/wireplumber/main.lua.d/
$ wget https://raw.githubusercontent.com/k0d4/pipewire96/refs/heads/main/50-alsa-config.lua -O ~/.config/wireplumber/main.lua.d/50-alsa-config.lua
$ vi ~/.config/wireplumber/main.lua.d/50-alsa-config.lua
alsa_monitor.rules = {
  {
    matches = {
      {
        -- Matches all sources.
        { "node.name", "matches", "alsa_input.*" },
      },
      {
        -- Matches all sinks.
        { "node.name", "matches", "alsa_output.*" },
      },
    },
    apply_properties = {
      --["node.nick"]              = "My Node",
      --["node.description"]       = "My Node Description",
      --["priority.driver"]        = 100,
      --["priority.session"]       = 100,
      --["node.pause-on-idle"]     = false,
      --["monitor.channel-volumes"] = false
      ["resample.quality"]       = 15,
      ["resample.disable"]       = false,
      --["channelmix.normalize"]   = false,
      --["channelmix.mix-lfe"]     = false,
      ["channelmix.upmix"]       = true,
      ["channelmix.upmix-method"] = "psd",  -- "none" or "simple"
      --["channelmix.lfe-cutoff"]  = 150,
      --["channelmix.fc-cutoff"]   = 12000,
      --["channelmix.rear-delay"]  = 12.0,
      --["channelmix.stereo-widen"] = 0.0,
      --["channelmix.hilbert-taps"] = 0,
      --["channelmix.disable"]     = false,
      --["dither.noise"]           = 0,
      --["dither.method"]          = "none",  -- "rectangular", "triangular" or "shaped5"
      ["audio.channels"]         = 2,
      ["audio.format"]           = "S16LE",
      ["audio.rate"]             = 48000,
      ["audio.allowed-rates"]    = "48000",
      ["audio.position"]         = "FL,FR",
      ["api.alsa.period-size"]   = 256,
      ["api.alsa.period-num"]    = 3,
      ["api.alsa.headroom"]      = 256,
      ["api.alsa.start-delay"]   = 0,
      --["api.alsa.disable-mmap"]  = false,
      --["api.alsa.disable-batch"] = false,
      --["api.alsa.use-chmap"]     = false,
      --["api.alsa.multirate"]     = true,
      ["latency.internal.rate"]  = 256,
      ["latency.internal.ns"]    = 0,
      --["clock.name"]             = "api.alsa.0"
      ["session.suspend-timeout-seconds"] = 0,  -- 0 disables suspend
    },
  },
}

$ systemctl --user restart pipewire pipewire-pulse wireplumber

 

デバイスを16bitに強制する。

$ mkdir ~/.config/wireplumber/wireplumber.conf.d/
$ cat > ~/.config/wireplumber/wireplumber.conf.d/50-alsa-format.conf << 'EOF'
wireplumber.profiles = {
  ["alsa_card.*"] = {
    audio.format = "S16LE"
  }
}
EOF

$ systemctl --user restart pipewire pipewire-pulse wireplumber

 

OSを再起動する。

 


 

Loopbackデバイスの追加を行う。

$ sudo apt install pulseaudio-utils

# Loopbackデバイスを追加
$ sudo sh -c 'echo snd-aloop > /etc/modules-load.d/snd-aloop.conf'

# 即時反映
$ sudo modprobe snd-aloop

# プロファイルをpro-audioに変更
$ pactl set-card-profile alsa_card.platform-snd_aloop.0 pro-audio

# snd_aloop の source を確認する
$ pactl list short sources | grep input | grep snd_aloop
62 alsa_input.platform-snd_aloop.0.pro-input-0 PipeWire s16le 2ch 48000Hz SUSPENDED
63 alsa_input.platform-snd_aloop.0.pro-input-1 PipeWire s16le 2ch 48000Hz SUSPENDED

# デフォルト source に設定
$ pactl set-default-source alsa_input.platform-snd_aloop.0.pro-input-0

 

一旦下記のようにソース(入力)がsnd_aloopデバイスとして設定されることを確認する。

$ pactl info
デフォルトソース: alsa_input.platform-snd_aloop.0.pro-input-0 

 


 

プロファイルの固定化を行う。

まず手動でpro-audioプロファイルに即時切り替え(一時的)する。

当初、調査を行っていたときは iec958 プロファイルを使用していたが、pro-audioだと制限がなくなると思い、こちらを使用するようにした。

$ pactl set-card-profile alsa_card.usb-0c76_Cubilux_SPDIF_ReceiverSolid-00 pro-audio
$ pactl set-card-profile alsa_card.usb-0c76_Cubilux_SPDIF_ReceiverSolid-00.2 pro-audio
$ pactl set-card-profile alsa_card.usb-SAVIAUDIO_USB_SPDIF_TX_RX_Adapter-01 pro-audio

 

設定ファイルを作成する。

$ vi ~/.config/pulse/default.pa
.include /etc/pulse/default.pa

# Cubilux SPDIFのプロファイル優先度永続化
set-card-profile-overrides alsa_card.usb-0c76_Cubilux_SPDIF_ReceiverSolid-00 pro-audio
set-card-profile-overrides alsa_card.usb-0c76_Cubilux_SPDIF_ReceiverSolid-00.2 pro-audio

# SAVIAUDIO USB SPDIF TX/RX Adapterのプロファイル優先度永続化
set-card-profile-overrides alsa_card.usb-SAVIAUDIO_USB_SPDIF_TX_RX_Adapter-01 pro-audio

# PCのサウンドデバイスのプロファイル優先度永続化
set-card-profile-overrides alsa_card.pci-0000_00_1f.3 pro-audio

# snd_aloopのプロファイル優先度永続化
set-card-profile-overrides alsa_card.platform-snd_aloop.0 pro-audio

 

サービスを再起動する。失敗するのであればOSを再起動する。

$ systemctl --user restart pipewire pipewire-pulse wireplumber

 

proになっていることを確認する。

$ pactl list short sinks
51 alsa_output.usb-SAVIAUDIO_USB_SPDIF_TX_RX_Adapter-01.pro-output-0 PipeWire s16le 2ch 48000Hz RUNNING
55 alsa_output.pci-0000_00_1f.3.pro-output-0 PipeWire s16le 2ch 48000Hz RUNNING
56 alsa_output.pci-0000_00_1f.3.pro-output-3 PipeWire s16le 2ch 48000Hz RUNNING
57 alsa_output.pci-0000_00_1f.3.pro-output-7 PipeWire s16le 2ch 48000Hz RUNNING
58 alsa_output.pci-0000_00_1f.3.pro-output-8 PipeWire s16le 2ch 48000Hz RUNNING
60 alsa_output.platform-snd_aloop.0.pro-output-0 PipeWire s16le 2ch 48000Hz SUSPENDED
61 alsa_output.platform-snd_aloop.0.pro-output-1 PipeWire s16le 2ch 48000Hz SUSPENDED
109 combined_out PipeWire float32le 2ch 48000Hz RUNNING

$ pactl list short sources | grep input
52 alsa_input.usb-SAVIAUDIO_USB_SPDIF_TX_RX_Adapter-01.pro-input-0 PipeWire s16le 2ch 48000Hz RUNNING
53 alsa_input.usb-0c76_Cubilux_SPDIF_ReceiverSolid-00.pro-input-0 PipeWire s16le 2ch 48000Hz RUNNING
54 alsa_input.usb-0c76_Cubilux_SPDIF_ReceiverSolid-00.2.pro-input-0 PipeWire s16le 2ch 48000Hz RUNNING
59 alsa_input.pci-0000_00_1f.3.pro-input-0 PipeWire s16le 2ch 48000Hz SUSPENDED
62 alsa_input.platform-snd_aloop.0.pro-input-0 PipeWire s16le 2ch 48000Hz SUSPENDED
63 alsa_input.platform-snd_aloop.0.pro-input-1 PipeWire s16le 2ch 48000Hz SUSPENDED

 

下記のシェルを実行するとサンプルレート等の情報がわかるようになる。

pcm0cが入力、pcm0pが出力を意味する。

# 初回のシェル作成
$ cat > ~/asound_card_info.sh << 'EOF'
#/bin/bash
echo "--------------------"
for item in `find /proc/asound -name card[0-9] | sed -e "s/.*\///g"`; do
for dev in `find /proc/asound/${item} -type d | grep sub`; do
echo "${dev}"
grep "^name:" ${dev}/info
cat ${dev}/hw_params
echo "--------------------"
done;
done;
EOF

# 実行権の付与
$ chmod +x asound_card_info.sh

# 以降は下記のみ実行
$ ./asound_card_info.sh
--------------------
/proc/asound/card0/pcm0c/sub0
name: Loopback PCM
closed
--------------------
/proc/asound/card0/pcm0p/sub0
name: Loopback PCM
closed
--------------------
/proc/asound/card0/pcm1c/sub0
name: Loopback PCM
closed
--------------------
/proc/asound/card0/pcm1p/sub0
name: Loopback PCM
closed
--------------------
/proc/asound/card1/pcm0c/sub0
name: USB Audio
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 256
buffer_size: 768
--------------------
/proc/asound/card1/pcm0p/sub0
name: USB Audio
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 256
buffer_size: 768
--------------------
/proc/asound/card2/pcm0c/sub0
name: USB Audio
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 128
buffer_size: 384
--------------------
/proc/asound/card3/pcm0c/sub0
name: USB Audio
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 128
buffer_size: 384
--------------------
/proc/asound/card4/pcm0c/sub0
name: ALC221 Analog
closed
--------------------
/proc/asound/card4/pcm0p/sub0
name: ALC221 Analog
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 256
buffer_size: 768
--------------------
/proc/asound/card4/pcm3p/sub0
name: HDMI 0
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 256
buffer_size: 768
--------------------
/proc/asound/card4/pcm7p/sub0
name: HDMI 1
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 256
buffer_size: 768
--------------------
/proc/asound/card4/pcm8p/sub0
name: HDMI 2
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 256
buffer_size: 768
--------------------

 

出力情報をAIに渡す場合、hw_paramsの情報としてあげたほうがよいかもしれない。

 

ここでメモとして残しておく。

Lubuntu 25.10を使用した際に下記の状態になっていた。

$ pactl list short sinks
60 alsa_output.usb-SAVIAUDIO_USB_SPDIF_TX_RX_Adapter-01.iec958-stereo PipeWire s24le 2ch 48000Hz SUSPENDED
62 alsa_output.usb-0d8c_USB_Sound_Device-00.iec958-stereo PipeWire s16le 2ch 48000Hz SUSPENDED
66 alsa_output.pci-0000_00_1f.3.analog-stereo PipeWire s32le 2ch 48000Hz SUSPENDED
68 alsa_output.platform-snd_aloop.0.analog-stereo PipeWire s32le 2ch 48000Hz SUSPENDED

 

設定情報として16bit強制しているのに、24bit設定となっている。

また、レイテンシ(遅延)設定も1024で強制されていた。

恐らくこれは読み込まれたドライバによってハードウェア強制させてしまっているためだと思われる。

AIの回答としては強制される値に全て統一することだった。

別の方法としてドライバを古いバージョンにすればよいかもしれないが、調査時点でのやり方が不明のため、単純にOSバージョンを落とせばよいと考えた。

このため、Lubuntu 24.10 を使用する流れとなった。(根本解決になっていないので問題を先送りにした)

更新: 2026/01/14

combined_out の設定と OBS Studio の自動起動の設定

combined_out の設定と OBS Studio の自動起動の設定を行う。

combined_outは現在出力される対象から動的に組み込む。

$ cat > startApp.sh << 'EOF'
#!/bin/sh

# combined_out 追加
DEV_LIST=`pactl list short sinks | grep alsa_output | grep -v snd_aloop | awk '{print $2}'`
DEV="pactl load-module module-combine-sink sink_name=combined_out slaves="
for item in ${DEV_LIST}; do DEV=${DEV}${item},; done;
echo "${DEV}"
${DEV}
pactl set-default-sink combined_out
sleep 1

# run OBS Studio
/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=obs com.obsproject.Studio
EOF

$ chmod +x startApp.sh

 

メニューの「LXQt設定」の「セッション設定」を起動する。

①自動起動を選択する。

②「追加」をクリックする。

③名称に「Startup」など適当な文言を入れる。コマンドに上記で作成したシェルのパスを指定する。「システムトレイの起動を待つ」にチェックする。「OK」ボタンをクリックする。

(下記は25.10でのスクリーンショットです)

 


 

Lubuntuを起動したときに自動ログインを設定しておく。

OSインストール時に設定し忘れた場合に下記設定が必要となる。

$ sudo vi /etc/sddm.conf
[Autologin]
User=<自動ログインするユーザー名>
Session=Lubuntu

 


 

これらの設定が完了していれば、OS起動時に OBS Studio が起動状態となり、スタンバイ完了の状態となる。

更新: 2026/01/14

VNCによるコンソール表示

PC上のGUIコンソール画面をVNCに表示出来たら、物理的なディスプレイに接続しなくてもよくなります。

 

x11vncと必要なパッケージをインストールする。

$ sudo apt update;sudo apt install -y x11vnc net-tools

 

VNCパスワードを設定する。

$ x11vnc -storepasswd

 

下記コマンドを実行後、別PCからVNC接続可能かを確認する。確認が終わったらCtrl+Cなどで抜ける。

$ x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth ~/.vnc/passwd -rfbport 5900 -shared

 

ログイン時のシェルに組み込む

$ vi startApp.sh
#!/bin/sh

# x11vnc
x11vnc -display :0 -auth guess -forever -loop -noxdamage -repeat -rfbauth ~/.vnc/passwd -o %HOME/.x11vnc.log &

# combined_out 追加
DEV_LIST=`pactl list short sinks | grep alsa_output | grep -v snd_aloop | awk '{print $2}'`
DEV="pactl load-module module-combine-sink sink_name=combined_out slaves="
for item in ${DEV_LIST}; do DEV=${DEV}${item},; done;
echo "${DEV}"
${DEV}
pactl set-default-sink combined_out
sleep 1

# run OBS Studio
/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=obs com.obsproject.Studio

 

OSを再起動させて、VNCからログインする。

問題なく表示出来ることを確認した。

以降はVNCから音量調整が可能となった。

  • 購入金額

    0円

  • 購入日

    2026年01月10日

  • 購入場所

    Lubuntu公式サイト

2人がこのレビューをCOOLしました!

コメント (0)

ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。

YouTube の動画を挿入

YouTube の URL または動画の ID を入力してください

動画の ID が取得できません。ID もしくは URL を正しく入力してください。

ニコニコ動画の動画を挿入

ニコニコ動画の URL または動画の ID を入力してください

動画の ID が取得できません。ID もしくは URL を正しく入力してください。

ZIGSOWリンク挿入

検索対象とキーワードを入力してください

    外部リンクを挿入

    リンク先の URL とタイトルを入力してください

    URL を正しく入力してください。

    画像を挿入(最大サイズ20MB)

    画像を選択してください

    ファイルサイズが20MBを超えています

    別の画像を追加

    ZIGSOW にログイン

    ZIGSOW会員登録(無料)はこちらから