Import from divmod. Added css. Original log message:

r1585 | casper | 2005-07-09 23:26:15 +0200 (Sat, 09 Jul 2005) | 3 lines

Last checkin before version 0.2





git-svn-id: svn://svn.code.sf.net/p/pyalsaaudio/code/trunk@12 ec2f30ec-7544-0410-870e-f70ca00c83f0
This commit is contained in:
larsimmisch
2008-01-24 12:22:41 +00:00
parent 470d6140df
commit 8fa9d27a88
24 changed files with 1192 additions and 820 deletions

8
CHANGES Normal file
View File

@@ -0,0 +1,8 @@
VERSION 0.1
- Initial version
VERSION 0.2
- Many bugfixes related to playback in particular
- Module documentation in the doc subdirectory

54
LICENSE Normal file
View File

@@ -0,0 +1,54 @@
PyAlsaAudio is released under the same conditions as Python itself.
The original wording of this license can be found below.
PSF LICENSE AGREEMENT FOR PYTHON 2.4
------------------------------------
1. This LICENSE AGREEMENT is between the Python Software Foundation
("PSF"), and the Individual or Organization ("Licensee") accessing and
otherwise using Python 2.4 software in source or binary form and its
associated documentation.
2. Subject to the terms and conditions of this License Agreement, PSF
hereby grants Licensee a nonexclusive, royalty-free, world-wide
license to reproduce, analyze, test, perform and/or display publicly,
prepare derivative works, distribute, and otherwise use Python 2.4
alone or in any derivative version, provided, however, that PSF's
License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
2001, 2002, 2003, 2004 Python Software Foundation; All Rights Reserved"
are retained in Python 2.4 alone or in any derivative version prepared
by Licensee.
3. In the event Licensee prepares a derivative work that is based on
or incorporates Python 2.4 or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python 2.4.
4. PSF is making Python 2.4 available to Licensee on an "AS IS"
basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.4 WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.
5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
2.4 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.4,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.
7. Nothing in this License Agreement shall be deemed to create any
relationship of agency, partnership, or joint venture between PSF and
Licensee. This License Agreement does not grant permission to use PSF
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.
8. By copying, installing or otherwise using Python 2.4, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.

13
README
View File

@@ -24,7 +24,10 @@ Installation
Note: the wrappers link with the alsasound library alsa (from the alsa-lib
package). Verify that this is installed by looking for /usr/lib/libasound.so
before building. Naturally you also need to use a kernel with proper ALSA
before building. The libasound development files are also neccesary. On debian
and derivatives, this is achieved by installing the alsalib-dev package.
Naturally you also need to use a kernel with proper ALSA
support. This is the default in Linux kernel 2.6 and later. If you are using
kernel version 2.4 you may need to install the ALSA patches yourself - although
most distributions ship with ALSA kernels.
@@ -38,13 +41,15 @@ And then as root:
Using the API
=============
There is a reasonably usefull API documentation included in the module
documentation, which can be found in the doc subdirectory of the source
distribution.
There are two example programs included with the source:
There are also three example programs included with the source:
'playbacktest.py' which plays back raw sound data read from
stdin
'recordtest.py' which captures sound from the microphone at writes
it raw to stdout.
In a future version, I'll include documentation with the package, but
for now, you're stuck with the examples.
'mixertest.py' which can be used to manipulate the mixers

1
TODO
View File

@@ -1,4 +1,3 @@
- Write documentation
- Better example code (aplay,arecord,amixer workalike for example)
- Implement MIDI/sequencer support.

View File

@@ -373,7 +373,7 @@ static PyObject *alsapcm_write(alsapcm_t *self, PyObject *args) {
int res;
if (!PyArg_ParseTuple(args,"s#",&data,&datalen)) return NULL;
if (datalen%self->framesize) {
PyErr_SetString(ALSAAudioError,"Data size must be a multipla of framesize");
PyErr_SetString(ALSAAudioError,"Data size must be a multiple of framesize");
return NULL;
}
res = snd_pcm_writei(self->handle, data, datalen/self->framesize);

View File

@@ -1,44 +1,45 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="prev" href="contents.html">
<LINK REL="parent" HREF="pyalsaaudio.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="About this document ...">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="prev" href="contents.html" />
<link rel="parent" href="pyalsaaudio.html" />
<meta name='aesop' content='information' />
<title>About this document ...</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="4.4 ALSA Examples"
href="pcm-example.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="PyAlsaAudio"
HREF="pyalsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="prev" title="4.4 ALSA Examples"
href="pcm-example.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
href="pyalsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="pcm-example.html">4.4 ALSA Examples</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" HREF="pyalsaaudio.html">PyAlsaAudio</A>
<br><hr>
<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
@@ -72,33 +73,36 @@ About this document ...</A>
</p>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="4.4 ALSA Examples"
rel="prev" title="4.4 ALSA Examples"
href="pcm-example.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="PyAlsaAudio"
rel="parent" title="PyAlsaAudio"
HREF="pyalsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="prev" title="4.4 ALSA Examples"
href="pcm-example.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
href="pyalsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="pcm-example.html">4.4 ALSA Examples</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" HREF="pyalsaaudio.html">PyAlsaAudio</A>
<hr>
<span class="release-info">Release 0.1.</span>
<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -1,52 +1,54 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="next" href="about.html">
<LINK REL="prev" href="front.html">
<LINK REL="parent" HREF="pyalsaaudio.html">
<LINK REL="next" HREF="node3.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="Contents">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="about.html" />
<link rel="prev" href="front.html" />
<link rel="parent" href="pyalsaaudio.html" />
<link rel="next" href="node3.html" />
<meta name='aesop' content='information' />
<title>Contents</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="Front Matter"
href="front.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="PyAlsaAudio"
HREF="pyalsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="1 What is ALSA"
HREF="node3.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="Front Matter"
href="front.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
href="pyalsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="1 What is ALSA"
href="node3.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="front.html">Front Matter</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" HREF="pyalsaaudio.html">PyAlsaAudio</A>
<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" HREF="node3.html">1 What is ALSA</A>
<br><hr>
<a class="sectref" rel="next" href="node3.html">1 What is ALSA</A>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
<BR>
<BR><H2><A NAME="SECTION002000000000000000000">
<BR><h2><A NAME="SECTION002000000000000000000">
Contents</A>
</H2>
</h2>
<!--Table of Contents-->
<UL CLASS="TofC">
@@ -65,33 +67,38 @@ Contents</A>
<P>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="Front Matter"
rel="prev" title="Front Matter"
href="front.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="PyAlsaAudio"
rel="parent" title="PyAlsaAudio"
HREF="pyalsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="1 What is ALSA"
rel="next" title="1 What is ALSA"
HREF="node3.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="Front Matter"
href="front.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
href="pyalsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="1 What is ALSA"
href="node3.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="front.html">Front Matter</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" HREF="pyalsaaudio.html">PyAlsaAudio</A>
<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" HREF="node3.html">1 What is ALSA</A>
<hr>
<span class="release-info">Release 0.1.</span>
<a class="sectref" rel="next" href="node3.html">1 What is ALSA</A>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -1,53 +1,54 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="next" href="contents.html">
<LINK REL="prev" HREF="pyalsaaudio.html">
<LINK REL="parent" HREF="pyalsaaudio.html">
<LINK REL="next" href="contents.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="Front Matter">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="contents.html" />
<link rel="prev" href="pyalsaaudio.html" />
<link rel="parent" href="pyalsaaudio.html" />
<link rel="next" href="contents.html" />
<meta name='aesop' content='information' />
<title>Front Matter</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="PyAlsaAudio"
HREF="pyalsaaudio.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="PyAlsaAudio"
HREF="pyalsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="Contents"
href="contents.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="PyAlsaAudio"
href="pyalsaaudio.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
href="pyalsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="Contents"
href="contents.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" HREF="pyalsaaudio.html">PyAlsaAudio</A>
<a class="sectref" rel="prev" href="pyalsaaudio.html">PyAlsaAudio</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" HREF="pyalsaaudio.html">PyAlsaAudio</A>
<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="contents.html">Contents</A>
<br><hr>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION001000000000000000000">&nbsp;</A>
<H1><A NAME="SECTION001000000000000000000"></A><A NAME="front"></A>
<BR>
Front Matter
</H1>
@@ -78,37 +79,39 @@ me.
<P>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="PyAlsaAudio"
rel="prev" title="PyAlsaAudio"
HREF="pyalsaaudio.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="PyAlsaAudio"
rel="parent" title="PyAlsaAudio"
HREF="pyalsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="Contents"
rel="next" title="Contents"
href="contents.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="PyAlsaAudio"
href="pyalsaaudio.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="PyAlsaAudio"
href="pyalsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="Contents"
href="contents.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" HREF="pyalsaaudio.html">PyAlsaAudio</A>
<a class="sectref" rel="prev" href="pyalsaaudio.html">PyAlsaAudio</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" HREF="pyalsaaudio.html">PyAlsaAudio</A>
<a class="sectref" rel="parent" href="pyalsaaudio.html">PyAlsaAudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="contents.html">Contents</A>
<hr>
<span class="release-info">Release 0.1.</span>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -1,55 +1,57 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="next" href="front.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="PyAlsaAudio">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="front.html" />
<meta name='aesop' content='information' />
<title>PyAlsaAudio</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td><a rel="next" title="Front Matter"
href="front.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></td>
<td class='online-navigation'><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></td>
<td class='online-navigation'><a rel="next" title="Front Matter"
href="front.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="front.html">Front Matter</A>
<br><hr>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
<div class="titlepage">
<center>
<div class='center'>
<h1>PyAlsaAudio</h1>
<p><b><font size="+2">Casper Wilstrup</font></b></p>
<p>cwi@unispeed.com</p>
<p>
</center>
<p></p>
</div>
</div>
<P>
<p><hr>
<p><br /></p><hr class='online-navigation' />
<div class='online-navigation'>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"></a>
@@ -71,31 +73,36 @@
<LI><A href="about.html">About this document ...</a>
</ul>
<!--End of Table of Child-Links-->
</div>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td><a rel="next" title="Front Matter"
rel="next" title="Front Matter"
href="front.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></td>
<td class='online-navigation'><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></td>
<td class='online-navigation'><a rel="next" title="Front Matter"
href="front.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="front.html">Front Matter</A>
<hr>
<span class="release-info">Release 0.1.</span>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -1,53 +1,55 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="next" href="pcm-example.html">
<LINK REL="prev" href="pcm-objects.html">
<LINK REL="parent" href="module-alsaaudio.html">
<LINK REL="next" href="pcm-example.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="Mixer Objects">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="pcm-example.html" />
<link rel="prev" href="pcm-objects.html" />
<link rel="parent" href="module-alsaaudio.html" />
<link rel="next" href="pcm-example.html" />
<meta name='aesop' content='information' />
<title>4.3 Mixer Objects</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="4.2 PCM Objects"
href="pcm-objects.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="4.4 ALSA Examples"
href="pcm-example.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="4.2 PCM Objects"
href="pcm-objects.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="4.4 ALSA Examples"
href="pcm-example.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="pcm-objects.html">4.2 PCM Objects</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="pcm-example.html">4.4 ALSA Examples</A>
<br><hr>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION002430000000000000000">&nbsp;</A>
<H2><A NAME="SECTION002430000000000000000"></A>
<A NAME="mixer-objects"></A>
<BR>
4.3 Mixer Objects
</H2>
@@ -57,8 +59,8 @@ Mixer objects provides access to the ALSA mixer API.
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><span class="typelabel">class</span>&nbsp;<a name="l2h-16"><tt class="class">Mixer</tt></a></b>(</nobr></td>
<td><big>[</big><var>control</var><big>]</big><var>, </var><big>[</big><var>id</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big>)</td></tr></table>
<td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-16' xml:id='l2h-16' class="class">Mixer</tt></b>(</nobr></td>
<td><var></var><big>[</big><var>control</var><big>]</big><var>, </var><big>[</big><var>id</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
<var>control</var> - specifies which control to manipulate using this mixer object. The list
of available controls can be found with the <tt class="module">alsaaudio</tt>.<tt class="function">mixers</tt> function.
@@ -77,16 +79,16 @@ Mixer objects have the following methods:
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-17"><tt class="method">cardname</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-17' xml:id='l2h-17' class="method">cardname</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
Return the name of the sound card used by this Mixer object
</dl>
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-18"><tt class="method">mixer</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-18' xml:id='l2h-18' class="method">mixer</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
Return the name of the specific mixer controlled by this object, For example 'Master'
or 'PCM'
@@ -94,44 +96,44 @@ or 'PCM'
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-19"><tt class="method">mixerid</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-19' xml:id='l2h-19' class="method">mixerid</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
Return the ID of the ALSA mixer controlled by this object.
</dl>
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-20"><tt class="method">switchcap</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-20' xml:id='l2h-20' class="method">switchcap</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
Returns a list of the switches which are defined by this specific mixer. Possible values in
this list are:
<P>
<table border align="center" style="border-collapse: collapse">
<div class="center"><table class="realtable">
<thead>
<tr class="tableheader">
<th align="left"><b>Switch</b>&nbsp;</th>
<th align="left"><b>Description</b>&nbsp;</th>
<tr>
<th class="left" >Switch</th>
<th class="left" >Description</th>
</tr>
</thead>
<tbody valign="baseline">
<tr><td align="left" valign="baseline"><Volume Capabilities>'Mute'</Volume></td>
<td align="left">This mixer can be muted</td>
<tr><td align="left" valign="baseline"><Volume Capabilities>'Joined Mute'</Volume></td>
<td align="left">This mixer can mute all channels at the same time</td>
<tr><td align="left" valign="baseline"><Volume Capabilities>'Playback Mute'</Volume></td>
<td align="left">This mixer can mute the playback output</td>
<tr><td align="left" valign="baseline"><Volume Capabilities>'Joined Playback Mute'</Volume></td>
<td align="left">Mute playback for all channels at the same time</td>
<tr><td align="left" valign="baseline"><Volume Capabilities>'Capture Mute'</Volume></td>
<td align="left">Mute sound capture</td>
<tr><td align="left" valign="baseline"><Volume Capabilities>'Joined Capture Mute'</Volume></td>
<td align="left">Mute sound capture for all channels at a time</td>
<tr><td align="left" valign="baseline"><Volume Capabilities>'Capture Exclusive'</Volume></td>
<td align="left">Not quite sure what this is</td></tbody>
</table>
<tbody>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Mute'</Volume></td>
<td class="left" >This mixer can be muted</td></tr>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Mute'</Volume></td>
<td class="left" >This mixer can mute all channels at the same time</td></tr>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Playback Mute'</Volume></td>
<td class="left" >This mixer can mute the playback output</td></tr>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Playback Mute'</Volume></td>
<td class="left" >Mute playback for all channels at the same time</td></tr>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Capture Mute'</Volume></td>
<td class="left" >Mute sound capture</td></tr>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Capture Mute'</Volume></td>
<td class="left" >Mute sound capture for all channels at a time</td></tr>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Capture Exclusive'</Volume></td>
<td class="left" >Not quite sure what this is</td></tr></tbody>
</table></div>
<P>
To manipulate these swithes use the <tt class="method">setrec</tt> or <tt class="method">setmute</tt> methods
@@ -139,42 +141,42 @@ To manipulate these swithes use the <tt class="method">setrec</tt> or <tt class=
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-21"><tt class="method">volumecap</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-21' xml:id='l2h-21' class="method">volumecap</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
Returns a list of the volume control capabilities of this mixer. Possible values in
the list are:
<P>
<table border align="center" style="border-collapse: collapse">
<div class="center"><table class="realtable">
<thead>
<tr class="tableheader">
<th align="left"><b>Capability</b>&nbsp;</th>
<th align="left"><b>Description</b>&nbsp;</th>
<tr>
<th class="left" >Capability</th>
<th class="left" >Description</th>
</tr>
</thead>
<tbody valign="baseline">
<tr><td align="left" valign="baseline"><Volume Capabilities>'Volume'</Volume></td>
<td align="left">This mixer can control volume</td>
<tr><td align="left" valign="baseline"><Volume Capabilities>'Joined Volume'</Volume></td>
<td align="left">This mixer can control volume for all channels at the same time</td>
<tr><td align="left" valign="baseline"><Volume Capabilities>'Playback Volume'</Volume></td>
<td align="left">This mixer can manipulate the playback volume</td>
<tr><td align="left" valign="baseline"><Volume Capabilities>'Joined Playback Volume'</Volume></td>
<td align="left">Manipulate playback volumne for all channels at the same time</td>
<tr><td align="left" valign="baseline"><Volume Capabilities>'Capture Volume'</Volume></td>
<td align="left">Manipulate sound capture volume</td>
<tr><td align="left" valign="baseline"><Volume Capabilities>'Joined Capture Volume'</Volume></td>
<td align="left">Manipulate sound capture volume for all channels at a time</td></tbody>
</table>
<tbody>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Volume'</Volume></td>
<td class="left" >This mixer can control volume</td></tr>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Volume'</Volume></td>
<td class="left" >This mixer can control volume for all channels at the same time</td></tr>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Playback Volume'</Volume></td>
<td class="left" >This mixer can manipulate the playback volume</td></tr>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Playback Volume'</Volume></td>
<td class="left" >Manipulate playback volumne for all channels at the same time</td></tr>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Capture Volume'</Volume></td>
<td class="left" >Manipulate sound capture volume</td></tr>
<tr><td class="left" valign="baseline"><Volume Capabilities>'Joined Capture Volume'</Volume></td>
<td class="left" >Manipulate sound capture volume for all channels at a time</td></tr></tbody>
</table></div>
<P>
</dl>
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-22"><tt class="method">getvolume</tt></a></b>(</nobr></td>
<td><big>[</big><var>direction</var><big>]</big>)</td></tr></table>
<td><nobr><b><tt id='l2h-22' xml:id='l2h-22' class="method">getvolume</tt></b>(</nobr></td>
<td><var></var><big>[</big><var>direction</var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
Returns a list with the current volume settings for each channel. The list elements
are integer percentages.
@@ -189,8 +191,8 @@ if the mixer has this capability, otherwise 'capture'
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-23"><tt class="method">getmute</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-23' xml:id='l2h-23' class="method">getmute</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
Return a list indicating the current mute setting for each channel. 0 means not muted, 1 means muted.
@@ -200,8 +202,8 @@ This method will fail if the mixer has no playback switch capabilities.
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-24"><tt class="method">getrec</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-24' xml:id='l2h-24' class="method">getrec</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
Return a list indicating the current record mute setting for each channel. 0 means not recording, 1
means not recording.
@@ -212,8 +214,8 @@ This method will fail if the mixer has no capture switch capabilities.
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-25"><tt class="method">setvolume</tt></a></b>(</nobr></td>
<td><var>volume,</var><big>[</big><var>channel</var><big>]</big><var>,</var><big>[</big><var>direction</var><big>]</big>)</td></tr></table>
<td><nobr><b><tt id='l2h-25' xml:id='l2h-25' class="method">setvolume</tt></b>(</nobr></td>
<td><var>volume,</var><big>[</big><var>channel</var><big>]</big><var>,</var><big>[</big><var>direction</var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
Change the current volume settings for this mixer. The <var>volume</var> argument controls
the new volume setting as an integer percentage.
@@ -230,8 +232,8 @@ if changed. The default is 'playback' if the mixer has this capability, otherwis
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-26"><tt class="method">setmute</tt></a></b>(</nobr></td>
<td><var>mute, </var><big>[</big><var>channel</var><big>]</big>)</td></tr></table>
<td><nobr><b><tt id='l2h-26' xml:id='l2h-26' class="method">setmute</tt></b>(</nobr></td>
<td><var>mute, </var><big>[</big><var>channel</var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
Sets the mute flag to a new value. The <var>mute</var> argument is either 0 for not muted, or 1 for muted.
@@ -245,8 +247,8 @@ This method will fail if the mixer has no playback mute capabilities
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-27"><tt class="method">setrec</tt></a></b>(</nobr></td>
<td><var>capture,</var><big>[</big><var>channel</var><big>]</big>)</td></tr></table>
<td><nobr><b><tt id='l2h-27' xml:id='l2h-27' class="method">setrec</tt></b>(</nobr></td>
<td><var>capture,</var><big>[</big><var>channel</var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
Sets the capture mute flag to a new value. The <var>capture</var> argument is either 0 for no capture,
or 1 for capture.
@@ -285,37 +287,39 @@ and that which I do understand has come from a painful trial and error process.
<P>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="4.2 PCM Objects"
rel="prev" title="4.2 PCM Objects"
href="pcm-objects.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="4 alsaaudio"
rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="4.4 ALSA Examples"
rel="next" title="4.4 ALSA Examples"
href="pcm-example.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="4.2 PCM Objects"
href="pcm-objects.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="4.4 ALSA Examples"
href="pcm-example.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="pcm-objects.html">4.2 PCM Objects</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="pcm-example.html">4.4 ALSA Examples</A>
<hr>
<span class="release-info">Release 0.1.</span>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -1,48 +1,49 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="prev" HREF="node5.html">
<LINK REL="parent" href="contents.html">
<LINK REL="next" HREF="node7.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="alsaaudio">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="prev" href="node5.html" />
<link rel="parent" href="contents.html" />
<link rel="next" href="node7.html" />
<meta name='aesop' content='information' />
<title>4 alsaaudio</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="3 Installation"
HREF="node5.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="Contents"
href="contents.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="4.1 PCM Terminology and"
HREF="node7.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="3 Installation"
href="node5.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="Contents"
href="contents.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="4.1 PCM Terminology and"
href="node7.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" HREF="node5.html">3 Installation</A>
<a class="sectref" rel="prev" href="node5.html">3 Installation</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="contents.html">Contents</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" HREF="node7.html">4.1 PCM Terminology and</A>
<br><hr>
<a class="sectref" rel="next" href="node7.html">4.1 PCM Terminology and</A>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
@@ -51,7 +52,7 @@
</H1>
<P>
<A NAME="module-alsaaudio"></A>
<P>
<p class="availability">Availability: <span
@@ -67,8 +68,8 @@ ALSA.
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-2"><tt class="function">mixers</tt></a></b>(</nobr></td>
<td><big>[</big><var>cardname</var><big>]</big>)</td></tr></table>
<td><nobr><b><tt id='l2h-2' xml:id='l2h-2' class="function">mixers</tt></b>(</nobr></td>
<td><var></var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
List the available mixers. The optional <var>cardname</var> specifies which
card should be queried (this is only relevant if you have more than one
@@ -77,8 +78,8 @@ sound card). Omit to use the default sound card
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><span class="typelabel">class</span>&nbsp;<a name="l2h-3"><tt class="class">PCM</tt></a></b>(</nobr></td>
<td><big>[</big><var>type</var><big>]</big><var>, </var><big>[</big><var>mode</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big>)</td></tr></table>
<td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-3' xml:id='l2h-3' class="class">PCM</tt></b>(</nobr></td>
<td><var></var><big>[</big><var>type</var><big>]</big><var>, </var><big>[</big><var>mode</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
This class is used to represent a PCM device (both playback and capture devices).
The arguments are:
@@ -90,8 +91,8 @@ if you have more than one sound card). Omit to use the default sound card
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><span class="typelabel">class</span>&nbsp;<a name="l2h-4"><tt class="class">Mixer</tt></a></b>(</nobr></td>
<td><big>[</big><var>control</var><big>]</big><var>, </var><big>[</big><var>id</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big>)</td></tr></table>
<td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-4' xml:id='l2h-4' class="class">Mixer</tt></b>(</nobr></td>
<td><var></var><big>[</big><var>control</var><big>]</big><var>, </var><big>[</big><var>id</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
This class is used to access a specific ALSA mixer.
The arguments are:
@@ -102,16 +103,17 @@ if you have more than one sound card). Omit to use the default sound card
</dl>
<P>
<dl><dt><b><span class="typelabel">exception</span>&nbsp;<a name="l2h-5"><tt class="exception">ALSAAudioError</tt></a></b>
<dl><dt><b><span class="typelabel">exception</span>&nbsp;<tt id='l2h-5' xml:id='l2h-5' class="exception">ALSAAudioError</tt></b></dt>
<dd>
Exception raised when an operation fails for a ALSA specific reason.
The exception argument is a string describing the reason of the
failure.
</dl>
</dd></dl>
<P>
<p><hr>
<p><br /></p><hr class='online-navigation' />
<div class='online-navigation'>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></a>
@@ -122,39 +124,42 @@ failure.
<LI><A href="pcm-example.html">4.4 ALSA Examples</a>
</ul>
<!--End of Table of Child-Links-->
</div>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="3 Installation"
rel="prev" title="3 Installation"
HREF="node5.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="Contents"
rel="parent" title="Contents"
href="contents.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="4.1 PCM Terminology and"
rel="next" title="4.1 PCM Terminology and"
HREF="node7.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="3 Installation"
href="node5.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="Contents"
href="contents.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="4.1 PCM Terminology and"
href="node7.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" HREF="node5.html">3 Installation</A>
<a class="sectref" rel="prev" href="node5.html">3 Installation</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="contents.html">Contents</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" HREF="node7.html">4.1 PCM Terminology and</A>
<hr>
<span class="release-info">Release 0.1.</span>
<a class="sectref" rel="next" href="node7.html">4.1 PCM Terminology and</A>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -1,49 +1,50 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="next" HREF="node4.html">
<LINK REL="prev" href="contents.html">
<LINK REL="parent" href="contents.html">
<LINK REL="next" HREF="node4.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="What is ALSA">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="node4.html" />
<link rel="prev" href="contents.html" />
<link rel="parent" href="contents.html" />
<link rel="next" href="node4.html" />
<meta name='aesop' content='information' />
<title>1 What is ALSA</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="Contents"
href="contents.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="Contents"
href="contents.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="2 ALSA and Python"
HREF="node4.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="Contents"
href="contents.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="Contents"
href="contents.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="2 ALSA and Python"
href="node4.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="contents.html">Contents</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="contents.html">Contents</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" HREF="node4.html">2 ALSA and Python</A>
<br><hr>
<a class="sectref" rel="next" href="node4.html">2 ALSA and Python</A>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
@@ -79,37 +80,39 @@ More information about ALSA may be found on the project homepage
<P>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="Contents"
rel="prev" title="Contents"
href="contents.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="Contents"
rel="parent" title="Contents"
href="contents.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="2 ALSA and Python"
rel="next" title="2 ALSA and Python"
HREF="node4.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="Contents"
href="contents.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="Contents"
href="contents.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="2 ALSA and Python"
href="node4.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="contents.html">Contents</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="contents.html">Contents</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" HREF="node4.html">2 ALSA and Python</A>
<hr>
<span class="release-info">Release 0.1.</span>
<a class="sectref" rel="next" href="node4.html">2 ALSA and Python</A>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -1,49 +1,50 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="next" HREF="node5.html">
<LINK REL="prev" HREF="node3.html">
<LINK REL="parent" href="contents.html">
<LINK REL="next" HREF="node5.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="ALSA and Python">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="node5.html" />
<link rel="prev" href="node3.html" />
<link rel="parent" href="contents.html" />
<link rel="next" href="node5.html" />
<meta name='aesop' content='information' />
<title>2 ALSA and Python</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="1 What is ALSA"
HREF="node3.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="Contents"
href="contents.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="3 Installation"
HREF="node5.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="1 What is ALSA"
href="node3.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="Contents"
href="contents.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="3 Installation"
href="node5.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" HREF="node3.html">1 What is ALSA</A>
<a class="sectref" rel="prev" href="node3.html">1 What is ALSA</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="contents.html">Contents</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" HREF="node5.html">3 Installation</A>
<br><hr>
<a class="sectref" rel="next" href="node5.html">3 Installation</A>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
@@ -75,37 +76,39 @@ difficult for me to implement it. Volunteers to work on this would be greatly
appreciated
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="1 What is ALSA"
rel="prev" title="1 What is ALSA"
HREF="node3.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="Contents"
rel="parent" title="Contents"
href="contents.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="3 Installation"
rel="next" title="3 Installation"
HREF="node5.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="1 What is ALSA"
href="node3.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="Contents"
href="contents.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="3 Installation"
href="node5.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" HREF="node3.html">1 What is ALSA</A>
<a class="sectref" rel="prev" href="node3.html">1 What is ALSA</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="contents.html">Contents</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" HREF="node5.html">3 Installation</A>
<hr>
<span class="release-info">Release 0.1.</span>
<a class="sectref" rel="next" href="node5.html">3 Installation</A>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -1,49 +1,50 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="next" href="module-alsaaudio.html">
<LINK REL="prev" HREF="node4.html">
<LINK REL="parent" href="contents.html">
<LINK REL="next" href="module-alsaaudio.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="Installation">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="module-alsaaudio.html" />
<link rel="prev" href="node4.html" />
<link rel="parent" href="contents.html" />
<link rel="next" href="module-alsaaudio.html" />
<meta name='aesop' content='information' />
<title>3 Installation</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="2 ALSA and Python"
HREF="node4.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="Contents"
href="contents.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="2 ALSA and Python"
href="node4.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="Contents"
href="contents.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" HREF="node4.html">2 ALSA and Python</A>
<a class="sectref" rel="prev" href="node4.html">2 ALSA and Python</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="contents.html">Contents</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="module-alsaaudio.html">4 alsaaudio</A>
<br><hr>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
@@ -74,37 +75,39 @@ And then as root:
<P>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="2 ALSA and Python"
rel="prev" title="2 ALSA and Python"
HREF="node4.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="Contents"
rel="parent" title="Contents"
href="contents.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="4 alsaaudio"
rel="next" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="2 ALSA and Python"
href="node4.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="Contents"
href="contents.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" HREF="node4.html">2 ALSA and Python</A>
<a class="sectref" rel="prev" href="node4.html">2 ALSA and Python</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="contents.html">Contents</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="module-alsaaudio.html">4 alsaaudio</A>
<hr>
<span class="release-info">Release 0.1.</span>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -1,49 +1,50 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="next" href="pcm-objects.html">
<LINK REL="prev" href="module-alsaaudio.html">
<LINK REL="parent" href="module-alsaaudio.html">
<LINK REL="next" href="pcm-objects.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="PCM Terminology and Concepts">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="pcm-objects.html" />
<link rel="prev" href="module-alsaaudio.html" />
<link rel="parent" href="module-alsaaudio.html" />
<link rel="next" href="pcm-objects.html" />
<meta name='aesop' content='information' />
<title>4.1 PCM Terminology and Concepts</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="4.2 PCM Objects"
href="pcm-objects.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="4.2 PCM Objects"
href="pcm-objects.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="module-alsaaudio.html">4 alsaaudio</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="pcm-objects.html">4.2 PCM Objects</A>
<br><hr>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
@@ -113,7 +114,7 @@ slower and read or write multiple periods at the same time.
<P>
</DD>
<DT><STRONG>Period size</STRONG></DT>
<DD>This is the size of each period in Hz. <i>Not bytes, but Hz!.</i> In <tt class="module">alsaaudio</tt>
<DD>This is the size of each period in Hz. <em>Not bytes, but Hz!.</em> In <tt class="module">alsaaudio</tt>
the period size is set directly, and it is therefore important to understand the significance of this
number. If the period size is configured to for example 32, each write should contain exactly 32 frames
of sound data, and each read will return either 32 frames of data or nothing at all.
@@ -128,37 +129,39 @@ Once you understand these concepts, you will be ready to actually utilize PCM AP
<P>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="4 alsaaudio"
rel="prev" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="4 alsaaudio"
rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="4.2 PCM Objects"
rel="next" title="4.2 PCM Objects"
href="pcm-objects.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="4.2 PCM Objects"
href="pcm-objects.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="module-alsaaudio.html">4 alsaaudio</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="pcm-objects.html">4.2 PCM Objects</A>
<hr>
<span class="release-info">Release 0.1.</span>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -1,52 +1,53 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="prev" href="mixer-objects.html">
<LINK REL="parent" href="module-alsaaudio.html">
<LINK REL="next" href="about.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="ALSA Examples ">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="prev" href="mixer-objects.html" />
<link rel="parent" href="module-alsaaudio.html" />
<link rel="next" href="about.html" />
<meta name='aesop' content='information' />
<title>4.4 ALSA Examples </title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="4.3 Mixer Objects"
href="mixer-objects.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="About this document ..."
href="about.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="4.3 Mixer Objects"
href="mixer-objects.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="About this document ..."
href="about.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="mixer-objects.html">4.3 Mixer Objects</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="about.html">About this document ...</A>
<br><hr>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION002440000000000000000">&nbsp;</A>
<H2><A NAME="SECTION002440000000000000000"></A><A NAME="pcm-example"></A>
<BR>
4.4 ALSA Examples
</H2>
@@ -58,37 +59,39 @@ This will change in a future version.
<P>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="4.3 Mixer Objects"
rel="prev" title="4.3 Mixer Objects"
href="mixer-objects.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="4 alsaaudio"
rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="About this document ..."
rel="next" title="About this document ..."
href="about.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="4.3 Mixer Objects"
href="mixer-objects.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="About this document ..."
href="about.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="mixer-objects.html">4.3 Mixer Objects</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="about.html">About this document ...</A>
<hr>
<span class="release-info">Release 0.1.</span>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -1,53 +1,55 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="next" href="mixer-objects.html">
<LINK REL="prev" HREF="node7.html">
<LINK REL="parent" href="module-alsaaudio.html">
<LINK REL="next" href="mixer-objects.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="PCM Objects">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="mixer-objects.html" />
<link rel="prev" href="node7.html" />
<link rel="parent" href="module-alsaaudio.html" />
<link rel="next" href="mixer-objects.html" />
<meta name='aesop' content='information' />
<title>4.2 PCM Objects</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="4.1 PCM Terminology and"
HREF="node7.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="4.3 Mixer Objects"
href="mixer-objects.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="4.1 PCM Terminology and"
href="node7.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="4.3 Mixer Objects"
href="mixer-objects.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" HREF="node7.html">4.1 PCM Terminology and</A>
<a class="sectref" rel="prev" href="node7.html">4.1 PCM Terminology and</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="mixer-objects.html">4.3 Mixer Objects</A>
<br><hr>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION002420000000000000000">&nbsp;</A>
<H2><A NAME="SECTION002420000000000000000"></A>
<A NAME="pcm-objects"></A>
<BR>
4.2 PCM Objects
</H2>
@@ -63,8 +65,8 @@ constructor takes the following arguments:
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><span class="typelabel">class</span>&nbsp;<a name="l2h-6"><tt class="class">PCM</tt></a></b>(</nobr></td>
<td><big>[</big><var>type</var><big>]</big><var>, </var><big>[</big><var>mode</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big>)</td></tr></table>
<td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-6' xml:id='l2h-6' class="class">PCM</tt></b>(</nobr></td>
<td><var></var><big>[</big><var>type</var><big>]</big><var>, </var><big>[</big><var>mode</var><big>]</big><var>, </var><big>[</big><var>cardname</var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
<P>
@@ -102,32 +104,32 @@ PCM objects have the following methods:
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-7"><tt class="method">pcmtype</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-7' xml:id='l2h-7' class="method">pcmtype</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
Returns the type of PCM object. Either PCM_CAPTURE or PCM_PLAYBACK.
</dl>
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-8"><tt class="method">pcmmode</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-8' xml:id='l2h-8' class="method">pcmmode</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
Return the mode of the PCM object. One of PCM_NONBLOCK, PCM_ASYNC, or PCM_NORMAL
</dl>
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-9"><tt class="method">cardname</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-9' xml:id='l2h-9' class="method">cardname</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
Return the name of the sound card used by this PCM object.
</dl>
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-10"><tt class="method">setchannels</tt></a></b>(</nobr></td>
<td><var>nchannels</var>)</td></tr></table>
<td><nobr><b><tt id='l2h-10' xml:id='l2h-10' class="method">setchannels</tt></b>(</nobr></td>
<td><var>nchannels</var>)</td></tr></table></dt>
<dd>
Used to set the number of capture or playback channels. Common values are: 1 = mono, 2 = stereo,
and 6 = full 6 channel audio. Few sound cards support more than 2 channels
@@ -135,8 +137,8 @@ and 6 = full 6 channel audio. Few sound cards support more than 2 channels
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-11"><tt class="method">setrate</tt></a></b>(</nobr></td>
<td><var>rate</var>)</td></tr></table>
<td><nobr><b><tt id='l2h-11' xml:id='l2h-11' class="method">setrate</tt></b>(</nobr></td>
<td><var>rate</var>)</td></tr></table></dt>
<dd>
Set the sample rate in Hz for the device. Typical values are 8000 (poor sound), 16000, 44100 (cd quality),
and 96000
@@ -144,77 +146,77 @@ and 96000
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-12"><tt class="method">setformat</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-12' xml:id='l2h-12' class="method">setformat</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
The sound format of the device. Sound format controls how the PCM device interpret data for playback,
and how data is encoded in captures.
<P>
The following formats are provided by ALSA:
<table border align="center" style="border-collapse: collapse">
<div class="center"><table class="realtable">
<thead>
<tr class="tableheader">
<th align="left"><b>Format</b>&nbsp;</th>
<th align="left"><b>Description</b>&nbsp;</th>
<tr>
<th class="left" >Format</th>
<th class="left" >Description</th>
</tr>
</thead>
<tbody valign="baseline">
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_S8</Formats></td>
<td align="left">Signed 8 bit samples for each channel</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_U8</Formats></td>
<td align="left">Signed 8 bit samples for each channel</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_S16_LE</Formats></td>
<td align="left">Signed 16 bit samples for each channel (Little Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_S16_BE</Formats></td>
<td align="left">Signed 16 bit samples for each channel (Big Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_U16_LE</Formats></td>
<td align="left">Unsigned 16 bit samples for each channel (Little Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_U16_BE</Formats></td>
<td align="left">Unsigned 16 bit samples for each channel (Big Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_S24_LE</Formats></td>
<td align="left">Signed 24 bit samples for each channel (Little Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_S24_BE</Formats></td>
<td align="left">Signed 24 bit samples for each channel (Big Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_U24_LE</Formats></td>
<td align="left">Unsigned 24 bit samples for each channel (Little Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_U24_BE</Formats></td>
<td align="left">Unsigned 24 bit samples for each channel (Big Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_S32_LE</Formats></td>
<td align="left">Signed 32 bit samples for each channel (Little Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_S32_BE</Formats></td>
<td align="left">Signed 32 bit samples for each channel (Big Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_U32_LE</Formats></td>
<td align="left">Unsigned 32 bit samples for each channel (Little Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_U32_BE</Formats></td>
<td align="left">Unsigned 32 bit samples for each channel (Big Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT_LE</Formats></td>
<td align="left">32 bit samples encoded as float. (Little Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT_BE</Formats></td>
<td align="left">32 bit samples encoded as float (Big Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT64_LE</Formats></td>
<td align="left">64 bit samples encoded as float. (Little Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT64_BE</Formats></td>
<td align="left">64 bit samples encoded as float. (Big Endian byte order)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_MU_LAW</Formats></td>
<td align="left">A logarithmic encoding (used by Sun .au files)</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_A_LAW</Formats></td>
<td align="left">Another logarithmic encoding</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_IMA_ADPCM</Formats></td>
<td align="left">a 4:1 compressed format defined by the Interactive Multimedia Association</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_MPEG</Formats></td>
<td align="left">MPEG encoded audio?</td>
<tr><td align="left" valign="baseline"><Formats>PCM_FORMAT_GSM</Formats></td>
<td align="left">9600 constant rate encoding well suitet for speech</td></tbody>
</table>
<tbody>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S8</Formats></td>
<td class="left" >Signed 8 bit samples for each channel</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U8</Formats></td>
<td class="left" >Signed 8 bit samples for each channel</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S16_LE</Formats></td>
<td class="left" >Signed 16 bit samples for each channel (Little Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S16_BE</Formats></td>
<td class="left" >Signed 16 bit samples for each channel (Big Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U16_LE</Formats></td>
<td class="left" >Unsigned 16 bit samples for each channel (Little Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U16_BE</Formats></td>
<td class="left" >Unsigned 16 bit samples for each channel (Big Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S24_LE</Formats></td>
<td class="left" >Signed 24 bit samples for each channel (Little Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S24_BE</Formats></td>
<td class="left" >Signed 24 bit samples for each channel (Big Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U24_LE</Formats></td>
<td class="left" >Unsigned 24 bit samples for each channel (Little Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U24_BE</Formats></td>
<td class="left" >Unsigned 24 bit samples for each channel (Big Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S32_LE</Formats></td>
<td class="left" >Signed 32 bit samples for each channel (Little Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_S32_BE</Formats></td>
<td class="left" >Signed 32 bit samples for each channel (Big Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U32_LE</Formats></td>
<td class="left" >Unsigned 32 bit samples for each channel (Little Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_U32_BE</Formats></td>
<td class="left" >Unsigned 32 bit samples for each channel (Big Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT_LE</Formats></td>
<td class="left" >32 bit samples encoded as float. (Little Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT_BE</Formats></td>
<td class="left" >32 bit samples encoded as float (Big Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT64_LE</Formats></td>
<td class="left" >64 bit samples encoded as float. (Little Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_FLOAT64_BE</Formats></td>
<td class="left" >64 bit samples encoded as float. (Big Endian byte order)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_MU_LAW</Formats></td>
<td class="left" >A logarithmic encoding (used by Sun .au files)</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_A_LAW</Formats></td>
<td class="left" >Another logarithmic encoding</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_IMA_ADPCM</Formats></td>
<td class="left" >a 4:1 compressed format defined by the Interactive Multimedia Association</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_MPEG</Formats></td>
<td class="left" >MPEG encoded audio?</td></tr>
<tr><td class="left" valign="baseline"><Formats>PCM_FORMAT_GSM</Formats></td>
<td class="left" >9600 constant rate encoding well suitet for speech</td></tr></tbody>
</table></div>
<P>
</dl>
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-13"><tt class="method">setperiodsize</tt></a></b>(</nobr></td>
<td><var>period</var>)</td></tr></table>
<td><nobr><b><tt id='l2h-13' xml:id='l2h-13' class="method">setperiodsize</tt></b>(</nobr></td>
<td><var>period</var>)</td></tr></table></dt>
<dd>
Sets the actual period size in frames. Each write should consist of exactly this number of frames, and
each read will return this number of frames (unless the device is in PCM_NONBLOCK mode, in which case
@@ -223,11 +225,11 @@ it may return nothing at all)
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-14"><tt class="method">read</tt></a></b>(</nobr></td>
<td>)</td></tr></table>
<td><nobr><b><tt id='l2h-14' xml:id='l2h-14' class="method">read</tt></b>(</nobr></td>
<td><var></var>)</td></tr></table></dt>
<dd>
In PCM_NORMAL mode, this function blocks until a full period is available, and then returns a
tuple (length,data) where <i>length</i> is the size in bytes of the captured data, and <i>data</i>
tuple (length,data) where <em>length</em> is the size in bytes of the captured data, and <em>data</em>
is the captured sound frames as a string. The length of the returned data will be periodsize*framesize
bytes.
@@ -238,11 +240,11 @@ has become available since the last call to read.
<P>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
<td><nobr><b><a name="l2h-15"><tt class="method">write</tt></a></b>(</nobr></td>
<td><var>data</var>)</td></tr></table>
<td><nobr><b><tt id='l2h-15' xml:id='l2h-15' class="method">write</tt></b>(</nobr></td>
<td><var>data</var>)</td></tr></table></dt>
<dd>
Writes (plays) the sound in data. The length of data <i>must</i> be a multiple of the frame size, and
<i>should</i> be exactly the size of a period. If less than 'period size' frames are provided, the actual
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>
@@ -258,14 +260,14 @@ full. In this case, the data should be written at a later time.
</dl>
<P>
<b>A few hints on using PCM devices for playback</b>
<strong>A few hints on using PCM devices for playback</strong>
<P>
The most common reason for problems with playback of PCM audio, is that the people don't properly understand
that writes to PCM devices must match <i>exactly</i> the data rate of the device.
that writes to PCM devices must match <em>exactly</em> the data rate of the device.
<P>
If too little data is written to the device will an underrun, and ugly clicking sounds will occur. Conversely,
If too little data is written to the device, it will underrun, and ugly clicking sounds will occur. Conversely,
of too much data is written to the device, the write function will either block (PCM_NORMAL mode) or return zero
(PCM_NONBLOCK mode).
@@ -289,37 +291,39 @@ extra writes as nessecary.
<P>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><a rel="prev" title="4.1 PCM Terminology and"
rel="prev" title="4.1 PCM Terminology and"
HREF="node7.html"><img src='previous.gif'
border='0' height='32' alt='Previous Page' width='32'></A></td>
<td><a rel="parent" title="4 alsaaudio"
rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.gif'
border='0' height='32' alt='Up One Level' width='32'></A></td>
<td><a rel="next" title="4.3 Mixer Objects"
rel="next" title="4.3 Mixer Objects"
href="mixer-objects.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><a rel="prev" title="4.1 PCM Terminology and"
href="node7.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="4 alsaaudio"
href="module-alsaaudio.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="4.3 Mixer Objects"
href="mixer-objects.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" HREF="node7.html">4.1 PCM Terminology and</A>
<a class="sectref" rel="prev" href="node7.html">4.1 PCM Terminology and</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-alsaaudio.html">4 alsaaudio</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="mixer-objects.html">4.3 Mixer Objects</A>
<hr>
<span class="release-info">Release 0.1.</span>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

243
doc/pyalsaaudio.css Normal file
View File

@@ -0,0 +1,243 @@
/*
* The first part of this is the standard CSS generated by LaTeX2HTML,
* with the "empty" declarations removed.
*/
/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
.math { font-family: "Century Schoolbook", serif; }
.math i { font-family: "Century Schoolbook", serif;
font-weight: bold }
.boldmath { font-family: "Century Schoolbook", serif;
font-weight: bold }
/*
* Implement both fixed-size and relative sizes.
*
* I think these can be safely removed, as it doesn't appear that
* LaTeX2HTML ever generates these, even though these are carried
* over from the LaTeX2HTML stylesheet.
*/
small.xtiny { font-size : xx-small; }
small.tiny { font-size : x-small; }
small.scriptsize { font-size : smaller; }
small.footnotesize { font-size : small; }
big.xlarge { font-size : large; }
big.xxlarge { font-size : x-large; }
big.huge { font-size : larger; }
big.xhuge { font-size : xx-large; }
/*
* Document-specific styles come next;
* these are added for the Python documentation.
*
* Note that the size specifications for the H* elements are because
* Netscape on Solaris otherwise doesn't get it right; they all end up
* the normal text size.
*/
body { color: #000000;
background-color: #ffffff; }
a:link:active { color: #ff0000; }
a:link:hover { background-color: #bbeeff; }
a:visited:hover { background-color: #bbeeff; }
a:visited { color: #551a8b; }
a:link { color: #0000bb; }
h1, h2, h3, h4, h5, h6 { font-family: avantgarde, sans-serif;
font-weight: bold; }
h1 { font-size: 180%; }
h2 { font-size: 150%; }
h3, h4 { font-size: 120%; }
/* These are section titles used in navigation links, so make sure we
* match the section header font here, even it not the weight.
*/
.sectref { font-family: avantgarde, sans-serif; }
/* And the label before the titles in navigation: */
.navlabel { font-size: 85%; }
/* LaTeX2HTML insists on inserting <br> elements into headers which
* are marked with \label. This little bit of CSS magic ensures that
* these elements don't cause spurious whitespace to be added.
*/
h1>br, h2>br, h3>br,
h4>br, h5>br, h6>br { display: none; }
code, tt { font-family: "lucida typewriter", lucidatypewriter,
monospace; }
var { font-family: times, serif;
font-style: italic;
font-weight: normal; }
.Unix { font-variant: small-caps; }
.typelabel { font-family: lucida, sans-serif; }
.navigation td { background-color: #99ccff;
font-weight: bold;
font-family: avantgarde, sans-serif;
font-size: 110%; }
div.warning { background-color: #fffaf0;
border: thin solid black;
padding: 1em;
margin-left: 2em;
margin-right: 2em; }
div.warning .label { font-family: sans-serif;
font-size: 110%;
margin-right: 0.5em; }
div.note { background-color: #fffaf0;
border: thin solid black;
padding: 1em;
margin-left: 2em;
margin-right: 2em; }
div.note .label { margin-right: 0.5em;
font-family: sans-serif; }
address { font-size: 80%; }
.release-info { font-style: italic;
font-size: 80%; }
.titlegraphic { vertical-align: top; }
.verbatim pre { color: #00008b;
font-family: "lucida typewriter", lucidatypewriter,
monospace;
font-size: 90%; }
.verbatim { margin-left: 2em; }
.verbatim .footer { padding: 0.05in;
font-size: 85%;
background-color: #99ccff;
margin-right: 0.5in; }
.grammar { background-color: #99ccff;
margin-right: 0.5in;
padding: 0.05in; }
.grammar-footer { padding: 0.05in;
font-size: 85%; }
.grammartoken { font-family: "lucida typewriter", lucidatypewriter,
monospace; }
.productions { background-color: #bbeeff; }
.productions a:active { color: #ff0000; }
.productions a:link:hover { background-color: #99ccff; }
.productions a:visited:hover { background-color: #99ccff; }
.productions a:visited { color: #551a8b; }
.productions a:link { color: #0000bb; }
.productions table { vertical-align: baseline;
empty-cells: show; }
.productions > table td,
.productions > table th { padding: 2px; }
.productions > table td:first-child,
.productions > table td:last-child {
font-family: "lucida typewriter",
lucidatypewriter,
monospace;
}
/* same as the second selector above, but expressed differently for Opera */
.productions > table td:first-child + td + td {
font-family: "lucida typewriter",
lucidatypewriter,
monospace;
vertical-align: baseline;
}
.productions > table td:first-child + td {
padding-left: 1em;
padding-right: 1em;
}
.productions > table tr { vertical-align: baseline; }
.email { font-family: avantgarde, sans-serif; }
.mailheader { font-family: avantgarde, sans-serif; }
.mimetype { font-family: avantgarde, sans-serif; }
.newsgroup { font-family: avantgarde, sans-serif; }
.url { font-family: avantgarde, sans-serif; }
.file { font-family: avantgarde, sans-serif; }
.guilabel { font-family: avantgarde, sans-serif; }
.realtable { border-collapse: collapse;
border-color: black;
border-style: solid;
border-width: 0px 0px 2px 0px;
empty-cells: show;
margin-left: auto;
margin-right: auto;
padding-left: 0.4em;
padding-right: 0.4em;
}
.realtable tbody { vertical-align: baseline; }
.realtable tfoot { display: table-footer-group; }
.realtable thead { background-color: #99ccff;
border-width: 0px 0px 2px 1px;
display: table-header-group;
font-family: avantgarde, sans-serif;
font-weight: bold;
vertical-align: baseline;
}
.realtable thead :first-child {
border-width: 0px 0px 2px 0px;
}
.realtable thead th { border-width: 0px 0px 2px 1px }
.realtable td,
.realtable th { border-color: black;
border-style: solid;
border-width: 0px 0px 1px 1px;
padding-left: 0.4em;
padding-right: 0.4em;
}
.realtable td:first-child,
.realtable th:first-child {
border-left-width: 0px;
vertical-align: baseline;
}
.center { text-align: center; }
.left { text-align: left; }
.right { text-align: right; }
.refcount-info { font-style: italic; }
.refcount-info .value { font-weight: bold;
color: #006600; }
/*
* Some decoration for the "See also:" blocks, in part inspired by some of
* the styling on Lars Marius Garshol's XSA pages.
* (The blue in the navigation bars is #99CCFF.)
*/
.seealso { background-color: #fffaf0;
border: thin solid black;
padding: 0pt 1em 4pt 1em; }
.seealso > .heading { font-size: 110%;
font-weight: bold; }
/*
* Class 'availability' is used for module availability statements at
* the top of modules.
*/
.availability .platform { font-weight: bold; }
/*
* Additional styles for the distutils package.
*/
.du-command { font-family: monospace; }
.du-option { font-family: avantgarde, sans-serif; }
.du-filevar { font-family: avantgarde, sans-serif;
font-style: italic; }
.du-xxx:before { content: "** ";
font-weight: bold; }
.du-xxx:after { content: " **";
font-weight: bold; }
/*
* Some specialization for printed output.
*/
@media print {
.online-navigation { display: none; }
}

View File

@@ -1,55 +1,57 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css'>
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio'>
<link rel='contents' href='contents.html' title="Contents">
<link rel='last' href='about.html' title='About this document...'>
<link rel='help' href='about.html' title='About this document...'>
<LINK REL="next" href="front.html">
<meta name='aesop' content='information'>
<META NAME="description" CONTENT="PyAlsaAudio">
<META NAME="keywords" CONTENT="pyalsaaudio">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyalsaaudio.css" type='text/css' />
<link rel="first" href="pyalsaaudio.html" title='PyAlsaAudio' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="front.html" />
<meta name='aesop' content='information' />
<title>PyAlsaAudio</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td><a rel="next" title="Front Matter"
href="front.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></td>
<td class='online-navigation'><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></td>
<td class='online-navigation'><a rel="next" title="Front Matter"
href="front.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="front.html">Front Matter</A>
<br><hr>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
<div class="titlepage">
<center>
<div class='center'>
<h1>PyAlsaAudio</h1>
<p><b><font size="+2">Casper Wilstrup</font></b></p>
<p>cwi@unispeed.com</p>
<p>
</center>
<p></p>
</div>
</div>
<P>
<p><hr>
<p><br /></p><hr class='online-navigation' />
<div class='online-navigation'>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"></a>
@@ -71,31 +73,36 @@
<LI><A href="about.html">About this document ...</a>
</ul>
<!--End of Table of Child-Links-->
</div>
<DIV CLASS="navigation">
<p><hr>
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td><a rel="next" title="Front Matter"
rel="next" title="Front Matter"
href="front.html"><img src='next.gif'
border='0' height='32' alt='Next Page' width='32'></A></td>
<td class='online-navigation'><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></td>
<td class='online-navigation'><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></td>
<td class='online-navigation'><a rel="next" title="Front Matter"
href="front.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">PyAlsaAudio</td>
<td><a rel="contents" title="Table of Contents"
rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.gif'
border='0' height='32' alt='Contents' width='32'></A></td>
<td><img src='blank.gif'
border='0' height='32' alt='' width='32'></td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="front.html">Front Matter</A>
<hr>
<span class="release-info">Release 0.1.</span>
</div>
</div>
<hr />
<span class="release-info">Release 0.2.</span>
</DIV>
<!--End of Navigation Panel-->

View File

@@ -5,7 +5,7 @@
#
# You also need a working latex installation, and the latex2html
# tool installed.
PYTHONSOURCE = /usr/src/Python-2.3.4/
PYTHONSOURCE = /usr/src/Python-2.4.1/
# Shouldn't need to change anything below here!
@@ -13,3 +13,8 @@ MKHOWTO = $(PYTHONSOURCE)/Doc/tools/mkhowto
all:
$(MKHOWTO) --dir .. --html pyalsaaudio.tex
text:
$(MKHOWTO) --dir .. --text pyalsaaudio.tex

View File

@@ -234,7 +234,7 @@ full. In this case, the data should be written at a later time.
The most common reason for problems with playback of PCM audio, is that the people don't properly understand
that writes to PCM devices must match \emph{exactly} the data rate of the device.
If too little data is written to the device will an underrun, and ugly clicking sounds will occur. Conversely,
If too little data is written to the device, it will underrun, and ugly clicking sounds will occur. Conversely,
of too much data is written to the device, the write function will either block (PCM_NORMAL mode) or return zero
(PCM_NONBLOCK mode).
@@ -394,4 +394,4 @@ and that which I do understand has come from a painful trial and error process.
\subsection{ALSA Examples \label{pcm-example}}
For now, the only examples available are the 'playbacktest.py' and the 'recordtest.py' programs included.
This will change in a future version.
This will change in a future version.

View File

@@ -2,7 +2,7 @@
\title{PyAlsaAudio}
\release{0.1}
\release{0.2}
% At minimum, give your name and an email address. You can include a
% snail-mail address if you like.

View File

@@ -9,7 +9,9 @@
## To test it out do the following:
## python recordtest.py > out.raw # talk to the microphone
## python playbacktest.py < out.raw
##
## If you have Gnome, you could also just test by doing something like:
## python playbacktest.py < /usr/share/sounds/gnibbles/laughter.wav
import alsaaudio
import sys
import time

View File

@@ -33,7 +33,7 @@ inp.setformat(alsaaudio.PCM_FORMAT_S16_LE)
# mode.
inp.setperiodsize(160)
loops = 10000
loops = 1000000
while loops > 0:
loops -= 1
# Read data from device