More > Media Center 15 (Development Ended)

IsPlaying() = IsAwesome() :D

(1/3) > >>

mark_h:
Thanks for adding IsPlaying() - I've been requesting this functionality since MC11 I think...  Finally I can update my Voting views to include the currently playing track.  Previously I could only include the last played track which meant voting after the fact, not while a track was playing, but now I can access the currently playing track in my smartlists/views the final piece of that puzzle is complete.

MC15 purchased.

Cheers,

Mark

gappie:
sweet isnt it. i made some plug to do something like that way back. but im also really happy. besides what you said,one thing i like is that when i play radio/some mixed smartlist, i can just press a button on my remote when some song comes along that i want to hear the whole album from...

very nice addition indeed.

 :)
gab

mark_h:
Just added a smartlist that pulls out all the tracks with the same name as the isplaying() track.  This allows me to find all versions, especially live versions and covers of a track, for comparative rating.  Note I'm using some expression fields to massage the track names into shape for comparisons and also to provide the >>>>> highlight.  For me, this is the sort of power that sets MJ apart from it's peers.

Mark


Gl3nn:
That's pretty neat!  Could you share the how-to details with we smartlist-challenged folks?   ;)

mark_h:
I'll try!

I have a bunch of different views that show the current track against various sets of data: the entire library, artists of the same genre, my favourite artist (Yes) so that I can make strong comparative ratings, the artist's other tracks and the new one all tracks of the same name.

The final view (above) is a combination of a few smartlists and there are a number of distinct parts to the view.  I'll document my view that pulls tracks of the same genre as the one playing.

First, I have set up a user library field called IsPlayingNow, which contains the expression:

=isplaying()

It simply returns a 1 or 0 but allows the isplaying() function to be used in smartlists, eg to create a sublist containing only the playing track as you will see.

The 'Playing' column is an expression column with the following expression:

if(isequal(isplaying(),1),>>>>>>,)

The final view is:

([IsPlayingNow]=[1] or playlistid==1) ~sort=[My Rating]-d

smartlist 1 is:

playlistid==2 ~mix=20,10,[my rating]=10,18%,[my rating]=9,16%,[my rating]=8,14%,[my rating]=7,12%,[my rating]=6,10%,[my rating]=5,8%,[my rating]=4,6%,[my rating]=3,4%,[my rating]=2,2%,[my rating]=1 ~sort=[My Rating]-d

What we see here is the creation of a sublist from smarlist 2 which is sorted by the track rating and is a mix of ratings with more highly rated
tracks than lower rated tracks in the list.  The field [my rating] is my own user rating field that allows me to rate tracks 1-10

The idea here is that it gives you the full range of ratings to compare the playing track against.

smartlist 2 is:

([IsPlayingNow]=[1]  or [Media Type]=[Audio]) ~sort=[IsPlayingNow]-d ~limit=1,-1,[genre]

Here we see the IsPlayingNow field in action.  This smartlist adds the now playing track to the entire database, sorted so that the IsPlayingNow track is at the front of the list and then it limits the output to only the 1 genre, and which genre is first?  The nowplaying track, so the entire sublist is of the same genre. (I use the same trick to generate lists of the same artist, track name etc)

OK, so first we generate a list of tracks of the same genre, based on the now playing track.  Then we create a small mix of rated tracks from that list.  Then we once again add the nowplaying track to that list and sort by rating.  This is displayed along with the Playing expression column to get the view you see.

Going back to the final view expression:

([IsPlayingNow]=[1] or playlistid==1) ~sort=[My Rating]-d

Notice the OR construct here which is used to add the currently playing track to the results of the playlist.

EASY :D

The view that compares like track names has to handle various postfixes to the trackname, eg [live] etc.  I simply created user fields containing expressions that strip the postfixes from the [name] field leaving just the a-z text - this allows all tracks of the same name to be filtered out in the same way as the genres above, just using my library field in place of genre.

Questions?

Mark

Navigation

[0] Message Index

[#] Next page

Go to full version