Centro Player - An mp3 player (front end) designed to run on Empeg hardware and other platforms. History: My original project was an LED display front end for empeg players. After some hacking around I also made my own empeg style FFT display and front end for a linux PC, shortly after porting I ported it to the Raspberry Pi board. Patrick (pca) complained that the code would not run on Empeg unit itself so I ported it across. After much late night hacking and a months full time work I had a working mp3 player. Credits: I did not write all the code from scratch. I imported (lifted) from other GPL projects a floating point and an integer FFT. I also used the very useful empeg code examples from here: http://www.empeg.mars.org/devel.php How it works (empeg): Centro player is really just a front end for an mp3 player (called mp3 decoder in the centro source) that does the real work. In this case its madplayer (via libmad) that does the heavy lifting, de-compressing mp3 audio. libmad is very suitable for the empeg, the SA1100 CPU lacks hardware floating point, emulated floating point is very slow. libmad does an integer only mp3 decoder so works well on the empeg hardware. libmad already supported the empeg player hardware, I simply modified it a little to allow Centro player to remotely control the madplayer process. I send a personal thank you to the creators of libmad/madplayer and the large amount of hard work that obviously went into their project. I apoligise for the crude hacks I did to their source code ! Centro player requires a modified madplayer executable which in turn is using an unmodifided libmad How it works (other platforms): On hardware other than the empeg Centro player uses mplayer to decode mp3 content. This also allows the player to use other facilities built into mplayer such as its streaming radio support. Centro Player Features: Drives 128x32 displays with visuals including FFT, Oscilloscope, Digital VU meters etc Menu system. Network settings (empeg, Static or DHCP via dhcpcd) Master / Slave mode Internet Radio (not on empeg hardware, sorry) Can drive external displays Missing (empeg hardware): Version 0.5b (Beta) is missing the following that empeg users might want : The idea was to produce a player that will generate a playlist and play the contents of a generic directory of mp3 files. It was not designed to use FIDS, empeg playlists or to work with emplode. In summary: * No Emplode support * Does not understand FIDS * No USB support at all * No tuner support * No support for external inputs (AUX etc) * INFO menu does nothing useful at the moment Centro player can be remotely controlled via a command interpreter, it would be possible to add this functionality as an external process, this would be my preferred solution. Centro player on the empeg hardware requires the Hijack kernel. Many thanks to Mark Lord for his fantastic work, without his hard work a stand alone open source player would not be possible. Centro player has been tested on Hijack V515 kernel only. Compiler: Centro player is cross compiled on an Intel (arch that is) PC linux. Debian is a safe bet but others should work. armtools-empeg should work for building it: http://empeg-hijack.sourceforge.net/ My compiler is in this absolute path "/usr/local/arm/arm-linux/bin/gcc", it reports its version as "2.95.2" Building: cd centro_player/player ./compile_empeg empeg mark 1 hardware: Yep, works. Rename player_mk1 as "player". The _mk1 player is built from the same sources, it has the networking code removed License: libmad and madplay are GPL 2 Centro player is GPL 2 Forks: Feel free, I won't take it personally :-) Installation, for the brave or foolish at the moment: These instructions are for MK2 (ethernet) player. For MK1 hardware use a USB to IDE interface and plug the hard disk into a PC I am not IN ANY WAY LIABLE FOR DISTRESS PAIN OR LOSS IF THIS DOES NOT WORK, GOES WRONG, BREAKS, FAILS, EXPLODES you have been warned ! At the moment I have no installer, the following process (for the brave) is how it must be done. Install an empeg with latest Hijack hernel, preferably on a fresh hard disk. Enable ftp and telnet: Get a shell on the empeg player, via serial port is best make the unit read write: # rw # mount -o remount rw /drive0 Make a copy of the empeg player binary just in case # cd /empeg/bin # cp player player_original Ensure the last 6 lines of /empeg/var/config.ini match these. Note DHCP=0 must go before [hijack], please add the line if it is missing: DHCP=0 [hijack] ktelnetd_port=23 dc_servers=1 (from the PC end) Tar up the empeg_files directory from centro player soruces. # tar cvf empeg_files.tar empeg_files/ Take a note of the empeg units IP address, ftp the tar file to the empeg player, in may case the IP is 10.10.10.85 # ftp 10.10.10.85 > put empeg_files.tar (from the empeg) # cd / # tar xvf empeg_files.tar # rm empeg_files.tar # cd /empeg/bin # ls -l player # ./player ^C the player # sync With luck and a following wind the Centro player is now running Get a shell on the empeg player, via serial port is best make the unit read write: # rw # mount -o remount rw /drive0 Now ftp a load of mp3 files into /drive0 If the playlist seems out of date you can always remove it, it *should* generate another one when it starts: # rm /drive0/playlist.txt Centro player uses TWO configuration files, it gets its network settings from config.ini in a format it (hopefully) shares with the original player: /empeg/var/config.ini and its main configuration information from: /etc/player.cfg