Guide

Concept

Diffuse is unlike traditional software; instead of combining several features into a single user interface and producing data output, we do the opposite, we start with the data and work our way up from there.

It provides every user the ability to choose which features and interfaces they want to layer on top of their data.

These features and interfaces are housed into units that we call "facets". They consist of Diffuse elements that are connected, they broadcast their state and the parts of your data that have been updated.

Finally, facets are just regular web pages so they can live wherever. We save them to the user-data storage that's configured and give the user the option to share it. This means that you can load features and interfaces from other people, building software cooperatively.

Getting started

  • Add some audio files or streams. The wide range of connect interfaces can be used for this, or use the demo from the tutorial below.
  • Wait until the processing of audio sources into tracks is completed. You can monitor it using this interface. The tutorial demo will show it directly.
  • Explore the interfaces that can be used to play and manage your audio. Check out the featured interfaces.
  • Continue exploring, enable some additional features such as making played audio available offline automatically.
  • Sync your configuration and playlists with your other devices. Or share it with other people.

Tutorial

Diffuse is not your typical streaming service, you have to add sources of audio so you have stuff to play. This button below adds some demo content, so you can experiment with the software right away. Wait until processing is completed.

Now we should explore what is possible with our audio. Because Diffuse is cooperative and malleable software, our interface can look like anything, and we can pick the features we like. That might sound overwhelming, so we'll start with a simple example.

By default a feature is enabled which puts audio in the queue automatically. Let's pick an interface to play what got put into the queue for us.

Play audio

You can disable the "Automatic Queue" feature on your dashboard by deleting that item, or toggling it off on the playback category page. Next, reload the interface that plays your audio; now there won't be anything in the queue.

Interfaces can also be added to your dashboard, but it's not required, you can try them out right away by clicking the link in their title. For interfaces that are more like traditional web applications, delivering more encompassing experiences, look at themes.

When you're ready to add your own audio, a useful place to start is the "Connect" interface which summarises which inputs you can add. For more, check out the "Input & Output" category.

Add audio input

The connect interface also shows some options that can be used for syncing your user-data, that's your playlists, configured audio inputs, etc. By default everything is saved in your browser.

Lastly, don't forget that you can create, edit and share both features + interfaces. LLMs (AI) can also be used to create or edit them. To edit something, you first add it to your dashboard and then click the edit button, which will load it in the editor on the build page. The build page has some examples and documentation of how that system works.