Skip to content

uriel1998/virtual_microphone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

virtual-mic

Scripts to create and manage virtual audio paths using pactl on Linux.

Software with similar functionality exists for Windows and macOS.

Each pipeline consists of:

  • A virtual playback sink: <label> playback sink
  • A virtual recording source: <label> recording source (from that sink's monitor)

The script creates device names with the virt_ prefix. Each pair is isolated from physical speakers/microphones because audio stays in a null sink + monitor source path.

Requirements

  • Linux with PipeWire/PulseAudio compatibility layer
  • pactl

Usage

./virtual-mic.sh -n <count> [-l <label>]...
./virtual-mic.sh status
./virtual-mic.sh off
./virtual-mic.sh -h
./virtual-mic.sh --help

Commands

  • -n <count>: Number of virtual pipeline pairs to create.
  • -l <label>: Label for a pipeline. Can be repeated.
  • status: Show all virt_ sinks, sources, and matching modules.
  • off: Remove all virtual devices/modules that reference virt_.
  • -h, --help: Show help text.

Label Behavior

Provided -l values are used first in order. If fewer labels are provided than -n, the script auto-generates names as v1, v2, v3, and so on.

Example:

./virtual-mic.sh -n 4 -l wombat -l wombat2

Creates labels in this order:

  • wombat
  • wombat2
  • v1
  • v2

Examples

Create 2 pipelines with auto labels:

./virtual-mic.sh -n 2

Create 3 pipelines with one custom label:

./virtual-mic.sh -n 3 -l podcast

Check status:

./virtual-mic.sh status

Remove all created virtual devices:

./virtual-mic.sh off

virtual-mic-mux.sh

virtual-mic-mux.sh combines audio streams (for example, mic + app audio) into a single virtual mic path.

Show its built-in help:

./virtual-mic-mux.sh -h

Current usage from the script:

./virtual-mic-mux.sh on
./virtual-mic-mux.sh off
./virtual-mic-mux.sh status

Command summary:

  • on: Create and enable the muxed virtual mic path.
  • off: Tear it down and restore previous defaults.
  • status: Show current mux status.

About

A bash script to simplify (for me) creating and using virtual microphones, both with and without muxing

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages