lazy
This commit is contained in:
parent
6f65168fb8
commit
0c42541b31
|
@ -0,0 +1,7 @@
|
||||||
|
<html>
|
||||||
|
<head><title>404 Not Found</title></head>
|
||||||
|
<body>
|
||||||
|
<center><h1>404 Not Found</h1></center>
|
||||||
|
<hr><center>nginx/1.18.0</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,95 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>GROẞE FUGE</title>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta name="author" content="ir">
|
||||||
|
<meta name="description" content="i.a.r.">
|
||||||
|
|
||||||
|
<script src="//unpkg.com/tone"></script>
|
||||||
|
<script>
|
||||||
|
function playNote() {
|
||||||
|
// create a synth
|
||||||
|
const synth = new Tone.Synth().toDestination();
|
||||||
|
// play a note from that synth
|
||||||
|
synth.triggerAttackRelease("C4", "8n");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="style/style.css">
|
||||||
|
<link rel="stylesheet" href="https://envs.net/css/fork-awesome.min.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="body" class="dark-mode">
|
||||||
|
<main>
|
||||||
|
<section style="clear: both; text-align: center;" class="center">
|
||||||
|
<p>×××××</p>
|
||||||
|
<h1>GROẞE FUGE</h1>
|
||||||
|
<button>invocation</button>
|
||||||
|
<p>×××××</p>
|
||||||
|
</section>
|
||||||
|
<address>
|
||||||
|
<a href="mailto:ir@envs.net">📧 malmö me 🐐</a>
|
||||||
|
</address>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<section id="sidebar">
|
||||||
|
<pre class="sidebar">
|
||||||
|
more text
|
||||||
|
</pre>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
currentMidi = "";
|
||||||
|
async function populate() {
|
||||||
|
const requestURL = 'inc/große_fuge.json';
|
||||||
|
const request = new Request(requestURL);
|
||||||
|
const response = await fetch(request);
|
||||||
|
currentMidi = await response.json();
|
||||||
|
}
|
||||||
|
populate();
|
||||||
|
|
||||||
|
|
||||||
|
const synths = [];
|
||||||
|
document
|
||||||
|
.querySelector("button")
|
||||||
|
.addEventListener("click", (e) => {
|
||||||
|
const playing = e.detail;
|
||||||
|
if (playing && currentMidi) {
|
||||||
|
const now = Tone.now() + 0.5;
|
||||||
|
currentMidi.tracks.forEach((track) => {
|
||||||
|
const sin2 = new Tone.OmniOscillator(432, "sine1");
|
||||||
|
|
||||||
|
//create a synth for each track
|
||||||
|
const synth = new Tone.PolySynth(Tone.Synth, {
|
||||||
|
oscillator: this.sin2,
|
||||||
|
envelope: {
|
||||||
|
attack: 0.02,
|
||||||
|
decay: 0.1,
|
||||||
|
sustain: 0.3,
|
||||||
|
release: 1,
|
||||||
|
},
|
||||||
|
}).toDestination();
|
||||||
|
synths.push(synth);
|
||||||
|
//schedule all of the events
|
||||||
|
track.notes.forEach((note) => {
|
||||||
|
synth.triggerAttackRelease(
|
||||||
|
note.name,
|
||||||
|
note.duration,
|
||||||
|
note.time + now,
|
||||||
|
note.velocity
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
//dispose the synth and make a new one
|
||||||
|
while (synths.length) {
|
||||||
|
const synth = synths.shift();
|
||||||
|
synth.disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,316 @@
|
||||||
|
@import url(https://envs.net/fonts/jetbrains-mono/font.css);
|
||||||
|
* {
|
||||||
|
font-family: 'JetBrains Mono','monospace'
|
||||||
|
}
|
||||||
|
body,input,select,textarea {
|
||||||
|
color: #353;
|
||||||
|
font-size: 16pt;
|
||||||
|
line-height: 1.65em;
|
||||||
|
letter-spacing: -.015em
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
background: #f5f5f5
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
position: fixed;
|
||||||
|
text-align: center;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
padding: 1em;
|
||||||
|
background: #f5f5f5
|
||||||
|
}
|
||||||
|
main {
|
||||||
|
float: left;
|
||||||
|
margin: 0 0 2em 4em;
|
||||||
|
padding-bottom: 4em
|
||||||
|
}
|
||||||
|
#header_sub {
|
||||||
|
margin-left: 6em
|
||||||
|
}
|
||||||
|
#sidebar {
|
||||||
|
background: #2f4f4f;
|
||||||
|
color: #708090;
|
||||||
|
float: right;
|
||||||
|
padding: 0 2.5em 2.5em 0
|
||||||
|
}
|
||||||
|
#left_box {
|
||||||
|
float: left;
|
||||||
|
padding-right: 1em
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
outline: 0;
|
||||||
|
border-bottom-color: transparent;
|
||||||
|
text-decoration: none;
|
||||||
|
color: teal
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
border-bottom: 1px dotted
|
||||||
|
}
|
||||||
|
summary.menu {
|
||||||
|
outline: 0
|
||||||
|
}
|
||||||
|
summary.menu:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
color: teal
|
||||||
|
}
|
||||||
|
blockquote {
|
||||||
|
border-left: 4px solid silver;
|
||||||
|
font-style: italic;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 0 1.5em 4em
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
font-family: monospace;
|
||||||
|
background: silver;
|
||||||
|
color: #353
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding: 0
|
||||||
|
}
|
||||||
|
pre.clean {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0
|
||||||
|
}
|
||||||
|
pre.banner {
|
||||||
|
line-height: 1.2em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
padding: 0
|
||||||
|
}
|
||||||
|
h1,h2,h3,h4,h5,h6 {
|
||||||
|
display: block;
|
||||||
|
line-height: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: .6em 0
|
||||||
|
}
|
||||||
|
hr.half {
|
||||||
|
width: 50%;
|
||||||
|
text-align: left;
|
||||||
|
margin-left: 0
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0
|
||||||
|
}
|
||||||
|
ol,ul {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 0 0 2em
|
||||||
|
}
|
||||||
|
.ol.userlist,ul.userlist {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 0 0 1.2em
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
width: 100%
|
||||||
|
}
|
||||||
|
td,th,tr {
|
||||||
|
text-align: left;
|
||||||
|
padding: 0
|
||||||
|
}
|
||||||
|
.table_pkg tbody tr:nth-child(2n) {
|
||||||
|
background: silver
|
||||||
|
}
|
||||||
|
.tw20 {
|
||||||
|
width: 20px
|
||||||
|
}
|
||||||
|
.tw25 {
|
||||||
|
width: 25px
|
||||||
|
}
|
||||||
|
.tw80 {
|
||||||
|
width: 80px
|
||||||
|
}
|
||||||
|
.tw100 {
|
||||||
|
width: 100px
|
||||||
|
}
|
||||||
|
.tw110 {
|
||||||
|
width: 110px
|
||||||
|
}
|
||||||
|
.tw130 {
|
||||||
|
width: 130px
|
||||||
|
}
|
||||||
|
.tw140 {
|
||||||
|
width: 140px
|
||||||
|
}
|
||||||
|
.tw160 {
|
||||||
|
width: 160px
|
||||||
|
}
|
||||||
|
.tw280 {
|
||||||
|
width: 280px
|
||||||
|
}
|
||||||
|
.clean,form,input {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0
|
||||||
|
}
|
||||||
|
textarea {
|
||||||
|
padding: .3em 1em;
|
||||||
|
margin: 0 0 -.5em;
|
||||||
|
border: 1px solid #353;
|
||||||
|
border-radius: 10px
|
||||||
|
}
|
||||||
|
input[type=button],input[type=submit],input[type=text] {
|
||||||
|
font-size: 120%;
|
||||||
|
background-color: silver;
|
||||||
|
color: #353;
|
||||||
|
border-radius: 10px;
|
||||||
|
border: 1px solid #353;
|
||||||
|
text-decoration: none;
|
||||||
|
padding: .3em 1em
|
||||||
|
}
|
||||||
|
input[type=button]:hover,input[type=submit]:hover {
|
||||||
|
font-size: 120%;
|
||||||
|
background-color: #211921;
|
||||||
|
color: #ddd
|
||||||
|
}
|
||||||
|
input[type=file] {
|
||||||
|
font-size: 120%;
|
||||||
|
color: #353;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
padding: .3em 1em .3em 0
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
font-size: 120%;
|
||||||
|
border-radius: 10px;
|
||||||
|
border: none;
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: silver;
|
||||||
|
color: #353
|
||||||
|
}
|
||||||
|
button:hover {
|
||||||
|
background-color: #211921;
|
||||||
|
color: #fff5ee
|
||||||
|
}
|
||||||
|
.clear {
|
||||||
|
clear: both
|
||||||
|
}
|
||||||
|
.mark {
|
||||||
|
color: teal
|
||||||
|
}
|
||||||
|
.alert {
|
||||||
|
color: #353;
|
||||||
|
background: silver;
|
||||||
|
margin: 0 0 1.5em;
|
||||||
|
padding: .5em 1em 1.5em
|
||||||
|
}
|
||||||
|
.block {
|
||||||
|
border-left: 4px solid silver;
|
||||||
|
margin: .8em 0 1em;
|
||||||
|
padding: .8em 0 .8em 4em
|
||||||
|
}
|
||||||
|
.center {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%) translateY(-50%)
|
||||||
|
}
|
||||||
|
.button_back {
|
||||||
|
float: left;
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-left: .4em;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0
|
||||||
|
}
|
||||||
|
body.light-mode {
|
||||||
|
background: #f5f5f5;
|
||||||
|
color: #353
|
||||||
|
}
|
||||||
|
body.light-mode footer {
|
||||||
|
border-top: 2px solid silver;
|
||||||
|
background: #f5f5f5
|
||||||
|
}
|
||||||
|
body.light-mode blockquote {
|
||||||
|
border-left: 4px solid silver
|
||||||
|
}
|
||||||
|
body.light-mode code {
|
||||||
|
color: #353;
|
||||||
|
background: silver
|
||||||
|
}
|
||||||
|
body.light-mode .table_pkg tbody tr:nth-child(2n) {
|
||||||
|
background: silver
|
||||||
|
}
|
||||||
|
body.light-mode input[type=button],body.light-mode input[type=submit],body.light-mode input[type=text] {
|
||||||
|
background-color: silver;
|
||||||
|
color: #353;
|
||||||
|
border: 1px solid #353
|
||||||
|
}
|
||||||
|
body.light-mode input[type=button]:hover,body.light-mode input[type=submit]:hover {
|
||||||
|
background-color: #211921;
|
||||||
|
color: #fff5ee
|
||||||
|
}
|
||||||
|
body.light-mode input[type=file] {
|
||||||
|
color: #353;
|
||||||
|
background-color: #f5f5f5
|
||||||
|
}
|
||||||
|
body.light-mode textarea {
|
||||||
|
background: silver;
|
||||||
|
color: #353;
|
||||||
|
border: 1px solid #353
|
||||||
|
}
|
||||||
|
body.light-mode button {
|
||||||
|
background-color: silver;
|
||||||
|
color: #353
|
||||||
|
}
|
||||||
|
body.light-mode button:hover {
|
||||||
|
background-color: #211921;
|
||||||
|
color: #fff5ee
|
||||||
|
}
|
||||||
|
body.light-mode .alert {
|
||||||
|
color: #353;
|
||||||
|
background: silver
|
||||||
|
}
|
||||||
|
body.light-mode .block,body.light-mode .block_head {
|
||||||
|
border-left: 4px solid silver
|
||||||
|
}
|
||||||
|
body.dark-mode {
|
||||||
|
color: #fff5ee;
|
||||||
|
background: #040304
|
||||||
|
}
|
||||||
|
body.dark-mode footer {
|
||||||
|
border-top: 2px solid #211921;
|
||||||
|
background: #040304
|
||||||
|
}
|
||||||
|
body.dark-mode blockquote {
|
||||||
|
border-left: 4px solid #211921
|
||||||
|
}
|
||||||
|
body.dark-mode code {
|
||||||
|
color: #ddd;
|
||||||
|
background: #211921
|
||||||
|
}
|
||||||
|
body.dark-mode .table_pkg tbody tr:nth-child(2n) {
|
||||||
|
background: #211921
|
||||||
|
}
|
||||||
|
body.dark-mode input[type=button],body.dark-mode input[type=submit],body.dark-mode input[type=text] {
|
||||||
|
background-color: #211921;
|
||||||
|
color: #ddd;
|
||||||
|
border: 1px solid #ddd
|
||||||
|
}
|
||||||
|
body.dark-mode input[type=button]:hover,body.dark-mode input[type=submit]:hover {
|
||||||
|
background-color: silver;
|
||||||
|
color: #353
|
||||||
|
}
|
||||||
|
body.dark-mode input[type=file] {
|
||||||
|
color: #ddd;
|
||||||
|
background-color: #040304
|
||||||
|
}
|
||||||
|
body.dark-mode textarea {
|
||||||
|
color: #ddd;
|
||||||
|
background: #211921;
|
||||||
|
border: 1px solid #ddd
|
||||||
|
}
|
||||||
|
body.dark-mode button {
|
||||||
|
background-color: #211921;
|
||||||
|
color: #ddd
|
||||||
|
}
|
||||||
|
body.dark-mode button:hover {
|
||||||
|
background-color: silver;
|
||||||
|
color: #353
|
||||||
|
}
|
||||||
|
body.dark-mode .alert {
|
||||||
|
color: #ddd;
|
||||||
|
background: #211921
|
||||||
|
}
|
||||||
|
body.dark-mode .block,body.dark-mode .block_head {
|
||||||
|
border-left: 4px solid #211921
|
||||||
|
}
|
Loading…
Reference in New Issue