|  |  | 
|  |  |  
|  | 
			The example below shows how to convert compressed audio files into the format suitable
			for writing onto regular Audio CD. It may be also useful if you want to manipulate your audio data in the 
			WAV editing software.
		 |  |  |  
|  |  |  |  
|  | In order to keep size of your audio files small, there are number of compressing techniques known.
				In some cases it can make your original CD smaller by 10 times or less. Every technique has its own
				pluses and minuses and most of them lose quality. It is all up to you to determine which format you want to use.
In order for you to play compressed file you have to decompress it so the soundcard can understand what 
			sound to make. In most cases the format of the audio file can be determined by file's extension. It could be mp3, ogg, wma or anything else.
Basically PyMedia chooses which decoder to use based on extension you pass, thus you need to know file's extension
			to be able to decode it. |  |  |  
|  |  |  |  
|  | Let's say you know which file type you have. Let it be mp3 file for a sake of simplicity 
 
import pymedia.audio.acodec as acodecYou can always ask PyMedia about all known extensions like this:import pymedia.muxer as muxer
 dm= muxer.Demuxer( 'mp3' )
 
 
 
print muxer.extensions
				 |  |  |  
|  |  |  |  
|  | Before you can decode data in a file it has to be demuxed (demultiplexed). Many formats such as m4a, wma etc have some additional information in a file besides the compressed data. And we have to deal with it. Demuxer parse compressed data and return list of compressed strings which can be processed by decoder. 
 
f= open( 'YOU FILENAME', 'rb' ) s= f.read( 200000 )frames= dm.parse( s )
				 |  |  |  
|  |  |  |  
|  | Once the file is read, we can get more information about the file's content in dm.streams. Ususally in audio files we can find only 1 stream. For mp3 file it is always true. 
 
frame= frames[ 0 ]dec= acodec.Decoder( dm.streams[ 0 ] )
 
 |  |  |  
|  |  |  |  
|  | Once decoder is opened, all you need to do is just pass the parsed compressed data to it and it'll return it uncompressed 
 
r= dec.decode( frame[ 1 ] )
				Now. As you know from the previous section, every sound should have parameters like sampling frequency, 
			channels number and sample width. PyMedia returns that information to you in a acodec.Frame object, which is
			the result of decode() function. You can get those parameters by: 
 
print r.sample_rate, r.channels
				The sound data itself is stored in the data property of acodec.Frame object returned by decode() function.
			Let's save it as a WAV file: 
 
import wavefw= wave.open( 'test.wav', 'wb' ) fw.setparams( (r.channels, 2, r.sample_rate, 0, 'NONE','') ) snd.writeframes( r.data ) 
				Simple huh ? Bear with me for another simple session. |  |  |  
|  |  |  |  
|  | Click here to get the fully functional example. |  |  |