Shuffletron is a music player based on search and tagging, with a terminal UI, for Linux, written in Common Lisp.
Shuffletron is a text-mode music player oriented around search and tagging. Its principle of operation is simple: search for songs, then play them.
First make the binary for your Lisp:
make shuffletron-bin # sbcl # make shuffletron-ccl # make shuffletron-ccl64
Install the binary and link the libraries:
sudo make install
Run it via the script:
On Debian, you first need a Lisp implementation. In doubt, install SBCL:
apt install sbcl
You need those dependencies for Flac and Ogg support:
apt install libflac-dev apt install libvorbis-dev
Alternatively you could remove the related mixalot packages in the
:depends-on (:osicat :mixalot :mixalot-mp3 :mixalot-vorbis :mixalot-flac)
Searches are performed by typing a
/ followed by the search string.
If ID3 tags are present, songs after a search are presented in the following form:
Artist, [Album,] [Track:] Title
If ID3 information on the artist and title is not available, the filename is printed instead.
In the leftmost column is some subset of the letters 'f', 'a', 'b', and 't'. These indicate which fields matched the query string, as follows:
f: Filename a: Artist b: Album t: Title
Successive searches refine the result of previous searches, and the prompt indicates the number of items you're currently searching within. If there had been more than 50 matches, they would not be printed by default, but you could use the
show command at any time to print them.
Following this is a column of numbers, starting from zero. These allow you to choose songs to play as comma (or space) delimited numbers or ranges of numbers. If the song is already in the queue, the number is highlighted in bold white text. Here, I decide to play song 8 then 0-3 by entering this at the prompt:
9 matches> 8, 0-3
The currently playing song is interrupted, and the chosen songs are added to the head of the playback queue. To see the contents of the queue, use the 'queue' command:
9 matches> queue (0) Chromeo, She's In Control, 10: Ah Oui Comme Ca (1) "........................" 1: My And My Man (2) "........................" 2: Needy Girl (3) "........................" 3: You're So Gangsta
Notice that the prompt changed from "library>" to "9 matches>" after our initial search. Also note that the
queue command doesn't disrupt the current search results (this is why numbering in the queue listing is surrounded with parentheses, to indicate that entering numbers for playback does not refer to them).
To add songs to the queue without interrupting the current song, prefix the song list with
+ (to append) or
pre (to prepend).
The queue can be cleared with the
clear command, and the
skip command skips the current song and advances to the next song in the queue. The
next command is similar, but differs when looping is enabled: 'next' retains the current song at the end of the queue so it will play again, 'skip' does not.
loop command toggles looping mode. In looping mode, songs are returned to the end of the queue when they finish playing, or when they are bypassed using the 'next' command.
When you've completed a search, a single blank line moves backward through the search history, eventually returning to the "library>" prompt.
If you've imported a large library, the ID3 tags may not have been scanned. In this case, the program will suggest that you run the scanid3 command. Scanning ID3 tags can be very time consuming, as each file must be opened and read from. Once scanned, ID3 information is remembered by caching it in the
~/.shuffletron/id3-cache file, so you only need to do this the first time you run the program. ID3 tags of new files are scanned automatically when the program starts unless there are more than 1,000 new files.
Additional help topics:
help commands help examples help alarms