Diffuse is a music player that supports various services such as Google Drive and S3, plus decentralized locations such as Webdav and IPFS. It is very easy to use and the latest, stable Electron release can be installed to Windows, MacOS or Linux desktops from here. Music is simply displayed as a list and can be further sorted into playlists. Basic EQ and volume control are available under settings. Development is tracked via the project’s github page. The website Diffuse.sh is a fully functional demo instance, so just start playing music and enjoy!
You can either run Diffuse as a desktop application or a more limited Web application. Only major difference between both options is Nextcloud storage (WebDAV), local storage and keyboard shortcuts are only supported on the desktop Diffuse application. To use the Desktop application with Nextcloud simply:
- Select Sources
- Select Add a New Source
- Select WebDav and add your account credentials.
If you prefer to use the Web Application you’ll need to stick to IPFS, Google Drive, Azure, or S3 Storage.
What I like:
- Easiest Nextcloud compatible Desktop application I’ve ever used!
What I hope is improved:
- Gap less playback, or adding some sort of cache to avoid pauses between tracks.
- WebDAV support in Web Application
It is the ease of use and eye catching design that stand out for me, plus actual support for the IPFS Protocol. Most applications available for self-hosters are ugly and unfriendly, so I’m excited to see a piece of software visually bucking that trend. Development is on-going, so it’ll be exciting to continue following this project. An interview with the developer follows…
An Interview with the Lead Developer, Steven Vandevelde
What inspired you to create Diffuse?
I used Spotify quite a bit before, but now and then they would remove music that I liked.
A large part of my music collection also can’t be found on streaming services.
I decided then to just put everything on Amazon S3 and make my own music “streaming” app.
Amazon S3 yes, all my music is still on there. Haven’t used Spotify in years.
– Cryptography (I wrote my own HMAC implementation and a lot of SHA usage)
– Talking to other services is not easy, they all have their own idea of security
– Protocols are great, except that, a lot of software that uses them don’t implement them properly (I’m looking at you WebDAV)
– Audio formats, web workers, string encodings, swift/ios, native apps, etc.
I don’t really use much software that is hosted. Like Diffuse, I tend to use software that runs on my OS and uses local/cloud storage to store things.
I would like to encrypt the user’s data in version 2, but I haven’t found a great/simple solution yet.
Sadly no. I haven’t found the need to self-host anything except music.
I’m open to suggestions though.
What inspired your UI? Other projects on your Github also have a strong visual component, which I do not see in most software.
I got inspired a lot by this old mixing console I got back in the day.
I can’t find a picture of the one I got, but it looked somewhat like this:
So I had some time to make it look good.
I appreciate a good UI so I try to reflect that as well in my work.