Monthly Archives: August 2010

First round of speed ups

I started to optimize the subband synthesis with some mild success. If i use psyco and a mono mp3 at 128kps, it 10x slower than realtime. I think I’m going to have to resort to numpy tricks. A short term … Continue reading

Posted in pyMP3 | 4 Comments

Decoder first pass complete!!

I finished the decoder and it can produce wav file output from an mp3. The good news is that is works, the bad news is that its 34 times to slow to play the audio runtime. (I have a core2 … Continue reading

Posted in Uncategorized | 1 Comment

Main data decoding complete

The scaling factor decoding was fairly straight forward, but the huffman tables gave me fits. I had an error in one of the lookup tables and it was causing the decoder to be off by a couple bits. Argh. I … Continue reading

Posted in Uncategorized | Leave a comment

Main data decoding and the joys of bad documentation

I got tripped up trying to make a first pass at decoding the main data section. The MP3 spec doc i got is outdated and is missing information. So the info I have for the main data section comes from … Continue reading

Posted in pyMP3 | Leave a comment

Eureka!!

I was trying to dig up more info on the mp3 format and i ran across a great reference site: http://www.mp3-tech.org One of the docs there is the offical MP3 spec. Now I can code against the reference instead of … Continue reading

Posted in pyMP3 | Leave a comment

Stage II: Sidedata parsing

The next step is to parse the sidedata. The sidedata has the parameters that are needed to decode the main data that is to follow. Since I don’t have the ISO doc, this is where things get dicey. I have … Continue reading

Posted in pyMP3 | Leave a comment

Stage I: Sync bits and Headers

Time to get roll’n. First a standard disclaimer. The code is meant to be readable and written quickly. I’ll go back later and optimize. Also I make mistakes, but once discovered I’ll correct them as fast as possible. whew… MP3s … Continue reading

Posted in pyMP3 | 1 Comment