vmixctl(8)

πŸ“¦
version 4.2-build2020 Β· 3 versions
, in ubuntu noble

πŸ’– vmixctl β€” the OSS utility that controls the vmix subsystem πŸ’–

okay bestie, gather round, because this is the vmixctl page from the OSS System Administration Commands section of the manual, and it's genuinely one of those tools that looks scary and is actually just vibes + flags. no cap. let's get into it 🫢


✨ NAME ✨

vmixctl β€” Open Sound System utility to control the vmix subsystem. that's it, that's the whole name. iconic behavior honestly πŸ‘‘


🌸 SYNOPSIS 🌸

vmixctl attach [attach_options...] audiodev [inputdev]
vmixctl detach [attach_options...] audiodev
vmixctl rate audiodev samplerate
vmixctl remap audiodev channels

four little spells. attach, detach, rate, remap. pick your fighter πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so the vmixctl program is your girl for attaching or detaching the virtual mixer subsystem (vmix) to/from audio devices. and like, that's not all she does β€” she can also control vmix-related parameters, such as the sampling rate that gets used with the device. multitasking queen fr fr.

by default, most OSS drivers will attach the virtual mixer to the primary audio device of the sound card (or the motherboard audio chip) when the device is attached. but here's the tea: possible secondary audio devices (engines) will not have vmix attached by default. and on top of that, professional audio devices will be attached without vmix, because mixing may cause some unwanted distortion to the signal. so if you're wondering why your fancy pro interface is acting like it doesn't know her, that's why 😭


πŸ”₯ ATTACHING VMIX TO AN AUDIO DEVICE πŸ”₯

there are two forms of the vmixctl attach command, and choosing between them is literally just about what your device looks like:

  • vmixctl attach audiodev β€” this alternative is to be used with devices that support only output, or that have a single audio device file that supports full duplex.
  • vmixctl attach audiodev inputdev β€” the second form is for devices that have separate output and input device files. the audiodev parameter defines the output device, and the inputdev parameter is the device file to be used for input direction. note that both device files must belong to the same "physical" sound card. in some cases it might be possible to use one sound card for playback and another for recording β€” however, this configuration is not supported and the result may not be functional. 🚨

to find out the right device file names (audiodev and inputdev) you can use the ossinfo -a command. she will tell you everything you need to know, iykyk πŸ’–

πŸŽ€ ATTACH OPTIONS πŸŽ€

  • -r β€” disable recording functionality. by default vmix will support recording if the master device(s) support it.
  • -p β€” do not preallocate client engines. by default vmix will preallocate the first 4 (out of 8) client engines when attaching to the device. the remaining engines will be allocated on-demand if there are more concurrent applications that use the device.
  • -M β€” make vmix use more fragments.
  • -V β€” make client devices visible (have private device nodes under /dev).
  • -c <n> β€” preallocate <n> client engines instead of 4. however, the -p option makes this option ineffective. πŸ’€

⭐ EXAMPLES ⭐

  • vmixctl attach /dev/oss/oss_envy240/pcm0
  • vmixctl attach /dev/oss/oss_envy240/pcm0 /dev/oss/oss_envy240/pcmin0

🌈 SETTING THE SAMPLING RATE USED BY VMIX 🌈

the virtual mixer subsystem will set the physical audio device(s) to use a fixed sampling rate that is 48000 Hz by default. it is possible to use vmixctl rate audiodev to switch vmix to use some different rate with this device (pair).

you should use ossinfo -a -v2 to verify that the sampling rate is actually supported by the device. otherwise, the actual device may enforce vmix to use the nearest supported rate (or some default rate). so like, ask first, bestie πŸ™ˆ

the audiodev parameter is the device file name (see ossinfo -a) that is used for playback. the input device name doesn't need to be specified. periodt.

note that some professional audio devices may be locked to an external sampling rate or some fixed rate (defined in ossmix/ossxmix). in such a case, the rate is not changeable by vmixctl. she's locked in and you cannot unlock her πŸ”’

πŸ’œ EXAMPLE πŸ’œ

  • vmixctl rate /dev/oss/oss_envy240/pcm0 44100

🧚 CHANGING THE VMIX CHANNEL MAP 🧚

the vmix subsystem can remap channels, so that all output sent to a channel via vmix will end up being played on a different channel. the syntax uses a list of channels, where typically:

  • 0 = default
  • 1 = left
  • 2 = right
  • 3 = center
  • 4 = lfe
  • 5 = left surround
  • 6 = right surround
  • 7 = left rear
  • 8 = right rear

note that vmix-channels should be set first to Multich if vmix is to recognize the extra channels. don't skip that step or the extra channels simply won't show up, and you'll be like ??? where did they go 😭

🌸 EXAMPLES 🌸

  • vmixctl remap /dev/dsp 2 1 #switch left and right
  • vmixctl remap /dev/dsp 0 0 0 0 6 5 #switch left and right surround

look at her, flipping channels like it's nothing. main character energy πŸ‘‘


πŸ’… DETACHING VMIX FROM AN AUDIO DEVICE πŸ’…

it is possible to detach vmix from an audio device if it causes problems with applications, by using vmix detach audiodev.

⚠️ it is not possible to detach and (re)attach vmix to the same device more than a few times. use the vmix-enable setting in the control panel (ossxmix or ossmix) to disable/re-enable vmix if you need to do it repeatedly. use vmix detach only if you need to attach the virtual mixer using different parameters. this is one of those "read the warning or suffer" situations, bestie πŸ’€

πŸŽ€ EXAMPLE πŸŽ€

  • vmix detach /dev/oss/oss_envy240/pcm0

πŸ™ˆ POSSIBLE BUGS πŸ™ˆ

  • the control panel elements related with vmix are not removed from the mixer API when vmix is detached. this may be somehow confusing. yeah. it just... lingers. like a situationship 🫠

πŸ” SEE ALSO πŸ”


πŸ“ FILES πŸ“

  • /usr/sbin/vmixct

πŸ‘‘ AUTHOR πŸ‘‘

4Front Technologies


okay that's the whole page, you're officially vmix-literate, slay πŸ’– this was the vmixctl(8) page from the OSS System Administration Commands, dated 11 February 2015 β€” go forth and attach responsibly, bestie πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from