I went ahead and implemented my idea for allowing crates to serve as sources of 
random tracks for auto-DJ.  Hopefully you'll all warm up to the idea, or maybe 
I'll add an option to the scons line like "autodjcrates=1" to allow people to 
compile it out if they so choose.

Right now, I have a "Crates" tree-item under the "Auto DJ" tree item, and then 
each crate that's been added to auto-DJ as a source of random tracks is listed 
under that "Crates" tree-item.  You can right-click on it and remove it from 
the auto-DJ crates list.  You can also right-click on a Crate in the existing 
tree and add/remove them to/from the auto-DJ crates list.  I added an integer 
"autodj" column to the "crates" table in the database; it's 1 if the crate is 
in the auto-DJ crate list, and 0 otherwise.  I also added an "Add random track" 
button to the auto-DJ's GUI, allowing the user to add as many random tracks as 
desired, and to remove any undesirable selections.


The feature still needs work before I can submit it to the project.  I did a 
very quick port of the SongJockey code from my djserver program (previously 
posted to this mailing list), so that I could use it for a car show I DJed 
today; I still need to clean it up and port it to Qt.  I really want to replace 
the tree-view of auto-DJ crates with a crates table, so that you can see how 
many tracks are in each crate, how many unplayed tracks are in each one, and so 
on.  And I still haven't totally worked out the signal logic.

Right now, I'm subscribing to the loadTrack() signal to determine when a track 
has been loaded into a deck; there's also a loadTrackToPlayer() signal, but it 
doesn't seem to get called, at least within auto-DJ.  However, loadTrack() 
doesn't get signaled when a track is manually placed into a deck; there seems 
to be a newTrackLoaded() signal emitted by Deck, but I don't know how to get 
access to that from within AutoDJ.  It appears I can access the decks through 
PlayerManager, but AutoDJ doesn't currently have a reference to PlayerManager.  
So I'm not sure what to do about this yet.

Perhaps what I want is to detect when tracks are added/removed to/from the 
auto-DJ queue, and when tracks are added/removed to/from the history.  That may 
be simpler and less error-prone.


My song-jockey logic depends on the last time the track was played, in order to 
prioritize tracks that haven't been played, but the last-played time is not 
stored in the database, only the date/time the track was added to the database. 
 Is there any objection to adding that information to the track database?

Your feedback is appreciated.

Steven Boswell
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to