You are here: Home » Topic » Playlist Tutorial

Playlist Tutorial

This topic contains 20 replies, has 5 voices, and was last updated by  rpedde 13 years, 1 month ago.

Viewing 15 posts - 1 through 15 (of 21 total)
  • Author
    Posts
  • #107

    Mike
    Participant

    Would someone mind writing up a simple faq for creating playlists in the nightlies sql database? I’ve scrolled around, and there are bits of information here or there, but it still requires a lot of fiddling and searching to make it work. And frankly, I’m lazy and don’t feel like duplicating the work I’m sure at least a couple of other people have done.

    So, can one of you folks put together a simple tutorial on how to set up playlists, since a usable web based tool looks like it’s a long ways off, and there doesn’t appear to be any kind of movement towards bringing back the old mt-daapd.playlist file.

    Thanks!

    #3695

    rpedde
    Participant

    Actually, I’ve been working on the smart playlist stuff pretty steadily the last week or so. I’m thiiiiis close, and rather than write a tutorial for the playlist stuff as it exists right now in nightlies (which will disappear again in favor of something more like the existing smart playlists), I’m just going to finish it up.

    I hope that before the weekend, I’ll have the simpler cases working (strings and ints, but not playlists based on dates). I hope to also have the web interface for editing those at the same time. Once that’s all in place, then I’ll work on finishing up dates and stuff.

    It’s just hard to get traction, because there aren’t a lot of intermediate steps. Pretty much it all works or it doesn’t, and so there won’t be any visible progress on it until all of a sudden smart playlists are back.

    But I’m working on it.

    — Ron

    #3696

    Mike
    Participant

    w00t! Will we be able to define playlists based on path?

    #3697

    Spiral Scratch
    Participant

    :ohmy: Smart playlists and a web interface to edit them? My life would then be (almost) complete.

    Since moving to a Slug a couple of months ago our household has been in Networked Music Heaven. Now all I need to do is to find a way to automate a process to de-DRM the music that my wife and kids keep buying from the iTMS and I will never need to touch a computer again.

    Thanks again Ron for mt-daapd and keep up the good work.

    #3698

    rpedde
    Participant

    Mike: yes… any field in the database (even the ones that seem useless) will be useable for specifying playlist criteria. In the case of path, the playlist would look something like:

    path includes “/some/path”

    which will get translated into a sql query like:

    select * from songs where path like ‘%/some/path%’

    Spiral: Me too… that’s the thing that’s annoying about the slug — it’s a pain to ssh in, edit the playlist file, and restart the daemon. (okay, so that’s not a slug issue, it’s a mt-daapd issue). Would be much easier to web edit.

    Course the first pass as the web-based editor with be nothing more than a textarea for freeform adding… it wouldn’t be a graphical editor thing like the iTunes smart playlist editor, but it would be cool if it eventually could become that.

    Anyway… gotta stop gabbing and start coding. 🙂

    — Ron

    #3699

    rpedde
    Participant

    Nightlies are up. the smart playlist editing page is the tab called ‘smart’.

    Read the nightly notes for description of valid fields, etc.

    I’ve exhaustively (in the sense of “for something like 5 minutes”) tested the web interface with safari and firefox. I have fair confidence it should work on a modernish IE, too. No promises, though… but I’d be interested to hear.

    Editing playlists doesn’t work, you have to delete and re-add. I know, I’m working on it. no error messages either. Again, I know.

    Also, as I’ve announced before, I’m web-design-challenged. I’d welcome help with making that work better, look better, whatever.

    If anyone wants to make a HTML page to serve as a “help” page for smart playlist editing (with lists of valid fields and maybe example playlists), I’d welcome it. I’d also credit you and you could be FAMOUS! Or, at least less less-well-known, if that’s worth anything. 🙂

    #3700

    Mike
    Participant

    It Works!
    I have playlists again! And I don’t have to restart mt-daapd when I make a new one! Have I told you how much love I have for you?

    #3701

    rpedde
    Participant

    lol… and that’s why I do it.

    That and the kicks in the butt. Keep watching — I’ve got some more ideas for playlists, and I want to redo the configuration stuff in a javascript/xmlhttp way also.

    Glad it works for you though… It’s getting better. Slowly, but it’s getting there. 🙂

    — Ron

    #3702

    Spiral Scratch
    Participant

    w00t indeed.

    Finally got the .ipk installed on the slug after I finally remembered the password (damn thing just keeps running).

    No time to play around though. Looks like navigating around the new web pages causes my mt-daapd to crash…this may be caused by Apache running on my NSLU2 in addition to httpd. If I get time tonight or (more likely) tomorrow I’ll investigate.

    Ron…do you have any other webserver software (other than the default httpd) running on your setup?

    #3703

    rpedde
    Participant

    No, my unslung slug is pretty bare. I run most of my stuff on my debonaras slug. I’m in the process of getting everything off the giant energy-sucking x86 server I have onto a debian slug.

    throw a couple giant hard drives on that with reasonable spindown times, and I have a huge server with almost no power consumption. Mmmmm. Tasty.

    As far as the web pages making it crash, I saw that too — I think I know what it is, and I hope I’ll have something on it next couple days.

    — Ron

    #3704

    CCRDude
    Participant

    I’ve created a small playlist editing page with a few default templates just for fun 😉

    Since I don’t remember your email address any more, I did upload it here:
    http://sasiedzi.org/temp/playlists.html
    Though I think such a thing (this wizard) would be better of in a popup, so I’ve also created this:
    http://sasiedzi.org/temp/playlists2.html
    which launches this popup:
    http://sasiedzi.org/temp/playlistpopup.html

    If that’s about what you had in mind, let me know and I’ll add the missing fields as well 🙂

    #3705

    rpedde
    Participant

    Ooh! I really like that second one with the popup.

    Note that LIKE isn’t there anymore, it “includes”, and that adds the “%’s” on both ends when it sqlizes it.

    I really like that though. Of course, Some of the comparisons aren’t valid for strings (only = and includes), but I think this is the way to go forward with that.

    Plus date ones are going to be strange. But I like that concept a lot.

    #3706

    CCRDude
    Participant

    LIKE isn’t anymore? Oh, I simply wrote it for SQL statements 😉

    Guess I need to find an overview of the exact format (SQL is simply more in my blood :laugh: ), but it’s easy to change. % removed and LIKE replaced by include for now 😉

    Removed the all in one place, the popup one is now
    http://sasiedzi.org/temp/playlists.html

    I’ve added nearly all fields I found in the database (grouped, having tested the grouping only on Firefox so far). Also, the comparison listboxes now get adjusted depending on the field type upon field change (equals and includes for strings, equals, lesser-than, greater-than, lesser-or-equal-than, greater-or-equal-than for integers).

    For dates, I’m not sure yet. Letting the user enter dates in Unix format surely isn’t a good way… but we can convert a few things in JS… what format does your sqlizer expect?

    #3707

    rpedde
    Participant

    That part isn’t done yet, but I think production rules will look something like:

    date_criterion = date | date_interval BEFORE date | date_interval AFTER date
    date = YYYY-MM-DD | TODAY | date_interval AGO
    date_interval = NUMBER timespec | THE timespec
    timespec = year(s) | week(s) | day(s)

    so a valid time would be:

    2 weeks before yesterday

    or

    6 months ago (this is implicitly ’30*6*24*60*60 seconds before time(NULL)’)

    or even something crazy like:

    2 days after the week before yesterday

    valid comparisons would be > and

    #3708

    rpedde
    Participant

    errr… greater than or less than. Doh.

    On retrospect, maybe the production rules will be simplified a little from that, but I really do like the expressiveness of that, and doesn’t look to be too difficult to parse.

    As far as a guide to playlists, check the nightlies page… that has the syntax and currently valid fields.

    — Ron

Viewing 15 posts - 1 through 15 (of 21 total)

The forum ‘General Discussion’ is closed to new topics and replies.