Vega strike Python Modules doc  0.5.1
Documentation of the " Modules " folder of Vega strike
 All Data Structures Namespaces Files Functions Variables
sunau Namespace Reference

Data Structures

class  Error
 
class  Au_read
 
class  Au_write
 

Functions

def open
 

Variables

int AUDIO_FILE_MAGIC = 0x2e736e64
 
int AUDIO_FILE_ENCODING_MULAW_8 = 1
 
int AUDIO_FILE_ENCODING_LINEAR_8 = 2
 
int AUDIO_FILE_ENCODING_LINEAR_16 = 3
 
int AUDIO_FILE_ENCODING_LINEAR_24 = 4
 
int AUDIO_FILE_ENCODING_LINEAR_32 = 5
 
int AUDIO_FILE_ENCODING_FLOAT = 6
 
int AUDIO_FILE_ENCODING_DOUBLE = 7
 
int AUDIO_FILE_ENCODING_ADPCM_G721 = 23
 
int AUDIO_FILE_ENCODING_ADPCM_G722 = 24
 
int AUDIO_FILE_ENCODING_ADPCM_G723_3 = 25
 
int AUDIO_FILE_ENCODING_ADPCM_G723_5 = 26
 
int AUDIO_FILE_ENCODING_ALAW_8 = 27
 
int AUDIO_UNKNOWN_SIZE = 0xFFFFFFFFL
 
list _simple_encodings
 
 openfp = open
 

Detailed Description

Stuff to parse Sun and NeXT audio files.

An audio file consists of a header followed by the data.  The structure
of the header is as follows.

    +---------------+
    | magic word    |
    +---------------+
    | header size   |
    +---------------+
    | data size     |
    +---------------+
    | encoding      |
    +---------------+
    | sample rate   |
    +---------------+
    | # of channels |
    +---------------+
    | info          |
    |               |
    +---------------+

The magic word consists of the 4 characters '.snd'.  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 order.

The header size really gives the start of the data.
The data size is the physical size of the data.  From the other
parameters the number of frames can be calculated.
The encoding gives the way in which audio samples are encoded.
Possible values are listed below.
The info field currently consists of an ASCII string giving a
human-readable description of the audio file.  The info field is
padded with NUL bytes to the header size.

Usage.

Reading audio files:
    f = sunau.open(file, 'r')
where file is either the name of a file or an open file pointer.
The open file pointer must have methods read(), seek(), and close().
When the setpos() and rewind() methods are not used, the seek()
method is not  necessary.

This returns an instance of a class with the following public methods:
    getnchannels()  -- returns number of audio channels (1 for
                       mono, 2 for stereo)
    getsampwidth()  -- returns sample width in bytes
    getframerate()  -- returns sampling frequency
    getnframes()    -- returns number of audio frames
    getcomptype()   -- returns compression type ('NONE' or 'ULAW')
    getcompname()   -- returns human-readable version of
                       compression type ('not compressed' matches 'NONE')
    getparams()     -- returns a tuple consisting of all of the
                       above in the above order
    getmarkers()    -- returns None (for compatibility with the
                       aifc module)
    getmark(id)     -- raises an error since the mark does not
                       exist (for compatibility with the aifc module)
    readframes(n)   -- returns at most n frames of audio
    rewind()        -- rewind to the beginning of the audio stream
    setpos(pos)     -- seek to the specified position
    tell()          -- return the current position
    close()         -- close the instance (make it unusable)
The position returned by tell() and the position given to setpos()
are compatible and have nothing to do with the actual position in the
file.
The close() method is called automatically when the class instance
is destroyed.

Writing audio files:
    f = sunau.open(file, 'w')
where file is either the name of a file or an open file pointer.
The open file pointer must have methods write(), tell(), seek(), and
close().

This returns an instance of a class with the following public methods:
    setnchannels(n) -- set the number of channels
    setsampwidth(n) -- set the sample width
    setframerate(n) -- set the frame rate
    setnframes(n)   -- set the number of frames
    setcomptype(type, name)
                    -- set the compression type and the
                       human-readable compression type
    setparams(tuple)-- set all parameters at once
    tell()          -- return current position in output file
    writeframesraw(data)
                    -- write audio frames without pathing up the
                       file header
    writeframes(data)
                    -- write audio frames and patch up the file header
    close()         -- patch up the file header and close the
                       output file
You should set the parameters before the first writeframesraw or
writeframes.  The total number of frames does not need to be set,
but when it is set to the correct value, the header does not have to
be patched up.
It is best to first set all parameters, perhaps possibly the
compression type, and then write audio frames using writeframesraw.
When all frames have been written, either call writeframes('') or
close() to patch up the sizes in the header.
The close() method is called automatically when the class instance
is destroyed.

Function Documentation

def sunau.open (   f,
  mode = None 
)

Definition at line 461 of file sunau.py.

462 def open(f, mode=None):
463  if mode is None:
464  if hasattr(f, 'mode'):
465  mode = f.mode
466  else:
467  mode = 'rb'
468  if mode in ('r', 'rb'):
469  return Au_read(f)
470  elif mode in ('w', 'wb'):
471  return Au_write(f)
472  else:
473  raise Error, "mode must be 'r', 'rb', 'w', or 'wb'"

Variable Documentation

list _simple_encodings
Initial value:
1 = [AUDIO_FILE_ENCODING_MULAW_8,
2  AUDIO_FILE_ENCODING_LINEAR_8,
3  AUDIO_FILE_ENCODING_LINEAR_16,
4  AUDIO_FILE_ENCODING_LINEAR_24,
5  AUDIO_FILE_ENCODING_LINEAR_32,
6  AUDIO_FILE_ENCODING_ALAW_8]

Definition at line 124 of file sunau.py.

int AUDIO_FILE_ENCODING_ADPCM_G721 = 23

Definition at line 115 of file sunau.py.

int AUDIO_FILE_ENCODING_ADPCM_G722 = 24

Definition at line 116 of file sunau.py.

int AUDIO_FILE_ENCODING_ADPCM_G723_3 = 25

Definition at line 117 of file sunau.py.

int AUDIO_FILE_ENCODING_ADPCM_G723_5 = 26

Definition at line 118 of file sunau.py.

int AUDIO_FILE_ENCODING_ALAW_8 = 27

Definition at line 119 of file sunau.py.

int AUDIO_FILE_ENCODING_DOUBLE = 7

Definition at line 114 of file sunau.py.

int AUDIO_FILE_ENCODING_FLOAT = 6

Definition at line 113 of file sunau.py.

int AUDIO_FILE_ENCODING_LINEAR_16 = 3

Definition at line 110 of file sunau.py.

int AUDIO_FILE_ENCODING_LINEAR_24 = 4

Definition at line 111 of file sunau.py.

int AUDIO_FILE_ENCODING_LINEAR_32 = 5

Definition at line 112 of file sunau.py.

int AUDIO_FILE_ENCODING_LINEAR_8 = 2

Definition at line 109 of file sunau.py.

int AUDIO_FILE_ENCODING_MULAW_8 = 1

Definition at line 108 of file sunau.py.

int AUDIO_FILE_MAGIC = 0x2e736e64

Definition at line 107 of file sunau.py.

int AUDIO_UNKNOWN_SIZE = 0xFFFFFFFFL

Definition at line 122 of file sunau.py.

openfp = open

Definition at line 474 of file sunau.py.