As a techno DJ who is into the layering and looping, I would like to be able to create associations between tracks and / or loops and optionally define the nature of the relationship, such that I can quickly retrieve relevant items for a given input track during a live session.
-------------------------------------------------------------------------------
For any track in my collection there are several loops and tracks I can layer on top or mix into. When I am exploring my music, I want to store tracks and loops that work together. When I am playing, I want to retrieve items associated with a given input track or loop.
Let's consider the following object to be items in our collection. We explored our collection and found that some items work really well together.
- B and C go well after A
- D goes well after B and C
- E goes well after B and D
Whenever we are playing any of the items in the graph we want to be able to access a list of items considered relevant for that items:
- Query A returns B and C
- Query B returns D and E
- Query C returns D
- Query D returns E
- Query E returns None
And what if we are playing A and want to take the audience to E? Ask for the shortest path between A and E.
- A works with B
- B works with E
- A \> C \> D \> E is longer than A \> B \> E
Therefore, if we want arrive at E ASAP, we should play B now.
-------------------------------------------------------------------------------
These use cases are simple examples of what is possible whenever we start thinking of music collections as graphs. Advanced functionality may involve identifying more complex relationships, or outliers perhaps. Although such functionality may very well be considered beyond the scope of an application like Traktor. The main question here is: Are we ready to leave old-fashioned linear playlists behind us and embrace a more capable approach to collection management and exploration?
Looking forward to learning your views on this topic.