-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
90 lines (82 loc) · 2.61 KB
/
index.html
File metadata and controls
90 lines (82 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.7.61/Tone.js"></script>
<script src="synth.js"></script>
<style>
* {
outline: none;
}
.piano {
display: grid;
grid-template-columns: repeat(24, 1fr);
}
.key {
border: 2px solid black;
border-left-width: 0;
background: white;
list-style: none;
height: 6rem;
}
.key:first-of-type {
border-left-width: 2px;
}
.key.black {
background: black;
}
.key:hover { filter: brightness(0.9); }
.key:active { filter: brightness(0.7); }
.key.black:hover { background: #333; }
.key.black:active { background: #666; }
</style>
</head>
<body>
<label>
<span>Waveform</span>
<select id="waveform">
<option value="sine">Sine</option>
<option value="square">Square</option>
<option value="triangle">Triangle</option>
<option value="sawtooth">Saw tooth</option>
</select>
</label>
<label>
<span>Distortion</span>
<input id="distortion" type="range" min="0" max="1" step="0.01">
</label>
<label>
<span>Ping Pong</span>
<input id="pingPong" type="range" min="0" max="2" step="0.1">
</label>
<div class="piano">
<!-- First octave -->
<button data-key="c4" class="key"></button>
<button data-key="c#4" class="key black"></button>
<button data-key="d4" class="key"></button>
<button data-key="d#4" class="key black"></button>
<button data-key="e4" class="key"></button>
<button data-key="f4" class="key"></button>
<button data-key="f#4" class="key black"></button>
<button data-key="g4" class="key"></button>
<button data-key="g#4" class="key black"></button>
<button data-key="a4" class="key"></button>
<button data-key="a#4" class="key black"></button>
<button data-key="b4" class="key"></button>
<!-- Second octave -->
<button data-key="c5" class="key"></button>
<button data-key="c#5" class="key black"></button>
<button data-key="d5" class="key"></button>
<button data-key="d#5" class="key black"></button>
<button data-key="e5" class="key"></button>
<button data-key="f5" class="key"></button>
<button data-key="f#5" class="key black"></button>
<button data-key="g5" class="key"></button>
<button data-key="g#5" class="key black"></button>
<button data-key="a5" class="key"></button>
<button data-key="a#5" class="key black"></button>
</div>
</body>
</html>