The Audio Director Manager (Audir, pronounced similarly to "lauder" or "odder") is a utility program designed to simplify the tasks of creating, launching, and generally managing programs that direct (or repeat) audio among devices and files. At this writing, this utility will be most useful to those who also use Virtual Audio Cable (VAC), though it can also manage Sound eXchange (SoX or its newer fork, sox_ng) processes for repeating audio among devices and cables and recording and playing audio files. Support for further audio handlers may be added in the future.
Note that Audir is not itself an audio repeater or director; it simply manages programs that do this. As such, Audir is not part of, or directly associated with, either VAC or SoX/sox_ng; but it requires one or the other or both in order to be useful. As of October, 2019, a Windows binary version of SoX has been bundled with Audir for convenience. As of August, 2025, a version of sox_ng is bundled instead because it is more actively maintained. In this document, "sox" or "SoX" refer to either of these, while "sox_ng" specifically refers to sox_ng.
Audir can perform the following tasks:
MME mic l1 Mic-l1will launch a repeater connecting the device whose name contains "mic" to VAC line 1. If multiple device names contain "mic," Audir will prompt for the correct device via a numbered list of matches. The "Mic-l1" part is optional and names the repeater's window if provided.
Here's how to get up and running quickly with Audir:
pywin32
inside the installed Python instance.
Audio Handler | License Information | Supported/Tested Versions | URL | Comments |
---|---|---|---|---|
Virtual Audio Cable (VAC) | Commercial, $25.00 or so | 4.14, 4.15, and various 4.6x | http://software.muzychenko.net/eng/vac.htm | Provider of MME and KS repeater types. Without VAC, Audir can only use SoX and route sounds between physical devices. |
Sound eXchange (SoX) | Free, GNU license version 2 | 14.4.1 and 14.4.2 Windows builds | http://sox.sourceforge.net/ | Not maintained in many years but still works. sox_ng is recommended however. |
sox_ng | Free, GNU license version 2 | 14.6.0 Windows builds | https://codeberg.org/sox_ng/sox_ng | The currently maintained fork of SoX, with more effects and file formats supported. |
Note that, as of October, 2019, a Windows binary version of SoX has been bundled with Audir for convenience. The bundled version was SoX 14.4.1 but became sox_ng 14.6.0.4 in August, 2025. If you have a SoX version installed in a normal location (under one of Window's Program Files folders), Audir will use it instead of the built-in version by default.
You can force Audir to use a specific version of SoX if necessary. To do this, use an opt soxpath command to set the folder path for Audir to use. Example:
opt soxpath c:\audir\sox_winNote that only the folder path is specified, not the actual sox.exe file name. To return Audir to using its default method of finding SoX, type this:
opt -d soxpathIf you are using a version of SoX that sports a
sox_ng.exe
file name instead of sox.exe
,
you will need to copy or link sox_ng.exe
to sox.exe
so Audir can find it.
defaults MME /BufferMs:100Defaults can be overridden for a particular repeater. For example, SoX may require a larger effects buffer for the pitch effect than for more commonly used effects:
defaults KS /BufferMs:40
defaults SoX --input-buffer 32 --buffer 3000
sox l2 l4 --buffer 16384 pitch 400(Note that the default --input-buffer 32 will still be applied here.)
Command | Effect |
---|---|
MME map l1 | Copy audio from the Microsoft Sound Mapper to Virtual Audio Cable line 1. |
MME wireless l2 :h2 | Connect the input device whose name contains "wireless" to Virtual Audio Cable line 2, and save this repeater under the name "h2." |
close wireless | Close (unload) the repeater just started above. |
launch h2 | Launch the above repeater by its new name. |
stop h2 | Stop but do not unload the repeater. |
start h2 | Restart the repeater. |
show h2 | Display the repeater's window. |
sox --buffer 3000 l4 map highpass 150 treble -10 :l4at | Start a SoX instance that repeats VAC line 4 to the default output device with bass and treble attenuation. Save this under the name "l4at." |
ls | List running repeaters. |
ls -t l1 | List repeaters whose destination device is VAC line 1. |
edit (or just ed) | Open a Notepad window containing all loaded repeaters for live editing. See the Editing Repeaters section for details. |
close all | Close all running repeaters. |
Audir provides the following commands, described in subsequent sections. Note that the term "repeater" here is used to apply to any process managed by Audir. This includes MME and KS VAC repeaters as well as SoX processes started by Audir. SoX "repeaters" are usually used just like VAC repeaters but can also transfer audio between devices and files rather than just between devices.
Category | Command | Purpose |
---|---|---|
Creating and destroying repeaters | launch | Launch new or saved repeaters and save repeaters for future launching. |
MME, KS | Shortcuts for launching new MME and KS type VAC repeaters. | |
SoX | Shortcut for launching new SoX processes for audio transfer among devices and files, possibly with effects such as compression, filtering, equalizers, etc. | |
close | Close (unload) repeaters. | |
delete or del | Delete saved repeaters. | |
defaults | Set up default options for MME, KS, and SoX repeater types. | |
Manipulating running repeaters | ls | List running repeaters. |
start, stop | Start or stop loaded repeaters (not supported by SoX). | |
show, hide | Show or hide repeater windows (not supported by SoX). | |
info | Show information about specific loaded repeaters. | |
edit (or just ed) | Open a Notepad window containing all loaded repeaters for live editing. See the Editing Repeaters section for details. | |
Program control and documentation | quit, exit, EOF | Exit the program. |
help or ? | Get a command list or help on a specific command. | |
rel | Print information on available, not installed releases of this application. | |
clear or cls | Clear the screen. | |
errTrace | Print a brief trace of the last program error. | |
about | Print information about the application that also prints on application launch. | |
alias | Create a command alias to simplify common operations. |
All commands include built-in documentation accessible by typing help followed by the command of interest. A question mark (?) can be used in place of help, in which case the space between it and the command of interest is not required. Simply typing help or ? by itself will present a list of available commands.
The command help selection (or ?selection) will print helpful information on how to select items, such as repeaters, from a numbered list. This application supports a powerful syntax for acting on multiple items at once with a single command in some cases.
Letter casing in commands is not significant; e.g., "MME h1 /BufferMs:50" and "mme h1 /bufferms:50" are identical. Names of saved repeaters (like h1 here), however, must match exactly, including case. In this guide, command elements are usually cased based on their common appearance in Virtual Audio Cable and SoX documentation.
Audir can manipulate any loaded VAC repeater, regardless of how it was started (i.e., regardless of whether Audir started it). (SoX processes are only managed by Audir if Audir started them.)
Once Audir is running, typing ls will list any currently loaded repeaters and indicate the status of each (e.g., Stopped or Running). The resulting list can be filtered by any combination of the following additional command-line arguments:
The following commands can be used against any loaded repeaters by providing part of the text from the repeater's listing after the command, or by typing the command with nothing after it and selecting repeaters from a numbered list. See also the Editing Repeaters section for a very powerful way to stop, restart, modify, close, and in some cases start new repeaters from a full text window.
If no text is provided after one of the above commands, or if the provided text matches more than one repeater, a list of available repeaters will appear, in which each repeater is shown with a number. Press Enter to abort the command without affecting any repeaters, or select one or more repeaters by number. Most users will just enter a single number and press Enter to select one repeater, but requesting action on several repeaters at once is also supported.
If more than one repeater name (or partial name) appear after one of these commands, each is matched against
the list of running repeaters, and each will produce a selection list if it matches more than one repeater.
This syntax allows multiple repeaters to be affected at once without necessarily having to handle a selection
list; e.g., close r1 r5 r7
to close three named repeaters at once.
This example mirrors the command launch r1 r5 r7
for launching multiple repeaters at once.
The following methods of selecting repeaters from a numbered list are supported, shown here by example as if a list containing 9 repeaters has appeared:
The launch command can be used to launch a new or saved VAC repeater and can also save the repeater for easier future launching.
For a new VAC repeater, the first parameter after launch is the repeater type, either MME for a Windows Multimedia repeater, or KS for a Kernel Streaming repeater. A simpler way to launch a new repeater is simply to type MME or KS as a command. The following discussion applies to either method.
If no further arguments appear after MME or KS, Audir will launch a new repeater of the requested type and will leave it in focus on screen for manual configuration. As many repeaters of either type as needed can be opened in this manner without having to use the "Open in New Window" feature of Windows to keep from simply refocusing an existing repeater.
If a single argument appears after MME or KS, it is used as the name (window title) to apply to the new repeater. In this case, Audir will open the new repeater and leave it on screen but will change its window title to the argument specified, plus the repeater type:
MME Test1will open a repeater and name it "Test1 (MME)."
MME "My Repeater"will open a repeater and name it "My Repeater (MME)" (the quotes are necessary in that command line because the name contains a space).
If more arguments appear after MME or KS, they may consist of source and destination devices (required), repeater options starting with a slash (/), and/or a name under which to save this repeater for future reference prefixed with a colon (:).
The first two arguments that do not begin with a slash are taken to be the input and output devices for the repeater. Device specifications are discussed in more detail in the Device and Repeater Specifications section, but they can be any of these:
When source and destination devices are indicated as part of a launch command, the new repeater is automatically minimized to the system tray on creation, and focus stays in Audir itself.
Except for the order of input and output devices, the order of arguments when launching an MME or KS repeater does not matter. The following commands are all equivalent:
MME l1 l2 /BufferMs:50 /Buffers:6Commonly used options can be set up as defaults for all new repeaters as well; see the VAC Repeater Options and Defaults section, which also lists the available options.
MME /BufferMs:50 /Buffers:6 l1 l2
MME l1 /BufferMs:50 /Buffers:6 l2
Just as for VAC repeaters, the launch command can be used to launch a new or saved SoX repeater and can also save the repeater for easier future launching. To launch a SoX repeater, start the command with launch SoX or just SoX (case does not matter).
At least two arguments must appear after SoX: The first indicates the source for the audio transfer, and the second indicates the destination. There may be arguments after the device indications, which are treated as SoX options and effects and their arguments. In complex cases, the specific positions of device names among SoX options and effects can be indicated with "waveIn" and "waveOut" (case-insensitive) keywords; though this is rarely necessary. See examples below.
Source and destination specifications may be device names or shortcuts as for VAC repeaters but may also be file names or paths. See the Device and Repeater Specifications section for details on specifying devices. Using a device for source and a file for destination effectively creates a sound recorder that runs until stopped. Using a file for the source and a device for the destination creates a player that runs until stopped by the user or until the audio in the source file is exhausted. (It is technically possible to use a file for both source and destination, but there is probably no reason to do this from inside Audir rather than using SoX directly.)
Warning: When using Audir and SoX to record or play files, it is currently necessary to specify a full file path. When doing this, do one of the following to avoid interpretation errors:
sox c:\music\my_song.wav mapbut use one of these instead:
sox c:\\music\\my_song.wav mapAttempting to use single backslashes without quoting can cause files to be referenced or created in unexpected places or to go nowhere; for example, the path c:\downloads\test.wav may become c:downloadstest.wav.
sox c:/music/my_song.wav map sox 'c:\music\my_song.wav' map
sox "c:\music\my_song.wav" map
As with VAC repeaters, it is also possible to save a SoX specification for easy reuse. Do this by including among arguments, usually as the final argument, the desired name preceded by a colon; e.g.,
SoX l2 map highpass 100 treble -10 :l2at
Examples of permitted SoX launch commands:
sox l2 map highpass 100 treble -10 :l2atThe penultimate example above requires the waveIn and waveOut markers because of the intervening -g option, which sets up GSM encoding for the output wave file. The final example above creates a "radio1" configuration so that subsequently typing "launch radio1" will start playing a radio station at half volume through the default output sound device. The waveIn and waveOut markers are required in this case in order to allow the Ogg type to be included. (streamOfMyFaves.com is a fictitious Internet address and does not exist at this writing.)
sox l2 map --buffer 3000 highpass 100 treble -10 :l2at
sox l2 c:/sounds/output.wav --buffer 3000 highpass 100 treble -10
sox l2 c:/sounds/output.wav --buffer 3000 waveIn -g waveOut rate 16000
sox http://www.streamOfMyFaves.com/128k/listen.ogg map -t ogg waveIn waveOut vol 0.5 :radio1
As mentioned above, adding a name when specifying input and output devices on a new repeater will save that repeater under the given name for future launching. To launch such a repeater, specify its name in place of a repeater type (MME, KS, or SoX) on the launch command line. For KS and MME repeaters, options beginning with a slash (/) may follow the name and will be applied without saving Any number of repeaters may be launched at once in this fashion:
launch r1 r2 /BufferMs:100 r3 /Buffers:6launches repeaters called r1, r2, and r3, with special temporary options for r2 and r3. Due to the richness and complexity of the SoX command-line syntax, temporary options/effects are not supported for SoX repeaters.
A launch command with no arguments will display a list of all saved repeaters for selection. As usual with selection lists, any number of repeaters can be selected at once.
To delete one or more saved repeaters, type delete (or just del), with no arguments to choose from all saved repeaters, or with one or more arguments to narrow down the selection list before it is presented. Arguments can be a simple string like "h1" to include all repeaters whose names, ignoring case, contain "h1"; or "r:" followed by a regular expression, again case ignored, to include all repeaters whose names match the expression. Examples of this type of argument include "r:^h" to include all repeaters whose names start with "h" or "H", and "r:h$" for all repeaters whose names end with "h" or "H."
Audir allows partial matching for device and repeater names to minimize typing and also includes very abbreviated names for some standard devices.
A description of the shortened device name system by example follows. Where the number 1 appears below, any VAC device number can be used; for example, l6 refers to VAC line 6.
Short Name | MME and SoX Repeaters | KS Repeaters |
---|---|---|
L1 | Line 1 (Virtual Audio Cable) | Virtual Cable 1 |
M1 | Mic 1 (Virtual Audio Cable) | Virtual Cable 1 |
S1 | S/PDIF 1 (Virtual Audio Cable) | Virtual Cable 1 |
V1 | (not applicable) | Virtual Cable 1 |
Mapper (map is usually enough) | Microsoft Sound Mapper | (not applicable) |
A device specification not matching one of the above names exactly (except that letter casing doesn't matter) will be matched against the available device names for the appropriate device type (input or output). If there is exactly one match, that device is used. If there are more matches, a list will appear allowing selection of a device by number.
Repeaters can also be matched by partial name but can also be matched by referring to the repeater's status or type, again by partial or whole text. For example, if only one KS repeater is running, "close ks" should close it.
Audir supports exactly the same repeater command-line options supported by the repeaters themselves, though a few should not be used through Audir (see below). Defaults for each repeater type can be established via the defaults command. Examples:
The following VAC repeater options are supported (list obtained from VAC 4.14 and 4.15 documentation):
Option | Default/Sample Value | Meaning |
---|---|---|
SamplingRate | 48000 | Sampling rate. |
BitsPerSample | 16 | Bits per sample. |
Channels | 2 | Number of channels. |
ChanCfg | Channel configuration (MME repeaters). | |
ChanCfgIn | Input channel configuration (KS repeaters) | |
ChanCfgOut | Output channel configuration (KS repeaters) | |
BufferMs | 500 | Total buffering length in milliseconds. |
Buffers | 12 | Number of buffers (parts of buffering space). |
Priority | Normal | Process priority. |
OutputPreFill | 50 | Percent of output queue to pre-fill before starting output (KS repeaters starting in VAC 4.15). |
ContQueueIn, ContQueueOut | No value | Use continuous queue mode with input or output pin (legacy only) (KS repeaters starting in VAC 4.15). |
Note that the following repeater options should not be used through Audir because Audir uses these internally or implements their functionality by other means:
At this writing, sox_ng supports more than 65 effects that can be applied to audio as it passes between devices and files. Effects can be combined in an "effects chain" or, in complex cases, multiple effects chains that run sequentially. A full discussion of SoX effects and chains is beyond the scope of this Guide, but some example effect chains follow. See the sox_win/sox_ng.txt file in this package for a full description of all SoX effects supported.
Effects | Description |
---|---|
vol 0.5 | Cut the output volume in half. |
softvol 0.8 | Lower the volume slightly and prevent clipping of extremely loud noises./td> |
highpass 100 | Apply a highpass filter. |
bass -15 treble -15 | Reduce low and high frequency sound. |
compand 0.3,1 6:-70,-60,-20 -5 -90 0.2 | Compress the dynamic range such as for listening in a car. SoX also includes an mcompand effect for more complex needs; see the example below this table. |
equalizer 60 .001h -180 equalizer 120 .001h -180 | Remove fundamental and first harmonic of a 60 Hz hum with minimal disturbance to the remaining signal. |
echo 1 1 500 .5 1000 .25 | Add two echos at 0.5 seconds and 1 second delay from original audio, at decreasing volumes. |
loudness | A human-ear loudness curve as provided by buttons on many stereo systems. |
oops | An "out of phase stereo" effect that results in only the differences between the stereo channels being audible. |
reverb 100 0 100 100 | A reverb effect that simulates a very large space. |
pitch -200 | Lower the pitch of the audio by 200 cents (a full musical step) without changing its playback speed. |
remix 1 1 | Only pass through the left channel, but into both channels of the result. |
riaa | Apply the standard RIAA vinyl playback equalization curve. |
speexdsp | Apply a filter that emphasizes changes in sound, reduces background noise, and tries to keep the volume steady./td> |
For a final and very complex example (taken from an old SoX man page), the following command, if given on one line as Audir input (and with a sufficiently old SoX version that supports the filter effect), will create a SoX repeater that takes sound from VAC line 1 and sends it to VAC line 2 after applying an effect chain that compresses the audio in a manner commonly done for US FM radio broadcasting (including 75us pre-emphasis). Note that this is a single, very long line and that the --buffer 4096 part is added in order to prevent fragmentation during real-time sound processing with so many steps:
sox l1 l2 --buffer 4096 gain -3 filter 8000- 29 100 mcompand "0.005,0.1 -47,-40,-34,-34,-17,-33" 100 "0.003,0.05 -47,-40,-34,-34,-17,-33" 400 "0.000625,0.0125 -47,-40,-34,-34,-15,-33" 1600 "0.0001,0.025 -47,-40,-34,-34,-31,-31,-0,-30" 6400 "0,0.025 -38,-31,-28,-28,-0,-25" gain 15 highpass 22 highpass 22 filter -n 255 -b 16 -17500 gain 9 :broadcast12For an actual simulation of FM radio sound, as opposed to the broadcast signal condition just given, add "lowpass -1 17801" just before the ":broadcast12" above. (Sadly, the filter effect used in the above example has since been removed from SoX in favor of the newer sinc effect. At this writing, the exact way to replicate the original effects using sinc is not clear.)
Note that the following SoX options and effects should not be used with Audir:
Note that although piping options are not supported, pipes created by using "|sox ..." in place of device names are allowed. This is very advanced and probably rare usage, however. The following example uses a second SoX process to generate a ringtone-like sound which is then trimmed to one second duration and volume-reduced (to avoid clipping) by the main SoX process:
sox "|sox -n -p synth 0.075 trap A4 : synth 0.075 trap F4 : restart" -d trim 0 0:1 vol 0.5In that example, the "|sox ..." sequence is used as the source endpoint, and -d makes sound go to the default output device. (An error like "sox FAIL sox_ng: `-' error writing output file: Broken pipe" may occur and can be ignored; this is the nested SoX instance discovering that the outer SoX has closed and cut it off.)
SoX supports a SOXOPTS
environment variable that can include default options to apply to all SoX
invocations. While use of this approach is not required for Audir SoX processes since Audir includes a system
for managing defaults, any options found in a SOXOPTS
environment variable will be honored by SoX
processes that Audir launches.
Audir defines a number of SoX effect shortcuts. The syntax of these shortcuts is deliberately unlike that of native SoX effects, to make it easier to distinguish between the two. Each shortcut, when typed as part of a SoX repeater specification, is expanded into the native SoX equivalent. This may be one effect or a whole sequence of effects.
Warning: These shortcuts and their expansions may change without notice and should be considered experimental. When a repeater is saved, these shortcuts are expanded before saving though; so any changes in expansions will not alter or break saved repeaters.
To see exactly what a shortcut will do, in terms of actual SoX effects, use the sfx command. For example,
sfx comp35will print the SoX effects that would be used in place of that shortcut:
compand .01,.01 -35,-20,0,-10Some shortcut translations are admittedly quite complex. The following convoluted sequence is generated by the shortcut nv45@600/800 as of this writing (December 4, 2022):
vol .01 equalizer 600 800h 55 compand .0001,.05 6:-45.0001,-45,-inf,0,-inf 0 0 .0015 silence 1 0 .001% -1 0 .001% -1 .022 .001% equalizer 600 800h -55 vol 100The nr effect will also produce a "profile effects" line; this will be explained in the NR For Noise Reduction section.
The defined Audir SoX effect shortcuts are described in the following subsections.
Shortcuts for specifying high-pass and low-pass filters. These are mostly to simplify direct typing of effect chains. Decimal frequencies are permitted though they may not be very useful.
A very reactive compression of dynamic range. Higher values of <dB> produce more compression. If the optional trailing s is present, each stereo channel is compressed independently, so that a loud sound in one channel will not reduce the volume of the other.
Removes the fundamental and indicated harmonics of a tone, usually a hum, from the signal. The starting and ending frequencies may be integers or floating-point numbers. If the ending frequency is omitted, the effect produces just one band removal. Equalizers are generated for each integer multiple of the start frequency that is less than or equal to the ending frequency. If a width is given, it is used; otherwise, a width per band of 0.0001h is used.
Note that widths can be given in any units accepted by SoX. At this writing, these are h (Hz), k (kHz), o (octaves), and q (h is assumed if no unit is given). Of these, the last two are scaled around each band whereas the first two maintain constant width in Hz. The effect is that removed bands for higher multiples of the base frequency become increasingly wider for q and o but not for h and k. In practice, this author finds such width increases produce more undesirable signal loss; but the trade-off may be of benefit for certain cases, such as when processing a recording in which the entire signal's speed fluctuates slightly but continuously. A tape recording made on a machine with significant flutter, and a VoIP conversation recording that contains a hum but that was carried over a poor Internet connection that caused compensatory speed fluctuations in the audio, are two examples that might benefit from scaled band size.
Shortcuts useful for handling Dolby A cassette recording simulation or decoding. The specific SoX effects for these were contributed via a mailing list by Martin Guy in February, 2025. At this writing, testing of these effects has been limited. Care is advised on input sound levels for the dlbac effect to avoid clipping.
See also the dolbyb
sox_ng native effect.
See the sox_win/sox_ng.txt file in this package for a full description of all SoX effects supported.
Simulates FM radio sound or FM broadcast signal condition, with standard US-style 75us pre-emphasis.
Unfortunately at this writing, these effects are imperfect because they necessarily include guessed replacements
for two filter
effects that SoX no longer supports.
Removes (trims out) silence. <percent> is the percentage of the signal (by amplitude) to remove. As a special historical case, a value with a leading 0 is treated as a decimal value; thus, sil01 is the same as sil0.01. Reliance on this historical behavior is not recommended.
Noise gating: nv to remove high-level sounds and ov to remove low-level sounds. Historically, nv and ov stood for "no vocals" and "only vocals," respectively. This author used nv to test individual vocal tracks, before mixing, for stray background sounds. The nv and ov effects are meant to be the inverses of one another.
<dB> indicates the decibel level above which for nv, or below which for ov, to remove signal. If specified, <center> indicates a central frequency that is first boosted and then removed again after gating. This facilitates removing or exclusively preserving vocals, for example. The default width of the boosted frequency range is 400 Hz, but <width> can also be given to change this.
The following caveats apply to the nv and ov effects:
Noise reduction via temporary inline noise profile. Samples length of the input starting at start to create a noise profile, then pipes the profile into SoX and uses factor to determine how much noise to remove. If factor is less than 1, it is simply used on the resulting noisered effect. If factor is 1 or omitted, the noisered factor will be 0.0. If factor is greater then 1, the noisered factor is 0.0 and a vol <factor> effect is prepended to the noisered effect.
Note that this effect will not work well (if at all) in a streamed-input situation because of the need to sample input in a separate process before starting to copy input to output. Even if this problem is one day fixed in Audir, use of this effect in real time would require human prediction of when a good noise sample would occur in real time. The recommended alternative for a real-time stream is to craft in advance a suitable noise profile file and then use it via the native SoX noisered effect for the stream.
The sfx command for examining shortcut translations will also show the SoX effects that would be used to create the noise profile for this effect:
Audir> sfx nr3:0,0:2,1.1The first line of output is the effect chain generated for the repeater itself. vol 1.1 comes from the ":1.1" part of the nr effect. The second line indicates the SoX effect chain that would generate the profile - two seconds taken from the three-minute mark in the input. The final dash indicates that this effect chain is intended to pipe into the main SoX invocation.
vol 1.1 noisered - 0.0
Profile effects: trim 3:0 0:2 noiseprof -
DTMF or touch-tone dialing sound generation. For each character in <string>, produces the corresponding set of two tones comprising the telephone keypad sound for that button. Valid characters are the numbers 0 through 9, * and # for the keys to the left and right of 0 on a standard telephone keypad, and A through D (in upper or lower case) for the column of buttons to the right of the normal keys on some keypads. The optional parameters after this string will be explained shortly but are not likely to be needed in most circumstances.
Note that since this effect generates its own sound, it is generally useful only when the input source is -n. An example Audir command: sox -n l1 dtmf438# would send to Virtual Audio Cable line 1 the sounds representing the telephone keypad keys "4 3 8 Pound."
A particularly handy Audir trick for use with the dtmf effect is to create an alias that automatically sends the sounds to the correct device:
alias dtmf sox -n l1 dtmf%1will define an Audir command alias so that the following simpler command will send the codes for "4 3 8 Pound" to Virtual Audio Cable line 1:
dtmf 438#Notice though that whereas there is no space in the SoX dtmf effect between dtmf and the digits to dial, there must be a space between an alias and the argument passed to that alias.
This effect supports up to four additional parameters, separated from the dialing string and from each other by slashes (/). If you wish to skip a parameter and specify a later one, include the slash for the skipped parameter. The parameters, in order, are as follows, with the defaults indicated:
The alias command is useful for creating simplifications of common commands. For example, to load a series of repeaters that you have saved under various names, you could make an init alias to load them:
alias init launch mic1 36 46 6real(In this author's notation, these repeater names mean "mic to line 1, VAC line 3 to line 6, line 4 to line 6, and line 6 to Realtek sound device.") Thereafter, simply typing "init" will launch all listed repeaters. Creating an automatic repeater launch shortcut then becomes a matter of placing an "audir init" shortcut in the Windows Startup folder. Changing the list of repeaters is as simple as entering a replacement for the alias.
Simple aliases just consist of material to replace the alias on the command line; for example, the command "alias c clear" will make the command c clear the screen. "alias lsox ls sox" will make lsox a shortcut for the command "ls sox" for listing running SoX repeaters.
More complicated aliases are also supported: Aliases can accept parameters and use them as appropriate. An example already given is the alias in the DTMF effect section:
alias dtmf sox -n l1 dtmf%1In that alias definition, %1 represents the first item typed by the Audir user after the dtmf alias; thus, for the command line "dtmf 438#," %1 will become 438# when the alias expands. This will make the user command result in the actual Audir command "sox -n l1 dtmf438#."
Audir includes a very powerful feature that allows a whole set of repeaters to be managed live from a text window. From this window, repeaters can be reviewed, modified, quickly closed and reopened, and (for MME and KS repeaters) stopped and started with realtime results.
To invoke this feature, type edit, or just ed, from an Audir command prompt. A Notepad window will open containing a list of all loaded repeaters (running and stopped), along with a short block of instructions above the list. The Audir command window will be suspended until this Notepad instance is closed, though information will appear in the Audir window each time the Notepad window is updated and saved.
In the Notepad window, each loaded repeater is represented by a line much like the one typed initially to create it. There are two departures from the Audir command-line syntax, however: If the repeater has a name, the name will appear at the start of the line and will be followed with a colon (:), rather than appearing at the end of the line and prefixed with a colon (this makes identifying named repeaters easier). A stopped repeater will be prefixed with an exclamation mark (!). This allows quick toggling on/offof repeaters that support the stop and start commands.
The following operations are now possible. Save the file, such as by typing Ctrl+S, at any time to apply the changes to the set of loaded repeaters.
A new repeater may also be created by adding a line for it. The following warnings apply, however:
Example uses of the edit command:
It is possible to use an editor other than Notepad. To do this, set the application name and/or path with an opt editor command. be sure to include a path if Windows would not otherwise find the application automatically. Example:
opt editor C:\Program Files\Freedom Scientific\JAWS\2025\HJPad.exeA .exe extension will be added if no extension is given. Use the following command to return the editor to its Notepad default:
opt -d editor
Take note of the following if changing the editor:
The following tips and hints are derived from this author's personal experience. Your mileage may vary.
Starting in VAC version 4.15 (released in December, 2015), typing Ctrl+C while in a "Wave in" or "Wave out" box of an MME or KS repeater window will copy the selected device name to the clipboard. This may facilitate creation of Audir repeater configurations for saving and reuse.
Optimal default buffer sizes for Virtual Audio Cable and/or SoX may change on an update. This author found,
for example, that a SoX default of --buffer 1024 was sufficient for SoX 14.4.1 but that a buffer size
of 2048 or 4096
was required for SoX 14.4.2 to avoid lost sound.
sox_ng seems to require a buffer size of 3000 or greater, and 4000 or greater with its new
speexdsp
effect.
Default buffer sizes will also vary of course
based on other factors such as system load and other running applications.
Interesting uses of SoX repeaters:
SoX l6 "Speakers (Logi H800 Headset)" --input-buffer 32 --buffer 3000 equalizer 4000 .2o -13 equalizer 5340 .2o -10 equalizer 10680 .1o -18Similarly, this author uses the following trick to adjust the same headset's mic sound before it is transmitted into chat applications:
SoX "Microphone (Logi H800 Headset)" l1 --input-buffer 32 --buffer 3000 highpass 50 bass 6 650 1 equalizer 4000 .2o -13 equalizer 6064 .2o -15 treble 12 9000 1 equalizer 3568 .004h -190 compand .01,.01 -25,-20,0,-10 0 0 .012Elements of that final example, explained:
When using the SoX pitch effect, a buffer of at least 8192 may be required. The same goes for the
noisered effect, which can crash with an insufficient buffer size..
The pitch effect's buffer size requirements seem more intensive for lowering than for raising
pitch. The sox_ng speexdsp
effect will likely require a buffer size of at least 4000.
In the unlikely event it becomes desirable to reload a repeater without changing it while in an edit command's Notepad window, simply add or remove an extra space from between items on the repeater's line, then save the file.
If you need an Audir prompt while an edit window is active, just launch a second Audir instance. (Just be careful not to start a second simultaneous edit session - it should work, but it could sure cause confusion).
The following issues may be addressed as time permits:
C:\python37\lib\site-packages\win32\lib\pywintypes.py:2: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses import imp, sys, osThis message is harmless and will likely go away as Python and library versions advance.
This section lists changes among Audir releases, most recent first.
This is a significant Audir update and should not be installed over the top of a previous installation. This release notes entry is broken into sections listing updated requirements, changes, and new sox_ng effects.
There are some unique requirements for this update installation:
%APPDATA%/Audir/audir.ini
.
--buffer
values, in specific repeaters or in defaults, to avoid stuttering sound.
This Audir author found it necessary to use a buffer size of 3000 or greater.
This release comes with a newer SoX version that actually comes from the sox_ng fork of that project. The sox_ng 14.6.1 shipped with this Audir update adds several sound processing effects and supported file formats.
New sound processing effects:
dolbyb
dop
firfit
sdm
softvol
vol
but with protection against clipping.
speexdsp
mixer
effect, which has been deprecated for years, and the
divide
effect, which was experimental and not sufficiently documented.
See the sox_win/sox_ng.txt file in this package for a full description of all SoX effects supported.
New file formats supported will vary based on whether ffmpeg.exe is available. A maximal list of formats that sox_ng, with ffmpeg where necessary, can support (currently 166, up from 83 supported in SoX 14.4.1 as previously shipped with Audir):
3g2 3gp 3gp2 3gpp 3gpp2 8svx aac ac3 adts adx aif aifc aiff aiffc al amb amr-nb amr-wb anb ape apm aptx aptxhd argo_asf asf ast au avi avr awb caf cdda cdr cvs cvsd cvu dat dff dfpwm dsf dts dvd dvms eac3 f32 f4 f4v f64 f8 fap ffmpeg flac flv fssd gsm gsrt gxf hcom htk ima ircam ism ism isma ismv kvag la lpc lpc10 lu m4a m4b m4v mat mat4 mat5 maud mj2 mkv mlp mov mp2 mp3 mp4 mp4 mpc2k mpeg mpegts mpg mxf mxf_opatom nist nsp nut oga ogg opus paf prc psp pvf ra raw rm rso s1 s16 s2 s24 s3 s32 s4 s8 sb sbc sd2 sds sf sl sln smjpeg smp snd sndfile sndr sndt sou sox spdif speex sph spx svcd sw tta txw u1 u16 u2 u24 u3 u32 u4 u8 ub ul uw vag vcd vms vob voc vorbis vox w64 wav wavpcm webm wma wsaud wsd wtv wv wve xa xi
audir.exe
for Windows, is changed from 3.7 to 3.12.
audir.exe
on Windows 7 is likely to generate a missing DLL error message. Windows 7 users may
still run Audir by installing a Python version older than 3.9 and running Audir under it from source.
audir.exe
and supporting files are generated with PyInstaller version 6.3.0.
Previous Audir revisions used PyInstaller version 3.5 or older.
mplib/auutils.py
is renamed to mplib/dglutils.py
, better to reflect its
actual purpose. You can safely delete mplib/auutils.py
after installing this update.
audir.exe
and was forced
by several antivirus programs mistakenly claiming that single-file Python executables
contained a trojan or other malware.
This change also has the side effect of adding a subfolder to the folder
containing audir.exe
.
sox_ng.exe
rather than sox.exe
.
eqs
effect may be omitted, which
causes Audir to assume h
.
sil
shortcut is corrected:
The old (and no longer recommended) dotless format was incorrectly said to trim more silence than is actually
trimmed. For example, sil03
is the same as sil0.03
, not sil0.3
.
SoX
processes may appear more immediately.
TypeError
on a command like alias x
when
audir.ini
doesn't even contain a section for aliases yet.
This issue was never reported but was proven possible.
The subfolder in this distribution that contains a Windows SoX implementation is changed from sox
to sox_win
.
Anyone who placed a SoXPath
entry in the [Global]
section of
audir.ini
and who used that setting to load this SoX implementation explicitly
will need to update that path accordingly. Example:
[Global]Anyone installing this Audir revision over a previous one may safely remove the
SoXPath=c:\audir\sox_win
sox
subfolder and
its contents.
Anyone (this author included) who has had difficulty in recent months loading SoX repeaters from Audir for specific sound devices should try again, as the trouble seems to have cleared up. The cause of both the problems and the resolution are not known, but suspects include Windows updates, device driver updates, and unrealized side effects of other Audir changes. This author's difficulties were specifically with an Andrea PureAudio USB device.
There is a new rel
command for printing the release notes for all updates that have not already
been installed. The material printed by this command comes directly from the Revision History section of this
document's online version. The formatting may be less visually appealing than in a web browser however, due to
limitations of Windows console output. For those who like to live on the edge, rel -b
will check
for and print release notes for beta revisions instead of releases.
The delete
command is changed to ease deletion of repeaters whose names match a search:
There are three adjustments to the eqs
effect:
eqs60-60
may be shortened to eqs60
.
eqs60-300/.0005h
.
The default width if none is given is 0.0001h.
See the eqs section of this manual for details on this updated syntax.
eqs33.25-100
will produce the expected band removals around 33.25 Hz and 66.5 Hz instead of around 33 Hz and 66 Hz.
The nv
and sil
effects use 0 for time threshholds instead of positive small values as
before.
The dtmf effect supports four new optional parameters. These allow changes to the duration of tones, the duration of silence between them, the fade at the beginning and end of each tone, and the delay after all tones have played before the effect completes.
Some output and help should be better formatted.
synth
generations.
Warning: This means you must change fm to fmr in any saved SoX
repeater that uses the original fm effect. The Audir author apologizes for this.
close
, start
, stop
,
show
, hide
, info
.
This means, for example, that the command launch r1 r5 r9
can be reversed with the similar
command close r1 r5 r9
.
launch
to produce an error message instead of listing all available
named repeaters.
auutils.py
utility file is moved from the root Audir folder into the mplib
subfolder.
If you are installing this Audir update directly on top of an older version, you can delete
auutils.py
from the Audir root folder.
filter
effects
that SoX no longer supports, and these replacements are not fully accurate.
-d
SoX option, for default input or output device, is supported for SoX repeaters.
"|sox ..."
construct)
will use the same SoX instance and will not require SoX to be on the system path.
This is very advanced and probably rare usage.
ls
and other commands that produce lists.
del
when there is exactly one saved repeater available will prompt for permission to
delete it rather than just deleting it without asking.
This is the first released Audir version that runs under Python 3.7 rather than 2.7. Anyone running Audir from source must now use Python 3.7.
Other changes:
This release adds a stand-alone installer. This works without requiring Python to be installed.
This is the first release under the name Audir (this program was formerly named Vacro).
This is the first revision released since Vacro revision 84. There are many changes. The two most notable changes are the addition of Sound eXchange (SoX) support and the ability to edit repeaters in a Notepad window and update them in real time.
A SoX process can now be used as a sound recorder, a sound or URL stream player (probably less commonly needed), or a repeater. In any of these roles, SoX provides approximately 64 effects that can be applied to audio streams in real time. Examples include high, low, and bandpass filtering, equalizers, compression/expansion (of dynamic range), pitch alteration, and even AM and FM synthesis. Audir includes a few custom SoX effect shortcuts for convenience as well.
There is a new edit command that opens a Notepad window listing all loaded repeaters. From this window, repeaters can be stopped, started, modified, or closed. New repeaters can even be launched from this window, though caveats apply; see the Users Guide for details. This feature makes experimenting with SoX effects easy and fast and even simplifies saving and updating saved repeaters.
Other changes:
This is the last revision released under the name Vacro before the name changed to Audir.
The list of available named repeaters produced by typing the launch command with no arguments now omits named repeaters that are already loaded.
The defaults command may now be typed with no arguments to display the defaults for both MME and KS repeater types at once.
The manual now includes a Quick Start section.
Selection lists for repeaters and devices allow multiple selections at once; so, for example, it is possible to close several repeaters at once. Numbers may be separated by commas and/or spaces, and ranges like 1-3 and 1..3 are also supported.
There is now a defaults command for setting up default repeater options. defaults MME /BufferMs:100 sets up a default buffer length for MME repeaters. See the manual for a list of supported options.
Repeaters named on the command line are saved under that name for future reference, and the launch command supports launching them by name: MME l1 l2 12 creates a repeater named "12" that connects VAC line 1 to line 2. Subsequently, launch 12 can be used to launch it. launch 12 /BufferMs:200 launches it with a 200 ms buffer length without changing the normal buffer length for that repeater.
There is now a delete (or just del) command for deleting saved repeaters.
The manual includes a succinct command list near the beginning.
Vacro attempts to set its console title to "Vacro."
First public revision posted. Allows repeaters to be created, closed, started, stopped, shown, hidden, and listed from within Vacro.