http://www.csee.umbc.edu/courses/undergraduate/CMSC391/summer04/burt/pjrc_2004_02_07/tech/mp3/index.html