Smartlist conditional logic (AND /OR), which includes MATCHING KEY and ADJACENT KEY, needs to be included in Smartlist filtering. A few out there disagree with the logic regarding HIGHLIGHTING adjacent keys. I believe Native-Instruments has nailed it perfectly, and depending on your mixing style, if this development request is approved, you can exclude the keys you don't want matching.
As a long-time Traktor Pro user since the beginning, I'm currently on 3.7.1 337
I want to reach out to everyone who can key mix regardless of mixing in a semitone up or down at the time. You can be creative with it later. Right now, we need the functionality and, essentially, the upvotes!
The goal here is to achieve a Smartlist that can ultimately find the best match for the track that is playing in its current key, and the highlighted results should match the key that is currently playing. I have created a playlist for every key and adjacent key so far.
I wouldn't expect a Smartlist to completely re-design itself should the current key be moved up or down a semitone for the currently playing track. Here is what I propose…
If I created a Smartlist for the key 8d because the current track is playing in 8d, we can already make a Smartlist using KEY "IS MATCHING" 8d. Great.
On the other hand, I would like to see the same function for ADJACENT. i.e. using key "IS ADJACENT TO" 8d
It is possible to include every adjacent key to fit in GUI logic. But without the AND/OR conditions within the GUI, you cannot have multiple folder paths or genres and re-creating the exact Native-Instruments adjacent key list uses 9/10 fields in the GUI.
I've tried manually editing the collection.nml file with some success (adding an extra folder to be searched for a key that IS MATCHING can work if you understand query logic). The Adjacent keys need to be accessible in a Smartlist filter, and conditional logic (AND/OR) needs to help separate the query.
I see that the collection.nml file can find matching keys using the tilde ~
<SEARCH_EXPRESSION VERSION="1" QUERY="$KEY ~ 8d"></SEARCH_EXPRESSION>
You can also add to the query some further limited filtering, which is something easily obtained in the GUI…
<SEARCH_EXPRESSION VERSION="1" QUERY="$KEY ~ 8d & $RELEASE % "DJRC""></SEARCH_EXPRESSION>
What we cannot do directly in the GUI is add further criteria to the query. Programmatically it will work if edited carefully in the collection.nml…
When adding multiple sources to match, this is the INCORRECT query the GUI produces:
<SEARCH_EXPRESSION VERSION=" 1" QUERY="$RELEASE % "DJRC" | $FILEPATH % "DJ CHARTS" | $KEY ~ 8m"></SEARCH_EXPRESSION> RESULT: because of the constant OR CONDITIONS we do not get anything intelligible.
What we need to see at the most basic level can work when editing the collection.nml manually, so it should be built into GUI:
<SEARCH_EXPRESSION VERSION="1" QUERY="$RELEASE % "DJRC" | $FILEPATH % "DJ CHARTS" & $KEY ~ 8d"></SEARCH_EXPRESSION>
The programmatically edited query works!
I have added 'OR' to include conditional logic, which includes text from a FILEPATH. I found that the order of execution for these queries is essential. Using OR | OR first, then AND tilde ~ last, for the matching key will work.
If the tilde ~ can match all keys similarly, please let me know what is the expression in a query to match Adjacent keys is? And how do we further group the query expressions using AND/OR?
Let's add this development request so that CONDITIONAL LOGIC for Smartlist filters works where "IS MATCHING ADJACENT KEY" is also available in the same fashion that "IS MATCHING KEY" within the GUI and we most certainly we need the addition of AND/OR functions.