A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

1> A music player that connects to your cloud &amp; distributed storage 2 3[Return to the application](../) 4[CORS instructions](cors/) 5[Developers](dev/) 6 7 8 9## What makes it different? 10 11Diffuse is a decentralized music player consisting out of two main parts. One part is the music and the other is your data <small>(eg. playlists)</small>, both of which are in locations of your choice. Meaning that there's no central server for Diffuse, all of the processing happens on your device and all the data is in your control. You can use the [web version](https://diffuse.sh), the [native version](https://github.com/icidasset/diffuse/releases) or host it yourself by downloading the pre-built packages from [Github](https://github.com/icidasset/diffuse). 12 13 14### Music layer 15 16This layer connects to the services on which your music is stored, no data is written to these services. You can combine all of the following: 17 18- [Amazon S3](https://aws.amazon.com/s3/) 19- [Azure Blob Storage](https://azure.microsoft.com/en-us/services/storage/blobs/) 20- [Azure File Storage](https://azure.microsoft.com/en-us/services/storage/files/) 21- [Dropbox](https://dropbox.com/) 22- [Google Drive](https://drive.google.com/) 23- [IPFS](https://ipfs.io/) <small>(supports DNSLink & IPNS)</small> 24- [WebDAV](https://en.wikipedia.org/wiki/WebDAV) 25 26 27### User layer 28 29This layer will use a single service on which to store your data. Your data being your settings, favourites, playlists, etc. You can choose between these services: 30 31- [Dropbox](https://www.dropbox.com/) 32- [Fission](https://fission.codes/) 33- [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) <small>(Browser)</small> 34- [IPFS](https://ipfs.io/) <small>(using MFS)</small> 35- [RemoteStorage](https://remotestorage.io/) 36 37 38 39<div id="How" /> 40 41## How does it work? 42 43Diffuse locates all the music files on the given services, extracts the metadata and then stores it via the previously-explained user layer. 44 45 46### Supported File Formats 47 48- MP3 49- MP4/M4A 50- FLAC 51- OGG 52- WAV 53- WEBM 54 55<small><em>Note, support may vary depending on your <a href="https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers#Index_of_media_container_formats_file_types">browser</a>.</em></small> 56 57 58 59<div id="UI" /> 60 61## UI 62 63There are a few "hidden" features: 64 65- **Tracks have a context menu** which can be opened by either right clicking, 66 or holding it (ie. a long tap). Use the ALT key whilst right clicking 67 on a track to show the alternative track-context menu with more specialized options. 68- **You can reorder items** in the queue or a playlist with drag-and-drop. 69 Select the item you want to move by tapping on it, then tap and hold to move it around. 70- You can select multiple tracks using the SHIFT key and then add that selection 71 to the queue or a playlist using the context menu. 72- Click on the now-playing bit to scroll to that track. 73- Double tap on a EQ setting to reset it to its default value. 74 75### Playlists 76 77To add something to a playlist, and create that playlist if it doesn't exist yet, you open the context menu of a track. To move tracks around in a playlist, first select the track, then drag it. 78 79### Search 80 81```shell 82# Show me every track where the title, artist or album contains the term 'Parkway' and the term 'Drive'. 83Parkway Drive 84 85# Show me every track of which the artist's name starts with 'park'. 86artist:park 87 88# Show me every track from Parkway Drive of which the album starts with "Deep Blue". 89artist:Parkway Drive album:Deep Blue 90 91# Show me every track from Parkway Drive but not their "Atlas" album. 92artist:Parkway Drive - album:Atlas 93``` 94 95### Keyboard 96 97The app should be usable with only the keyboard, there are various keyboard shortcuts: 98 99```js 100CTRL + K or CMD + K // Show command palette 101 102CTRL + L // Select playlist using autocompletion 103CTRL + N // Scroll to currently-playing track 104CTRL + P // Play / Pause 105CTRL + R // Toggle Repeat 106CTRL + S // Toggle Shuffle 107 108CTRL + [ or ] // Previous / Next 109CTRL + { or } // Seek forwards / Seek backwards 110 111Alternatively you can use the media-control keys, 112if your browser supports it. 113 114ESC // Close overlay, close context-menu, deselect album cover, etc. 115 116CTRL + 1 // Tracks 117CTRL + 2 // Playlists 118CTRL + 3 // Queue 119CTRL + 4 // EQ 120 121CTRL + 8 // Sources 122CTRL + 9 // Settings 123``` 124 125 126 127<div id="QA" /> 128 129## Q&A 130 131### I used version one, where's my data? 132 133There's a small link, or button if you will, on the "Settings → Import / Export" 134page that will allow you to import data from version 1 of the app. Note that this 135will need to reflect the authentication/storage method you chose in version 1. 136 137 138 139<div id="Misc" /> 140 141## 🪐 142 143_Part of the <a href="https://ring.0data.app/#random" target="_blank">App Ring</a>_