+ setperiodsize() (alsaaudio.PCM method)
+
setrate() (alsaaudio.PCM method)
setrec() (alsaaudio.Mixer method)
@@ -215,7 +230,7 @@
Navigation
-Contents:
+Contents:
Introduction
What is ALSA
@@ -236,7 +251,7 @@
Quick search
@@ -258,7 +273,7 @@
©2017, Lars Immisch & Casper Wilstrup.
|
- Powered by Sphinx 3.1.2
+ Powered by Sphinx 4.5.0
& Alabaster 0.7.12
diff --git a/index.html b/index.html
index 1bc5bd1..5f69b38 100644
--- a/index.html
+++ b/index.html
@@ -4,15 +4,15 @@
-
- alsaaudio documentation — alsaaudio documentation 0.9.0 documentation
-
-
-
+
+
+ alsaaudio documentation — alsaaudio documentation 0.9.1 documentation
+
+
+
-
@@ -32,10 +32,10 @@
-
+
alsaaudio documentation
-
-
-
-
+
@@ -93,7 +93,7 @@
Navigation
-Contents:
+Contents:
Introduction
What is ALSA
@@ -115,7 +115,7 @@
Quick search
@@ -137,7 +137,7 @@
©2017, Lars Immisch & Casper Wilstrup.
|
- Powered by Sphinx 3.1.2
+ Powered by Sphinx 4.5.0
& Alabaster 0.7.12
|
diff --git a/libalsaaudio.html b/libalsaaudio.html
index 052e43c..05d4599 100644
--- a/libalsaaudio.html
+++ b/libalsaaudio.html
@@ -4,15 +4,15 @@
-
- alsaaudio — alsaaudio documentation 0.9.0 documentation
-
-
-
+
+
+ alsaaudio — alsaaudio documentation 0.9.1 documentation
+
+
+
-
@@ -32,16 +32,16 @@
-
+
The alsaaudio module defines functions and classes for using ALSA.
-
-alsaaudio.pcms( [ type=PCM_PLAYBACK ] )
+
+alsaaudio. pcms ( pcmtype = PCM_PLAYBACK )
List available PCM devices by name.
Arguments are:
Note:
@@ -60,16 +60,16 @@ commandline:
-
-alsaaudio.cards( )
+
+alsaaudio. cards ( )
List the available ALSA cards by name. This function is only moderately
useful. If you want to see a list of available PCM devices, use pcms()
instead.
-
-alsaaudio.mixers( cardindex = - 1 , device = 'default' )
+
+alsaaudio. mixers ( cardindex = - 1 , device = 'default' )
List the available mixers. The arguments are:
cardindex - the card index. If this argument is given, the device name
@@ -103,14 +103,20 @@ device, not the mixers for the first card.
-
+
+
+alsaaudio. asoundlib_version ( )
+Return a Python string containing the ALSA version found.
+
+
+
PCM Objects
PCM objects in alsaaudio can play or capture (record) PCM
sound through speakers or a microphone. The PCM constructor takes the
following arguments:
-
-class alsaaudio.PCM( type = PCM_PLAYBACK , mode = PCM_NORMAL , rate = 44100 , channels = 2 , format = PCM_FORMAT_S16_LE , periodsize = 32 , device = 'default' , cardindex = - 1 )
+
+class alsaaudio. PCM ( type = PCM_PLAYBACK , mode = PCM_NORMAL , rate = 44100 , channels = 2 , format = PCM_FORMAT_S16_LE , periodsize = 32 , device = 'default' , cardindex = - 1 )
This class is used to represent a PCM device (either for playback and
recording). The arguments are:
@@ -244,60 +250,60 @@ name of the card. This was always fragile and broke some legitimate usecases.PCM objects have the following methods:
-
-PCM.pcmtype( )
+
+PCM. pcmtype ( )
Returns the type of PCM object. Either PCM_CAPTURE or
PCM_PLAYBACK .
-
-PCM.pcmmode( )
+
+PCM. pcmmode ( )
Return the mode of the PCM object. One of PCM_NONBLOCK ,
PCM_ASYNC , or PCM_NORMAL
-
-PCM.cardname( )
+
+PCM. cardname ( )
Return the name of the sound card used by this PCM object.
-
-PCM.setchannels( nchannels )
+
+PCM. setchannels ( nchannels )
Deprecated since version 0.9: Use the channels named argument to PCM() .
-
-PCM.setrate( rate )
+
+PCM. setrate ( rate )
Deprecated since version 0.9: Use the rate named argument to PCM() .
-
-PCM.setformat( format )
+
+PCM. setformat ( format )
Deprecated since version 0.9: Use the format named argument to PCM() .
-
-PCM.setperiodsize( period )
+
+PCM. setperiodsize ( period )
Deprecated since version 0.9: Use the periodsize named argument to PCM() .
-
-PCM.read( )
+
+PCM. read ( )
In PCM_NORMAL mode, this function blocks until a full period is
available, and then returns a tuple (length,data) where length is
the number of frames of captured data, and data is the captured
@@ -312,8 +318,8 @@ Try using a larger periodsize.
-
-PCM.write( data )
+
+PCM. write ( data )
Writes (plays) the sound in data. The length of data must be a
multiple of the frame size, and should be exactly the size of a
period. If less than ‘period size’ frames are provided, the actual
@@ -328,21 +334,104 @@ should be written at a later time.
-
-PCM.pause( [ enable=True ] )
+
+PCM. pause ( [ enable=True ] )
If enable is True , playback or capture is paused.
Otherwise, playback/capture is resumed.
-
-PCM.polldescriptors( )
+
+PCM. polldescriptors ( )
Returns a tuple of (file descriptor, eventmask) that can be used to
-wait for changes on the mixer with select.poll .
+wait for changes on the PCM with select.poll .
The eventmask value is compatible with poll.register in the Python
select module.
+
+
+PCM. set_tstamp_mode ( [ mode=PCM_TSTAMP_ENABLE ] )
+Set the ALSA timestamp mode on the device. The mode argument can be set to
+either PCM_TSTAMP_NONE or PCM_TSTAMP_ENABLE .
+
+
+
+
+PCM. get_tstamp_mode ( )
+Return the integer value corresponding to the ALSA timestamp mode. The
+return value can be either PCM_TSTAMP_NONE or PCM_TSTAMP_ENABLE .
+
+
+
+
+PCM. set_tstamp_type ( [ type=PCM_TSTAMP_TYPE_GETTIMEOFDAY ] )
+Set the ALSA timestamp mode on the device. The type argument
+can be set to either PCM_TSTAMP_TYPE_GETTIMEOFDAY ,
+PCM_TSTAMP_TYPE_MONOTONIC or PCM_TSTAMP_TYPE_MONOTONIC_RAW .
+
+
+
+
+PCM. get_tstamp_type ( )
+Return the integer value corresponding to the ALSA timestamp type. The
+return value can be either PCM_TSTAMP_TYPE_GETTIMEOFDAY ,
+PCM_TSTAMP_TYPE_MONOTONIC or PCM_TSTAMP_TYPE_MONOTONIC_RAW .
+
+
+
+
+PCM. htimestamp ( )
+Return a Python tuple (seconds, nanoseconds, frames_available_in_buffer) .
+The type of output is controlled by the tstamp_type, as described in the table below.
+
+
+
+
+
+
+Timestamp Type
+Description
+
+
+
+PCM_TSTAMP_TYPE_GETTIMEOFDAY
+System-wide realtime clock with seconds
+since epoch.
+
+PCM_TSTAMP_TYPE_MONOTONIC
+Monotonic time from an unspecified starting
+time. Progress is NTP synchronized.
+
+PCM_TSTAMP_TYPE_MONOTONIC_RAW
+Monotonic time from an unspecified starting
+time using only the system clock.
+
+
+
+The timestamp mode is controlled by the tstamp_mode, as described in the table below.
+
+
+
+
+
+
+Timestamp Mode
+Description
+
+
+
+PCM_TSTAMP_NONE
+No timestamp.
+
+PCM_TSTAMP_ENABLE
+Update timestamp at every hardware position
+update.
+
+
+
+
+
A few hints on using PCM devices for playback
The most common reason for problems with playback of PCM audio is that writes
to PCM devices must exactly match the data rate of the device.
@@ -364,13 +453,13 @@ accummulate time delays: If you set the timer to expire after 1/10’th
of a second, the actual timeout will happen slightly later, which will
accumulate to quite a lot after a few seconds. Hint: use time.time()
to check how much time has really passed, and add extra writes as nessecary.
-
-
+
+
Mixer Objects
Mixer objects provides access to the ALSA mixer API.
-
-class alsaaudio.Mixer( control = 'Master' , id = 0 , cardindex = - 1 , device = 'default' )
+
+class alsaaudio. Mixer ( control = 'Master' , id = 0 , cardindex = - 1 , device = 'default' )
Arguments are:
control - specifies which control to manipulate using this mixer
@@ -395,27 +484,27 @@ devices.
Mixer objects have the following methods:
-
-Mixer.cardname( )
+
+Mixer. cardname ( )
Return the name of the sound card used by this Mixer object
-
-Mixer.mixer( )
+
+Mixer. mixer ( )
Return the name of the specific mixer controlled by this object, For example
'Master' or 'PCM'
-
-Mixer.mixerid( )
+
+Mixer. mixerid ( )
Return the ID of the ALSA mixer controlled by this object.
-
-Mixer.switchcap( )
+
+Mixer. switchcap ( )
Returns a list of the switches which are defined by this specific mixer.
Possible values in this list are:
@@ -457,8 +546,8 @@ Possible values in this list are:
-
-Mixer.volumecap( )
+
+Mixer. volumecap ( )
Returns a list of the volume control capabilities of this
mixer. Possible values in the list are:
@@ -495,8 +584,8 @@ mixer. Possible values in the list are:
-
-Mixer.getenum( )
+
+Mixer. getenum ( )
For enumerated controls, return the currently selected item and the list of
items available.
Returns a tuple (string, list of strings) .
@@ -521,59 +610,59 @@ control.
-
-Mixer.getmute( )
+
+Mixer. getmute ( )
Return a list indicating the current mute setting for each
channel. 0 means not muted, 1 means muted.
This method will fail if the mixer has no playback switch capabilities.
-
-Mixer.getrange( [ direction ] )
+
+Mixer. getrange ( pcmtype = PCM_PLAYBACK )
Return the volume range of the ALSA mixer controlled by this object.
-The optional direction argument can be either PCM_PLAYBACK or
+
The optional pcmtype argument can be either PCM_PLAYBACK or
PCM_CAPTURE , which is relevant if the mixer can control both
playback and capture volume. The default value is PCM_PLAYBACK
if the mixer has playback channels, otherwise it is PCM_CAPTURE .
-
-Mixer.getrec( )
+
+Mixer. getrec ( )
Return a list indicating the current record mute setting for each channel. 0
means not recording, 1 means recording.
This method will fail if the mixer has no capture switch capabilities.
-
-Mixer.getvolume( [ direction ] )
+
+Mixer. getvolume ( pcmtype = PCM_PLAYBACK )
Returns a list with the current volume settings for each channel. The list
elements are integer percentages.
-The optional direction argument can be either PCM_PLAYBACK or
+
The optional pcmtype argument can be either PCM_PLAYBACK or
PCM_CAPTURE , which is relevant if the mixer can control both
playback and capture volume. The default value is PCM_PLAYBACK
if the mixer has playback channels, otherwise it is PCM_CAPTURE .
-
-Mixer.setvolume( volume [ , channel ] [ , direction ] )
+
+Mixer. setvolume ( volume , channel = None , pcmtype = PCM_PLAYBACK )
Change the current volume settings for this mixer. The volume argument
controls the new volume setting as an integer percentage.
If the optional argument channel is present, the volume is set
only for this channel. This assumes that the mixer can control the
volume for the channels independently.
-The optional direction argument can be either PCM_PLAYBACK or
+
The optional pcmtype argument can be either PCM_PLAYBACK or
PCM_CAPTURE , which is relevant if the mixer can control both
playback and capture volume. The default value is PCM_PLAYBACK
if the mixer has playback channels, otherwise it is PCM_CAPTURE .
-
-Mixer.setmute( mute [ , channel ] )
+
+Mixer. setmute ( mute [ , channel ] )
Sets the mute flag to a new value. The mute argument is either 0 for not
muted, or 1 for muted.
The optional channel argument controls which channel is
@@ -582,8 +671,8 @@ muted. The default is to set the mute flag for all channels.
-
-Mixer.setrec( capture [ , channel ] )
+
+Mixer. setrec ( capture [ , channel ] )
Sets the capture mute flag to a new value. The capture argument
is either 0 for no capture, or 1 for capture.
The optional channel argument controls which channel is
@@ -592,8 +681,8 @@ changed. The default is to set the capture flag for all channels.
-
-Mixer.polldescriptors( )
+
+Mixer. polldescriptors ( )
Returns a tuple of (file descriptor, eventmask) that can be used to
wait for changes on the mixer with select.poll .
The eventmask value is compatible with poll.register in the Python
@@ -601,8 +690,8 @@ wait for changes on the mixer with select.poll .
-
-Mixer.handleevents( )
+
+Mixer. handleevents ( )
Acknowledge events on the polldescriptors file descriptors
to prevent subsequent polls from returning the same events again.
Returns the number of events that were acknowledged.
@@ -625,8 +714,8 @@ the availability of ALSA mixer capable devices will stay quite limited.
Unfortunately, I’m not able to create such a HOWTO myself, since I only
understand half of the API, and that which I do understand has come from a
painful trial and error process.
-
-
+
+
Examples
The following example are provided:
@@ -650,15 +739,15 @@ painful trial and error process.
mixertest.py accepts the commandline options -d <device> and
-c <cardindex> .
-
+
playwav.py
playwav.py plays a wav file.
To test PCM playback (on your default soundcard), run:
$ python playwav.py <wav file>
-
-
+
+
recordtest.py and playbacktest.py
recordtest.py and playbacktest.py will record and play a raw
sound file in CD quality.
@@ -672,8 +761,8 @@ with Ctl-C
$ python playbacktest.py <filename>
-
-
+
+
mixertest.py
Without arguments, mixertest.py will list all available controls on the
default soundcard.
@@ -731,9 +820,9 @@ Channel 1 volume: 61%
ALSA also allows PCM_ASYNC , but this is not supported yet.
-
-
-
+
+
+
@@ -752,7 +841,7 @@ Channel 1 volume: 61%
Navigation
-Contents:
+Contents:
Introduction
What is ALSA
@@ -779,7 +868,7 @@ Channel 1 volume: 61%
Quick search
@@ -801,7 +890,7 @@ Channel 1 volume: 61%
©2017, Lars Immisch & Casper Wilstrup.
|
- Powered by Sphinx 3.1.2
+ Powered by Sphinx 4.5.0
& Alabaster 0.7.12
|
diff --git a/objects.inv b/objects.inv
index 8e2f68b..ef0dfe9 100644
Binary files a/objects.inv and b/objects.inv differ
diff --git a/py-modindex.html b/py-modindex.html
index f2a459e..9ac14bd 100644
--- a/py-modindex.html
+++ b/py-modindex.html
@@ -4,15 +4,14 @@
-
- Python Module Index — alsaaudio documentation 0.9.0 documentation
-
-
-
+
+ Python Module Index — alsaaudio documentation 0.9.1 documentation
+
+
+
-
@@ -73,7 +72,7 @@
Navigation
-Contents:
+Contents:
Introduction
What is ALSA
@@ -94,7 +93,7 @@
Quick search
@@ -116,7 +115,7 @@
©2017, Lars Immisch & Casper Wilstrup.
|
- Powered by Sphinx 3.1.2
+ Powered by Sphinx 4.5.0
& Alabaster 0.7.12
diff --git a/pyalsaaudio.html b/pyalsaaudio.html
index 0c92eab..f7a25f6 100644
--- a/pyalsaaudio.html
+++ b/pyalsaaudio.html
@@ -4,15 +4,15 @@
-
- Introduction — alsaaudio documentation 0.9.0 documentation
-
-
-
+
+
+ Introduction — alsaaudio documentation 0.9.1 documentation
+
+
+
-
@@ -33,7 +33,7 @@
-
+
Introduction
Author
@@ -47,7 +47,7 @@
majority of the python distribution. Basically you can use it for anything you
wish (even commercial purposes). There is no warranty whatsoever.
-
Abstract
+
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.
@@ -55,8 +55,8 @@ support is low on our priority list, but volunteers are welcome.
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.
@@ -72,7 +72,7 @@ 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
@@ -87,9 +87,9 @@ 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
@@ -107,8 +107,8 @@ ship with ALSA kernels.
# python setup.py install
-
-
+
+
Testing
Make sure that aplay plays a file through the soundcard you want, then
try:
@@ -135,7 +135,7 @@ with Ctl-C
a bit dependent on the ALSA configuration and may fail without indicating
a real problem.
If you find bugs/problems, please file a bug report .
-
+
@@ -154,7 +154,7 @@ a real problem.
Navigation
-Contents:
+Contents:
Introduction
What is ALSA
@@ -180,7 +180,7 @@ a real problem.
Quick search
@@ -202,7 +202,7 @@ a real problem.
©2017, Lars Immisch & Casper Wilstrup.
|
- Powered by Sphinx 3.1.2
+ Powered by Sphinx 4.5.0
& Alabaster 0.7.12
|
diff --git a/search.html b/search.html
index d6d6616..615b846 100644
--- a/search.html
+++ b/search.html
@@ -4,17 +4,17 @@
-
- Search — alsaaudio documentation 0.9.0 documentation
-
-
+
+ Search — alsaaudio documentation 0.9.1 documentation
+
+
-
+
-
+
@@ -37,26 +37,35 @@
Search
-
-
+
+
+
Please activate JavaScript to enable the search
functionality.
+
+
+
Searching for multiple words only shows matches that contain
all words.
+
+
+
+
+
@@ -74,7 +83,7 @@
Navigation
-
Contents:
+
Contents:
diff --git a/searchindex.js b/searchindex.js
index 8316e79..e47de22 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["index","libalsaaudio","pyalsaaudio","terminology"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","libalsaaudio.rst","pyalsaaudio.rst","terminology.rst"],objects:{"":{alsaaudio:[1,0,0,"-"]},"alsaaudio.Mixer":{cardname:[1,2,1,""],getenum:[1,2,1,""],getmute:[1,2,1,""],getrange:[1,2,1,""],getrec:[1,2,1,""],getvolume:[1,2,1,""],handleevents:[1,2,1,""],mixer:[1,2,1,""],mixerid:[1,2,1,""],polldescriptors:[1,2,1,""],setmute:[1,2,1,""],setrec:[1,2,1,""],setvolume:[1,2,1,""],switchcap:[1,2,1,""],volumecap:[1,2,1,""]},"alsaaudio.PCM":{cardname:[1,2,1,""],pause:[1,2,1,""],pcmmode:[1,2,1,""],pcmtype:[1,2,1,""],polldescriptors:[1,2,1,""],read:[1,2,1,""],setchannels:[1,2,1,""],setformat:[1,2,1,""],setperiodsize:[1,2,1,""],setrate:[1,2,1,""],write:[1,2,1,""]},alsaaudio:{Mixer:[1,1,1,""],PCM:[1,1,1,""],cards:[1,3,1,""],mixers:[1,3,1,""],pcms:[1,3,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function"},terms:{"64kbit":3,"byte":[1,3],"case":1,"class":1,"default":[1,2],"enum":1,"float":[1,3],"function":[1,2],"import":[1,3],"long":2,"new":[1,3],"return":[1,3],"switch":1,"true":1,"try":[1,2],"while":3,Added:1,And:[1,2],For:[1,3],Not:[1,3],One:1,The:[1,2,3],There:2,These:2,Use:1,Using:1,With:[1,3],abl:1,about:2,accept:1,access:[1,2],accummul:1,accumul:1,achiev:1,acknowledg:1,activ:2,actual:[1,3],add:1,added:1,advanc:2,affair:1,after:1,again:1,all:[1,2,3],allow:1,almost:3,alsa:[0,1,3],alsaaudio:3,alsasound:2,also:[1,2,3],although:2,alwai:1,amix:1,amplitud:3,ani:[1,2],annoi:1,anoth:1,anyth:2,api:[1,2,3],aplai:[1,2],applic:2,appreci:2,architectur:2,arecord:1,argument:[1,2],associ:1,assum:1,audio:[1,2,3],author:2,aux:1,avail:[1,2],aves:2,avoid:1,back:[1,2],basic:2,becaus:1,becom:1,been:[1,2],befor:2,behaviour:1,best:1,better:1,between:3,big:[1,3],bit:[1,2,3],block:1,both:1,broke:1,buffer:[1,3],bug:[0,2],build:2,call:[1,2],can:[1,2,3],cannot:1,capabl:[1,2],captur:[1,2,3],card:[1,2],cardindex:1,cardnam:1,casper:2,certain:3,chang:1,channel:[1,3],check:1,choic:1,chois:1,chosen:1,chunk:3,click:1,come:1,commandlin:1,commerci:2,common:1,compat:1,compil:2,complet:2,complex:1,complic:1,compon:2,compress:1,concept:0,configur:[2,3],consist:[1,2,3],constant:1,construct:1,constructor:1,contain:[2,3],content:0,control:[1,3],convers:[1,3],copi:3,could:1,coupl:1,cpu:3,creat:1,ctl:[1,2],current:[1,2,3],cwi:2,data:[1,3],debian:2,defin:1,delai:1,demand:3,depend:2,deprec:[1,2],descript:1,descriptor:1,design:1,determin:[1,3],dev:2,develop:2,devic:[1,2,3],differ:[1,2,3],difficult:2,direct:[1,3],directli:3,displai:1,distribut:2,document:1,doe:1,doesn:1,doing:1,don:2,done:3,driver:2,dynam:3,each:[1,3],easi:1,either:[1,3],elabor:1,element:1,empti:1,enabl:1,encod:1,end:3,endian:[1,3],enough:1,enumer:1,epip:1,equival:1,error:1,etc:[1,3],even:[1,2],event:1,eventmask:1,everi:[1,3],exactli:[1,3],exampl:[0,3],except:1,exclus:1,execut:2,exist:2,expir:1,extra:1,extrem:1,fail:[1,2],fairli:2,familiar:3,featur:2,few:[1,2],file:[1,2],filenam:[1,2],fill:2,find:[1,2],first:1,flag:1,flow:3,follow:[1,2],foo:1,footnot:1,format:[1,3],found:[1,2],fragil:1,frame:[1,3],frames:1,from:[0,1,2,3],full:[1,2],futur:1,gap:2,gener:3,get:1,getenum:1,getmut:1,getrang:1,getrec:1,getvolum:1,give:1,given:1,goal:2,greatli:2,guess:1,gui:1,had:1,half:1,handl:[2,3],handleev:1,happen:1,hardli:1,hardwar:[1,2,3],has:[1,2,3],have:[1,2],header:2,headphon:1,hint:1,homepag:2,horribl:1,how:[1,3],howev:1,howto:1,http:2,ibp:2,ignor:1,immedi:1,immisch:2,impact:3,implement:[1,2],implic:3,includ:2,incorpor:1,independ:1,index:[0,1],indic:[1,2],individu:3,inform:2,input:3,instal:0,instead:1,integ:[1,3],interact:1,intern:3,interpret:1,interrupt:[1,2,3],interv:3,introduct:0,issu:2,item0:1,item:1,itself:1,join:1,just:1,kernel:[1,2,3],keyword:1,know:1,known:3,lar:2,larger:[1,3],last:1,latenc:3,later:[1,2],layer:3,least:[1,2],legitim:1,length:1,less:1,let:1,level:2,lib:2,libasound2:2,libasound:2,librari:2,licens:2,like:[1,2],limit:1,line:1,link:2,linux:2,list:[1,2],littl:[1,3],logarithm:1,logic:2,look:[1,2],lost:1,lot:[1,3],loudest:3,low:[2,3],mai:[1,2],mainli:1,major:2,make:[1,2],mani:3,manipul:[1,2],master:1,match:1,mean:[1,3],memori:3,method:1,mic:1,microphon:[1,2],midi:2,might:1,minim:2,mix:1,mixer:[0,2],mixerid:1,mode:1,moder:1,modul:[0,1,2],mono:[1,3],more:[1,2],most:[1,2],mpeg:1,much:[1,3],multimedia:1,multipl:[1,3],music:3,must:[1,3],mute:1,myself:1,name:1,nativ:2,natur:2,nchannel:1,necessari:3,need:[1,2],neg:1,neither:2,nessecari:1,net:1,note:[1,2],noth:[1,3],now:2,number:[1,3],object:0,occur:1,often:3,older:2,onc:3,one:[1,2,3],onli:[1,3],oper:[1,2],option:1,order:[1,3],org:2,oss:2,ossaudiodev:2,other:[1,2,3],otherwis:1,our:2,out:1,output:[1,3],overrun:1,own:2,packag:2,page:0,pain:1,paramet:1,pass:1,patch:2,path:2,paus:1,pcm:[0,2],pcm_async:1,pcm_captur:1,pcm_format_a_law:1,pcm_format_float64_b:1,pcm_format_float64_l:1,pcm_format_float_b:1,pcm_format_float_l:1,pcm_format_gsm:1,pcm_format_ima_adpcm:1,pcm_format_mpeg:1,pcm_format_mu_law:1,pcm_format_s16_b:1,pcm_format_s16_l:1,pcm_format_s24_3b:1,pcm_format_s24_3l:1,pcm_format_s24_b:1,pcm_format_s24_l:1,pcm_format_s32_b:1,pcm_format_s32_l:1,pcm_format_s8:1,pcm_format_u16_b:1,pcm_format_u16_l:1,pcm_format_u24_3b:1,pcm_format_u24_3l:1,pcm_format_u24_b:1,pcm_format_u24_l:1,pcm_format_u32_b:1,pcm_format_u32_l:1,pcm_format_u8:1,pcm_nonblock:1,pcm_normal:1,pcm_playback:1,pcmmode:1,pcmtype:1,per:3,percentag:1,period:[1,3],periods:1,physic:2,plai:[1,2,3],playback:[1,2],playbacktest:2,player:1,playout:1,playwav:2,pleas:[1,2],point:3,poll:1,polldescriptor:1,possibl:1,precis:3,preload:1,present:1,prevent:1,prioriti:2,probabl:2,problem:[1,2],process:[1,3],program:1,project:2,proper:2,provid:[1,2,3],psf:2,purpos:[1,2],put:1,pyalsa:2,pyalsaaudio:2,pypi:0,python:[0,1],qualiti:1,quietest:3,quit:1,rang:[1,3],rant:1,rate:[1,3],ratio:1,raw:1,read:[1,3],readi:3,real:[1,2],realli:1,rear:1,reason:1,record:[1,2,3],recordtest:2,reexpos:1,regard:2,regist:1,relev:1,replac:3,report:2,repositori:0,repres:[1,3],requir:2,resid:1,resourc:3,respons:2,resproduc:3,result:1,resum:1,root:2,run:1,same:[1,2,3],sampl:[1,3],scale:3,search:0,second:[1,3],see:1,seem:2,select:1,send:2,separ:1,sequenc:2,set:[1,2,3],setchannel:1,setformat:1,setmut:1,setperiods:1,setrat:1,setrec:1,setup:[1,2],setvolum:1,sever:2,ship:2,should:[1,2,3],sign:1,signal:3,signific:3,similar:2,similarli:3,simpl:1,simpli:3,simplifi:[1,2],sinc:[1,2,3],singl:[1,3],size:[1,3],slightli:1,slower:3,small:3,sndrpihifiberri:2,softwar:2,sole:1,some:[1,3],somebodi:1,someth:1,sound:[1,2,3],soundcard:[1,2],space:2,speak:[1,2],speaker:1,specif:[1,2,3],specifi:1,speech:1,stai:1,standard:2,state:1,stereo:[1,3],still:1,strategi:1,string:1,subsequ:1,subtli:1,succeed:1,suit:2,sun:1,support:[1,2],sure:[1,2],switchcap:1,system:2,take:1,taken:3,task:1,team:2,telephoni:[1,3],term:2,terminolog:0,test:[0,1],than:1,thegithub:2,thei:3,therefor:3,thi:[1,2,3],those:2,thread:1,through:[1,2],time:[1,2,3],timeout:1,timer:1,too:1,tracker:[0,2],trial:1,tupl:1,two:[1,2,3],type:1,typic:[1,3],ubuntu:2,ugli:1,under:2,underli:1,underrun:1,understand:[1,3],unfortun:1,unlik:2,unsign:1,until:1,usag:3,use:[1,2,3],usecas:1,used:[1,2,3],useful:[1,3],user:2,userspac:[2,3],using:[1,2],usr:2,usual:3,util:3,valid:1,valu:1,vari:3,veri:[2,3],verifi:2,version:[1,2],virtual:1,volum:1,volumecap:1,volumn:1,volunt:2,wai:1,wait:1,want:[1,2],warranti:2,wav:[1,2],welcom:2,well:2,were:1,what:[0,1],whatsoev:2,when:3,where:1,whether:3,which:[1,2,3],wilstrup:2,wish:2,within:2,without:[1,2],work:2,would:[1,2,3],wrapper:2,write:[1,3],written:1,wrote:2,www:2,yet:1,you:[1,2,3],your:[1,2],yourself:2,zero:1},titles:["alsaaudio documentation","alsaaudio ","Introduction","PCM Terminology and Concepts"],titleterms:{"abstract":2,alsa:2,alsaaudio:[0,1],concept:3,document:0,download:0,exampl:1,github:0,indic:0,instal:2,introduct:2,mixer:1,mixertest:1,object:1,pcm:[1,3],playbacktest:1,playwav:1,python:2,recordtest:1,tabl:0,terminolog:3,test:2,what:2}})
\ No newline at end of file
+Search.setIndex({docnames:["index","libalsaaudio","pyalsaaudio","terminology"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["index.rst","libalsaaudio.rst","pyalsaaudio.rst","terminology.rst"],objects:{"":[[1,0,0,"-","alsaaudio"]],"alsaaudio.Mixer":[[1,2,1,"","cardname"],[1,2,1,"","getenum"],[1,2,1,"","getmute"],[1,2,1,"","getrange"],[1,2,1,"","getrec"],[1,2,1,"","getvolume"],[1,2,1,"","handleevents"],[1,2,1,"","mixer"],[1,2,1,"","mixerid"],[1,2,1,"","polldescriptors"],[1,2,1,"","setmute"],[1,2,1,"","setrec"],[1,2,1,"","setvolume"],[1,2,1,"","switchcap"],[1,2,1,"","volumecap"]],"alsaaudio.PCM":[[1,2,1,"","cardname"],[1,2,1,"","get_tstamp_mode"],[1,2,1,"","get_tstamp_type"],[1,2,1,"","htimestamp"],[1,2,1,"","pause"],[1,2,1,"","pcmmode"],[1,2,1,"","pcmtype"],[1,2,1,"","polldescriptors"],[1,2,1,"","read"],[1,2,1,"","set_tstamp_mode"],[1,2,1,"","set_tstamp_type"],[1,2,1,"","setchannels"],[1,2,1,"","setformat"],[1,2,1,"","setperiodsize"],[1,2,1,"","setrate"],[1,2,1,"","write"]],alsaaudio:[[1,1,1,"","Mixer"],[1,1,1,"","PCM"],[1,3,1,"","asoundlib_version"],[1,3,1,"","cards"],[1,3,1,"","mixers"],[1,3,1,"","pcms"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function"},terms:{"0":[1,2],"1":[1,3],"10":1,"16":1,"16000":1,"2":[1,2],"24":1,"3":1,"32":[1,3],"4":[1,2],"40":1,"44100":[1,3],"4608":3,"48":3,"48000":1,"5":[2,3],"6":[2,3],"61":1,"64":[1,3],"64kbit":3,"8":[1,3],"8000":[1,3],"9":1,"9600":1,"96000":[1,3],"byte":[1,3],"case":1,"class":1,"default":[1,2],"do":[1,2],"enum":1,"float":[1,3],"function":[1,2],"import":[1,3],"long":2,"new":[1,3],"return":[1,3],"switch":1,"true":1,"try":[1,2],"while":3,A:[1,2,3],And:[1,2],As:1,At:[1,3],For:[1,3],If:[1,2,3],In:[1,3],It:2,No:[1,2],Not:[1,3],On:2,One:1,Or:1,The:[1,2,3],There:2,These:2,To:[1,2],With:[1,3],abl:1,about:2,accept:1,access:[1,2],accummul:1,accumul:1,achiev:1,acknowledg:1,activ:2,actual:[1,3],ad:1,add:1,advanc:2,affair:1,after:1,again:1,all:[1,2,3],allow:1,almost:3,alsa:[0,1,3],alsaaudio:3,alsasound:2,also:[1,2,3],although:2,alwai:1,amix:1,amplitud:3,an:[1,3],ani:[1,2],annoi:1,anoth:1,anyth:2,api:[1,2,3],aplai:[1,2],applic:2,appreci:2,ar:[1,2,3],architectur:2,arecord:1,argument:[1,2],asoundlib_vers:1,associ:1,assum:1,au:1,audio:[1,2,3],author:2,aux:1,av:2,avail:[1,2],avoid:1,back:[1,2],basic:2,becaus:1,becom:1,been:[1,2],befor:2,behaviour:1,below:1,best:1,better:1,between:3,big:[1,3],bit:[1,2,3],block:1,both:1,broke:1,buffer:[1,3],bug:[0,2],build:2,c:[1,2],call:[1,2],can:[1,2,3],cannot:1,capabl:[1,2],captur:[1,2,3],card:[1,2],cardindex:1,cardnam:1,casper:2,cd:[1,3],certain:3,chang:1,channel:[1,3],check:1,choic:1,chois:1,chosen:1,chunk:3,click:1,clock:1,come:1,commandlin:1,commerci:2,common:1,compat:1,compil:2,complet:2,complex:1,complic:1,compon:2,compress:1,concept:0,configur:[2,3],consist:[1,2,3],constant:1,construct:1,constructor:1,contain:[1,2,3],control:[1,3],convers:[1,3],copi:3,correspond:1,could:1,coupl:1,cpu:3,creat:1,ctl:[1,2],current:[1,2,3],cwi:2,d:[1,2,3],data:[1,3],de:2,debian:2,defin:1,delai:1,demand:3,depend:2,deprec:[1,2],describ:1,descript:1,descriptor:1,design:1,determin:[1,3],dev:2,develop:2,devic:[1,2,3],differ:[1,2,3],difficult:2,direct:3,directli:3,displai:1,distribut:2,dk:2,document:1,doe:1,doesn:1,don:2,done:3,driver:2,dynam:3,each:[1,3],easi:1,either:[1,3],elabor:1,element:1,empti:1,enabl:1,encod:1,end:3,endian:[1,3],enough:1,enumer:1,epip:1,epoch:1,equival:1,error:1,etc:[1,3],even:[1,2],event:1,eventmask:1,everi:[1,3],exactli:[1,3],exampl:[0,3],except:1,exclus:1,execut:2,exist:2,expir:1,extra:1,extrem:1,fail:[1,2],fairli:2,familiar:3,featur:2,few:[1,2],file:[1,2],filenam:[1,2],fill:2,find:[1,2],first:1,flag:1,flow:3,follow:[1,2],foo:1,footnot:1,format:[1,3],found:[1,2],fragil:1,frame:[1,3],frames:1,frames_available_in_buff:1,from:[0,1,2,3],full:[1,2],futur:1,gap:2,gener:3,get:1,get_tstamp_mod:1,get_tstamp_typ:1,getenum:1,getmut:1,getrang:1,getrec:1,getvolum:1,give:1,given:1,goal:2,greatli:2,guess:1,gui:1,ha:[1,2,3],had:1,half:1,handl:[2,3],handleev:1,happen:1,hardli:1,hardwar:[1,2,3],have:[1,2],header:2,headphon:1,hint:1,homepag:2,horribl:1,how:[1,3],howev:1,howto:1,htimestamp:1,http:2,hw:[1,2],hz:[1,3],i:[1,2],ibp:2,id:1,ignor:1,immedi:1,immisch:2,impact:3,implement:[1,2],implic:3,includ:2,incorpor:1,independ:1,index:[0,1],indic:[1,2],individu:3,inform:2,input:3,instal:0,instead:1,integ:[1,3],interact:1,intern:3,interpret:1,interrupt:[1,2,3],interv:3,introduct:0,issu:2,item0:1,item:1,itself:1,join:1,just:1,kb:3,kernel:[1,2,3],keyword:1,know:1,known:3,l:1,lar:2,larger:[1,3],last:1,latenc:3,later:[1,2],layer:3,least:[1,2],legitim:1,length:1,less:1,let:1,level:2,lib:2,libasound2:2,libasound:2,librari:2,licens:2,like:[1,2],limit:1,line:1,link:2,linux:2,list:[1,2],littl:[1,3],logarithm:1,logic:2,look:[1,2],lost:1,lot:[1,3],loudest:3,low:[2,3],m:1,mai:[1,2],mainli:1,major:2,make:[1,2],mani:3,manipul:[1,2],master:1,match:1,mb:3,me:[1,2],mean:[1,3],memori:3,method:1,mic:1,microphon:[1,2],midi:2,might:1,minim:2,mix:1,mixer:[0,2],mixerid:1,mode:1,moder:1,modul:[0,1,2],mono:[1,3],monoton:1,more:[1,2],most:[1,2],mpeg:1,much:[1,3],multimedia:1,multipl:[1,3],music:3,must:[1,3],mute:1,my:[1,2],myself:1,name:1,nanosecond:1,nativ:2,natur:2,nchannel:1,necessari:3,need:[1,2],neg:1,neither:2,nessecari:1,net:1,none:1,note:[1,2],noth:[1,3],now:2,ntp:1,number:[1,3],object:0,occur:1,often:3,older:2,onc:3,one:[1,2,3],onli:[1,3],oper:[1,2],option:1,order:[1,3],org:2,oss:2,ossaudiodev:2,other:[1,2,3],otherwis:1,our:2,out:1,output:[1,3],overrun:1,own:2,packag:2,page:0,pain:1,paramet:1,pass:1,patch:2,path:2,paus:1,pc:1,pcm:[0,2],pcm_async:1,pcm_captur:1,pcm_format_a_law:1,pcm_format_float64_b:1,pcm_format_float64_l:1,pcm_format_float_b:1,pcm_format_float_l:1,pcm_format_gsm:1,pcm_format_ima_adpcm:1,pcm_format_mpeg:1,pcm_format_mu_law:1,pcm_format_s16_b:1,pcm_format_s16_l:1,pcm_format_s24_3b:1,pcm_format_s24_3l:1,pcm_format_s24_b:1,pcm_format_s24_l:1,pcm_format_s32_b:1,pcm_format_s32_l:1,pcm_format_s8:1,pcm_format_u16_b:1,pcm_format_u16_l:1,pcm_format_u24_3b:1,pcm_format_u24_3l:1,pcm_format_u24_b:1,pcm_format_u24_l:1,pcm_format_u32_b:1,pcm_format_u32_l:1,pcm_format_u8:1,pcm_nonblock:1,pcm_normal:1,pcm_playback:1,pcm_tstamp_en:1,pcm_tstamp_non:1,pcm_tstamp_type_gettimeofdai:1,pcm_tstamp_type_monoton:1,pcm_tstamp_type_monotonic_raw:1,pcmmode:1,pcmtype:1,per:3,percentag:1,period:[1,3],periods:1,physic:2,plai:[1,2,3],playback:[1,2],playbacktest:2,player:1,playout:1,playwav:2,pleas:[1,2],point:3,poll:1,polldescriptor:1,posit:1,possibl:1,precis:3,preload:1,present:1,prevent:1,prioriti:2,probabl:2,problem:[1,2],process:[1,3],program:1,progress:1,project:2,proper:2,provid:[1,2,3],psf:2,purpos:[1,2],put:1,py:2,pyalsa:2,pyalsaaudio:2,pypi:0,python:[0,1],qualiti:1,quietest:3,quit:1,rang:[1,3],rant:1,rate:[1,3],ratio:1,raw:1,re:3,read:[1,3],readi:3,real:[1,2],realli:1,realtim:1,rear:1,reason:1,record:[1,2,3],recordtest:2,reexpos:1,regard:2,regist:1,relev:1,replac:3,report:2,repositori:0,repres:[1,3],requir:2,resid:1,resourc:3,respons:2,resproduc:3,result:1,resum:1,root:2,run:1,s:[1,2,3],same:[1,2,3],sampl:[1,3],scale:3,search:0,second:[1,3],see:1,seem:2,select:1,send:2,separ:1,sequenc:2,set:[1,2,3],set_tstamp_mod:1,set_tstamp_typ:1,setchannel:1,setformat:1,setmut:1,setperiods:1,setrat:1,setrec:1,setup:[1,2],setvolum:1,sever:2,ship:2,should:[1,2,3],sign:1,signal:3,signific:3,similar:2,similarli:3,simpl:1,simpli:3,simplifi:[1,2],sinc:[1,2,3],singl:[1,3],size:[1,3],slightli:1,slower:3,small:3,sndrpihifiberri:2,so:[1,2,3],softwar:2,sole:1,some:[1,3],somebodi:1,someth:1,sound:[1,2,3],soundcard:[1,2],space:2,speak:[1,2],speaker:1,specif:[1,2,3],specifi:1,speech:1,stai:1,standard:2,start:1,state:1,stereo:[1,3],still:1,strategi:1,string:1,subsequ:1,subtli:1,succeed:1,suit:2,sun:1,support:[1,2],sure:[1,2],switchcap:1,synchron:1,system:[1,2],t:[1,2],tabl:1,take:1,taken:3,task:1,team:2,telephoni:[1,3],term:2,terminolog:0,test:[0,1],th:1,than:1,thegithub:2,thei:3,therefor:3,thi:[1,2,3],those:2,thread:1,through:[1,2],time:[1,2,3],timeout:1,timer:1,timestamp:1,too:1,tracker:[0,2],trial:1,tstamp_mod:1,tstamp_typ:1,tupl:1,two:[1,2,3],type:1,typic:[1,3],ubuntu:2,ugli:1,under:2,underli:1,underrun:1,understand:[1,3],unfortun:1,unlik:2,unsign:1,unspecifi:1,until:1,updat:1,us:[1,2,3],usag:3,usecas:1,user:2,userspac:[2,3],usr:2,usual:3,util:3,valid:1,valu:1,vari:3,ve:1,veri:[2,3],verifi:2,version:[1,2],virtual:1,volum:1,volumecap:1,volumn:1,volunt:2,wa:1,wai:1,wait:1,want:[1,2],warranti:2,wav:[1,2],we:3,welcom:2,well:2,were:1,what:[0,1],whatsoev:2,when:3,where:1,whether:3,which:[1,2,3],wide:1,wilstrup:2,wish:2,within:2,without:[1,2],work:2,would:[1,2,3],wrapper:2,write:[1,3],written:1,wrote:2,www:2,yet:1,you:[1,2,3],your:[1,2],yourself:2,zero:1},titles:["alsaaudio documentation","alsaaudio ","Introduction","PCM Terminology and Concepts"],titleterms:{"abstract":2,alsa:2,alsaaudio:[0,1],concept:3,content:0,document:0,download:0,exampl:1,github:0,indic:0,instal:2,introduct:2,mixer:1,mixertest:1,object:1,pcm:[1,3],playbacktest:1,playwav:1,py:1,python:2,recordtest:1,tabl:0,terminolog:3,test:2,what:2}})
\ No newline at end of file
diff --git a/terminology.html b/terminology.html
index d511034..711c805 100644
--- a/terminology.html
+++ b/terminology.html
@@ -4,15 +4,15 @@
-
- PCM Terminology and Concepts — alsaaudio documentation 0.9.0 documentation
-
-
-
+
+
+ PCM Terminology and Concepts — alsaaudio documentation 0.9.1 documentation
+
+
+
-
@@ -33,7 +33,7 @@
-
+
PCM Terminology and Concepts
In order to use PCM devices it is useful to be familiar with some concepts and
terminology.
@@ -98,7 +98,7 @@ read will return either 32 frames of data or nothing at all.
Once you understand these concepts, you will be ready to use the PCM API. Read
on.
-
+
@@ -117,7 +117,7 @@ on.
Navigation
-Contents:
+Contents: