out123(1)
out123(1) β straight from the General Commands Manual, and yes bestie we're doing this π
π NAME π
out123 β send raw PCM audio or a waveform pattern to an output device
π¦ SYNOPSIS π¦
cat audio.raw | out123 [ - ] [ options ]
out123 [ options ] filename [ filename ... ]
out123 --wave-freq freq1[,freq2,...] [ options ]
out123 --source geiger [ options ]
π DESCRIPTION π
okay so here's the vibe: out123 reads raw PCM data β in host byte order, don't forget that part β from standard input, and plays it on the audio device you picked with your options. π§
OR. plot twist. it can generate periodic or random signals for playback all by itself, no input file needed. main character energy, fr fr. β¨
π₯ OPTIONS π₯
so out123 options can be either the traditional POSIX one-letter options, or the GNU style long options. POSIX style ones start with a single -, GNU long ones start with --. Option arguments (if they even need one) follow separated by whitespace β not =, bestie, we don't do that here. And heads up: some options can be absent from your installation when they were disabled in the build process. not ghosting you, they just weren't compiled in. π
--namename β sets the name of this instance, possibly used in various places. this sets the client name for JACK output.-omodule,--outputmodule β pick your audio output module. you can hand it a comma-separated list and it'll use the first one that works. also peep-a.--list-modulesβ lists the available modules. that's it, that's the whole option π--list-devicesβ lists the available output devices for the given output module. if the chosen module has literally no device-listing functionality, it prints an error andout123exits with a non-zero code. rude but fair.-adev,--audiodevicedev β specify the audio device to use. the default and the possible values depend on the active output. for the JACK output, you can give a comma-separated list of ports to connect to (one for each channel).-s,--stdoutβ the audio samples get written to standard output instead of being played through the audio device. the output format is the same as the input ... so in this modeout123acts similar to the standard toolcat, possibly with some conversions involved. this shortcut is equivalent to-o raw -a -.-S,--STDOUTβ this variant additionally writes the data to stdout while still playing it on the output device. so it's more like some flavour ofteethan acat. π-Ofile,--outfileβ write raw output into a file (instead of just redirecting standard output to a file with the shell). this shortcut is equivalent to-o raw -a file.-wfile,--wavβ write output as a WAV file file, or to standard output if-or the empty string is used as the file name. you can also use--auand--cdrfor AU and CDR format, respectively. note that WAV/AU writing to non-seekable files or redirected stdout needs some thought. the header is written with the first actual data. the result of decoding nothing to WAV/AU is a file consisting just of the header when it is seekable, and really nothing when it's not (not even a header). correctly writing data with prophetic headers to stdout is no easy business. this shortcut is equivalent to-o wav -a file.--aufile β write to file in SUN audio format. if-or the empty string is used as the filename, the AU file is written to stdout. see the paragraph about WAV writing for header fun with non-seekable streams. this shortcut is equivalent to-o au -a file.--cdrfile β write to file as a CDR (CD-ROM audio, more correctly CDDA for Compact Disc Digital Audio). if-or the empty string is used as the filename, the CDR file is written to stdout. this shortcut is equivalent to-o cdr -a file.-rrate,--raterate β set sample rate in Hz (default:44100). if this does not match the actual input sampling rate, you get changed pitch. might be intentional ;-)-Rrate,--inputraterate β set input sample rate to a different value. this triggers resampling if the output rate is indeed different. see--resample.--speedfactor β speed up/down playback by that factor using resampling. see--resample.--resamplemethod β this chooses the method for resampling between differing sampling rates, or to apply a change in tempo. you can choose between two variants of the syn123 resampler:fine(the default) anddirty. the fine one features 108 dB dynamic range and at worst-case 84% bandwidth. the dirty one uses a bit less CPU time (not that much, though) by reducing the dynamic range to 72 dB with worst-case bandwidth of 85%. the exact properties vary with the sampling rate ratio, as there is interpolation of filter coefficients involved.-ccount,--channelscount β set channel count to the given value.-Ccount,--inputchcount β set input channel count to a differnt value than for output. this probably means you want some remixing. also see--mix.-eenc,--encodingenc β choose output sample encoding. possible values look likef32(32-bit floating point),s32(32-bit signed integer),u32(32-bit unsigned integer) and the variants with different numbers of bits (s24,u24,s16,u16,s8,u8) and also special variants likeulawandalaw8-bit. see the output ofout123's longhelp for actually available encodings. default iss16.--endianchoice β select output endianess (byte order). choice isbig,little, ornative, which is the default. the processing can only work in native mode, so you need to specify input or output byte order if that does not match your machine. this also sets the input endianess if that is not set separately. see also--inputendand--byteswap.-Eenc,--inputencenc β specify input encoding different from output encoding, for conversion.--inputendchoice β select input endianess (byte order). by default it is the same as output byte order. see--endian.--byteswapβ a switch to trigger swapping of byte order just before output, after any other transformations. this works on top of any endianess you specify with β¦ (and yeah, the original page literally trails off right there, bestie, I'm not making that up π)-m,--monoβ set for single-channel audio (default is two channels, stereo).--stereoβ select stereo output (2 channels, default).--list-encodingsβ list known encoding short and long names to standard output.--mixmatrix β specify a mixing matrix between input and output channels as linear factors, comma separated list for the input channel factors for output channel 1, then output channel 2, and so forth. the default is a unit matrix if channel counts match, so for 3 channels the equivalent of both channels with halved amplitude, so--mix 0.5,0.5. for splitting mono to stereo, it is--mix 1,1top keep the symmetry.--filtercoeff β apply digital filter(s) before pre-amplification (see--preamp) with the coefficient list coeff as
b_0,...,b_N,a_0,...,a_N
where a_0=1 is mandatory and perhaps helps orientation a bit. multiple filters are separated by :.
-Pdbvalue,--preampdbvalue β enable a pre-amplification stage that amplifies the signal with the given value in dB before output.--offsetvalue β apply a PCM offset (floating point value scaled in[-1:1]) in the pre-amplification stage. normally, you would do that to correct a known DC offset in a recording.--clipmode β select clipping mode:softorhardfor forced clipping also for floating point output,implicit(default) for implied hard clipping during conversion where necessary.--ditherβ enable dithering for conversions to integer. if you insist. this is just some un-spectacular TPDF dither. for some people, that is not fancy enough. most people cannot be bothered that way or the other. π«--test-formatβ check if the given format is supported by the given driver and device (in the command line before encountering this), silently returning0as exit value if it is the case.--test-encodingsβ print out the short names of encodings supported with the current setup.--query-formatβ if the selected driver and device communicate some default accepted format, print out a command line fragment forout123setting that format, always in that order:--rate <r> --channels <c> --encoding <e>-o h,--headphonesβ direct audio output to the headphone connector (some hardware only; AIX, HP, SUN).-o s,--speakerβ direct audio output to the speaker (some hardware only; AIX, HP, SUN).-o l,--lineoutβ direct audio output to the line-out connector (some hardware only; AIX, HP, SUN).-bsize,--buffersize β use an audio output buffer of size Kbytes. this is useful to bypass short periods of heavy system activity, which would normally cause the audio output to be interrupted. you should specify a buffer size of at least1024(i.e. 1 Mb, which equals about 6 seconds of usual audio data) or more; less than about300does not make much sense. the default is0, which turns buffering off.--preloadfraction β wait for the buffer to be filled to fraction before starting playback (fraction between 0 and 1). you can tune this prebuffering to either get sound faster to your ears or safer uninterrupted web radio. default is0.2(changed from1since version 1.23).--devbufferseconds β set device buffer in seconds;<= 0means default value. this is the small buffer between the application and the audio backend, possibly directly related to hardware buffers.--timelimitsamples β set playback time limit in PCM samples if set to a value greater than zero.out123will stop reading from stdin or playing from the generated wave table after reaching that number of samples.--secondsseconds β set time limit in seconds instead.--sourcename β choose the signal source:file(default) for playback of the given file(s) on the command line or standard input if there are none, or one of the generatorswave(see--wave-freq),geiger(see--geiger-activity), or justwhitefor some white noise.
and we are literally not even done yet, bestie β there's more of this page coming in part 2, don't go anywhere π
--wave-freq frequenciesβ sets the wave generator frequency, or a whole comma-separated list of them, so you can turn on a generated test signal instead of feeding from standard input. Empty values just repeat the previous one, periodt. β¨--wave-pat patternsβ picks the waveform patterns for those generated waves, as a comma-separated list. The choices are sine, square, triangle, sawtooth, gauss, pulse, and shot. Empty values repeat the previous one, no cap. π--wave-phase phasesβ sets waveform phase shift(s) as a comma-separated list. Negative values invert the pattern in time, and an empty value repeats the previous one. Thereβs also--wave-directionoverriding that negative bit, iykyk. π--wave-directionβ sets the wave direction explicitly. And bestie, the sign counts. π₯--wave-sweep frequencyβ sweeps a generated wave to the given frequency, starting from the first one you specified for--wave-freq, and it uses the first wave pattern and direction too. π¦--sweep-time secondsβ sets the frequency sweep duration in seconds if itβs > 0. This defaults to the configured time limit if one is set, otherwise one second, because endless sweeps are just not sensible, okay? π--sweep-count countβ sets the timelimit to exactly produce that many (smooth) sweeps. Slay. β¨--sweep-type typeβ sets the sweep type:lin(ear)for linear,qua(d)(default) for quadratic, orexp(onential)for an exponential change of frequency with time. π--sweep-hardβ disables post-sweep smoothing for periodicity. Hard mode. π--genbuffer bytesβ sets the buffer size (limit) for signal generators, if itβs > 0 (which is the default). This enforces a periodic buffer also for non-periodic signals, and the benefit is less runtime CPU overhead, as everything is precomputed as an enforced periodic signal. Efficiency queen. π--wave-limit samplesβ this is just an alias for--genbuffer. Twin vibes. π«Ά--pink-rows numberβ activates the pink noise source and chooses rows for the algorithm (anything < 1 chooses the default). The generator follows code provided by Phil Burk (http://softsynth.com) and uses the Gardner method. π--geiger-activity numberβ configures the simulation of a Geiger-Mueller counter as source, with the given number as average events per second. Play with it. Itβs fun! β‘-t,--testβ test mode, bestie. The audio stream is read, but no output occurs. Silent but present. π-v,--verboseβ increases the verbosity level. Spill the tea. β-q,--quietβ quiet mode. Suppresses diagnostic messages. Shhh. π€«--aggressiveβ tries to get higher priority. Go-getter energy. πͺ-T,--realtimeβ tries to gain realtime priority. This option usually requires root privileges to have any effect, so donβt be surprised. π-?,--helpβ shows short usage instructions. The quick lil map. πΊοΈ--longhelpβ shows long usage instructions. The full novel. π--versionβ prints the version string. Know your roots. β
π«Ά AUTHORS π«Ά
- Maintainer: Thomas Orgis
<maintainer@mpg123.org>,<thomas@orgis.org> - Creator (ancestry of code inside mpg123): Michael Hipp
- Uses code or ideas from various people, see the
AUTHORSfile accompanying the source code.
π LICENSE π
out123 is licensed under the GNU Lesser/Library General Public License, LGPL, version 2.1 .
π WEBSITE π
kisses, your out123(1) bestie π this lil page is from 26 Apr 2020, out123(1), mwah π
π¦ where this page comes from
- alpine 3.22: mpg123-doc 1.32.10-r0 Β· LGPL-2.1-only
- alpine 3.23: mpg123-doc 1.33.3-r0 Β· LGPL-2.1-only
- alpine 3.24: mpg123-doc 1.33.5-r0 Β· LGPL-2.1-only
- arch rolling: mpg123 1.33.7-1 Β· LGPL-2.1-only
- centos-stream 10: mpg123 1.32.9-1.el10 Β· GPL-2.0-or-later
- centos-stream 9: mpg123 1.32.9-1.el9 Β· LGPLv2+
- debian bookworm: mpg123 1.31.2-1+deb12u1 Β· LGPL-2.1-only
- debian trixie: mpg123 1.32.10-1+deb13u1 Β· LGPL-2.1-only
- fedora 43: mpg123 1.32.10-2.fc43 Β· GPL-2.0-or-later
- fedora 44: mpg123 1.32.10-3.fc44 Β· GPL-2.0-or-later
- nixpkgs unstable: libmpg123 1.33.7
- nixpkgs unstable: mpg123 1.33.7
- opensuse-leap 16.0: mpg123 1.32.7-160000.2.2 Β· LGPL-2.1-only
- opensuse-leap 16.0: mpg123 1.32.7-160000.2.2 Β· LGPL-2.1-only
- opensuse-leap 16.0: mpg123 1.32.7-160000.2.2 Β· LGPL-2.1-only
- opensuse-leap 16.0: mpg123 1.32.7-160000.2.2 Β· LGPL-2.1-only
- ubuntu jammy: mpg123 1.29.3-1build1 Β· LGPL-2.1-only
- ubuntu jammy: mpg123 1.29.3-1ubuntu0.1 Β· LGPL-2.1-only
- ubuntu noble: mpg123 1.32.5-1ubuntu1 Β· LGPL-2.1-only
- ubuntu noble: mpg123 1.32.5-1ubuntu1.1 Β· LGPL-2.1-only
- ubuntu questing: mpg123 1.32.10-1
- ubuntu resolute: mpg123 1.33.3-2 Β· LGPL-2.1-only
- ubuntu stonking: mpg123 1.33.7-1 Β· LGPL-2.1-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms