<!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN">
<link rel=
"STYLESHEET" href=
"lib.css" type='text/css'
/>
<link rel=
"SHORTCUT ICON" href=
"../icons/pyfav.png" type=
"image/png" />
<link rel='start' href='../index.html' title='Python Documentation Index'
/>
<link rel=
"first" href=
"lib.html" title='Python Library Reference'
/>
<link rel='contents' href='contents.html'
title=
"Contents" />
<link rel='index' href='genindex.html' title='Index'
/>
<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-wave.html" />
<link rel=
"prev" href=
"module-aifc.html" />
<link rel=
"parent" href=
"mmedia.html" />
<link rel=
"next" href=
"au-read-objects.html" />
<meta name='aesop' content='information'
/>
<title>14.4 sunau -- Read and write Sun AU files
</title>
<div id='top-navigation-panel' xml:id='top-navigation-panel'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"14.3 aifc "
href=
"module-aifc.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"14. Multimedia Services"
href=
"mmedia.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"14.4.1 AU_read Objects"
href=
"au-read-objects.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"module-aifc.html">14.3 aifc
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"mmedia.html">14. Multimedia Services
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"au-read-objects.html">14.4.1 AU_read Objects
</A>
<!--End of Navigation Panel-->
<H1><A NAME=
"SECTION0016400000000000000000">
14.4 <tt class=
"module">sunau
</tt> --
Read and write Sun AU files
</A>
<A NAME=
"module-sunau"></A>
The
<tt class=
"module">sunau
</tt> module provides a convenient interface to the Sun
AU sound format. Note that this module is interface-compatible with
the modules
<tt class=
"module"><a href=
"module-aifc.html">aifc
</a></tt> and
<tt class=
"module"><a href=
"module-wave.html">wave
</a></tt>.
An audio file consists of a header followed by the data. The fields
<div class=
"center"><table class=
"realtable">
<th class=
"left" >Field
</th>
<th class=
"left" >Contents
</th>
<tr><td class=
"left" valign=
"baseline">magic word
</td>
<td class=
"left" >The four bytes
"<tt class="samp
">.snd</tt>".
</td></tr>
<tr><td class=
"left" valign=
"baseline">header size
</td>
<td class=
"left" >Size of the header, including info, in bytes.
</td></tr>
<tr><td class=
"left" valign=
"baseline">data size
</td>
<td class=
"left" >Physical size of the data, in bytes.
</td></tr>
<tr><td class=
"left" valign=
"baseline">encoding
</td>
<td class=
"left" >Indicates how the audio samples are encoded.
</td></tr>
<tr><td class=
"left" valign=
"baseline">sample rate
</td>
<td class=
"left" >The sampling rate.
</td></tr>
<tr><td class=
"left" valign=
"baseline"># of channels
</td>
<td class=
"left" >The number of channels in the samples.
</td></tr>
<tr><td class=
"left" valign=
"baseline">info
</td>
<td class=
"left" >ASCII string giving a description of the audio
file (padded with null bytes).
</td></tr></tbody>
Apart from the info field, all header fields are
4 bytes in size.
They are all
32-bit unsigned integers encoded in big-endian byte
The
<tt class=
"module">sunau
</tt> module defines the following functions:
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
4667' xml:id='l2h-
4667'
class=
"function">open
</tt></b>(
</nobr></td>
<td><var>file, mode
</var>)
</td></tr></table></dt>
If
<var>file
</var> is a string, open the file by that name, otherwise treat it
as a seekable file-like object.
<var>mode
</var> can be any of
<DT><STRONG><code>'r'
</code></STRONG></DT>
<DT><STRONG><code>'w'
</code></STRONG></DT>
Note that it does not allow read/write files.
A
<var>mode
</var> of
<code>'r'
</code> returns a
<tt class=
"class">AU_read
</tt>
object, while a
<var>mode
</var> of
<code>'w'
</code> or
<code>'wb'
</code> returns
a
<tt class=
"class">AU_write
</tt> object.
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
4668' xml:id='l2h-
4668'
class=
"function">openfp
</tt></b>(
</nobr></td>
<td><var>file, mode
</var>)
</td></tr></table></dt>
A synonym for
<tt class=
"function">open
</tt>, maintained for backwards compatibility.
The
<tt class=
"module">sunau
</tt> module defines the following exception:
<dl><dt><b><span class=
"typelabel">exception
</span> <tt id='l2h-
4669' xml:id='l2h-
4669'
class=
"exception">Error
</tt></b></dt>
An error raised when something is impossible because of Sun AU specs or
implementation deficiency.
The
<tt class=
"module">sunau
</tt> module defines the following data items:
<dl><dt><b><tt id='l2h-
4670' xml:id='l2h-
4670'
>AUDIO_FILE_MAGIC
</tt></b></dt>
An integer every valid Sun AU file begins with, stored in big-endian
form. This is the string
"<tt class="samp
">.snd</tt>" interpreted as an integer.
<dl><dt><b><tt id='l2h-
4671' xml:id='l2h-
4671'
>AUDIO_FILE_ENCODING_MULAW_8
</tt></b></dt>
<dt><b><tt id='l2h-
4673' xml:id='l2h-
4673'
>AUDIO_FILE_ENCODING_LINEAR_8
</tt></b></dt><dd>
<dt><b><tt id='l2h-
4674' xml:id='l2h-
4674'
>AUDIO_FILE_ENCODING_LINEAR_16
</tt></b></dt><dd>
<dt><b><tt id='l2h-
4675' xml:id='l2h-
4675'
>AUDIO_FILE_ENCODING_LINEAR_24
</tt></b></dt><dd>
<dt><b><tt id='l2h-
4676' xml:id='l2h-
4676'
>AUDIO_FILE_ENCODING_LINEAR_32
</tt></b></dt><dd>
<dt><b><tt id='l2h-
4677' xml:id='l2h-
4677'
>AUDIO_FILE_ENCODING_ALAW_8
</tt></b></dt><dd>
Values of the encoding field from the AU header which are supported by
<dl><dt><b><tt id='l2h-
4672' xml:id='l2h-
4672'
>AUDIO_FILE_ENCODING_FLOAT
</tt></b></dt>
<dt><b><tt id='l2h-
4678' xml:id='l2h-
4678'
>AUDIO_FILE_ENCODING_DOUBLE
</tt></b></dt><dd>
<dt><b><tt id='l2h-
4679' xml:id='l2h-
4679'
>AUDIO_FILE_ENCODING_ADPCM_G721
</tt></b></dt><dd>
<dt><b><tt id='l2h-
4680' xml:id='l2h-
4680'
>AUDIO_FILE_ENCODING_ADPCM_G722
</tt></b></dt><dd>
<dt><b><tt id='l2h-
4681' xml:id='l2h-
4681'
>AUDIO_FILE_ENCODING_ADPCM_G723_3
</tt></b></dt><dd>
<dt><b><tt id='l2h-
4682' xml:id='l2h-
4682'
>AUDIO_FILE_ENCODING_ADPCM_G723_5
</tt></b></dt><dd>
Additional known values of the encoding field from the AU header, but
which are not supported by this module.
<p><br /></p><hr class='online-navigation'
/>
<div class='online-navigation'
>
<!--Table of Child-Links-->
<A NAME=
"CHILD_LINKS"><STRONG>Subsections
</STRONG></a>
<LI><A href=
"au-read-objects.html">14.4.1 AU_read Objects
</a>
<LI><A href=
"au-write-objects.html">14.4.2 AU_write Objects
</a>
<!--End of Table of Child-Links-->
<div class='online-navigation'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"14.3 aifc "
href=
"module-aifc.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"14. Multimedia Services"
href=
"mmedia.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"14.4.1 AU_read Objects"
href=
"au-read-objects.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"module-aifc.html">14.3 aifc
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"mmedia.html">14. Multimedia Services
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"au-read-objects.html">14.4.1 AU_read Objects
</A>
<span class=
"release-info">Release
2.4.2, documentation updated on
28 September
2005.
</span>
<!--End of Navigation Panel-->
See
<i><a href=
"about.html">About this document...
</a></i> for information on suggesting changes.