File: pyalsaaudio.rst

package info (click to toggle)
pyalsaaudio 0.5%2Bsvn36-1
  • links: PTS
  • area: main
  • in suites: squeeze, wheezy
  • size: 200 kB
  • ctags: 161
  • sloc: ansic: 1,672; python: 348; makefile: 106
file content (134 lines) | stat: -rw-r--r-- 4,131 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
************
Introduction
************

:Author: Casper Wilstrup
:Author: Lars Immisch

.. |release| replace:: 0.4

.. % At minimum, give your name and an email address.  You can include a
.. % snail-mail address if you like.

.. % This makes the Abstract go on a separate page in the HTML version;
.. % if a copyright notice is used, it should go immediately after this.
.. % 


.. _front:

This software is licensed under the PSF license - the same one used by the
majority of the python distribution. Basically you can use it for anything you
wish (even commercial purposes). There is no warranty whatsoever.

.. % Copyright statement should go here, if needed.

.. % The abstract should be a paragraph or two long, and describe the
.. % scope of the document.


.. topic:: Abstract

   This package contains wrappers for accessing the ALSA API from Python. It is
   currently fairly complete for PCM devices and Mixer access. MIDI sequencer
   support is low on our priority list, but volunteers are welcome.

   If you find bugs in the wrappers please use the SourceForge bug tracker. 
   Please don't send bug reports regarding ALSA specifically. There are several
   bugs in this API, and those should be reported to the ALSA team - not me.


************
What is ALSA
************

The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI
functionality to the Linux operating system.

Logically ALSA consists of these components:

* A set of kernel drivers. ---  These drivers are responsible for handling the
  physical sound  hardware from within the Linux kernel, and have been the
  standard sound implementation in Linux since kernel version 2.5

* A kernel level API for manipulating the ALSA devices.

* A user-space C library for simplified access to the sound hardware from
  userspace applications. This library is called *libasound* and is required by
  all ALSA capable applications.

More information about ALSA may be found on the project homepage
`<http://www.alsa-project.org>`_


ALSA and Python
===============

The older Linux sound API (OSS) which is now deprecated is well supported from
the standard Python library, through the ossaudiodev module. No native ALSA
support exists in the standard library.

There are a few other "ALSA for Python" projects available, including at least
two different projects called pyAlsa. Neither of these seem to be under active
development at the time - and neither are very feature complete.

I wrote PyAlsaAudio to fill this gap. My long term goal is to have the module
included in the standard Python library, but that looks currently unlikely.

PyAlsaAudio hass full support for sound capture, playback of sound, as well as
the ALSA Mixer API.

MIDI support is not available, and since I don't own any MIDI hardware, it's
difficult for me to implement it. Volunteers to work on this would be greatly
appreciated.


************
Installation
************

Note: the wrappers link with the alsasound library (from the alsa-lib package)
and need the ALSA headers for compilation.  Verify that you have
/usr/lib/libasound.so and /usr/include/alsa (or similar paths) before building.

*On Debian (and probably Ubuntu), install libasound2-dev.*

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.

To install, execute the following:  ---   ::

   $ python setup.py build

And then as root:  ---   ::

   # python setup.py install

*******
Testing
*******

First of all, run::
   
   $ python test.py

This is a small test suite that mostly performs consistency tests. If
it fails, please file a `bug report
<http://sourceforge.net/tracker/?group_id=120651>`_.

To test PCM recordings (on your default soundcard), verify your
microphone works, then do::

   $ python recordtest.py <filename>

Speak into the microphone, and interrupt the recording at any time
with ``Ctl-C``.

Play back the recording with::

   $ python playbacktest.py <filename>