INTERACT FORUM

Windows => Plug-in Development => Topic started by: Qythyx on November 02, 2005, 05:54:21 am

Title: Smarffle - Looking for beta testers
Post by: Qythyx on November 02, 2005, 05:54:21 am
I'm finally ready for beta testers for my MC plug-in, Smarffle. Below is a description of it, but first, a warning: It is written in .NET and requires the .NET Framework version 2.0. This has just been released by Microsoft and is not yet publicly available for download. It should be soon, but until it is you probably need to be a Microsoft developer in order to have it.

Now, the description.

History
I wanted a way to play all of my music continuously without messign with playlists. Basically, I wanted a shuffle mode that I could tune to play songs I like more often than songs I like less. In addition I wanted a way to play songs I haven't heard in a long time sooner than ones I've heard recently. I couldn't find a good way to do this with MC's native functions.

So, I created Smarffle (Smart Shuffle) - yes, I think it is a silly name too

Summary
Simply put, Smarffle allows you to create a mathematical formula that is used to order your tracks and stores the value in a custom field called Weight. The formula can use any of the numerical fields of a track like Last Playen, Number of Plays, Rating, etc. Additionally, Smarffle can reapply the formula to the now playing track when it finishes playing and reorder it according to the newly calculated value.

Screen Shot
(http://static.flickr.com/30/58925540_46a1a6f917_o_d.jpg)

Walkthrough

My Formula
Since it is a bit hard to read, here's my formula:
( EQUALTO( Last_Played; 0; DATE( ) - 60 * 60 * 24 * 110 ) / 60 / 60 / 24 / 60 - EQUALTO( Rating; 0; 3 ) / 2 + Number_Plays / 20 + RANDOM( 1; Last_Played + File_Size ) / 60 - 110 ) * 1000

and here is what it means


So, what does it all mean?

Summary
The key is that you can create your own formulas according to what's important to you. I realize the math is a bit hard to follow, but if you play around with it a bit begins to make sence. Anyway, if you're interested in testing, and you ready to give me lots of feedback, and you have access to the .NET Framework version 2.0. Let me know.
Title: Re: Smarffle - Looking for beta testers
Post by: hit_ny on November 02, 2005, 06:23:31 am
History
I wanted a way to play all of my music continuously without messign with playlists. Basically, I wanted a shuffle mode that I could tune to play songs I like more often than songs I like less. In addition I wanted a way to play songs I haven't heard in a long time sooner than ones I've heard recently. I couldn't find a good way to do this with MC's native functions.
2 smartlists
A smartlist that gets tracks > 6 months old and one that gets tracks of ratings >=3

The ~mix modifier to pick various percentages of tracks out of the 2 smartlists.

Throw in random sorting for effect. Just one smartlist that calls a cpl others, each time you refresh it, you get a new selection.

How is this less capable that what you have just created ?

OK we got more math with your plugin, but i'm at a loss as to what use i can make with that.

Not knocking your work here, you must have put a good deal of thought into it.
Title: Re: Smarffle - Looking for beta testers
Post by: KingSparta on November 02, 2005, 09:16:23 am
Interesting Plug-In I Am Sure It Will Fill A Need

Thanks For Working On It
Title: Re: Smarffle - Looking for beta testers
Post by: Galley on November 02, 2005, 08:11:02 pm
.Net 2.0 final version
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&DisplayLang=en

BTW, love the name!  ;D
Title: Re: Smarffle - Looking for beta testers
Post by: Qythyx on November 03, 2005, 03:58:03 am
hit_ny,

You're right, you can accomplish close to what my formula does, but I'd say there are a few differences. First, your method only works if  playing through your entire library takes more than 6 months. I listen to my library about 6-8 hours per day and it seems to take about 4 or 5 months. Obviously I could tune the 6-months time, but as my library changes over time I'd have to retune it.

The other thing is that the formula I use maintains the sort order, except when a track is played. Why is this important? Well, for me it is important because I also listen to tracks on my iPod, and I prefer to not listen to tracks in the same way there that I do on my PC. So, what I do is sync (after running Smarffle on my library) tracks 500-1000 to my iPod. This means that at about the same time I've listened to 1-500 on my PC, I've worked through about 500-1000 on my iPod. I then clear my iPod and sync the new set of 500-1000 tracks. This wouldn't be possible if the order changed everything I refreshed the list.

I am kind of hoping that MC adds a similar feature natively, though. There are a few limitations in the plug-in APIs that my my plug-in slow in some cases.


BTW, Galley, thanks for the link. I knew it would be out soon, didn't realize it was already.
Title: Re: Smarffle - Looking for beta testers
Post by: jgreen on November 05, 2005, 07:52:52 pm
Qythyx--
IMO, you're really on to something here.  But it still seems to be for/by someone who loves expressions.  I love music, and expressions give me the shakes.  Can you put a GUI on your expression variables?  Sliders, maybe 1-10, for the weight to give to your major variables?
Title: Re: Smarffle - Looking for beta testers
Post by: hit_ny on November 06, 2005, 02:24:45 am
The other thing is that the formula I use maintains the sort order, except when a track is played. Why is this important? Well, for me it is important because I also listen to tracks on my iPod, and I prefer to not listen to tracks in the same way there that I do on my PC. So, what I do is sync (after running Smarffle on my library) tracks 500-1000 to my iPod. This means that at about the same time I've listened to 1-500 on my PC, I've worked through about 500-1000 on my iPod. I then clear my iPod and sync the new set of 500-1000 tracks. This wouldn't be possible if the order changed everything I refreshed the list.
Trying to understand what you are saying here...

Does the iPod update the last played date on the track ? If not how do you ensure you dont hear a track in MC that you already heard on the iPod. You don't, i'm assuming thats why you have 1-500 only for MC and what falls beyond goes to the iPod.

In which case im trying to understand why the sort order is important. You want to make sure you get tracks onto the iPod that you have not heard yet right ?

Thing is how do you make sure you don't get tracks from MC that you already heard on the iPod ?
Title: Re: Smarffle - Looking for beta testers
Post by: Qythyx on November 09, 2005, 07:15:18 pm
jgreen,

I'll eventually look into making a more friendly US for the expressions, I don't expect that to be in there soon, though. On the other hand, if I create a few expressions you could just try them and then woulnd't have to come up with them yourself.



hit_ny,

The key is that when you sync with the iPod you get it's updated Playcount and LastPlayed data. When this goes into MC you can then recalculate the values for the tracks and those ones that you played in the iPod would be sorted down so you won't get the repeats. If the portable player you're using does not support syncing this data then you're right, you won't be able to know what you played.

I'm actually looked at a semi-solution for that. I'm thinking that it might be nice to select a set of tracks in your portable player and explicitly tell MC to increment the playcount for each of them and then delete them off of the portable at the same time. This wouldn't be perfect and you'd have to select the tracks on the portable by hand, but I can't think of any other solution.