QuuxPlayer


Tell your friends about FREE QuuxPlayer! Bookmark and Share

QuuxPlayer: Automatic Playlists

Getting Started

If you create a playlist, it will begin life as a Standard playlist, which means it is up to you to add tracks to it, by dragging or using the menu or keyboard commands (check under the Playlists menu.) In contrast, there is a type of playlist that uses rules instead of you telling it specifically which tracks to use. These are called Automatic playlists.

To start with automatic playlists, select or create a playlist (except for Now Playing) and then choose Edit Auto Playlist from the Playlists menu. You can then create playlist rules according to the instructions below.

Filtering Rules

Automatic Playlists enable the creation of dynamic lists of tracks that are based on rules. For example, you could have the following playlist rule defined:

Artist Is "Led Zeppelin"

This definition means that all tracks whose artist is equal to Led Zeppelin will be included. Note that the artist's name is enclosed in quotes; this is because any element of a rule that has spaces needs to be in quotes for QuuxPlayer to understand it.

Here is another example:

Album Contains greatest And Rating > 4

This means all all tracks in your library have have the word greatest in the album name and have a Rating of 4 or higher (on a scale from zero to five) will be included.

Rules can be as complicated as you like, including multiple Ands and Ors. An advanced example:

(Title StartsWith A And LengthInMinutes < 5) Or Title EndsWith E

Note the use of parentheses to clarify whether to evaluate the And or the Or first.

Capitalization and Spacing

Capitalization, spacing, and line breaks do not matter in your rules. Instead of the last example you could have used:

(title startswith a and lengthinminutes < 5) or title endswith e

Or even:

(title startswith a    and    lengthinMINUTES < 5) or
      title endswith e

ByTrack and ByAlbum

Each of the examples so far has been based on selection ByTrack, in that individual tracks have been evaluated against your criteria. In fact, each of the examples could have been preceeded by the optional ByTrack keyword and have the same meaning, such as:

ByTrack Artist is "Led Zeppelin"

There is another selection method, called ByAlbum, which means selecting entire albums based on evaluating individual tracks. For example, the following example will select all tracks on all albums which have any track with a rating of 5:

ByAlbum Rating is 5

Use ByAlbum when you want to listen to entire albums but have criteria that may not apply equally to each track on those albums.

Limits and Sorting

The previous section detailed how rules filtered (reduced) your library based on criteria. You can also specify Limits, which act as an upper bound on the number of tracks to include, and Sorting, which tells QuuxPlayer what order to put the tracks in.

As an example, the first rule could have been extended to say:

Artist Is "Led Zeppelin"
     LimitTo 50 Tracks

Now, there's always the question of which 50 tracks we want. Perhaps we want to choose best ones:

Artist Is "Led Zeppelin"
     LimitTo 50 Tracks
     SelectBy Rating Descending

This means, when choosing the tracks that are included, start with the highest rated tracks first, and then move down (descend) in rating until the limit is reached.

If you have a SelectBy clause in your rule, the tracks will also be sorted that way when shown in your track list, unless you also include a sorting rule, such as:

Artist Is "Led Zeppelin"
     LimitTo 50 Tracks
     SelectBy Rating Descending
     SortBy Title Ascending

Or you can choose a different type of limit, for example, Hours instead of Tracks:

Artist Is "Led Zeppelin"
     LimitTo 50 Hours
     SelectBy Rating Descending
     SortBy Title Ascending

You don't actually need the Ascending keyword since it is assumed by default.

Track Attributes

Here is a list of all the tracks' attributes you can consider in your filtering rules:

TitleArtistAlbumAlbumArtistGenreTrackNum
DiskNumCompilationLengthInSecondsLengthInMinutesFileSizeInKBFileSizeInMB
ComposerYearPlayCountRatingFilePathBitRate
DaysSinceLastPlayedFileAgeInDaysDaysSinceFileAddedEncoderFileTypeTrack
FileSizeLengthGrouping

A few notes:

  • Note that BitRate is measured in kilobits per second. 128 is a typical number.
  • Blank is a special keyword which means an empty value, as in expressions like Artist is Blank.
  • Compilation means whether the track is marked as part of a compilation and can only be compared with True or False.
  • Not all of these attributes are available for SortBy or LimitBy clauses. See the section SortBy and SelectBy.
  • Length is shorthand for LengthInSeconds.
  • Track means the track as a whole and as such is only used with the operators ContainedIn and NotContainedIn in conjunction with a playlist, such as:

Track ContainedIn "80's Rock"

Comparitors

These are the list of comparisons you can use with the attributes defined above:

IsIsNotLessThanMoreThanStartsWithEndsWith
DoesNotStartWithDoesNotEndWithAtMostAtLeastContainsDoesNotContain
ContainedInNotContainedInComesBefore*ComesAfter*

You can use common symbols such as = for Is, > for GreaterThan, etc.

* ComesBefore is synonomous with LessThan but is generally used for text. So you might say "Title ComesBefore Stairway"; compare this to "LengthInMinutes LessThan 3". Likewise you can use ComesAfter instead of MoreThan.

Limiters

The following attributes can be used in your LimitTo clauses:

TracksKilobytesMegabytesGigabytesDaysHours
MinutesSeconds

Note that the numbers you use as limits must be whole numbers, such as 5 and not 1.5.

SortBy and SelectBy

The attributes you use in your SortBy and SelectBy can be any of the filtering attributes (Title, etc.) except for:

  • LengthInSeconds and LengthInMinutes. Use Length instead.
  • FileSizeInKB and FileSizeInMB. Use FileSize instead.
  • Track
  • Compilation

In addition to the filtering attributes, you can use the keyword Random to make the list shuffled for limiting or sorting:

Genre Is Rock And Year < 1995
     SortBy Random

ThenBy

Both the SortBy and the SelectBy clauses can be extended using the ThenBy keyword. This allows multiple levels of sorting; for example, if you want a playlist that shows all your Pop songs, sorting by Artist and, when the artist is the same, using Album and then Track Number as tie breakers, you can specify:

Genre Is Pop
     SortBy Artist
          ThenBy Album
          ThenBy TrackNum

You can specify up to three ThenBy clauses to extend each SortBy and each SelectBy clause (for a maximum of six per rule).

Comments

Any text that appears on a line after two consecutive slashes is ignored. You can use this to create comments for you to read but which won't affect the meaning of your rules. For example:

//These are some songs I need to listen to
Rating AtLeast 4 And DaysSinceLastPlayed > 10

Conversion

The Automatic Playlist Editor has a button labeled Save and Convert to Standard which means that, if selected, the rule as defined will be applied and then the playlist will revert to a standard playlist. This means it will no longer automatically change, and any sorting, adding, or deleting you do to the standard playlist will be saved.

The automatic playlist rule you create will be saved as well, so you can convert it back to automatic without reentering the rule.