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