Suggest compatible tracks based on currently loaded ones.

Bug #889898 reported by Daniel Schürmann
48
This bug affects 10 people
Affects Status Importance Assigned to Milestone
Mixxx
Confirmed
Wishlist
Unassigned

Bug Description

Imagine: It's late, the dance floor is crowded, and you have no idea what could be the next title.
It would be nice if mixxx itself in a position to help us off the hook where it shows us a list of matching titles.

---
I am thinking to the IMMS approach http://imms.luminal.org.
It should be possible to change it in a way that it works for the DJ needs.

It may take the Genre, BPM, Key ... into account, and can be fed by the set-log data.

---
An other Idea is to use something like the Banshee random mode with Last.fm support.

---
In interesting approach is the sony sensme(tm) one. It sort the song according to its mood. Is there a free software alternative, where mixxx can collect mood data for its tracks?

---
Do you think it is worth to contact the IMMS developer? What are the license issues we have to take in account?

Tags: cloud follower
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I like it -- and it's a more general extensions of Bug #872006 -- tempo and maybe genre as well. Being able to find last.fm's similar tracks would also be great.

Changed in mixxx:
status: New → Confirmed
importance: Undecided → Wishlist
Revision history for this message
Daniel Schürmann (daschuer) wrote :

See also post of jeunesse rouillée:
http://www.mixxx.org/forums/viewtopic.php?f=1&t=3059

Revision history for this message
Daniel Schürmann (daschuer) wrote :

I think Jeunesse tag cloud like 2D view is very advanced.

For the first step we may need something like the mock-up attached .

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I like the knobs :) .. I agree the graph view is a little complex and I don't see an immediate benefit because you generally only want to know what to play next. The graph also assumes total manual choice of the followers. If you changed the knobs as in your mockup -- then what would happen to the graph? I think changing the sorting of the list makes a lot of sense.

Revision history for this message
Jens Nachtigall (nachtigall) wrote :

I agree that Daniels proposal is a better starting point than my "track map" proposal. I do not fully understand the left drop-down menu? What does "drop reference" refer to? The root element gives current tracks of which track? (the one playing)? What happens if one clicks on the two items below the root element? Are these Deck A and B tracks?

Personally, the knobs look stylish, but I doubt its usability. Knobs are pretty difficult to move with a mouse and also if I adjust the values I would not like to have a magic black box, but would rather be able to type in the bpm range by hand or like to easily click up and down arrows and see its exact value (to see its exact value). Same for date etc, where I like to have the days set with up/down arrows or like to type it in.

Daniel, Can you give more information on how the weighting should work? Would this be simply a sql matching on the whole library or on certain crates?

The results returned shall be sortable you say. Will this be stored? I do not understand why this should be stored if its an "automagic" weighted function?

How about my idea of manually be able to store "next track hints"? Is this still possible with you idea?

In short, I do not yet fully understand the mechanics behind your proposal, though the mock-up looks very interesting and I think we should go into this direction. Can you give some more technical information behind the idea?

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Here is a brief explanation:

* The tree root element "next track hint" opens a proposal list for the next track on the right view. It depend on the current playing track, and the tracks loaded to the decks.
* The child elements are probe tracks for reference. The right view contains the proposal as if they where currently playing.
* You can add any probe track you like as child element by drag and drop. The last dummy element is only a feature hint for the user.

The proposal list itself is calculated with all useful properties of a track. I do not know so far what's the right magic formula is. Maybe we can get help from the IMMS team or re-use their code.
The problem here is that original IMMS learns from your personal taste. This will in most cases not fit to you audience taste. So we need the knobs or something different to tune the magic formula.

(The usability of the knobs might be a separate discussion because Mixxx use it extensively ;-))

The default value of each knob it 1. With these setting you will get a more or less fitting proposal list.
If you want to have only track with a small difference in BPM, you can turn up the BPM Knob and the magic formula will give you new proposal list with closer BPM value to the current track.
You are free to sort the list with a header click after that to pick the song wit the best BPM value.

Sometimes you might have a track couple or a better Idea for a next song, so you can resort the list manually by drag and drop.
This will create a rated association of the dragged track with the current track. The next time the magic formula takes this into account.
This rated association picks up Jens’s Idea of a “follower crate”.

Jens's cloud view might be the next step where the distance between the songs is a hint how exact the song will match.

RJ Skerry-Ryan (rryan)
summary: - give a hint for the next track
+ Suggest compatible tracks based on currently loaded ones.
Revision history for this message
Daniel Schürmann (daschuer) wrote :

I have just found Mirage, an Automatic Playlist Generation Extension for Banshee
http://hop.at/mirage/

It analyses the songs for its psycho-acoustic model and stores the results to the Banshee database.

A Python based project tries to combine this with Last.FM similarity.
https://launchpad.net/autoqueue

I think it's worth to look at.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

I have just found Mood-Knobs, a playlist generator using the echo nest API.
http://the.echonest.com/platform/showcase/detail/298/

Revision history for this message
Jens Nachtigall (nachtigall) wrote :

just a quick note about the mockup by Daniel: filtering options like
* only suggest tracks in same crates/playlist as playing song
* only suggest tracks in any crate/playlist
 would be good because I have thousands of tracks but only a few are suitable for DJing (and these are of course in any crate or playlist). I guess other DJs have it the same way.

Revision history for this message
globalkeith (keithsalisbury) wrote :

This is great, but way too complicated to start.....I'm starting on a feature which is working towards solving the problem you describe:

https://blueprints.launchpad.net/mixxx/+spec/auto-library-filter

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Some Ideas according to harmonic mixing found hier:
Bug #674067 Harmonic mixing helper section in library
Bug #872006 Colourize compatible tracks in track table for harmonic mixing

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Keith has mentioned Rapid Evolution 3
http://www.mixshare.com/re3preview.html
... "is an advanced harmonic music library tool for DJs, designed to be used while you mix"

Revision history for this message
Daniel Schürmann (daschuer) wrote :
tags: added: cloud follower
Revision history for this message
David Nadasi (macrophone) wrote :

It would be great to build the tree by analyzing the playlists (including history playlists). Then Mixxx could propose tracks according to my previous sets.

Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/6106

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.