{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreif66ufcu7tv6fncsq5cr5tk5b5r7flfegbfj2katcjhl6jarms33m",
    "uri": "at://did:plc:ql5nzcyoitey44ceaysoz6ez/app.bsky.feed.post/3mijtucn7qgb2"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreih6xigsbyevbdhf7rv7ngpc4k6us4qz7hgcxuyog7l3naehgiul34"
    },
    "mimeType": "image/png",
    "size": 138772
  },
  "description": "It isn’t the greatest application, but Helvum has been helpful to me recently in order to setup a combine audio input from output and input. This allows me to use OBS Studio to live caption both my own microphone input and audio output. It is a little awkward to use, and I have not been able to delete edges, but it works.\n\nFirst I make sure I have a null audio sink and source created using a script that I stole from, _of course_ , not the accepted answer on “How to create a new pipewire virtual device that to combines an real input and output into a new input?”.\n\n\n    #!/bin/shSINK_NAME=combined-sink...",
  "path": "/user/3/posts/881",
  "publishedAt": "2026-04-02T18:15:33.000Z",
  "site": "https://nokoto.org",
  "tags": [
    "obs-studio",
    "Pipewire",
    "Helvum",
    "linux",
    "How to create a new pipewire virtual device that to combines an real input and output into a new input?"
  ],
  "textContent": "It isn’t the greatest application, but Helvum has been helpful to me recently in order to setup a combine audio input from output and input. This allows me to use OBS Studio to live caption both my own microphone input and audio output. It is a little awkward to use, and I have not been able to delete edges, but it works.\n\nFirst I make sure I have a null audio sink and source created using a script that I stole from, _of course_ , not the accepted answer on “How to create a new pipewire virtual device that to combines an real input and output into a new input?”.\n\n\n    #!/bin/shSINK_NAME=combined-sinkINPUT_NAME=combine-input# Unload null sink, if loaded.pactl unload-module module-null-sink || true# Make new sink.pactl load-module module-null-sink media.class=Audio/Sink sink_name=$SINK_NAME channel_map=stereo >> /dev/nullpactl load-module module-null-sink media.class=Audio/Source/Virtual sink_name=$INPUT_NAME channel_map=front-left,front-right >> /dev/null\n\nThen I open Helvum and applications so that I can drag the audio input and output from the applications nodes into the “combined-input Audio/Source/Virtual sink” node. I do this because I found if I am using my web browser on a call, then I would want to map Firefox’s audio input and output rather than all audio output and input via the device. This allows my mic input to be mutable so I don’t send keyboard and mouse clicks and clacks.\n\nThen I open OBS, confirm that my audio capture is using “combined-input Audio/Source/Virtual sink”, ensure that the Cloud Closed Captions plugin settings is capturing output from that audio capture source, and I’m pretty much done. I do lack any ability to segment audio and check individual audio levels, but with more inputs into the combined-sink.\n\nI know I could probably do this with `pw-link` but that is kind of confusing and I never know what’s what until I have to go look it up. So the graphical representation has been helpful as a casual user.",
  "title": "Helvum has been helpful to use to map Pipewire inputs",
  "updatedAt": "2026-04-02T18:34:16.000Z"
}