···2020<!-- BUILD -->
2121<section style="margin-top: var(--space-lg);">
2222 <form id="build-form" class="columns">
2323- <div class="flex">
2323+ <div class="flex" style="flex-basis: 35%">
2424 <div id="html-input-container" class="code-editor monospace-font">
2525 </div>
2626 </div>
27272828- <div style="flex: 1; max-width: var(--container-sm)">
2828+ <div style="flex: 1; font-size: var(--fs-sm); max-width: var(--container-sm)">
2929 <p style="margin-top: 0">
3030 Your code here builds on the <a href="#foundation">foundation</a> listed below, and will be injected into a <span style="white-space: nowrap"><code><div id="container"></code></span> element in the body.
3131 </p>
···5757 <h2 id="foundation">Foundation</h2>
58585959 <p>
6060- Diffuse comes with a foundation that preconfigures all elements so you don't have to set them up yourself, along with a combination of elements for certain features. It internally tracks the DOM addition of the custom elements, so no need to worry about setting up an element multiple times.
6060+ <strong>Diffuse comes with a foundation that preconfigures a lot of elements so you don't have to set them up yourself</strong>, along with a combination of elements for certain features. It internally tracks the DOM addition of the custom elements, so no need to worry about setting up an element multiple times. It also provides signals which can be used to track element creations. An example of this can be found in the "scrobbles" feature.
6161+ </p>
6262+ <p>
6363+ That said, you are not required not use this! You can, for example, setup a Diffuse audio engine element yourself that's in a different group so that it doesn't communicate with the default one; in case you want to make a dj-deck, or something like that, which would have multiple audio items playing at the same time. This does mean you will need to pay attention to more things, such as, how does this interact with other features the user has enabled.
6164 </p>
6265 <p>
6363- <small><i class="ph-fill ph-info"></i> Refer to the <a href="#elements">elements index</a> to find out what each element does.</small>
6666+ <small><i class="ph-fill ph-info"></i> Refer to the <a href="elements/">elements index</a> to find out what each element does.</small>
6467 </p>
6568 <div class="code-block">
6669 <code>
···1010 - vendor/@phosphor-icons/web/fill/style.css
11111212scripts:
1313- - index.js
1413 - common/pages/version-upgrade.js
15141615# ELEMENTS
···306305307306 <!-- DEFINITIONS -->
308307 <section>
309309- <h2 id="definitions">Definitions</h2>
308308+ <h2 id="definitions" style="color: var(--accent)">Definitions</h2>
310309311310 <p>All of the elements here are built with these data definitions in mind. That said, you can mix elements that use different definitions; you just have to put a transformer between them in order to translate between them, if needed.</p>
312311
+33-11
src/guide.vto
···6677<h1 hidden>Guide</h1>
8899+<style>
1010+ strong {
1111+ font-weight: 600;
1212+ }
1313+</style>
1414+915<div class="columns">
1016 <section>
1117 <h3>Concept</h3>
···3036 <section>
3137 <h3>Getting started</h3>
32383333- <ul style="display: flex; flex-direction: column; gap: var(--space-sm); padding-left: 0">
3939+ <p>
4040+ <small><i class="ph-fill ph-info"></i> <em>There's a <a href="guide/#tutorial">tutorial</a> below if you prefer a long-form introduction.</em></small>
4141+ </p>
4242+4343+ <ul style="display: flex; flex-direction: column; gap: var(--space-md); margin-top: var(--space-md); padding-left: 0">
3444 <!-- 1 -->
3535- <li class="with-icon" style="gap: var(--space-xs)">
3636- <i class="ph-fill ph-file-audio"></i>
3737- <span>Add audio files or streams. The <a href="{{ ('facets/data/connect/index.html') |> facetLoaderURL }}">connect</a> interfaces can be used for this, or use the demo from the tutorial below.</span>
4545+ <li class="with-icon" style="gap: var(--space-sm)">
4646+ <i class="ph-fill ph-file-audio" style="opacity: 0.4"></i>
4747+ <span><strong>Add some audio files or streams.</strong> The <a href="{{ ('facets/data/connect/index.html') |> facetLoaderURL }}">connect</a> interfaces can be used for this, or use the demo from the tutorial below.</span>
3848 </li>
39494050 <!-- 2 -->
4141- <li class="with-icon" style="gap: var(--space-xs)">
4242- <i class="ph-fill ph-gear-six"></i>
4343- <span>Wait until the processing of audio sources into tracks is completed.</span>
5151+ <li class="with-icon" style="gap: var(--space-sm)">
5252+ <i class="ph-fill ph-gear-six" style="opacity: 0.4"></i>
5353+ <span><strong>Wait until the processing of audio sources into tracks is completed.</strong> The demo button will show you the status or you can monitor it using this <a href="{{ ('facets/data/process-tracks/index.html') |> facetLoaderURL }}">interface</a>.</span>
4454 </li>
45554656 <!-- 3 -->
4747- <li class="with-icon" style="gap: var(--space-xs)">
4848- <i class="ph-fill ph-paint-brush"></i>
4949- <span>Explore the interfaces that can be used.</span>
5757+ <li class="with-icon" style="gap: var(--space-sm)">
5858+ <i class="ph-fill ph-paint-brush" style="opacity: 0.4"></i>
5959+ <span><strong style="color: var(--accent-twist-2)">Explore the interfaces that can be used.</strong> Check out the <a href="featured/?filter=interface">featured interfaces</a>.</span>
6060+ </li>
6161+6262+ <!-- 4 -->
6363+ <li class="with-icon" style="gap: var(--space-sm)">
6464+ <i class="ph-fill ph-sparkle" style="opacity: 0.4"></i>
6565+ <span><strong style="color: var(--accent-twist-4)">Continue exploring, enable some additional features</strong>, such as making played audio available offline automatically.</span>
6666+ </li>
6767+6868+ <!-- 5 -->
6969+ <li class="with-icon" style="gap: var(--space-sm)">
7070+ <i class="ph-fill ph-person" style="opacity: 0.4"></i>
7171+ <span><strong>Sync your user-data with your other devices.</strong> Or share your data with other people.</span>
5072 </li>
5173 </ul>
5274 </section>
5375</div>
54765577<section>
5656- <h3>Tutorial</h3>
7878+ <h3 id="tutorial">Tutorial</h3>
57795880 <p>
5981 <strong>Diffuse is not your typical streaming service, we have to add sources of audio so we have stuff to play.</strong> This button below adds some demo content, so you can experiment with the software right away.