Quite a few people have released the schematics and source code for their music player. Such open-source music players include:
At Open Circuits
Some of these web sites are very difficult to post comments to. I suppose posting comments about these music players here -- at Open Circuits -- is the next best thing.
MP3 player using the VS1053 and the Arduino/AVR
Kalum has extensively documented the interfacing of the Arduino/AVR based microcontrollers to the VS1053 mp3 decoder chip at http://kalum.posterous.com/50759184
The resulting music player can even play loseless FLAC files in addition to the usual formats like MP3/AAC/WMA.
MP3 players by Raphael Abrams [defunct]
- MAKE: Daisy MMC/SD Mp3 Player
- The “Sakura” MMC Mp3 Player
- The Super Simple (Compact Flash Card) Mp3 Player -- discontinued, or is it still available from http://www.teuthis.com/html/mp3.html ?
The kits include the PCB and all parts that solder to it, including a pre-programmed microcontroller. The kits do not include the memory card.
- EchoMp3 is a small DIY* MP3 player. Up to 4 GB SD card; uses 18LF452 or 18LF458; Full user control (volume, track, pause, skip, directory) with a 5-way micro joystick; VS1002D MP3 decoder chip.
Daisy MP3 player
- Microchip PIC18F45j10
- VS1011 from VLSI, Finland. It is an .mp3 and .wav decoder chip, a DAC, and a headphone amplifier all in one 28 pin package.
"The Super-Simple pocket size mp3 player"
"simplest possible MP3 setup" by Raphael Abrams. Completely open source. http://teuthis.com/html/mp3.html Based on the PIC 16LF877, uses the vs1001k decoder chip uses compact flash cards (with standard MP3 files in standard FAT32 format) "around $100 in parts for a 128MB setup ... no display" 2 versions of the source code, one in assembly, one in C.
Delta MP3 player
Delta MP3 Player: Based on Daisy MP3 Player
- Based on Daisy MP3 player adds a 16x2 LCD display, an RTC and some buttons. The aim of this implementation is to
provide a schedule music player for PA systems such as schools, restaurants, or simply as an MP3 Alarm Clock.
- Implements a complete User Interface for scheduled or instant music playing.
The Sakura, the World’s Simplest Open Source DIY MP3 player [defunct]
The Sakura, the World’s Simplest Open Source DIY MP3 player. by Raphael Abrams. All the source and schematics are here for free as part of the Creative Commons. http://www.teuthis.com/html/mmc_mp3.html "around $30 in parts and a good amount of patience (not including the MMC card)" FAT32 support WAV files are also supported Based on the PIC 16LF88 uses the VS1011 decoder chip. Source code is in C.
"Juicebox is a design (code and hardware) for a small ATMEGA128 system which can be used for mp3 playback and general tasks. It includes MMC card (multimedia card) and FAT filesystem support and is written for GNU tools." Uses VS1001 MP3 Decoder. Supports 4x12 cell phone LCD or a small E Ink panel. "a pocket size MP3 player, a bit smaller than a business card in footprint, and about 9mm thick." by Holly Gates, Becky Moran, Brian Hone.
PIC audio player
- http://mpic3.com/downloads/ "Mpic3": Source Code in CCS PIC C and has Compact Flash and FAT16 code within it; schematic and PCB. Based on Microchip PIC18F452 and VLSI VS1001K MP3 CODEC IC.
- 12/04/12 Defunct / Ward Christensen
PJRC High Capacity MP3 Player Circuit Board
"PJRC High Capacity MP3 Player Circuit Board"
a stand alone MP3 player, uses FAT32 IDE hard drives (it buffers songs in a 72 pin SIMM DRAM so the hard drive is in sleep mode most of the time, improving battery lifetime), a 24 bit DAC, a Xilinx FPGA (one of the few that fits in a through-hole socket) (for interfacing to the SIMM DRAM), the STA013 MP3 decoder chip, a power supply designed to cope with the transients of automobile "12 V" power, a 80C51-based microcontroller running a program in external flash memory chip, etc.
"The firmware source code is available under the terms of the GNU General Public License (GPL). ... The entire circuit board schematic is published, as well as schematics for the circuitry implemented by the FPGA." 
"How To Use The STA013 MP3 Decoder Chip"
MP3 player in an Altoids can. includes FM transmitter. Uses compact flash card (reads FAT16), PIC18F452, STA013 mp3 decoder chip, FT232 USB chip. "compact flash card. ... Cheaper & faster than multimedia cards (MMC) and can be accessed via a PCMCIA slot, as all PC laptops have, using a $16 adaptor (although you can read/write using the Java program MintyComm program talking through the serial port)" http://ladyada.net/make/minty/ (There's a nice forum here for discussing this).
http://www.microsyl.com/mp3/mp3.html based on Atmel AVR ... The MP3 decoder is a VS1001k ... The USB interface is done via FT232MB ... ... standard hard drive with MP3s stored in FAT ... includes Infrared bi-directional interface ... includes source code in C.
Yet Another Mobile MP3 Player
http://www.bobblick.com/techref/projects/yammp3/yammp3.html "basically a personal computer that runs in a car" (runs Linux)
BookPC Car MP3 Player
http://www.bobblick.com/techref/projects/mp3book/mp3book.html "a computer I built for my car" (runs Linux)
"MP3Car.Com - Home of the Car Computer Forums - Build your own Carputer" http://mp3car.com/
http://www.codepuppies.com/~ben/sens/pic/mp3/ (open-source hardware and software) "the MAS3507D chip, from Micronas Intermetall, ... You simply clock a serial MP3 bitstream in one side, and digital audio gets clocked out of the other side." So, we have
- Microchip PIC in the middle
- IDE interface (supports *both* hard drive *and* CD drive)
- MAS3507D chip ... to analog amplifiers ... out to headphone jack
- IR remote control.
- parallel port ... to PC, for downloading MP3s.
Stores the MP3s on the hard drive in a funky (but well documented) proprietary format, to simplify the PIC playback code.
An open design for a portable MP3 player. It is designed to be easy / possible to make for a beginner and cheap as well. An AVR Butterfly is used to simplify construction and minimise component count. The decoding is handled by a VS1001 decoder/DAC/amplifier. The design supports the original Butterfly LCD as well as NOKIA 3310 cell phone displays. The project includes PCBs in eagle format for the player and also an adapter board to replace the original LCD of the Butterfly with a BW Nokia 3310 or Color Nokia 6100 display. The player uses MMC cards with a standard FAT16 file system. ( Rev. F PCB now uses SD/MMC cards)
DSPdap - DSP based Digital Audio (MP3) Player
Hardware and firmware for a DSP based digital audio MP3 player with USB pen drive funtionality. This player uses a a 16-bit fixed point DSP (Texas Instruments TMS320 C55x) and CompactFlash card.
DSPdap is different from other MP3 player projects because it uses a programmable DSP as its CPU instead of using a microcontroller and a hardware MP3 decoder chip. Because of this, it is capable of playing not only MP3 but all popular digital audio formats (i.e. WMA, Ogg, RealAudio, etc) as and when the software is written to do so. Currently only MP3 supported.
This is an open source and open hardware MP3 player project. Full schematics and source code available.
Yampp: Yet another MP-3 Player
Yampp Industrial III
The "SPE020 MP3 Player" http://rev-ed.co.uk/picaxe/software.htm , when you look at the .pdf, says in big letters "yampp Industrial III http://www.yampp.com/ " and in smaller, hard-to-read letters, something like "Jesper Hansen -- 2003" (?).
NSLU2-based CarPuter seems to use less power than other Linux-based MP3 players. (?)
Project to design and build a Free/Open hardware music player and recorder, for use with RockBox firmware. Based on AT91SAM9260, ARM926EJ-S processor and in Rockbox firmware, an open source firmware for mp3 players, written from scratch since year 2001. Rockbox firmware support for over 15 Sound Codecs, including OGG and FLAC. It's written in C, using Free Software tools as GCC-ARM C compiler.
- Lyre hardware: http://lyre.sourceforge.net/ (was: http://www.rockbox.org/twiki/bin/view/Main/LyreProject )
- RockBox open source firmware for mp3 players: http://www.rockbox.org/
Video showing Lyre booting and reading music files from the SD Card. Please get more and updated info on Lyre project page.
This wav player by Szymon Dyja is a music player built on microcontroller AT91SAM7S256 with ARM core, MMC/SD slot, and 16x2 character LCD.
Schematic and source code available online.
ARM Cortex-M3 WebRadio
Internet Radio and MP3/AAC/OGG/WMA/FLAC-Player based on an ARM Cortex-M3 microcontroller and VS1053 audio codec.
Andy MP3 Player
Andy MP3 Player is a PIC & VLSI's VS1011e based MP3 player with documentation in english/spanish.
FrankVH MP3 Player
Frankvh MP3 Player uses an Atmel AVR Mega128 and an STA013 to play MP3s from a hard disk. It uses the same LCD as the PJRC player. It also contains a USB 2.0 interface for fast uploading of songs onto the harddisk. Complete schematics, sourcecode, and documentation in English is on the website.
"Open Source Hardware" http://www.nivi.com/blog/article/open-source-hardware "The Bill of Materials for the 30 GB Video iPod from Jefferies & Company's Video iPod Teardown is fascinating." http://www.tuaw.com/2005/10/19/stock-brokers-crack-open-an-ipod-5g-so-you-dont-have-to/
Weird Sound Generator
- "Your First Wacky, Zany, Weird (and possibly Odd) Sound Maker Project - A.K.A. Weird Sound portable Generators or WSG"] has a schematic and detailed instructions on a few ways of constructing a device that makes a few odd noises. "Notice the high reliability rubber band holding the entire assembly together. I prefer baling wire and/or duct tape myself for high reliability work."
(Are these reasonable desires, or is this a "I want a pony" wishlist?)
"Don't buy a portable audio (music) player unless it can play Ogg Vorbis." -- "Play Ogg (Vorbis and Theora)" by David A. Wheeler
MD applications (Score:0) by Anonymous Coward on Tuesday November 16, @12:59PM EST (#54)
It's a bummer that what they're really selling is just a MD recorder and some software. I was hoping that somebody would have wised up and made a MD player that could decode the MP3 format. If some engineer out there wants to make money, build me a data audio player based on the MD format. Support MP3, ATRAC, WMA, SDMI, and all those other acronyms in hardware, and make it so it uses off-the-shelf MDs and you've got yourself a market. Throw in a USB adapter for data transfer, and you'll have a true hybrid device.
But since others have seen fit to comment on the impending death of the MD format, let me suggest that there are still plenty of potential applications for a MD like storage system.
For example, consider the handheld video game market. Maybe Sony should leverage their Playstation enterprise to produce a portable Playstation based on MDs. You could save your games in a non-volatile format, and with the extra data space games could have voice clips and maybe even a real soundtrack! With some intelligent caching strategies, the disc motor wouldn't need to turn all the time, which would preserve the battery life. Imagine a handheld device with more data space than most Nintendo 64 games, but still small enough to fit in your pocket.
Or what about a MD drive that interfaces to your Palm Pilot. You could offload your memos and notes or backup your address book without having to connect back to a computer. Need to copy your friends notes from that important business meeting but don't have enough free space? Just have them dump it to a spare disc. My point is, you can never have enough storage space, especially when it's rewriteable. For their size, the Minidisc format is a good storage system.
MP3 and E-Text (Score:0) by Anonymous Coward on Tuesday November 16, @02:06PM EST (#73)
Someone has to build a E-Book which uses E-texts that include both text and recorded voice. It would offer a screen and headphones. You could then switch between reading and listening as needed. (Read on the bus, listen while walking between the bus stop and the office.) You could read and listen at the same time. And it might be handy if you want to review what was just said without interrupting.
Text-To-Voice wouldn't work as well, since a good reader can make a world of difference. I'd rather listen to Christopher Walken reading Poe's The Raven than a computer. (Actually, though, Text-To-Voice would be a nice option for texts which haven't been recorded by a professional. For example, your own notes.)
Rather than commercially selling yet another MP3 player, I am more interested in commercially selling something that has almost identical hardware, but does something that none of these do. --DavidCary 15:28, 25 April 2006 (PDT)
- How about a hot stone massage? Just add a bank of 5 ohm, 2 watt resistors, 5 volt source and a heavy, round stone from the coast of Oregon?
The article "High-Tech Hearing Bypasses Ears" by Laila Weir begins: "A wristwatch phone that lets you listen by sticking a finger in your ear, an MP3 player that vibrates the bones in your skull to play music that only you can hear ..." So how does this "bone-conduction technology" work?
That article also mentions that "student ... Sam James created Soundwaves -- an underwater MP3 player".
AN10583: "Realizing an MP3 player with the LPC2148, using libmad and EFSL" Rev. 01 — 18 April 2007 Application note
"Atmel releases the new AT89C51SND2C, a MP3 decoder IC" also includes a USB interface and a Multi Media Card interface.
Open-source MP3 decoders include:
- MAD: MPEG Audio Decoder on sourceforge: MAD: "performs especially well on systems without native floating-point support." (I think this includes "libmad").
- sourceforge: mpg123: "uses floating point math (unlike libmad)."
- sourceforge: HardMad "hardware mp3 decoder. Written in SystemC."
- Mr. Midi 2: free open source; "Lyrics are displayed (when contained in MIDI file)"; SD card bootloader for ATmega168; ... put MIDI files on a SD card, plug the card in, and use the LCD screen and buttons under it to choose a file to play.
The Atmel AT89C51SND is a MP3 decoder, MMC card interface, UART interface, and USB interface. Unfortunately, it seems to only be available in a BGA package, and worse, it doesn't seem to be available at any standard supplier. Nice, but perhaps one of the other chips on this page would be more useful.
Wave shield: Audio Shield for Arduino  "The shield comes with an Arduino library for easy use; simply drag uncompressed wave files onto the SD card and plug it in. Then use the library to play audio when buttons are pressed, or when a sensor goes off, or when serial data is received, etc." "Can play any uncompressed 22KHz, 12bit, mono Wave (.wav) files of any size." "Files are read off of FAT16 formatted SD/MMC card"