| \section{\module{sndhdr} --- | 
 |          Determine type of sound file} | 
 |  | 
 | \declaremodule{standard}{sndhdr} | 
 | \modulesynopsis{Determine type of a sound file.} | 
 | \sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org} | 
 | % Based on comments in the module source file. | 
 |  | 
 |  | 
 | The \module{sndhdr} provides utility functions which attempt to | 
 | determine the type of sound data which is in a file.  When these | 
 | functions are able to determine what type of sound data is stored in a | 
 | file, they return a tuple \code{(\var{type}, \var{sampling_rate}, | 
 | \var{channels}, \var{frames}, \var{bits_per_sample})}.  The value for | 
 | \var{type} indicates the data type and will be one of the strings | 
 | \code{'aifc'}, \code{'aiff'}, \code{'au'}, \code{'hcom'}, | 
 | \code{'sndr'}, \code{'sndt'}, \code{'voc'}, \code{'wav'}, | 
 | \code{'8svx'}, \code{'sb'}, \code{'ub'}, or \code{'ul'}.  The | 
 | \var{sampling_rate} will be either the actual value or \code{0} if | 
 | unknown or difficult to decode.  Similarly, \var{channels} will be | 
 | either the number of channels or \code{0} if it cannot be determined | 
 | or if the value is difficult to decode.  The value for \var{frames} | 
 | will be either the number of frames or \code{-1}.  The last item in | 
 | the tuple, \var{bits_per_sample}, will either be the sample size in | 
 | bits or \code{'A'} for A-LAW\index{A-LAW} or \code{'U'} for | 
 | u-LAW\index{u-LAW}. | 
 |  | 
 |  | 
 | \begin{funcdesc}{what}{filename} | 
 |   Determines the type of sound data stored in the file \var{filename} | 
 |   using \function{whathdr()}.  If it succeeds, returns a tuple as | 
 |   described above, otherwise \code{None} is returned. | 
 | \end{funcdesc} | 
 |  | 
 |  | 
 | \begin{funcdesc}{whathdr}{filename} | 
 |   Determines the type of sound data stored in a file based on the file  | 
 |   header.  The name of the file is given by \var{filename}.  This | 
 |   function returns a tuple as described above on success, or | 
 |   \code{None}. | 
 | \end{funcdesc} |