Koel: A personal music streaming server
github.com
github.com
I think there could be another iPod age.
Imagine a device with 10Tb of flash memory, an E-Ink display and 2.5 million songs.
Yea that is exactly my sentiment. There was a time when I was cool to walk/drive about and listen to music. Now my data plan pushes me over the fence into silence.
My one strange requirement is that I want to play music on a headless computer hooked up to my stereo system, and control it remotely with a nice interface (including discovery, etc.). Rdio did this basically by default. For spotify, I think I'll end up using mopidy as the player, but I'm not sure about the remote control yet. There's some conflicting information about whether spotify connect (their shared queue feature) is supported on linux or by 3rd party clients.
Only in the last couple years, when I started flying for work, did I realize I had virtually no mp3s anymore. So I've been working on gathering music to use in offline mode at airports.
Moreover once I have done that I'm not even sure where my library will begin or end, does it end at the temporary stuff i'm listening to on the discovery radio or stuff that I have added to a playlist but not my library.
At least with MP3s it would be "I'm downloading these songs and they will be in my library because I enjoy them." Now i'm not even sure if I have a library.
Discovering Bandcamp has been great, though. On the listener side you have a "collection" of music you've bought, a "wishlist" of music you haven't paid for but plan to at some point (most albums are fully streamable before buying), and a "feed" where you can follow artists you like to keep track of new releases. You can also follow other listeners with tastes similar to yours, for which the Bandcamp site provides recommendations. When there's nothing new in the feed, the "discover" tab and the Bandcamp Weekly podcast are both good ways to explore new music.
I would love a device like the one you describe. Having shopped for dedicated MP3 players recently, the current gold standard seems to be the Sansa Clip+, and even that device is relatively dated. As long as it supports normal USB-stick-like file/folder management, without some iTunes clone to wrestle with.
But that's just because before I was content with listening to the same stuff repeatedly, never did look out for more music on my accord.
Stopped doing streaming, but open to getting back into it, found some great music that way.
I don't see any real need for a "new iPod" now though. Yeah, SSD slots for new phones are a bit less common than they should be, nut it's still bearable. For me the phone itself is what's inconvenient, not the absense of your whole audio-library on it all the time (browsing it on the phone would be painful anyway).
The conclusion that I've made is that before i had to _curate_ my own music. Go and search for new releases, download new and totally unknown stuff that I later went through and actually listened to. In a way the whole "setup" forced me to listen to new stuff. Now that I have everything online, i more and more just tend to listen to the same stuff that "i already know" over and over again, hence it gets more and more uninteresting to actually listen to it.
In a way I have everything available, which makes me not forced to go out and search for the music I like and find interesting.
edit: A lot of talking about recommendations and music discovery further down. My input on that; I'm fortunate to have been using last.fm, even from before they changed name to last.fm. So I have a large history in there. That is the place that gives me the best recommendations and discovery so far. Their recommendations are spot on, and a good way to find new and good music is to go to "people like you" and see what they are listening to that is unknown for you.
Yes, +1. Bulk of my tracks are same old tracks that I used to tune in a decade ago in CD or cassette form. Radio is closest to what introduces me to new music, but they are limited and the decay is quick. May be quantity is lot more than what I(/we) can consume.
You could set up a music NAS with beets (http://beets.radbox.org/) as one of several sources (also you could have spotify, youtube, soundcloud) then have playlists that include stuff from a combination of them.
A last.fm type service for tomahawk is in beta at https://hatchet.is
not sure how this relates with the parent though...
I switched to Kodi with the chorus web application that allows controlling and streaming your music to the web browser. Not as feature rich, but together with yatse on my android devices it means a raspberry pi with only kodi running can be a total home media server.
I had not heard of koel or ampache until today, but choices will always be welcomed.
A good replacement would be welcome.
I've no idea if that would still be the case as we're looking at about 5+ years ago now when I used it.
Discover Weekly is a very good replacement, though, even if it's not the same.
I've found those recommendations much better than Pandora or Google Music, and you can hook into it with many different services/players.
Last.FM was so ahead of the game it's mind boggling how they just seem to have fizzled out while Grooveshark, and Spotify came in.
Last.FM had a huge user base with great info on individual music tastes, had a functioning streaming service, a whole functioning ecosystem of music fans and musicians that just seemed to have layed dead in the water after it was bought out.
I used to think that same thing, but I've come to realize that most people don't care that much about music. It's just pleasant background noise to them.
https://press.spotify.com/uk/2015/07/20/introducing-discover...
I know it seems like this is what you want, but for me I've never been satisfied with this simplistic approach to discovery. Taste is very complex, and for me saying to someone "I really love xylophone" and them recommending me a lounge jazz tune with xylophone will always fall flat. What most people don't realise is why they love certain instruments or tempos or genres etc. It's usually down to how they were introduced to these, which defines their archetypal music using these instruments for example. It's all contextual.
My context for liking xylophone goes something like this "I love xylophone, because in the late 90s I listened to a lot of Beastie Boys 'Hello Nasty' which has some really nice pieces of music with some great xylophone in them. Then hearing some Mulatu Astatke recently got me interested in xyolophone and ethio jazz in general, combined with a really cute reaction my girlfriend had to one of his songs."
The best recommendation engine I've seen is Spotify Weekly. It's really very good, but make sure you get in there and save a lot of artists and albums you like first
The radio from that converges to endless Foo Fighters and The Prodigy -- over half the songs!
It's not that I dislike them, but I don't particularly love them either and there is just no diversity on that station.
That said, if you haven't given the Spotify Weekly Recommendations a shot -- you should. Maybe it's because it has more data to work with than song/artist/playlist-specific radios, but for me that feature has been extremely spot-on. In fact, I hadn't used spotify for a while because I kept hearing the same songs, but now I religiously keep on top of my discoveries each week.
It seems like the radios point me towards the most common denominator and plays the most mainstream stuff that matches, while the weekly discovery lists come up with some very quirky stuff that I love.
I guess the radios can't have any "memory", it seems to generate close to one song at a time (hence a lot of repetitions), whereas the discovery list can be created 30 songs at a time and seems to go out of its way to find songs by bands that I've never listened to.
So it's pretty good if you are listening to the same music genre, however, it sucks if you like to change the music based on your mood, etc. I also noticed that it doesn't detect the language the music is in so I often get songs with lyrics in languages that I have no clue about.
Some of the songs have absolutely missed the mark, but there have been others I've found that make me go back and listen to the entire album they're from. Definitely have encountered different languages as well.
And the behavior you described doesn't sound "pretty bad". If you haven't listened to a particular genre in a few weeks, I think it's reasonable you don't get suggestions for it for the upcoming week of listening. But if you do start listening to that genre again, your next playlist will have it.
In fact, one of the biggest issues I have with current methods is that they recommend me more of the same. When I look for new music I want - to some extend - something that is unlike what I've heard before.
Say you listen to Blue Lines by Massive Attack. Chances are, the recommendation engine will recommend you Portishead or Morcheeba. (User likes genre trip hop? let's play more trip hop). But maybe I'd like to explore different forms of UK rap music now...
Last.fm [1] recommends more Massive Attack, or "Aftermath" by Tricky, followed by Portishead. Which is fine, as you said "chances are" that's what's wanted. If you wanted UK rap, you at least used to be able to search for the tags "uk" and "rap", but I can't see that on the new website...
This service[2] uses the Last.fm API to make a Spotify playlist based on a track.
In case of my example such a search would work. However, I guess there are lots of cases where a user doesn't even know what s/he wants. That is: "I want more of the same but it should also be very different"
Now that's quite a task for an algorithm! Also, making suggestions based on empirical user data is rather hard as people are highly emotional, especially when listening to music. Thus, people (in general) are not very predictable when it comes to music.
Individuals might have some core principles when choosing music so that perhaps individual algorithms for individual users could work but coming up with an acceptable one size fits all solution is rather impossible, imo.
Some people are happy when the algorithm suggests another top 40 song they haven't heard yet. Others will loose it when they get more metal songs but none of them is teutonic thrash metal [1]
Now we could empower people by making apps like spotify scriptable so that everyone could refine their recommendation algorithm. But realistically that is not what your average user wants...
Perhaps one could improve the situation by asking the user a few questions when s/he first starts the application. That way the app can choose the best fitting recommendation algorithm from a range of algorithms in the background.
[1] Apparently, this is a thing: https://en.wikipedia.org/wiki/Heavy_metal_subgenres#Teutonic...
Those nice little lists Spotify helpfully shows are almost guaranteed paid-for inclusion (apart from the chart-style lists, to a degree, but that's another ball game). Labels/Record Companies/Promoters etc are almost certainly paying for inclusion there as it drives huge awareness and subsequent merchandise, ticket etc sales. Much like radio airplay, where the station controls the programming, this is where Spotify gets access to the same revenue stream.
So giving me perfect recommendations filtered through an exclusion list for which, let's be honest, the maths and data science for have long been sorted out via standard ad-tech and e-commerce recommendation engines, is simply not going to aid in the value proposition for a nicely curated list they can charge to be in.
As a replacement, I subscribed to popular blogs (popjustice, stereogum...) playlists on Spotify.
It should set it to highest available, or let it be an option.
I like it otherwise!
On an unrelated but interesting note: I'm still trying to figure out their recommended algorithm, it seems to be a mix of tags, and cross-referencing your account with who's liked/played a song. What I don't understand is if I listen to a folk song, it will generally play another completely unrelated folk song but with no folk identifiers (tags). I've concluded it's magic.
Re: recommendations from blogs, did Hype Machine do anything for you?
If I catch up on my SoundCloud stream (posts/reposts) I'll switch over to somebody's list of likes. Some of my favorite producers are buried in their passion for music 24/7 and have upwards of 1000 likes to listen through.
Recommended tracks are nice, and it's something to fill the void if you are low on content from people you follow, but in my opinion it's not that much better than going out and seeking new music and artists in other ways. I'm sure as SoundCloud improves the algorithm though it could automate some of the behaviors I'm doing manually (e.g. playing content from and following users whose content is liked/reposted by the users I follow). It might be doing this already, if maybe only indirectly, I guess I just like having control. One of the most annoying things I'm afraid it could do is promote sponsored music. I love listening to music that people are passionate about, not music that is funded by large amounts of money.
Unfortunately, it requires to be running at spotify-like scale to do something useful, have a large enough library and gather feedback quickly enough :( oh well. I will continue dreaming about it though.
Subjective tastes tend to diverge too rapidly with machine learning.
If (fingers crossed someone is doing this) there was a really easy and non-spammy way for people to build a playlist using _any_ source material into something like muxtape (or opentape) I would use it. Until then, I will just continue to ask them for youtube links and bandcamp profiles.
There are some artists from whom I truly only like one single song from their entire catalogue.
Others, I like every single song, but that is super rare.
And I dont have the time interest or energy to actually attempt to tag or classify music and songs that I do like -- so I just pretty much am stuck listening to the same thing or actually getting individual recommendations from real people.
Many artists are starting collectives which publish albums with a variety of artists approximately monthly, which also is great for discovery.
Of course this only works if your preferred genres are there - if you like future funk, nightcore, and hip hop you're golden.
The UX is utter shit, but the suggestions are great.
For new stuff, I'm fine with a combination of best of 20## lists, following some interesting soundcloud accounts, and idle searching the internet / various subreddits.
Moodlogic worked on my library, I could choose any song, then it would craft a variable length playlist based on that song's mood and instruments. There was a crowd-sourced set of metadata, and I was able to fill in the gaps or correct anything I didn't agree with.
If anyone knows of anything along these lines, I'd be grateful to hear about it.
You will never discover anything really new, your experience will be narrowcasted. Avoid this and let dj's, friends, musicians, people, and just surfing around the internet help you find new music.
Whenever I hear someone excited about automated music discovery a little voice goes off in my head going ..."ohh no".
But if you want to find hits in a genre + time period that you don't know very well, recommendation engines are pretty good, and you don't need to have DJs for that.
For example, do you think someone like DJ shadow who has spent tens of thousands of hours digging in empty, old, dusty basements finding and curating music over a lifetime has the same insight as a dicovery algorithm?
It's not even close to a comparison, the algorithms are lame compared to actual experience and expertise.
I spent 10+ years in the music business as a "buyer" and was later part of a successful music start-up, I can tell you with a resounding "fuck that" to auto discovery unless you like water downed with a side of boring.
Radio DJs, on the other hand, have any number of forces affecting their song choices (to the degree the role exists at all anymore), and all in all they're just as much a black box as an algorithm. Sure, we all had radio shows we liked for some time, but those DJs changed and we found something else (notwithstanding people who have been listening to "Renee and Crazy Pete in the morning" for 20 years).
Even with all of this, I suspect there's a discrete economic or mathematical reason that profit-oriented discovery engines regress to a mean and will always be trying to recommend the latest AdeleBieberNational. They may not, right away, but a few clicks deep in the sidebar and you find LL Cool J or Foo Fighters popping up.
https://developers.google.com/youtube/v3/docs/search/list#re...
https://github.com/archSeer/colibri https://github.com/archSeer/colibri-server
Searching a solution for that for my own sinatra-based html5 webplayer (https://github.com/onli/music-streamer, not even close technically and from the UI) since a long time.
I'm looking into https://github.com/audiocogs to add AAC/other codecs to browsers with no support -- that's the main feature I'm missing with all these web-players, depending on the browser, parts of my library may not play.
Thought that as well, and it seems like there are multiple type headers for ogg. But none worked :/ Also not those that worked on other sites, so I thought about Content-Length and errors in my logic when to transcode. Went nowhere.
> I'm looking into https://github.com/audiocogs to add AAC/other codecs to browsers with no support
If you can install that clientside, that is a great feature. I tried to transcode and stream stuff on the server using ffmpeg, and the big problem was content-length – when streaming I could only estimate the correct setting, leading to some songs being ended too soon. Could've changed by now ofc in the new browser version.
Thanks for the link.
And Aurora.js' doesn't seem to be maintained anymore, I tried very hard to make it build, finding that the build scripts was intended to work on OSX (version unclear), but the developer never mentions it. And even if it builds, the result doesn't really work, Aurora.js, ogg.js, flac.js, alac.js... none of them, as far as I remember.
So actually in the owncloud music app we just downloaded the built js files from the demo site :-p
[1] https://github.com/ampache/ampache/wiki/API#subsonic-api
EDIT: https://github.com/embedly/player.js may save you some time!
I don't really need any features that require server-side processing, and static hosting would essentially reduce the cost to zero, for the amount of storage and bandwidth I would make of it (as well as possibly making it a bit faster).
You want to remember playlists across machines? no longer static You want to modify song info / update cover art? no longer static
But gosh a static music player would be incredibly fast. Put it up on gh-pages and watch it fly!
[1] https://ipfs.io/
Here's a screenshot if anyone's interested http://i.imgur.com/uSBNSeE.png
I've been working on it for the last few years with a few pull requests from awesome members of the community and I'm about to launch auto-generated mixes that allow you to explore music in a way similar to Google Play Music and Spotify (using lastfm api and youtube: here's the module for it https://www.npmjs.com/package/similar-songs )
1 Airport Express for each zone - I have 3 currently - Patio, 1st floor, 2nd floor. (installed 6 in my friends house)
Each "zone" is a named Airplay point on each Airport Express
Airport Express connects to the multi channel amp via headphone > RCA left / right > RCA left right to 1 RCA
Then the amp is hard wired to each in wall speaker.
iOS devices can only stream to 1 Airplay point at a time but iTunes / OS X can stream to multiple at a time.
So the wife or I could be cooking in the kitchen, listening to 1 stream and the party can be outside on the patio listening to another stream
Not cheap at $100 (ish) per Airport Express + amp + speakers but by far cheaper then Sonos and their in wall speakers - not book shelf so theres no clutter.
It's cool to stream from iTunes and fill the entire house with 1 synced stream.
I've only got a single CC Audio at the moment (and one of the original video ones) but I was waiting for them to add this feature before buying more. I've actually wanted this feature since the original CC came out and when they announced the CC Audio I was worried that it would take forever to add the multi-cast capabilities.
Now instead of investing hundreds in a Sonos system I can grab a few $35 receivers and turn every set of random powered PC speakers and shelf system/boom box with an aux-input into an endpoint for audio. And if I want better sound I can always pick up a nicer set of powered speakers and do the same but as cheap as PC speakers can be (I often see them for $5-10 at Goodwill) it's got the potential to add audio to any room for very little cost.
The default sound server for most distros (PulseAudio) supports TCP or RTP streaming. RTP supports multicast (and multiple multicast groups so you can break down your endpoints into multiple groups).
If you want airplay streaming, then there's shairport-sync ( https://github.com/mikebrady/shairport-sync ) that also has multi-room support; each room can map to an ALSA target (which could be a virtual PulseAudio device pointing to a network target). Reportedly (at least when I last checked a few years back) there were some issues experienced compiling with PulseAudio - alternatively you could just run shairport-sync and native ALSA on each of your targets.
Just add a few Raspberry Pis, (and maybe some dedicated DAC boards if you're bothered about sound quality) and you're good to go.
You can use a headless client called softsqueeze (eg raspberry pi). The source media is actually streamed and the clients have to decode it. The protocol handles multi-room sync which I haven't seen elsewhere.
There's also an abandoned implementation of the server in python (LMS is perl) on sourceforge somewhere.
https://github.com/phanan/koel/issues/10
=)
Imagine a future where you can fit 100Tb on an iPod and never have to stream again.
I imagine that it is easier to auto download all the new releases from your favorite genres than it is to try to download everything from all release dates from all the genres that you don't even enjoy.
For example I listen to a lot of music from Japan and a lot of smaller artists who aren't a part of the big labels.
As such I have a few thousand tracks that make up most of my listening time and aren't at all available on Google Play Music, Apple Music or Spotify.
It uses Java, a pile of (insert swear word) so high that nothing comes close.
The default is old and ugly, but works very well. Jamstash (another web interface) looks nice but doesn't work well.
You were just behind the curve. :)
Is this really how people view Spotify?
Edit: interestingly, the product itself doesn't mention Spotify anywhere.
It's developed by the same author of original uTorrent, Ludvig Strigeu.
Nowadays, Spotify kinda bloats with cef and funny feeling HTML5 UI.
Trivia: Ludvig Strigeus also developed Spotiamp http://news.spotify.com/us/2013/12/20/spotiamp-long-live-the...
*Ok it's still an epic task :)
Holy crap, that is quite a claim!
At the moment I have been using Tidal on a trial and I just keep finding so many small features I miss from Rdio. The only thing I like about Tidal is the Lossless option.
I'm in Canada so I didn't realize Deezer wasn't available in the USA.
As far as I know. Deezer is available almost everywhere except the US and Japan. I hope they figure it out soon. I"m glad to hear that you like it.
1. a music recommendation engine
2. social sharing of playlists
3. a music subscription service
To me, those are more important than the player itself -- in fact, I'd say #2 and #3 on that list are the defining aspects of Spotify for the general user, where #1 is more of a personal killer-feature for me.
p.s. Do you really find that Spotify's music discovery is better than last.fm + curated reviews? New Releases could be a differentiator if they would at least offer a filter for full albums (not to mention filters by genre or "recommended for you").
Discover Weekly has been great. Shared playlists are great too. As for radios, they were OK when I first threw my music at them, but now I just hear the same old stuff.
Music subscription was on my list. But, if you already have all the songs you'd listen to, and don't care for finding new music, what do you use it for?
I feel like most music systems, Spotify too, does a kind of violence to the album structure, with all their playlists and shuffling and whatnot. The very idea of "streaming" is vaguely antithetical to the album structure and to the idea of possessing discrete artifacts... If I designed the perfect music player for me, it would almost be a kind of simulator of a record collection with a record player.
Anyway, I am also completely uninterested in Spotify's "social" features. I think their metadata interface is pretty poor and their "Related Artists" is totally haphazard compared to the actual musical knowledge embedded in databases like AllMusicGuide (which I adore).
I also get irrationally upset about Spotify's prominent display of what I call lifestyle propaganda, like their playlists of the day like "Saturday Beach Party Bonanza" or "Yoga Morning Zen Relaxathon" or whatever. (For some reason I never see "Technical Death Metal Tuesday" or "Zappaesque Hell Jazz Extravaganza" or "Lonely Bong Haze Headphone Friday".)
So I dream of a music player with another type of appeal, more album orientation, more facts and knowledge based relational metadata, and better catalogue curation (Spotify's artist pages are overloaded and unorganized and the metadata for classical and jazz especially are messy).
A digital music manager should be at least as good as a physical shelf of albums that you sort, browse, and select; otherwise what's the point? No digital music player has accomplished even that.
Some enhancements a digital album-centric manager would provide over physical items on shelves are: searching and sorting via metadata, putting albums in multiple "Shelves", and tracking listening statistics (not as an aggregate of track statistics, but at the album-level).
My would-be media manager also supports "Mixtapes" (like playlists, except in set order and ideally with a length limit) which can be placed on Shelves alongside released Albums. Similarly, long "Live Recordings" have first-class status like Albums and Mixtapes and can be put on Shelves (even though they may be a single "track"/file). Finally, dynamic playlists of tracks are replaced by "Dynamic Shelves" of Albums/Mixtapes/Recordings, so you can quickly get to your recent-most-played or highly-played-you-haven't-played-recently, but always as sets of songs that should be listened to together, in order.
The main way I do music discovery on Spotify is looking at the "Appears on" section under artists I like. A lot of these are compilations and mixtapes. They've been curated by a person and actually released, so you can get quality, real variety, and real similarity (of taste).
I /do/, however, have a large music library for which a web player/library would be awesome.
Disclaimer -- I have only recently started to use Spotify on a daily basis. And typically I am playing an already known-good-to-me Artist channel, and I am admittedly a newbie to using spotify in general.
With that said though, there was some feature, I believe it was called "discover music while you listen" or some such thing that would play some other artists amongst that which I chose to shuffle/play.
The genres werent even in the same galaxy!
I listen to EDM and industrial almost exclusively. It was interjecting Taylor swift, some country-sounding stuff and some other stuff that I couldnt identify but was the complete opposite of the spectrum from what I was into...
Further, finding a particular song that has the same word in the title as some song that is being heavily pushed seems impossible.
There is some band called TOVE LO -- and any time I search for a song actually titled "habits" not by them - the only thing it shows me is this TOVE LO page...
so, yeah - my experience with their recommendations has been worse than sub par.
I would recommend giving Spotify another shot, maybe spend some time favoriting and saving songs you do like, as it's recommendations have been on point for me.
Maybe she isnt on Spotify... But ill give it a try...
I agree. I think most users find it very difficult to differentiate between features, so Spotify is 1, 2 and 3 all together. This is a sad state of affairs, because it means users are far less able to choose a product or service that solves the problems they actually have.
The wiki page does mention the spotify inspiration, though.
>Using the client component of Koel is dead simple. If you’ve ever used Spotify, you should feel right at home. As a matter of fact, Koel’s client interface is a shameless rip-off of Spotify’s.
It's like calling VLC self-hosted netflix clone.
> It's like calling VLC self-hosted netflix clone.
Only with a VLC skin to make it look like Netflix. And even then, what about library browsing? They're fundamentally different. Netflix recommendations are awful, but they do exist.That's odd, they were amazing to me for about 2-3 years :) but that's one of the things that probably varies a lot from person to person because of different preferences, different availability based on region, etc.
Since I've watched Archer and Arrested Development, Netflix thinks I'd like every mediocre comedy show, since I've watched Sherlock and Luther, it thinks I'd like mediocre non-serialized detective shows, and anything made by the BBC. Watching all of BSG (which isn't even on Netflix anymore, RIP) has given me a permanent section of terrible sci-fi recommendations.
It also recommends me kids shows and cartoons, despite my painstaking completion of the huge preferences list, and many ratings/"not interested"s that clearly state I "never" watch cartoons or kids shows.