elliottcable / farrier
- Source
- Commits
- Network (0)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
QTKitPlay
| name | age | message | |
|---|---|---|---|
| |
.gitattributes | ||
| |
.gitignore | ||
| |
English.lproj/ | ||
| |
Farrier.xcodeproj/ | ||
| |
Farrier_Prefix.pch | ||
| |
Info.plist | ||
| |
MyDocument.h | ||
| |
MyDocument.m | ||
| |
README.markdown | ||
| |
main.m |
Farrier
It's time we had a music player that didn't suck, guys. Help me out here. Seriously. This faggotry has gone too far.
What the Flying Fuck?
Okay, so, iTunes sucks. This general point of view is shared by, well, everyone I've ever met, anywhere. The other options aren't really any better - Songbird is, like FireFox, a really retarded and badly-done port that certainly isn't feeling the OS X love. I can't even find another music player on iUseThis with more than 250 users. Seriously, people? Are we just going to rely on iTunes' suckery?
Okay, so, I've got a lot of hating on the players out there, obviously. Why don't I do something constructive instead of bitching? Well, that's this. I'm new to Cocoa, so it won't be awesome, but I'm going to try to make a music player that takes a different approach to things.
Goals
So, let's see where we're going to take this. I see two primary uses for a music player, when you dig through all the fluff. I'm the type who lists to music damn near 24/7, so I think I've boiled down to "what really matters".
Finding what I want to hear for me
First and foremost, I shouldn't have to use the music player. Ever. The music player should, whatever way it can, play what I want to hear, when I want to hear it. iTunes' Party Shuffle feature is a stab at this (I find myself playing my music nearly exclusively within Party Shuffle nowadays); the very sexy Moody is another recent attempt to make iTunes better at this.
I plan to imbue Farrier with an algorithm to attach relational metadata to every single song in your library, allowing it to "learn" over time when to play one song or another in such a way to please the listener. Hopefully, this will allow Farrier to shuffle much more intelligently after extended use.
Allowing me to find what I want to hear
In the necessary cases where the player fails to find something that I feel like listening to for me, I should be able to easily find something that I do want to hear. iTunes (and every music player I've seen) focuses on albums, artists, and genres for the most part. I think this is an unnecessary hold over - some albums from a given artist sound different than other albums from the same artist; many artists are very similar in many ways while being different in others; and finally, genres are just stupid (I personally can't name a single genre that I listen to, I just listen to "songs that I happen to like" from a multitude of genres).
Instead, Farrier will focus on songs; after all is said and done, you're still playing songs, no? While it will be capable of storing other sorts of metadata, it won't focus on them. Instead, it will use the "feeling" data collected in the form of relationships to sort and shuffle songs. It will also focus all elements of display on songs, not on albums or artists or genres.
Other (planned) features
- Songs should maintain multiple relationships. In iTunes, I have many artists' discographies. In many cases, there could be three or four songs with the exact same audio content. Instead, Farrier (with it's song-oriented system) will focus on unique "songs", with a song belonging to multiple albums, or even multiple artists if necessary.
- Songs should have multiple versions. I can't list the number of entries in iTunes with the same name but a different actual music file. Remixes, different languages, covers by other bands - it's a mess. Actual "songs" in Farrier will be capable of having multiple song files as different "versions" of the song, and each version can have it's own metadata overriding the general metadata of the song (an additional artist if it's a remix, or an entirely different set of artists if it's a cover?). Versions will also store their own relationship metadata; you may like to hear the normal version of song "X" along with the rest of your metal, but the acoustic re-release certainly doesn't fit in there.
- Metadata is freeform. This is related to the points above, but it should be iterated. I don't want metadata to be so restricted - for instance, instead of being limited to one title, a given song can have multiple titles. Farrier will do it's best to display any metadata that the user is interested in, in the most semantic way possible.
- Farrier should introduce you to new music. Although songs with strong relationship data are obviously going to be played more often, no songs will be left completely out in the cold. All songs, even ones you consistently reject (or ones that you've just added to your library) will find their way to your ears at least occasionally.

