SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

Cymbaline - intelligent learning mp3 player

Quickstart

Make sure your have pymad and pyao packages installed; in Debian they're python-pymad and python-pyao.

To install, login as root and run: # python setup.py install

To run: $ cymbaline.py mp3sdir

Once Cy starts, hit 'h' for help.

What's good about it?

  • automatic song rating based on monitoring of your listening patterns
  • random queue mode will build a random playlist with high-scored songs
  • manual song rating
  • album-based navigation - you can go to a specific album, go to next/previous album
  • threshold playlists - autobuild a playlist with favorite songs
  • find a song by name
  • random mode that will play high-scored songs more often
  • random dir mode that will play an album with high-scored songs more often.
  • configurable key bindings
  • scans directories recursively
  • quick one-key keyboard shortcuts and mouse shortcuts (for switching tracks)
  • seek inside a song

How to Use it

Cy is useful if you have a large playlist which you don't want to micromanage. It is also useful for those who have a collection of albums, not singles.

Most important commands:

h - help
s - stop/play
n or space - next
p - previous
j - next dir
k - previous dir
Y - list albums
mr - toggle random modes
,. - volume down/up
<n>s - set score to <n>, example: "70s" sets score to 70 (from 0 to 100) q - quit

Requirements

You will need python2.0+, pymad, pyao packages and optional aumix for volume control. It should work on most Unixes. It was tested on Linux and FreeBSD (port is available, too).

Scores

You can set the default score value in conf.py It can be any integer from 0 to 100. Skipping the song decreases it's score by 7, finishing it to end increases by 7 (this value can also be set at in conf.py). You can manually set current track's score using 's' command: 70s would set score to 70, for example.

When you're in random mode, files with higher score have proportionally higher chance of being played. This mechanism is fully explained below.

You can use 't' command to set a threshold - this builds a playlist excluding all files with score lower than the threshold. For instance, 75t will build a playlist with tracks whose scores are 75 or higher.

Cy keeps score database separate from playlists. This means that you can move files around (i.e. from incoming dir, burn them to a cd, move them on a network, etc) and all songs will keep their scores intact, as long as the filename is the same. If you plan on changing filenames, try to do it sooner rather than later.

NOTE: score is associated with a filename - if you have filenames like track01.cdda.mp3, they will all have the same score. This is certainly not what you want, so I recommend using some sort of cddb-based cd ripper that renames files based on song name.

Random mode

In normal random mode (r command), tracks with high scores are played more often. It works like this: a random number from 0 to 100 is chosen, then a random number from that number to 100 is chosen - this procedure is repeated X times, where X is equal to variable you can set using "$sl" command. Then, a random track is chosen and its score is compared to the final random number we got: if the score is equal or higher than that number, track is played, otherwise the whole process is repeated from the beginning. If you want high-scored tracks to play more often, set random slope to a higher number.

Random dir mode works similarly, except that it adds up scores of all tracks in a directory and uses that number to play higher-scoring directories more often.

Colors

You can change colors by editing /cypack/colors.py (at the end of file).

Key Mappings

You can change key mappings in cypack/keys.py

Notes

  • cymbaline loads a directory with mp3 files, you can't give it mp3 files as arguments directly.
  • don't make the xterm window too small in horizontal direction, it will crash the player; this will be fixed in next version.
  • The best term emulator to use is Konsole. Xterm and aterm will allow right clicks but the default cursor is 'text editing' (at least in my desktop environment), which isn't very nice to use; gnome-terminal uses a nice default cursor but will create a popup on right click.

mp3.py is code by Scott Hassan and Sam Rushing.


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.