I know I can achieve something close to this using a sequence of panes but I think dynamic/virtual smartlists are more intuitive in non-standard views and simpler than panes in standard view.
Current behavior
I use a playlist group called "Best Of" containing smartlists that are titled by a single artist name. Example:
Best Of
Elton John
Garth Brooks
Michael Jackson
...
These smartlists contain the same simple set of rules:
[Media Type]=[Audio] [Artist]=[Elton John] [Rating]=>=1 ~sort=Random
[Media Type]=[Audio] [Artist]=[Garth Brooks [Rating]=>=1 ~sort=Random
[Media Type]=[Audio] [Artist]=[Michael Jackson] [Rating]=>=1 ~sort=Random
Issue
Creating smartlists like these for every artist is very cumbersome and takes up a lot of room in the playlist tree (requires scrolling).
Proposed behavior
What I would like is a way to replace the [Artist] with an argument (variable). The way that the argument is passed by the user could be context-dependent. Perhaps I could create a "Best Of" smartlist with a stock ruleset containing a variable:
[Media Type]=[Audio] [Artist]=[%myvar%] [Rating]=>=1 ~sort=Random
When the smartlist was selected it could present the user with a dialog box to enter the name of the Artist to generate a "Best Of" smartlist for. If it was presented a list of artists, perhaps it could loop over the smartlist and concatenate the results. While a single string or list would solve all of my outstanding issues, I can imagine scenarios where someone may want to input multiple fields in order to create a dynamic smartlist (filtering by date/time).
UI
It might be nice to "remind" the user which fields are necessary to pass to the smartlist when they are prompted for input. Thus the name of the variable passed to the smartlist should be presented to the user:
[Media Type]=[Audio] [Artist]=[%'Artist Name'%] [Rating]=>=1 ~sort=Random
The input would be context-dependent, with keyboard (and selection switcher) input in Theater View/Panel, pop-up dialog in Standard View, and some type of MCWS call to create a list of files by passing a parameter to the smartlist ID. This would be extra sweet because it would mean that dynamic smartlists could be generated using MCWS and stored client-side (as dynamic MCWS calls).
Another Example
Newly Rated by Rating:
[Media Type]=[Audio] [Rating]=%'Minimum # of Stars'% ~sort=[Date First Rated]-d
...which would prompt the user to input a 'Minimum # of Stars' in order to display the most recently rated tracks with at least that rating value.