composer / source /ui /src /routes /index.svelte
Ron Au
feat(ui): Scroll notes into view on first time
2cfd477
raw
history blame contribute delete
No virus
1.82 kB
<script lang="ts">
import StyleOptions from '$lib/StyleOptions.svelte';
import DensityOptions from '$lib/DensityOptions.svelte';
import TemperatureOptions from '$lib/TemperatureOptions.svelte';
import ComposeButton from '$lib/ComposeButton.svelte';
import Notes from '$lib/Notes.svelte';
import Tokens from '$lib/Tokens.svelte';
import { audioBlob } from '$lib/stores';
</script>
<main>
<h1>Composer</h1>
<p class="heading">Trained on fifteen thousand songs. One AI model. Infinite compositions.</p>
<p>
This space contains a deep neural network model that can compose music. You can use it to generate audio in
different styles, 4 bars at a time.
</p>
<p>
Developed by <a href="https://twitter.com/ronvoluted" rel="noopener" target="_blank">Ron Au</a> and
<a href="https://twitter.com/DrTBehrens" rel="noopener" target="_blank">Tristan Behrens</a>.
</p>
<p>Have fun! And always feel free to send us some feedback and share your compositions!</p>
<section id="options">
<StyleOptions />
<DensityOptions />
<TemperatureOptions />
</section>
<ComposeButton />
{#if $audioBlob}
<Notes />
<Tokens />
{/if}
</main>
<style>
main {
width: 100%;
display: flex;
flex-direction: column;
gap: 1rem;
margin: 0 auto;
}
h1 {
font-size: 1.5rem;
border-left: 0.25ch solid hsl(0 0% 97%);
padding-left: 0.5ch;
}
.heading {
font-size: 2.25rem;
}
p:not(.heading) {
max-width: 40rem;
font-size: 1.2rem;
line-height: 1.5rem;
margin: 0;
}
#options {
display: flex;
flex-direction: column;
justify-content: space-between;
margin-top: 1rem;
}
@media (min-width: 600px) {
main {
max-width: 60rem;
}
}
@media (min-width: 900px) {
#options {
display: flex;
flex-direction: row;
justify-content: space-between;
}
}
</style>