1About SmartPlaylist-Support
2===========================
3
4GNUpod can read and write SmartPlaylists.
5Please note that this feature isn't supported
6for iPods running Firmware 1.x
7(Because GNUpod can only do 'liveupdates' at the moment..)
8
9Use the <regex.. stuff if you own a 1.x iPod.
10
11Smartplaylists are powerful but creating them is somewhat ugly.
12
13An example for a SmartPlaylist:
14
15   <smartplaylist checkrule="both" limititem="song" limitsort="random" limitval="55" liveupdate="1" name="Example SPL1" >
16     <spl action="gt" field="bitrate" string="189" />
17   </smartplaylist>
18
19This Playlist includes 55 songs (limitval/limititem) sort by random (limitsort)
20with a Bitrate > 189 (<spl field)
21
22Please note that you have to set liveupdate="1" or the Playlist will be empty :)
23[Because GNUpod can only do liveupdates atm..]
24
25
26It's a bit complicated, maybe you should have a look at
27http://blinkenlights.ch/gnupod/mkspl.html
28 [or doc/mkspl.html]
29You can use Mozilla (needs JS & DOM) to create
30SmartPlaylists via Klickibunti interface ;)
31
32
33
34##### SMARTPLAYLIST
35CHECKRULE:
36 limit (Only match <smartplaylist ... stuff, don't watch <spl.. entries)
37 spl   (Only match <spl entries, don't limit or sort)
38 both  (Match both items)
39
40LIMITITEM:
41 minute
42 megabyte
43 song
44 hour
45 gigabyte
46
47LIMITSORT:
48 random
49 title
50 album
51 artist
52 genre
53 addtime_high
54 addtime_low
55 playcount_high
56 playcount_low
57 lastplay_high
58 lastplay_low
59 rating_high
60 rating_low
61
62##### SPL
63FIELD for use with action IS/CONTAINS/STARTWITH/ENDWITH (use NOT_ for 'not' -> 'NOT_IS'   [STRINGS]
64 TITLE
65 ALBUM
66 ARTIST
67 GENRE
68 FDESC
69 COMMENT
70 COMPOSER
71 GROUP
72
73FIELD for use with action eq/gt/lt/range (Use ! for 'not' -> '!eq') [NUM]
74 bitrate
75 srate
76 year
77 changetime (MAC TIMESTAMP!)
78 tracknum
79 size
80 time
81 addtime (MAC TIMESTAMP!)
82 playcount
83 lastplay (MAC TIMESTAMP!)
84 cdnum
85 rating (20 = 1 star / 60 = 3 starts ...-> STARTS*20 = Value)
86 compilation (0 or 1)
87 bpm
88
89There is also a 'within' field for use with
90 changetime
91 addtime
92 lastplay
93
94 The 'value' of a within field needs a suffix: _day / _week / _month
95 So you could write
96   <spl action="within" field="lastplay" value="2_month"/>
97 to add all songs played within the last 2 months.
98 You could also use a ! to invert the result: (=NOT within)
99   <spl action="!within" field="lastplay" value="2_month"/>
100