# Mix

On **Fedora 43**, you don’t install “virtual drivers” the Windows way.
With PipeWire (which Fedora uses by default), you create **virtual devices (nodes)** such as sinks (outputs) or sources (inputs). These act like Voicemeeter’s virtual inputs/outputs.

Below are the main methods — from simple to advanced.

---

# ✅ Method 1 — Create a Virtual Sink (most common)

This creates a **virtual output device** that applications can send audio to. You can then route it wherever you want.

### 1️⃣ Create the virtual sink

```bash
pactl load-module module-null-sink sink_name=VirtualSink sink_properties=device.description=VirtualSink
```

You now have a new output device called **VirtualSink**.

---

### 2️⃣ Create a virtual microphone (optional)

If you want something like a “virtual mic” (for Discord/OBS):

```bash
pactl load-module module-remap-source master=VirtualSink.monitor source_name=VirtualMic source_properties=device.description=VirtualMic
```

Now **VirtualMic** appears as an input device in apps.

---

### 3️⃣ Make it persistent (survive reboot)

Create this file:

```bash
mkdir -p ~/.config/pipewire/pipewire-pulse.conf.d
nano ~/.config/pipewire/pipewire-pulse.conf.d/virtual-devices.conf
```

Add:

```ini
context.modules = [
  { name = libpipewire-module-null-audio-sink
    args = {
      node.name = "VirtualSink"
      node.description = "VirtualSink"
      media.class = "Audio/Sink"
    }
  }
]
```

Then restart PipeWire:

```bash
systemctl --user restart pipewire pipewire-pulse
```

---

# 🎛 Method 2 — Use a Patchbay (Graphical Way)

Much easier if you don’t like CLI.

## 🔌 qpwgraph

qpwgraph

![Image](https://upload.wikimedia.org/wikipedia/commons/d/d4/Qpwgraph_screenshot.png)

![Image](https://dl.flathub.org/media/org/rncbc/qpwgraph/7dafd2289729d1346e94f769766cfcc3/screenshots/image-1_orig.png)

![Image](https://i.imgur.com/z2NE3BU.png)

![Image](https://librearts.org/2024/09/record-browser-audio/qpwgraph.webp)

Install:

```bash
sudo dnf install qpwgraph
```

Launch:

```bash
qpwgraph
```

You can visually connect:

* App → Virtual Sink
* Virtual Sink → Hardware Output
* Virtual Sink → OBS / Discord

---

## 🔌 Helvum (simpler UI)

Helvum

![Image](https://upload.wikimedia.org/wikipedia/commons/f/fc/Helvum_patchbay_screenshot.png)

![Image](https://imgproxy.flathub.org/insecure/dpr%3A1/f%3Awebp/rs%3Afill-down/aHR0cHM6Ly9kbC5mbGF0aHViLm9yZy9tZWRpYS9vcmcvcGlwZXdpcmUvSGVsdnVtLzIyNjA5ZTIxOTg0MDVjODFjMWU5OTFkYmM1OTU2MTFiL3NjcmVlbnNob3RzL2ltYWdlLTFfb3JpZy5wbmc)

![Image](https://dl.flathub.org/media/org/pipewire/Helvum/22609e2198405c81c1e991dbc595611b/screenshots/image-1_orig.png)

![Image](https://user-images.githubusercontent.com/14234815/189139178-99036463-bea5-4385-8cde-eade84dd2b4e.png)

Install:

```bash
sudo dnf install helvum
```

Very simple drag-and-connect interface.

---

# 🎚 Method 3 — PulseMeeter (Voicemeeter-style interface)

PulseMeeter

![Image](https://pypi-camo.freetls.fastly.net/e8dda2be9738750a3b0eac718eb47477e89551fa/68747470733a2f2f692e696d6775722e636f6d2f4c344b5a4571562e706e67)

![Image](https://r2.gear4music.com/media/116/1166594/600/preview.jpg)

![Image](https://joe.ptrkv.ch/assets/voicemeeter-inputs.png)

![Image](https://vb-audio.com/Voicemeeter/VoicemeeterConnectionDiagram.gif)

This is the closest conceptual match to Voicemeeter:

* Virtual inputs
* Virtual outputs
* Routing matrix
* Volume control

Install:

```bash
sudo dnf install pulsemeter
```

(If not in repo, use GitHub release or COPR.)

---

# 🧠 What You Usually Want (Common Scenarios)

### 🎮 Route Game + Spotify → One virtual device → Discord

Create:

* VirtualSink
* VirtualMic (monitor of sink)
* Set Discord mic to VirtualMic
* Route apps into VirtualSink

---

### 🎥 OBS separation (game + mic separate)

Create:

* 2 null sinks
* Route each app separately
* Capture each sink monitor in OBS

---

# 🔎 Check Existing Devices

```bash
pactl list short sinks
pactl list short sources
```

---

# ⚡ Important

Because Fedora uses **PipeWire**, you do *not* need:

* PulseAudio replacement
* Kernel drivers
* External sound drivers

Virtual devices are just software nodes.

---

If you tell me your exact goal (streaming? mixing mic + music? dual PC? Discord routing?), I can give you the exact commands and layout for your setup.