Engine DJ Desktop Playlist Placement Inconsistent

Hey, let’s say I have a bunch of directories, 01…99. I want to add them to “Collection”, so I drag and drop 01…99. First and foremost, these playlists are added randomly. They do not maintain the ordering I add them. So, I’m trying to work around that and I add them manually. One by one, all 100 of them…

So, I get 01…10 added by dragging them into “Collection”. Now when I add anything else to “Collection”, I get a random chance at whether or not Engine DJ Desktop puts the new playlist at the top, or at the bottom of the list of playlists.

Please, just put it at the bottom. New playlists get created below old playlists. Or, if you decide they should go up top, okay, put them up top. But please do it consistently and not randomly.

Thanks

This only happens when trying to add to the Collection directly. By creating a Playlist within the Collection, and adding directories to the Playlist, importing acts as I’d expect.

Just a heads up for anybody else having these issues.

Screenshots of your issue might help people better understand what you’re talking about.

Working with databases, namely in a warehouse environment I always tell people that numbered locations should be one character more than the digits they want to use, so you would never use 01-99 it would be 001-099.

1 Like

Yep. This is how sorting works in computers. It generally has to do with how the tables are coded and what is being sorted.

Incoming nerdy

When you sort a text-based field computers tend to default to a lexicographic sort. It looks at the characters in numbers column by column as text, and doesn’t do integer sorts. If there is a numeric field, it will do a numeric sort.

The following simple script creates a database with a simple table and adds to that table.

rm -f database.db tmp.sql
sqlite3 database.db "CREATE TABLE Track ( 
  id INTEGER PRIMARY KEY AUTOINCREMENT, 
  filename TEXT,
  path TEXT
);"

x=0

while [[ x -lt 100 ]]; do 
  filename="${x} song.m4a"
  path="/${x}/${filename}"
  query="insert into TRACK (filename, path) values('${filename}', '${path}');"
  echo ${query} >> tmp.sql
  x=$((x + 1))
done

sqlite3 database.db < tmp.sql

We can now query by id (integer field):

select * from track order by id;

with the result of:

#ID | FILENAME | PATH
1|0 song.m4a|/0/0 song.m4a
2|1 song.m4a|/1/1 song.m4a
3|2 song.m4a|/2/2 song.m4a
4|3 song.m4a|/3/3 song.m4a
5|4 song.m4a|/4/4 song.m4a
6|5 song.m4a|/5/5 song.m4a
7|6 song.m4a|/6/6 song.m4a
8|7 song.m4a|/7/7 song.m4a
9|8 song.m4a|/8/8 song.m4a
10|9 song.m4a|/9/9 song.m4a
11|10 song.m4a|/10/10 song.m4a
12|11 song.m4a|/11/11 song.m4a
13|12 song.m4a|/12/12 song.m4a
14|13 song.m4a|/13/13 song.m4a
15|14 song.m4a|/14/14 song.m4a
16|15 song.m4a|/15/15 song.m4a
17|16 song.m4a|/16/16 song.m4a
18|17 song.m4a|/17/17 song.m4a
19|18 song.m4a|/18/18 song.m4a
20|19 song.m4a|/19/19 song.m4a
21|20 song.m4a|/20/20 song.m4a
22|21 song.m4a|/21/21 song.m4a
... and so forth

What happens when we sort by a Text field such as filename (lexicographic sort)?

sqlite3 database.db "Select * from track order by filename"

Result:

#ID | FILENAME | PATH
1|0 song.m4a|/0/0 song.m4a
2|1 song.m4a|/1/1 song.m4a
11|10 song.m4a|/10/10 song.m4a
12|11 song.m4a|/11/11 song.m4a
13|12 song.m4a|/12/12 song.m4a
14|13 song.m4a|/13/13 song.m4a
15|14 song.m4a|/14/14 song.m4a
16|15 song.m4a|/15/15 song.m4a
17|16 song.m4a|/16/16 song.m4a
18|17 song.m4a|/17/17 song.m4a
19|18 song.m4a|/18/18 song.m4a
20|19 song.m4a|/19/19 song.m4a
3|2 song.m4a|/2/2 song.m4a
21|20 song.m4a|/20/20 song.m4a
22|21 song.m4a|/21/21 song.m4a
23|22 song.m4a|/22/22 song.m4a
24|23 song.m4a|/23/23 song.m4a
25|24 song.m4a|/24/24 song.m4a
26|25 song.m4a|/25/25 song.m4a
27|26 song.m4a|/26/26 song.m4a
28|27 song.m4a|/27/27 song.m4a
29|28 song.m4a|/28/28 song.m4a
30|29 song.m4a|/29/29 song.m4a
4|3 song.m4a|/3/3 song.m4a
31|30 song.m4a|/30/30 song.m4a
... and so forth

/end nerdery

1 Like

Hahaha I didn’t know that level of detail @djliquidice but did understand the part around it being read as text so all the 2s go before all the 3s etc, regardless of the actual number.

1 Like

I go into details because much of how computers work is baked into how Engine works and non-technical folks get frustrated when the software doesn’t operate as they expect.

On Reddit, I replied to this one post where a DJ is unhappy with Engine’s inability to find duplicates. The person downloads music files more than once on different days and puts those files in different directories. They expect engine to detect those duplicate files.

They follow a very lazy approach to file management and expect the software to clean up after them. With little bit of knowledge on how computers work, we can manage our expectations of what software can do.

https://www.reddit.com/r/DenonPrime/comments/1etnssx/beware_of_dupes/

4 Likes

Yeah I agree. We will all have the same track more than once in some cases (especially if you buy compilations) but that’s on is to recognise that.

AI will sort that all out for us, right ?

ChatGPT coming in version 5 :slight_smile:

(The above is sarcasm)

1 Like

Yup. And it will soon fold your laundry too! :rofl::rofl:

Yay, that will give my Mum sometime back.

1 Like

It might not sort that out, but it will be trying to Nick your job :wink:

1 Like

Very true. I’ve stopped automating network changes and do everything by hand now, gotta keep myself and team employed.

1 Like

My 3 man team at work will be 1 as of next Friday, yours truly. I’m starting to think they are the lucky ones walking away with a years pay and new opportunities.

For DJing, the ‘bot DJ’ will be a regular thing in smaller venues and events within 5yrs I’d say, each time the next ‘auto’ whatever is implemented it’s one more nail in the coffin… don’t those new entry level Pioneer controllers do BPM shift mixes purely by sliding the Crossfader? Sliding the Crossfader is the easiest thing to automate.

1 Like

You are not wrong Stu

1 Like

This is how 9/10 DJ approach library management, for them the program is as good as how much it can compensate for convulted workflows (missing or duplicated files), garbage in tags (issues with cover artwork or nonstandard tags) and as a consequence of having too much tracks in the library - how software can help them plan a playlist (how well smart playlist work, colorcoding, etc).

1 Like

I must be the 1/10 then. I mean I do have duplicates, but I take 100% ownership in my mistakes. I take zero ownership where silly games are played by publishers (republishing tracks, etc.)

2 Likes

Thanks for the input. I’m super familiar with sorting, leading zeros, etc.

The behavior I was expecting can be seen if you create a playlist, and add files/directories to that playlist. They are all added in the order that I add them, and new playlists are created at the bottom. This works fine for me and I’ll just create a top-level Playlist on my thumb drives to store the actual playlists, no problem.

I mostly didn’t delete this post in case someone else ran into the same issue, where they are adding directly to the Collection, and seeing odd/random placement of newly added Playlists. That way if they search and see this problem I was facing, they can see that by adding a playlist to their collection and adding to that instead, the desired behavior will be seen.

It is odd to me that there is different behavior when adding to Collection vs Playlist within, but I’m not going to stress about it.