CDJ queries work by finding pieces of music or whole discs which have attributes that match the relationship you specify in your query.
The basic format of a simple query is:
(Field) (Comparison) (Value)
some examples of this format would be
title = love | |
album == "moving pictures" | |
artist = elvis | |
playtime > 1:30 | |
timelastplayed < 4d | |
timereleased > 1/1/68 |
The following fields are supported, along with shorthand equivalents. Expect that many new fields will be added in the future.
Fields |
|||
Name | Shorthand | Data Type | Description |
title | ti | text | title of track |
artist | ar | text | name of artist |
album | al | text | title of album (disc) |
lyrics | ly | text | lyrics of track |
notes | no | text | notes for track / disc |
player | pl | number | number of player on which music resides |
keywords | kw | text | user defined keywords |
playtime | pt | playtime | playing time of music |
timeadded | ta | datetime | date / time the music was added to your collection |
timeplayed | tp | playtime | amount of time this music has been played |
timesplayed | nt | number | number of times this music has been played |
timereleased | tr | datetime | date / time the music was released |
timelastplayed | tl | datetime | date / time the music was last played |
like | -20 to +20 slider rating* | ||
happy | -20 to +20 slider rating* | ||
tempo | -20 to +20 slider rating* | ||
danceable | -20 to +20 slider rating* |
* these names will eventually become user definable
The following types of comparisons are supported.
Comparisons |
|
Symbol | Description |
= | numbers - equals strings - is found within |
== | numbers - equals strings - is identical (not case sensitive) |
> | is less than (works for strings too) |
< | is greater than (works for strings too) |
The following data types are supported.
Data Types |
|||||||||||||||||||||||||||||
Name | Description | Samples | |||||||||||||||||||||||||||
text | A text string. If a string contains spaces or characters which could be construed as comparisons or boolean operators, it should be enclosed in quotes. |
|
|||||||||||||||||||||||||||
number | An integer or floating point number |
|
|||||||||||||||||||||||||||
playtime | Time expressed as seconds or in a minutes:seconds format |
|
|||||||||||||||||||||||||||
datetime | Time expressed in one of the following formats
|
||||||||||||||||||||||||||||
Absolute - these formats express an absolute time |
|
||||||||||||||||||||||||||||
Relative - these formats express time as an
offset to the past from the current time. The default unit is the day, but the following
units are supported:
|
|
CDJ allows you to make boolean queries of unlimited complexity along with some special features to make expressions even more compact. The following boolean operators are supported:
Boolean Operators (in order of precedence) |
||
Symbol | Shorthand | Function |
not | ! | invert the logical sense of the expression to the right |
and | & | expression to the left and right must be true |
or | | | expression to the left or right must be true |
xor | ^ | only one expression to the left or right must be true |
CDJ also allows the use of parentheses to control the order of operations in an expression.
The following is an example of a more advanced query
(title="shot the sheriff" and (ar=elvis | not player<2)) ^ (album=odelay or like>5) |
The CDJ expression syntax also allows you to factorize both fields and values using boolean operators to create queries with less typing.
Instead of saying
keyword=fun & (keyword=punk ^ keyword=female) |
You can just say
keyword=(fun & (punk ^ female)) |
Likewise, fields can be condensed. Instead of saying
artist = elvis | album = elvis | title = elvis |
You can just say
(artist | album | title) = elvis |
Factorizations can be done on both sides simultaneously
(artist | title) = (cat & dog) |
is equivalent to
artist=cat & artist=dog | title=cat & title=dog |
To make things more convenient, if you just type in some text, such as
elvis |
CDJ will default to interpreting this as
(title | artist | album | keywords) = elvis |