MPy3 2.0 review
DownloadMPy3 is a full-featured, modular, configurable MP3 player system aimed at jukeboxes or car MP3 systems
|
|
MPy3 is a full-featured, modular, configurable MP3 player system aimed at jukeboxes or car MP3 systems. It can play MP3s via rxaudio or mpg123, take input from a keyboard (tty), LIRC, or joystick or another serial or parallel input device.
Requirements:
Python 2.0 or greater (www.python.org) I know it works with Python 2.0, and that is what I develop on, and there isn't any 2.0 functionality I use with it, so you shouldn't
have any problems, though your mileage may vary.
rxaudio (www.xaudio.org) xaudio is an MP3 player, and rxaudio is the text interface to xaudio. mpg123 (www.mpg123.com)would be used, but there isn't a mainstream text-interface hack for it yet. tk3play (http://www.ccmr.cornell.edu/~bef2/) a tk-interface to mpg123 compiles (or attempts to, anyway) 'mpg123m', a text interface to mpg123. However, i have yet to get it to compile correctly. Newer distributions of mpg123 come with a small text file mentioning this hack, and even includes a python script to control it, but I haven't put much faith into it. Get the mpg123 source, it's the file in the 'tools' directory called 'interface-phython'.
My development system is a Pentium-100 with 32 megs of RAM, and rxaudio runs just fine on it. You shouldn't have any problems.
What's New in This Release:
threading! plenty of it. no more lag on keypress
playlisting. recursive, selective, etc. very cool.
if you are in any state other than "play", then after a defined number of seconds, it revertsback to state_play, like a REAL cd player. shocking!
removed "global" keys, with the exception of the shutdown, menu, and help keys. combined with the "return to state_play" functionality, this should still be okay.
various updates to mpy3.conf
default key mapping is for the number pad. should work well in most cases, especially for people using numeric remote controls
MPy3 now respects the display_type config option. either lcdemu or crystalfontz at the moment.
updates to pyplaylist.py (renamed from listmp3.py
upon load of pyplaylist, all songs under the directory are added to a "master list" then the "playlist" references indexes in the "master list". this way, scanning of the drive is kept to a minimum.
making new playlists are handled now note the add_to_templist functions, etc.
updates to pyrx.py faster retrieval of information. check out the threading in mpy3.py -- this makes the updates very fast. also tweaked the select.select statement to make it a non-blocking poll.
updates to pyttyinput.py (previously ensconsed within mpy3.py
faster retrieval of information, non-blocking poll, etc.
again, check the threading in mpy3.py -- quick like wind!
pyLCDemu.py added
initial addition of the emulator
updates to pyCFontz.py
blankline() added - allows for a blank line to be written to the LCD
because the line() function strips off spaces
MPy3 2.0 keywords