<spanid="alsaaudio"></span><h1><aclass="reference internal"href="#module-alsaaudio"title="alsaaudio (Linux)"><codeclass="xref py py-mod docutils literal notranslate"><spanclass="pre">alsaaudio</span></code></a><aclass="headerlink"href="#module-alsaaudio"title="Permalink to this heading">¶</a></h1>
<spanid="alsaaudio"></span><h1><aclass="reference internal"href="#module-alsaaudio"title="alsaaudio (Linux)"><codeclass="xref py py-mod docutils literal notranslate"><spanclass="pre">alsaaudio</span></code></a><aclass="headerlink"href="#module-alsaaudio"title="Link to this heading">¶</a></h1>
<p>The <aclass="reference internal"href="#module-alsaaudio"title="alsaaudio (Linux)"><codeclass="xref py py-mod docutils literal notranslate"><spanclass="pre">alsaaudio</span></code></a> module defines functions and classes for using ALSA.</p>
<dlclass="py function">
<dtclass="sig sig-object py"id="alsaaudio.pcms">
<spanclass="sig-prename descclassname"><spanclass="pre">alsaaudio.</span></span><spanclass="sig-name descname"><spanclass="pre">pcms</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">pcmtype</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">PCM_PLAYBACK</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.pcms"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">alsaaudio.</span></span><spanclass="sig-name descname"><spanclass="pre">pcms</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">pcmtype</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">PCM_PLAYBACK</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">list</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#alsaaudio.pcms"title="Link to this definition">¶</a></dt>
<dd><p>List available PCM devices by name.</p>
<p>Arguments are:</p>
<ulclass="simple">
@@ -61,7 +60,7 @@ commandline:</p>
<dlclass="py function">
<dtclass="sig sig-object py"id="alsaaudio.cards">
<spanclass="sig-prename descclassname"><spanclass="pre">alsaaudio.</span></span><spanclass="sig-name descname"><spanclass="pre">cards</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.cards"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">alsaaudio.</span></span><spanclass="sig-name descname"><spanclass="pre">cards</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">list</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#alsaaudio.cards"title="Link to this definition">¶</a></dt>
<dd><p>List the available ALSA cards by name. This function is only moderately
useful. If you want to see a list of available PCM devices, use <aclass="reference internal"href="#alsaaudio.pcms"title="alsaaudio.pcms"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">pcms()</span></code></a>
<spanclass="sig-prename descclassname"><spanclass="pre">alsaaudio.</span></span><spanclass="sig-name descname"><spanclass="pre">mixers</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">cardindex</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">-1</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">device</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">'default'</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.mixers"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">alsaaudio.</span></span><spanclass="sig-name descname"><spanclass="pre">mixers</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">cardindex</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">-1</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">device</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">str</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">'default'</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">list</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#alsaaudio.mixers"title="Link to this definition">¶</a></dt>
<dd><p>List the available mixers. The arguments are:</p>
<ul>
<li><p><em>cardindex</em> - the card index. If this argument is given, the device name
@@ -107,20 +106,24 @@ device, not the mixers for the first card.</p></li>
<spanclass="sig-prename descclassname"><spanclass="pre">alsaaudio.</span></span><spanclass="sig-name descname"><spanclass="pre">asoundlib_version</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.asoundlib_version"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">alsaaudio.</span></span><spanclass="sig-name descname"><spanclass="pre">asoundlib_version</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">str</span></span></span><aclass="headerlink"href="#alsaaudio.asoundlib_version"title="Link to this definition">¶</a></dt>
<dd><p>Return a Python string containing the ALSA version found.</p>
</dd></dl>
<sectionid="pcm-objects">
<spanid="id1"></span><h2>PCM Objects<aclass="headerlink"href="#pcm-objects"title="Permalink to this heading">¶</a></h2>
<spanid="id1"></span><h2>PCM Objects<aclass="headerlink"href="#pcm-objects"title="Link to this heading">¶</a></h2>
<p>PCM objects in <aclass="reference internal"href="#module-alsaaudio"title="alsaaudio (Linux)"><codeclass="xref py py-mod docutils literal notranslate"><spanclass="pre">alsaaudio</span></code></a> can play or capture (record) PCM
sound through speakers or a microphone. The PCM constructor takes the
following arguments:</p>
<dlclass="py class">
<dtclass="sig sig-object py"id="alsaaudio.PCM">
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">alsaaudio.</span></span><spanclass="sig-name descname"><spanclass="pre">PCM</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">type</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">PCM_PLAYBACK</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">mode</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">PCM_NORMAL</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">rate</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">44100</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">channels</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">2</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">format</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">PCM_FORMAT_S16_LE</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">periodsize</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">32</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">periods</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">4</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">device</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">'default'</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">cardindex</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">-1</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM"title="Permalink to this definition">¶</a></dt>
<dd><p>This class is used to represent a PCM device (either for playback and
<dd><p>This class is used to represent a PCM device (either for playback or
recording). The constructor’s arguments are:</p>
<ulclass="simple">
<li><p><em>type</em> - can be either <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_CAPTURE</span></code> or <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_PLAYBACK</span></code>
(default).</p></li>
@@ -237,7 +240,14 @@ the <cite>device</cite> keyword argument is ignored.
<p><strong>Note:</strong> This should not be used, as it bypasses most of ALSA’s configuration.</p>
</li>
</ul>
<p>This will construct a PCM object with the given settings.</p>
<p>The defaults mentioned above are values passed by :mod:alsaaudio
to ALSA, not anything internal to ALSA.</p>
<p><strong>Note:</strong> For default and non-default values alike, there is no
guarantee that a PCM device supports the requested configuration,
and ALSA may pick realizable values which it believes to be closest
to the request. Therefore, after creating a PCM object, it is
necessary to verify whether its realized configuration is acceptable.
The :func:info method can be used to query it.</p>
<p><em>Changed in 0.10:</em></p>
<ulclass="simple">
<li><p>Added the optional named parameter <cite>periods</cite>.</p></li>
@@ -259,8 +269,19 @@ name of the card. This was always fragile and broke some legitimate usecases.</p
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">info</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.info"title="Permalink to this definition">¶</a></dt>
<dd><p>The info function returns a dictionary containing the configuration of a PCM device. As ALSA takes into account limitations of the hardware and software devices the configuration achieved might not correspond to the values used during creation. There is therefore a need to check the realised configuration before processing the sound coming from the device or before sending sound to a device. A small subset of parameters can be set, but cannot be queried. These parameters are stored by alsaaudio and returned as they were given by the user, to distinguish them from parameters retrieved from ALSA these parameters have a name prefixed with <strong>“ (call value) “</strong>. Yet another set of properties derives directly from the hardware and can be obtained through ALSA.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">info</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">dict</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.info"title="Link to this definition">¶</a></dt>
<dd><p>Returns a dictionary containing the configuration of a PCM device.</p>
<p>A small subset of properties reflects fixed parameters given by the
user, stored within alsaaudio. To distinguish them from properties
retrieved from ALSA when the call is made, they have their name
prefixed with <strong>“ (call value) “</strong>.</p>
<p>Descriptions of properties which can be directly set during PCM object
instantiation carry the prefix “PCM():”, followed by the respective
constructor parameter. Note that due to device limitations, the values
may deviate from those originally requested.</p>
<p>Yet another set of properties cannot be set, and derives directly from
the hardware, possibly depending on other properties. Those properties’
<td><p><em>significant bits in sample</em></p></td>
<td><p><em>significant bits in sample</em><aclass="footnote-reference brackets"href="#tss"id="id2"role="doc-noteref"><spanclass="fn-bracket">[</span>1<spanclass="fn-bracket">]</span></a></p></td>
<td><p><em>nominal bits in sample</em><aclass="footnote-reference brackets"href="#tss"id="id3"role="doc-noteref"><spanclass="fn-bracket">[</span>1<spanclass="fn-bracket">]</span></a></p></td>
<td><p><em>sample width in bits</em><aclass="footnote-reference brackets"href="#tss"id="id4"role="doc-noteref"><spanclass="fn-bracket">[</span>1<spanclass="fn-bracket">]</span></a></p></td>
@@ -407,80 +436,82 @@ name of the card. This was always fragile and broke some legitimate usecases.</p
</tr>
</tbody>
</table>
<p>The italicized descriptions give a summary of the “full” description as it can be found in the <aclass="reference external"href="https://www.alsa-project.org/alsa-doc">ALSA documentation</a>. “hw:”: indicates that the property indicated relates to the hardware. Parameters passed to the PCM object during instantation are prefixed with “PCM():”, they are described there for the keyword argument indicated after “PCM():”.</p>
<p>More information in the <aclass="reference internal"href="terminology.html#term-sample-size"><spanclass="std std-ref">terminology section for sample size</span></a></p>
</aside>
</aside>
<blockquote>
<div><p>The italicized descriptions give a summary of the “full” description
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">dumpinfo</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.dumpinfo"title="Link to this definition">¶</a></dt>
<dd><p>Dumps the PCM object’s configured parameters to stdout.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">pcmtype</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.pcmtype"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">pcmtype</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.pcmtype"title="Link to this definition">¶</a></dt>
<dd><p>Returns the type of PCM object. Either <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_CAPTURE</span></code> or
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">pcmmode</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.pcmmode"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">pcmmode</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.pcmmode"title="Link to this definition">¶</a></dt>
<dd><p>Return the mode of the PCM object. One of <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_NONBLOCK</span></code>,
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">cardname</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.cardname"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">cardname</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">string</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.cardname"title="Link to this definition">¶</a></dt>
<dd><p>Return the name of the sound card used by this PCM object.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">setchannels</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">nchannels</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.setchannels"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">setchannels</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">nchannels</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.setchannels"title="Link to this definition">¶</a></dt>
<dd><divclass="deprecated">
<p><spanclass="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>channels</cite> named argument to <aclass="reference internal"href="#alsaaudio.PCM"title="alsaaudio.PCM"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">PCM()</span></code></a>.</p>
<p><spanclass="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>channels</cite> named argument to <codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">PCM()</span></code>.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">setrate</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">rate</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.setrate"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">setrate</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">rate</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.setrate"title="Link to this definition">¶</a></dt>
<dd><divclass="deprecated">
<p><spanclass="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>rate</cite> named argument to <aclass="reference internal"href="#alsaaudio.PCM"title="alsaaudio.PCM"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">PCM()</span></code></a>.</p>
<p><spanclass="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>rate</cite> named argument to <codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">PCM()</span></code>.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">setformat</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">format</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.setformat"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">setformat</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">format</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.setformat"title="Link to this definition">¶</a></dt>
<dd><divclass="deprecated">
<p><spanclass="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>format</cite> named argument to <aclass="reference internal"href="#alsaaudio.PCM"title="alsaaudio.PCM"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">PCM()</span></code></a>.</p>
<p><spanclass="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>format</cite> named argument to <codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">PCM()</span></code>.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">setperiodsize</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">period</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.setperiodsize"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">setperiodsize</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">period</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.setperiodsize"title="Link to this definition">¶</a></dt>
<dd><divclass="deprecated">
<p><spanclass="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>periodsize</cite> named argument to <aclass="reference internal"href="#alsaaudio.PCM"title="alsaaudio.PCM"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">PCM()</span></code></a>.</p>
<p><spanclass="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>periodsize</cite> named argument to <codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">PCM()</span></code>.</p>
</div>
</dd></dl>
<dlclass="py method">
<dtclass="sig sig-object py"id="id0">
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">info</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#id0"title="Permalink to this definition">¶</a></dt>
<dd><p>Returns a dictionary with the PCM object’s configured parameters.</p>
<p>Values are retrieved from the ALSA library if they are available;
otherwise they represent those stored by pyalsaaudio, and their keys
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">dumpinfo</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.dumpinfo"title="Permalink to this definition">¶</a></dt>
<dd><p>Dumps the PCM object’s configured parameters to stdout.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">state</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.state"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">state</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.state"title="Link to this definition">¶</a></dt>
<dd><p>Returs the current state of the stream, which can be one of
<codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_STATE_OPEN</span></code> (this should not actually happen),
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">avail</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.avail"title="Link to this definition">¶</a></dt>
<dd><p>For <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_PLAYBACK</span></code> PCM objects, returns the number of writable
(that is, free) frames in the buffer.</p>
<p>For <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_CAPTURE</span></code> PCM objects, returns the number of readable
(that is, filled) frames in the buffer.</p>
<p>An attempt to read/write more frames than indicated will block (in
<codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_NORMAL</span></code> mode) or fail and return zero (in
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">read</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.read"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">read</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">bytes</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#alsaaudio.PCM.read"title="Link to this definition">¶</a></dt>
<dd><p>In <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_NORMAL</span></code> mode, this function blocks until a full period is
available, and then returns a tuple (length,data) where <em>length</em> is
the number of frames of captured data, and <em>data</em> is the captured
<p>In <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_NONBLOCK</span></code> mode, the call will not block, but will return
<codeclass="docutils literal notranslate"><spanclass="pre">(0,'')</span></code> if no new period has become available since the last
call to read.</p>
<p>In case of an overrun, this function will return a negative size: <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">-EPIPE</span></code>.
This indicates that data was lost, even if the operation itself succeeded.
Try using a larger periodsize.</p>
<p>In case of a buffer overrun, this function will return the negative
size <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">-EPIPE</span></code>, and no data is read.
This indicates that data was lost. To resume capturing, just call read
again, but note that the stream was already corrupted.
To avoid the problem in the future, try using a larger period size
and/or more periods, at the cost of higher latency.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">write</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">data</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.write"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">write</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">data</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">bytes</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.write"title="Link to this definition">¶</a></dt>
<dd><p>Writes (plays) the sound in data. The length of data <em>must</em> be a
multiple of the frame size, and <em>should</em> be exactly the size of a
period. If less than ‘period size’ frames are provided, the actual
playout will not happen until more data is written.</p>
<p>If the device is not in <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_NONBLOCK</span></code> mode, this call will block if
the kernel buffer is full, and until enough sound has been played
to allow the sound data to be buffered. The call always returns the
size of the data provided.</p>
<p>If the data was successfully written, the call returns the size of the
data <em>in frames</em>.</p>
<p>If the device is not in <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_NONBLOCK</span></code> mode, this call will block
if the kernel buffer is full, and until enough sound has been played
to allow the sound data to be buffered.</p>
<p>In <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_NONBLOCK</span></code> mode, the call will return immediately, with a
return value of zero, if the buffer is full. In this case, the data
should be written at a later time.</p>
should be written again at a later time.</p>
<p>In case of a buffer underrun, this function will return the negative
size <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">-EPIPE</span></code>, and no data is written.
At this point, the playback was already corrupted. If you want to play
the data nonetheless, call write again with the same data.
To avoid the problem in the future, try using a larger period size
and/or more periods, at the cost of higher latency.</p>
<p>Note that this call completing means only that the samples were buffered
in the kernel, and playout will continue afterwards. Make sure that the
stream is drained before discarding the PCM handle.</p>
@@ -531,21 +585,21 @@ stream is drained before discarding the PCM handle.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">pause</span></span><spanclass="sig-paren">(</span><spanclass="optional">[</span><emclass="sig-param"><spanclass="n"><spanclass="pre">enable=True</span></span></em><spanclass="optional">]</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.pause"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">pause</span></span><spanclass="sig-paren">(</span><spanclass="optional">[</span><emclass="sig-param"><spanclass="n"><spanclass="pre">enable:</span><spanclass="pre">int</span><spanclass="pre">=</span><spanclass="pre">True</span></span></em><spanclass="optional">]</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.pause"title="Link to this definition">¶</a></dt>
<dd><p>If <em>enable</em> is <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">True</span></code>, playback or capture is paused.
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">drop</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.drop"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">drop</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.drop"title="Link to this definition">¶</a></dt>
<dd><p>Stop the stream and drop residual buffered frames.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">drain</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.drain"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">drain</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.drain"title="Link to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">close</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.close"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">close</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">None</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.close"title="Link to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">polldescriptors</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.polldescriptors"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">polldescriptors</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">list</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#alsaaudio.PCM.polldescriptors"title="Link to this definition">¶</a></dt>
<dd><p>Returns a list of tuples of <em>(file descriptor, eventmask)</em> that can be
used to wait for changes on the PCM with <em>select.poll</em>.</p>
<p>The <em>eventmask</em> value is compatible with <ahref="#id3"><spanclass="problematic"id="id4">`poll.register`__</span></a> in the Python
<p>The <em>eventmask</em> value is compatible with <ahref="#id6"><spanclass="problematic"id="id7">`poll.register`__</span></a> in the Python
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">polldescriptors_revents</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">descriptors</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">list</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="p"><spanclass="pre">]</span></span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.polldescriptors_revents"title="Link to this definition">¶</a></dt>
<dd><p>Processes the descriptor list returned by <aclass="reference internal"href="#alsaaudio.PCM.polldescriptors"title="alsaaudio.PCM.polldescriptors"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">polldescriptors()</span></code></a> after
using it with <em>select.poll</em>, and returns a single <em>eventmask</em> value that
is meaningful for deciding whether <aclass="reference internal"href="#alsaaudio.PCM.read"title="alsaaudio.PCM.read"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">read()</span></code></a> or <aclass="reference internal"href="#alsaaudio.PCM.write"title="alsaaudio.PCM.write"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">write()</span></code></a> should
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">set_tstamp_mode</span></span><spanclass="sig-paren">(</span><spanclass="optional">[</span><emclass="sig-param"><spanclass="n"><spanclass="pre">mode=PCM_TSTAMP_ENABLE</span></span></em><spanclass="optional">]</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.set_tstamp_mode"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">set_tstamp_mode</span></span><spanclass="sig-paren">(</span><spanclass="optional">[</span><emclass="sig-param"><spanclass="n"><spanclass="pre">mode:</span><spanclass="pre">int</span><spanclass="pre">=</span><spanclass="pre">PCM_TSTAMP_ENABLE</span></span></em><spanclass="optional">]</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.set_tstamp_mode"title="Link to this definition">¶</a></dt>
<dd><p>Set the ALSA timestamp mode on the device. The mode argument can be set to
either <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_TSTAMP_NONE</span></code> or <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_TSTAMP_ENABLE</span></code>.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">get_tstamp_mode</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.get_tstamp_mode"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">get_tstamp_mode</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.get_tstamp_mode"title="Link to this definition">¶</a></dt>
<dd><p>Return the integer value corresponding to the ALSA timestamp mode. The
return value can be either <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_TSTAMP_NONE</span></code> or <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_TSTAMP_ENABLE</span></code>.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">set_tstamp_type</span></span><spanclass="sig-paren">(</span><spanclass="optional">[</span><emclass="sig-param"><spanclass="n"><spanclass="pre">type=PCM_TSTAMP_TYPE_GETTIMEOFDAY</span></span></em><spanclass="optional">]</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.set_tstamp_type"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">set_tstamp_type</span></span><spanclass="sig-paren">(</span><spanclass="optional">[</span><emclass="sig-param"><spanclass="n"><spanclass="pre">type:</span><spanclass="pre">int</span><spanclass="pre">=</span><spanclass="pre">PCM_TSTAMP_TYPE_GETTIMEOFDAY</span></span></em><spanclass="optional">]</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">None</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.set_tstamp_type"title="Link to this definition">¶</a></dt>
<dd><p>Set the ALSA timestamp mode on the device. The type argument
can be set to either <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_TSTAMP_TYPE_GETTIMEOFDAY</span></code>,
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">get_tstamp_type</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.get_tstamp_type"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">get_tstamp_type</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.PCM.get_tstamp_type"title="Link to this definition">¶</a></dt>
<dd><p>Return the integer value corresponding to the ALSA timestamp type. The
return value can be either <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_TSTAMP_TYPE_GETTIMEOFDAY</span></code>,
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">htimestamp</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.PCM.htimestamp"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">PCM.</span></span><spanclass="sig-name descname"><spanclass="pre">htimestamp</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#alsaaudio.PCM.htimestamp"title="Link to this definition">¶</a></dt>
<dd><p>Return a Python tuple <em>(seconds, nanoseconds, frames_available_in_buffer)</em>.</p>
<p>The type of output is controlled by the tstamp_type, as described in the table below.</p>
<tableclass="docutils align-default">
@@ -649,7 +713,7 @@ update.</p></td>
<p>The most common reason for problems with playback of PCM audio is that writes
to PCM devices must <em>exactly</em> match the data rate of the device.</p>
<p>If too little data is written to the device, it will underrun, and
ugly clicking sounds will occur. Conversely, of too much data is
ugly clicking sounds will occur. Conversely, if too much data is
written to the device, the write function will either block
(<codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_NORMAL</span></code> mode) or return zero (<codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_NONBLOCK</span></code> mode).</p>
<p>If your program does nothing but play sound, the best strategy is to put the
@@ -668,11 +732,11 @@ accumulate to quite a lot after a few seconds. Hint: use time.time()
to check how much time has really passed, and add extra writes as nessecary.</p>
</section>
<sectionid="mixer-objects">
<spanid="id2"></span><h2>Mixer Objects<aclass="headerlink"href="#mixer-objects"title="Permalink to this heading">¶</a></h2>
<spanid="id5"></span><h2>Mixer Objects<aclass="headerlink"href="#mixer-objects"title="Link to this heading">¶</a></h2>
<p>Mixer objects provides access to the ALSA mixer API.</p>
<dlclass="py class">
<dtclass="sig sig-object py"id="alsaaudio.Mixer">
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">alsaaudio.</span></span><spanclass="sig-name descname"><spanclass="pre">Mixer</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">control</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">'Master'</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">id</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">0</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">cardindex</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">-1</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">device</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">'default'</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer"title="Permalink to this definition">¶</a></dt>
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">alsaaudio.</span></span><spanclass="sig-name descname"><spanclass="pre">Mixer</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">control</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">str</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">'Master'</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">id</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">0</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">cardindex</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">-1</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">device</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">str</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">'default'</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><aclass="reference internal"href="#alsaaudio.Mixer"title="alsaaudio.Mixer"><spanclass="pre">Mixer</span></a></span></span><aclass="headerlink"href="#alsaaudio.Mixer"title="Link to this definition">¶</a></dt>
<dd><p>Arguments are:</p>
<ulclass="simple">
<li><p><em>control</em> - specifies which control to manipulate using this mixer
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">cardname</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.cardname"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">cardname</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">str</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.cardname"title="Link to this definition">¶</a></dt>
<dd><p>Return the name of the sound card used by this Mixer object</p>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">mixer</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.mixer"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">mixer</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">str</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.mixer"title="Link to this definition">¶</a></dt>
<dd><p>Return the name of the specific mixer controlled by this object, For example
<codeclass="docutils literal notranslate"><spanclass="pre">'Master'</span></code> or <codeclass="docutils literal notranslate"><spanclass="pre">'PCM'</span></code></p>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">mixerid</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.mixerid"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">mixerid</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.mixerid"title="Link to this definition">¶</a></dt>
<dd><p>Return the ID of the ALSA mixer controlled by this object.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">switchcap</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.switchcap"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">switchcap</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.switchcap"title="Link to this definition">¶</a></dt>
<dd><p>Returns a list of the switches which are defined by this specific mixer.
Possible values in this list are:</p>
<tableclass="docutils align-default">
@@ -756,7 +820,7 @@ Possible values in this list are:</p>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">volumecap</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.volumecap"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">volumecap</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.volumecap"title="Link to this definition">¶</a></dt>
<dd><p>Returns a list of the volume control capabilities of this
mixer. Possible values in the list are:</p>
<tableclass="docutils align-default">
@@ -790,7 +854,7 @@ mixer. Possible values in the list are:</p>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">getenum</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.getenum"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">getenum</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">list</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.getenum"title="Link to this definition">¶</a></dt>
<dd><p>For enumerated controls, return the currently selected item and the list of
items available.</p>
<p>Returns a tuple <em>(string, list of strings)</em>.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">setenum</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">index</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.setenum"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">setenum</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">index</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">None</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.setenum"title="Link to this definition">¶</a></dt>
<dd><p>For enumerated controls, sets the currently selected item.
<em>index</em> is an index into the list of available enumerated items returned
by <aclass="reference internal"href="#alsaaudio.Mixer.getenum"title="alsaaudio.Mixer.getenum"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">getenum()</span></code></a>.</p>
@@ -824,7 +888,7 @@ by <a class="reference internal" href="#alsaaudio.Mixer.getenum" title="alsaaudi
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">getrange</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">pcmtype</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">PCM_PLAYBACK</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">units</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">VOLUME_UNITS_RAW</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.getrange"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">getrange</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">pcmtype</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">PCM_PLAYBACK</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">units</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">VOLUME_UNITS_RAW</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.getrange"title="Link to this definition">¶</a></dt>
<dd><p>Return the volume range of the ALSA mixer controlled by this object.
The value is a tuple of integers whose meaning is determined by the
<em>units</em> argument.</p>
@@ -838,7 +902,7 @@ if the mixer has playback channels, otherwise it is <code class="xref py py-cons
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">getvolume</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">pcmtype</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">PCM_PLAYBACK</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">units</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">VOLUME_UNITS_PERCENTAGE</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.getvolume"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">getvolume</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">pcmtype</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">PCM_PLAYBACK</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">units</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">VOLUME_UNITS_PERCENTAGE</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.getvolume"title="Link to this definition">¶</a></dt>
<dd><p>Returns a list with the current volume settings for each channel. The list
elements are integers whose meaning is determined by the <em>units</em> argument.</p>
<p>The optional <em>pcmtype</em> argument can be either <codeclass="xref py py-const docutils literal notranslate"><spanclass="pre">PCM_PLAYBACK</span></code> or
@@ -851,7 +915,7 @@ if the mixer has playback channels, otherwise it is <code class="xref py py-cons
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">setvolume</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">volume</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">channel</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">None</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">pcmtype</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">PCM_PLAYBACK</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">units</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">VOLUME_UNITS_PERCENTAGE</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.setvolume"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">setvolume</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">volume</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">pcmtype</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">PCM_PLAYBACK</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">units</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">VOLUME_UNITS_PERCENTAGE</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">channel</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">None</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.setvolume"title="Link to this definition">¶</a></dt>
<dd><p>Change the current volume settings for this mixer. The <em>volume</em> argument
is an integer whose meaning is determined by the <em>units</em> argument.</p>
<p>If the optional argument <em>channel</em> is present, the volume is set
@@ -867,7 +931,7 @@ if the mixer has playback channels, otherwise it is <code class="xref py py-cons
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">getmute</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.getmute"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">getmute</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">list</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.getmute"title="Link to this definition">¶</a></dt>
<dd><p>Return a list indicating the current mute setting for each channel.
0 means not muted, 1 means muted.</p>
<p>This method will fail if the mixer has no playback switch capabilities.</p>
@@ -875,7 +939,7 @@ if the mixer has playback channels, otherwise it is <code class="xref py py-cons
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">setmute</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">mute</span></span></em><spanclass="optional">[</span>, <emclass="sig-param"><spanclass="n"><spanclass="pre">channel</span></span></em><spanclass="optional">]</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.setmute"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">setmute</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">mute</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">bool</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">channel</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">None</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.setmute"title="Link to this definition">¶</a></dt>
<dd><p>Sets the mute flag to a new value. The <em>mute</em> argument is either 0 for not
muted, or 1 for muted.</p>
<p>The optional <em>channel</em> argument controls which channel is
@@ -885,7 +949,7 @@ muted. The default is to set the mute flag for all channels.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">getrec</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.getrec"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">getrec</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">list</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.getrec"title="Link to this definition">¶</a></dt>
<dd><p>Return a list indicating the current record mute setting for each channel.
0 means not recording, 1 means recording.</p>
<p>This method will fail if the mixer has no capture switch capabilities.</p>
@@ -893,7 +957,7 @@ muted. The default is to set the mute flag for all channels.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">setrec</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">capture</span></span></em><spanclass="optional">[</span>, <emclass="sig-param"><spanclass="n"><spanclass="pre">channel</span></span></em><spanclass="optional">]</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.setrec"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">setrec</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">capture</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">channel</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">None</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.setrec"title="Link to this definition">¶</a></dt>
<dd><p>Sets the capture mute flag to a new value. The <em>capture</em> argument
is either 0 for no capture, or 1 for capture.</p>
<p>The optional <em>channel</em> argument controls which channel is
@@ -903,16 +967,16 @@ changed. The default is to set the capture flag for all channels.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">polldescriptors</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.polldescriptors"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">polldescriptors</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">list</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.polldescriptors"title="Link to this definition">¶</a></dt>
<dd><p>Returns a list of tuples of <em>(file descriptor, eventmask)</em> that can be
used to wait for changes on the mixer with <em>select.poll</em>.</p>
<p>The <em>eventmask</em> value is compatible with <ahref="#id3"><spanclass="problematic"id="id5">`poll.register`__</span></a> in the Python
<p>The <em>eventmask</em> value is compatible with <ahref="#id6"><spanclass="problematic"id="id8">`poll.register`__</span></a> in the Python
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">handleevents</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.handleevents"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">handleevents</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">int</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.handleevents"title="Link to this definition">¶</a></dt>
<dd><p>Acknowledge events on the <aclass="reference internal"href="#alsaaudio.Mixer.polldescriptors"title="alsaaudio.Mixer.polldescriptors"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">polldescriptors()</span></code></a> file descriptors
to prevent subsequent polls from returning the same events again.
Returns the number of events that were acknowledged.</p>
@@ -920,7 +984,7 @@ Returns the number of events that were acknowledged.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">close</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#alsaaudio.Mixer.close"title="Permalink to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">Mixer.</span></span><spanclass="sig-name descname"><spanclass="pre">close</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">None</span></span></span><aclass="headerlink"href="#alsaaudio.Mixer.close"title="Link to this definition">¶</a></dt>
<dd><p>Closes the Mixer device.</p>
</dd></dl>
@@ -943,7 +1007,7 @@ understand half of the API, and that which I do understand has come from a
painful trial and error process.</p>
</section>
<sectionid="examples">
<spanid="pcm-example"></span><h2>Examples<aclass="headerlink"href="#examples"title="Permalink to this heading">¶</a></h2>
<spanid="pcm-example"></span><h2>Examples<aclass="headerlink"href="#examples"title="Link to this heading">¶</a></h2>
<p>The following example are provided:</p>
<ulclass="simple">
<li><p><cite>playwav.py</cite></p></li>
@@ -967,7 +1031,7 @@ painful trial and error process.</p>
<p>mixertest.py accepts the commandline options <em>-d <device></em> and
<em>-c <cardindex></em>.</p>
<sectionid="playwav-py">
<h3>playwav.py<aclass="headerlink"href="#playwav-py"title="Permalink to this heading">¶</a></h3>
<h3>playwav.py<aclass="headerlink"href="#playwav-py"title="Link to this heading">¶</a></h3>
<p><strong>playwav.py</strong> plays a wav file.</p>
<p>To test PCM playback (on your default soundcard), run:</p>
<h2>ALSA and Python<aclass="headerlink"href="#alsa-and-python"title="Permalink to this heading">¶</a></h2>
<h2>ALSA and Python<aclass="headerlink"href="#alsa-and-python"title="Link to this heading">¶</a></h2>
<p>The older Linux sound API (OSS) – which is now deprecated – is well supported
by the standard Python library, through the ossaudiodev module. No native ALSA
support exists in the standard library.</p>
@@ -89,7 +88,7 @@ appreciated.</p>
</section>
</section>
<sectionid="installation">
<h1>Installation<aclass="headerlink"href="#installation"title="Permalink to this heading">¶</a></h1>
<h1>Installation<aclass="headerlink"href="#installation"title="Link to this heading">¶</a></h1>
<p>Note: the wrappers link with the alsasound library (from the alsa-lib package)
and need the ALSA headers for compilation. Verify that you have
/usr/lib/libasound.so and /usr/include/alsa (or similar paths) before building.</p>
@@ -108,7 +107,7 @@ ship with ALSA kernels.</p>
</div>
</section>
<sectionid="testing">
<h1>Testing<aclass="headerlink"href="#testing"title="Permalink to this heading">¶</a></h1>
<h1>Testing<aclass="headerlink"href="#testing"title="Link to this heading">¶</a></h1>
<p>Make sure that <codeclass="code docutils literal notranslate"><spanclass="pre">aplay</span></code> plays a file through the soundcard you want, then
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.