---
name: "Audio::Mixer"
section: "3pm"
platform: "linux"
package: "libaudio-mixer-perl"
version: "0.7-8+b6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Audio::Mixer"
---

# Audio::Mixer(3pm)

Perl extension for Sound Mixer control

## NAME

Audio::Mixer - Perl extension for Sound Mixer control

## SYNOPSIS

```
  use Audio::Mixer;
  $volume = Audio::Mixer::get_cval('vol');
  if (Audio::Mixer::set_cval('vol', 50, 40)) {
    die("Can't set volume...");
  }
```

## DESCRIPTION

Library to query / set various sound mixer parameters.

This is just a very simple Perl interface which allows one to set various sound mixer parameters. The most important probably 'vol' (volume). The list of all mixer parameters can be obtained using **get\_mixer\_params()** function.

All values (lcval, rcval) are numbers in 0-100 range.

## FUNCTIONS

get\_cval(cntrl) - Get parameter value Parameters:\
     cntrl - name of parameter Returns:\
     in array context: (lcval, rcval), where:\
       lcval - left channel value\
       rcval - right channel value\
     in scalar context returns value of **get\_param\_val()** (see below)

set\_cval(cntrl, lcval, rcval) - Set parameter value Parameters:\
     cntrl - name of parameter\
     lcval - left channel value\
     rcval - right channel value (optional, if not supplied\
       will be equal to lcval) Returns: 0 if Ok, -1 if failed

set\_source(cntrl) - set record source Parameters:\
     cntrl - name of channel to record from Returns: 0 if Ok, -1 if failed

get\_source(cntrl) - get record source Returns:\
     name of channel to record from

set\_mixer\_dev(fname) - Set mixer device name (optional),\
     /dev/mixer is used by default\
     fname - device name Returns: 0 if Ok

**init\_mixer()** - Initialize mixer (open it)\
     **set\_cval()** / **get\_cval()** opens / closes the mixer each\
     time they called unless **init\_mixer()** called before.\
     In case if **init\_mixer()** called before all other\
     functions will use already opened device instead of\
     opening it each time.

**close\_mixer()** - Close device.\
     Should be called only if **init\_mixer()** was used.

**get\_mixer\_params()** - Get list of mixer parameters Returns: list of parameters names.

LOW LEVEL FUNCTIONS:

get\_param\_val(cntrl) - Get parameter value Parameter:\
     cntrl - name of parameter Returns:\
     integer value, which will be constructed as follows:\
       lower byte (x & 0xff) - value of the left channel\
         (or whole value)\
       next byte  (x & 0xff00) - value of the right channel\
       third byte (x & 0xff0000) - flags (if x & 0x10000 then\
 	 2 channels exist)\
     or -1 in case of failure.

set\_param\_val(cntrl, lcval, rcval) - Set parameter value.\
     Here all parameters are mandatory (in contrast to **set\_cval()**). Parameters:\
     cntrl - name of parameter\
     lcval - left channel value\
     rcval - right channel value Returns: 0 if Ok, -1 if failed

## AUTHOR

Sergey Gribov, sergey@sergey.com

## LICENSE

Copyright (c) 2001 Sergey Gribov. All rights reserved.  This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

## SEE ALSO

[**perl**(1)](/perl/1.md).
