admin
commited on
Commit
·
893621a
1
Parent(s):
9ac82f2
upl codes
Browse files- .gitattributes +10 -11
- README.md +1 -1
- css/style.css +31 -0
- index.html +255 -18
- js/calculator.js +387 -0
- src/+42.png +0 -0
- src/+6+43.png +0 -0
- src/+64.png +0 -0
- src/+643.png +0 -0
- src/+65.png +0 -0
- src/+6b5.png +0 -0
- src/2+.png +0 -0
- src/4+2.png +0 -0
- src/4+b3.png +0 -0
- src/42.png +0 -0
- src/43.png +0 -0
- src/4b.png +0 -0
- src/4b3.png +0 -0
- src/5+.png +0 -0
- src/5+3.png +0 -0
- src/53.png +0 -0
- src/54.png +0 -0
- src/6+43.png +0 -0
- src/64.png +0 -0
- src/642.png +0 -0
- src/643.png +0 -0
- src/65+.png +0 -0
- src/65+3.png +0 -0
- src/65.png +0 -0
- src/65b.png +0 -0
- src/65b3.png +0 -0
- src/6slash.png +0 -0
- src/6slash4.png +0 -0
- src/6slash5.png +0 -0
- src/6slashb5.png +0 -0
- src/7+.png +0 -0
- src/7+3.png +0 -0
- src/73.png +0 -0
- src/74.png +0 -0
- src/742.png +0 -0
- src/743.png +0 -0
- src/754.png +0 -0
- src/84.png +0 -0
- src/853.png +0 -0
- style.css +0 -28
.gitattributes
CHANGED
@@ -1,35 +1,34 @@
|
|
1 |
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
*.bin filter=lfs diff=lfs merge=lfs -text
|
|
|
4 |
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
-
*.
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bin.* filter=lfs diff=lfs merge=lfs -text
|
5 |
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
|
|
6 |
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
|
|
11 |
*.model filter=lfs diff=lfs merge=lfs -text
|
12 |
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
13 |
*.onnx filter=lfs diff=lfs merge=lfs -text
|
14 |
*.ot filter=lfs diff=lfs merge=lfs -text
|
15 |
*.parquet filter=lfs diff=lfs merge=lfs -text
|
16 |
*.pb filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
17 |
*.pt filter=lfs diff=lfs merge=lfs -text
|
18 |
*.pth filter=lfs diff=lfs merge=lfs -text
|
19 |
*.rar filter=lfs diff=lfs merge=lfs -text
|
|
|
20 |
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
21 |
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
|
|
22 |
*.tflite filter=lfs diff=lfs merge=lfs -text
|
23 |
*.tgz filter=lfs diff=lfs merge=lfs -text
|
|
|
24 |
*.xz filter=lfs diff=lfs merge=lfs -text
|
25 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
26 |
+
*.zstandard filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tfevents* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.db* filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.ark* filter=lfs diff=lfs merge=lfs -text
|
30 |
+
**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text
|
31 |
+
**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text
|
32 |
+
**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
---
|
2 |
title: Figured Bass Calculator
|
3 |
-
emoji:
|
4 |
colorFrom: red
|
5 |
colorTo: red
|
6 |
sdk: static
|
|
|
1 |
---
|
2 |
title: Figured Bass Calculator
|
3 |
+
emoji: 🎵🖥️
|
4 |
colorFrom: red
|
5 |
colorTo: red
|
6 |
sdk: static
|
css/style.css
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
table {
|
2 |
+
border-collapse: collapse;
|
3 |
+
}
|
4 |
+
|
5 |
+
#chord {
|
6 |
+
margin: 0 auto;
|
7 |
+
display: block;
|
8 |
+
}
|
9 |
+
|
10 |
+
a {
|
11 |
+
text-decoration: none;
|
12 |
+
display: block;
|
13 |
+
float: right;
|
14 |
+
}
|
15 |
+
|
16 |
+
#demo {
|
17 |
+
display: contents;
|
18 |
+
}
|
19 |
+
|
20 |
+
select {
|
21 |
+
width: 100%;
|
22 |
+
}
|
23 |
+
|
24 |
+
video {
|
25 |
+
width: 480px;
|
26 |
+
aspect-ratio: 16/9;
|
27 |
+
}
|
28 |
+
|
29 |
+
#maintab {
|
30 |
+
margin: 0 auto;
|
31 |
+
}
|
index.html
CHANGED
@@ -1,19 +1,256 @@
|
|
1 |
-
<!
|
2 |
<html>
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
<html>
|
3 |
+
|
4 |
+
<head>
|
5 |
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
6 |
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
7 |
+
<meta name="robots" content="index, follow">
|
8 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
9 |
+
<script type="text/javascript" src="./js/calculator.js"></script>
|
10 |
+
<link rel="stylesheet" href="./css/style.css">
|
11 |
+
</head>
|
12 |
+
|
13 |
+
<body style="background: white;">
|
14 |
+
<table border="1" id="maintab">
|
15 |
+
<tbody>
|
16 |
+
<tr>
|
17 |
+
<td>教程 (Tutorial)</td>
|
18 |
+
<td>
|
19 |
+
<video
|
20 |
+
src="https://www.modelscope.cn/studio/Genius-Society/figured_bass_calculator/resolve/master/src/demo.mp4"
|
21 |
+
controls muted loop autoplay></video>
|
22 |
+
</td>
|
23 |
+
</tr>
|
24 |
+
<tr>
|
25 |
+
<td class="col-1"><label for="key">中心音 (Key)</label></td>
|
26 |
+
<td class="col-2">
|
27 |
+
<select id="key">
|
28 |
+
<option value="Cb">C♭</option>
|
29 |
+
<option value="Gb">G♭</option>
|
30 |
+
<option value="Db">D♭</option>
|
31 |
+
<option value="Ab">A♭</option>
|
32 |
+
<option value="Eb">E♭</option>
|
33 |
+
<option value="Bb">B♭</option>
|
34 |
+
<option value="F">F</option>
|
35 |
+
<option value="C" selected="selected">C</option>
|
36 |
+
<option value="G">G</option>
|
37 |
+
<option value="D">D</option>
|
38 |
+
<option value="A">A</option>
|
39 |
+
<option value="E">E</option>
|
40 |
+
<option value="B">B</option>
|
41 |
+
<option value="F#">F♯</option>
|
42 |
+
<option value="C#">C♯</option>
|
43 |
+
</select>
|
44 |
+
</td>
|
45 |
+
</tr>
|
46 |
+
<tr>
|
47 |
+
<td><label for="key">大小调 (Mode)</label></td>
|
48 |
+
<td>
|
49 |
+
<select id="mode" onchange="change_mode()">
|
50 |
+
<option value="Major" selected="selected">大调 (Major)</option>
|
51 |
+
<option value="Minor">小调 (Minor)</option>
|
52 |
+
</select>
|
53 |
+
</td>
|
54 |
+
</tr>
|
55 |
+
<tr>
|
56 |
+
<td><label for="bassNote">低音 (Bass Note)</label></td>
|
57 |
+
<td>
|
58 |
+
<select id="bassNote">
|
59 |
+
<option value="C" selected="selected">C</option>
|
60 |
+
<option value="D">D</option>
|
61 |
+
<option value="E">E</option>
|
62 |
+
<option value="F">F</option>
|
63 |
+
<option value="G">G</option>
|
64 |
+
<option value="A">A</option>
|
65 |
+
<option value="B">B</option>
|
66 |
+
</select>
|
67 |
+
</td>
|
68 |
+
</tr>
|
69 |
+
<tr>
|
70 |
+
<td><label for="accidental">变音记号 (Accidental)</label></td>
|
71 |
+
<td>
|
72 |
+
<select id="accidental">
|
73 |
+
<option value="bb">♭♭</option>
|
74 |
+
<option value="b">♭</option>
|
75 |
+
<option value="" selected="selected"> </option>
|
76 |
+
<option value="n">♮</option>
|
77 |
+
<option value="#">♯</option>
|
78 |
+
<option value="##">♯♯</option>
|
79 |
+
</select>
|
80 |
+
</td>
|
81 |
+
</tr>
|
82 |
+
<tr>
|
83 |
+
<td><label for="figures">数字 Figure(s)</label></td>
|
84 |
+
<td>
|
85 |
+
<span class="dropdown">
|
86 |
+
<span class="dropdown-content" id="dropdown">
|
87 |
+
<table border="1">
|
88 |
+
<tbody>
|
89 |
+
<tr>
|
90 |
+
<td><input type="radio" name="figures" class="figure" value="noFigure" id="noFigure"
|
91 |
+
checked="checked" onclick="close_dropdown()"><label for="noFigure">无数字 (No figure)</label>
|
92 |
+
</td>
|
93 |
+
<td><input type="radio" name="figures" class="figure" value="0" id="0"
|
94 |
+
onclick="close_dropdown()"><label for="0">Tasto solo</label></td>
|
95 |
+
<td><input type="radio" name="figures" class="figure" value="42" id="2"
|
96 |
+
onclick="close_dropdown()"><label for="2">2</label></td>
|
97 |
+
<td><input type="radio" name="figures" class="figure" value="4#2" id="4#2"
|
98 |
+
onclick="close_dropdown()"><label for="4#2">♯2 or <img class="single-figure" src="./src/2+.png"
|
99 |
+
height="15" valign="middle" alt="2+"></label></td>
|
100 |
+
<td><input type="radio" name="figures" class="figure" value="3" id="3"
|
101 |
+
onclick="close_dropdown()"><label for="3">3</label></td>
|
102 |
+
</tr>
|
103 |
+
<tr>
|
104 |
+
<td><input type="radio" name="figures" class="figure" value="#" id="#"
|
105 |
+
onclick="close_dropdown()"><label for="#">♯ or ♯3</label></td>
|
106 |
+
<td><input type="radio" name="figures" class="figure" value="b" id="b"
|
107 |
+
onclick="close_dropdown()"><label for="b">♭ or ♭3</label></td>
|
108 |
+
<td><input type="radio" name="figures" class="figure" value="n" id="n"
|
109 |
+
onclick="close_dropdown()"><label for="n">♮ or ♮3</label></td>
|
110 |
+
<td><input type="radio" name="figures" class="figure" value="4" id="4"
|
111 |
+
onclick="close_dropdown()"><label for="4">4 or <img class="double-figure" src="./src/54.png"
|
112 |
+
height="20" valign="middle" alt="54"></label></td>
|
113 |
+
<td><input type="radio" name="figures" class="figure" value="4b3" id="4b3"
|
114 |
+
onclick="close_dropdown()"><label for="4b3"><img class="double-figure" src="./src/4b.png"
|
115 |
+
height="20" valign="middle" alt="4b"> or <img class="double-figure" src="./src/4b3.png"
|
116 |
+
height="20" valign="middle" alt="4b3"></label></td>
|
117 |
+
</tr>
|
118 |
+
<tr>
|
119 |
+
<td><input type="radio" name="figures" class="figure" value="#4b3" id="#4b3"
|
120 |
+
onclick="close_dropdown()"><label for="#4b3"><img class="double-figure" src="./src/4+b3.png"
|
121 |
+
height="20" valign="middle" alt="#4b3"></label></td>
|
122 |
+
<td><input type="radio" name="figures" class="figure" value="42" id="42"
|
123 |
+
onclick="close_dropdown()"><label for="42"><img class="double-figure" src="./src/42.png"
|
124 |
+
height="20" valign="middle" alt="42"></label></td>
|
125 |
+
<td><input type="radio" name="figures" class="figure" value="#42" id="#42"
|
126 |
+
onclick="close_dropdown()"><label for="#42"><img class="double-figure" src="./src/4+2.png"
|
127 |
+
height="20" valign="middle" alt="4+2"> or <img class="double-figure" src="./src/+42.png"
|
128 |
+
height="20" valign="middle" alt="#42"></label></td>
|
129 |
+
<td><input type="radio" name="figures" class="figure" value="43" id="43"
|
130 |
+
onclick="close_dropdown()"><label for="43"><img class="double-figure" src="./src/43.png"
|
131 |
+
height="20" valign="middle" alt="43"></label></td>
|
132 |
+
<td><input type="radio" name="figures" class="figure" value="5" id="5"
|
133 |
+
onclick="close_dropdown()"><label for="5">5</label></td>
|
134 |
+
</tr>
|
135 |
+
<tr>
|
136 |
+
<td><input type="radio" name="figures" class="figure" value="#5" id="#5"
|
137 |
+
onclick="close_dropdown()"><label for="#5">♯5</label></td>
|
138 |
+
<td><input type="radio" name="figures" class="figure" value="b5" id="b5"
|
139 |
+
onclick="close_dropdown()"><label for="b5">♭5</label></td>
|
140 |
+
<td><input type="radio" name="figures" class="figure" value="53" id="53"
|
141 |
+
onclick="close_dropdown()"><label for="53"><img class="double-figure" src="./src/53.png"
|
142 |
+
height="20" valign="middle" alt="53"></label></td>
|
143 |
+
<td><input type="radio" name="figures" class="figure" value="5#3" id="5#3"
|
144 |
+
onclick="close_dropdown()"><label for="5#3"><img class="double-figure" src="./src/5+3.png"
|
145 |
+
height="20" valign="middle" alt="5#3"> or <img class="double-figure" src="./src/5+.png"
|
146 |
+
height="20" valign="middle" alt="5#"></label></td>
|
147 |
+
<td><input type="radio" name="figures" class="figure" value="6" id="6"
|
148 |
+
onclick="close_dropdown()"><label for="6">6</label></td>
|
149 |
+
</tr>
|
150 |
+
<tr>
|
151 |
+
<td><input type="radio" name="figures" class="figure" value="#6" id="#6"
|
152 |
+
onclick="close_dropdown()"><label for="#6"><img class="single-figure" src="./src/6slash.png"
|
153 |
+
height="18" valign="middle" alt="6\"> or ♯6</label></td>
|
154 |
+
<td><input type="radio" name="figures" class="figure" value="b6" id="b6"
|
155 |
+
onclick="close_dropdown()"><label for="b6">♭6</label></td>
|
156 |
+
<td><input type="radio" name="figures" class="figure" value="64" id="64"
|
157 |
+
onclick="close_dropdown()"><label for="64"><img class="double-figure" src="./src/64.png"
|
158 |
+
height="20" valign="middle" alt="64"></label></td>
|
159 |
+
<td><input type="radio" name="figures" class="figure" value="#64" id="#64"
|
160 |
+
onclick="close_dropdown()"><label for="#64"><img class="double-figure" src="./src/6slash4.png"
|
161 |
+
height="20" valign="middle" alt="6\4"> or <img class="double-figure" src="./src/+64.png"
|
162 |
+
height="20" valign="middle" alt="#64"></label>
|
163 |
+
</td>
|
164 |
+
<td><input type="radio" name="figures" class="figure" value="642" id="642"
|
165 |
+
onclick="close_dropdown()"><label for="642"><img src="./src/642.png" height="28" valign="middle"
|
166 |
+
alt="642"></label></td>
|
167 |
+
</tr>
|
168 |
+
<tr>
|
169 |
+
<td><input type="radio" name="figures" class="figure" value="643" id="643"
|
170 |
+
onclick="close_dropdown()"><label for="643"><img src="./src/643.png" height="28" valign="middle"
|
171 |
+
alt="643"></label></td>
|
172 |
+
<td><input type="radio" name="figures" class="figure" value="#643" id="#643"
|
173 |
+
onclick="close_dropdown()"><label for="#643"><img src="./src/+643.png" height="28"
|
174 |
+
valign="middle" alt="#643"></label></td>
|
175 |
+
<td><input type="radio" name="figures" class="figure" value="#6#43" id="#6#43"
|
176 |
+
onclick="close_dropdown()"><label for="#6#43"><img src="./src/+6+43.png" height="28"
|
177 |
+
valign="middle" alt="#6#43"></label></td>
|
178 |
+
<td><input type="radio" name="figures" class="figure" value="6#43" id="6#43"
|
179 |
+
onclick="close_dropdown()"><label for="6#43"><img src="./src/6+43.png" height="28"
|
180 |
+
valign="middle" alt="6#43"></label></td>
|
181 |
+
<td><input type="radio" name="figures" class="figure" value="65" id="65"
|
182 |
+
onclick="close_dropdown()"><label for="65"><img class="double-figure" src="./src/65.png"
|
183 |
+
height="20" valign="middle" alt="65"></label></td>
|
184 |
+
</tr>
|
185 |
+
<tr>
|
186 |
+
<td><input type="radio" name="figures" class="figure" value="65#3" id="65#3"
|
187 |
+
onclick="close_dropdown()"><label for="65#3"><img src="./src/65+.png" height="28"
|
188 |
+
valign="middle" alt="65#"> or <img src="./src/65+3.png" height="28" valign="middle"
|
189 |
+
alt="65#3"></label></td>
|
190 |
+
<td><input type="radio" name="figures" class="figure" value="65b3" id="65b3"
|
191 |
+
onclick="close_dropdown()"><label for="65b3"><img src="./src/65b.png" height="28"
|
192 |
+
valign="middle" alt="65b"> or <img src="./src/65b3.png" height="28" valign="middle"
|
193 |
+
alt="65b3"></label></td>
|
194 |
+
<td><input type="radio" name="figures" class="figure" value="#65" id="#65"
|
195 |
+
onclick="close_dropdown()"><label for="#65"><img class="double-figure" src="./src/6slash5.png"
|
196 |
+
height="21" valign="middle" alt="6\5"> or <img class="double-figure" src="./src/+65.png"
|
197 |
+
height="20" valign="middle" alt="#65"></label>
|
198 |
+
</td>
|
199 |
+
<td><input type="radio" name="figures" class="figure" value="#6b5" id="#6b5"
|
200 |
+
onclick="close_dropdown()"><label for="#6b5"><img class="double-figure" src="./src/6slashb5.png"
|
201 |
+
height="21" valign="middle" alt="6\b5"> or <img class="double-figure" src="./src/+6b5.png"
|
202 |
+
height="20" valign="middle" alt="#6b5"></label>
|
203 |
+
</td>
|
204 |
+
<td><input type="radio" name="figures" class="figure" value="7" id="7"
|
205 |
+
onclick="close_dropdown()"><label for="7">7</label></td>
|
206 |
+
</tr>
|
207 |
+
<tr>
|
208 |
+
<td><input type="radio" name="figures" class="figure" value="b7" id="b7"
|
209 |
+
onclick="close_dropdown()"><label for="b7">♭7</label></td>
|
210 |
+
<td><input type="radio" name="figures" class="figure" value="73" id="73"
|
211 |
+
onclick="close_dropdown()"><label for="73"><img class="double-figure" src="./src/73.png"
|
212 |
+
height="20" valign="middle" alt="73"></label></td>
|
213 |
+
<td><input type="radio" name="figures" class="figure" value="7#3" id="7#3"
|
214 |
+
onclick="close_dropdown()"><label for="7#3"><img class="double-figure" src="./src/7+.png"
|
215 |
+
height="20" valign="middle" alt="7#"> or <img class="double-figure" src="./src/7+3.png"
|
216 |
+
height="20" valign="middle" alt="7#3"></label></td>
|
217 |
+
<td><input type="radio" name="figures" class="figure" value="742" id="742"
|
218 |
+
onclick="close_dropdown()"><label for="742"><img src="./src/742.png" height="28" valign="middle"
|
219 |
+
alt="742"></label></td>
|
220 |
+
<td><input type="radio" name="figures" class="figure" value="743" id="743"
|
221 |
+
onclick="close_dropdown()"><label for="743"><img src="./src/743.png" height="28" valign="middle"
|
222 |
+
alt="743"></label></td>
|
223 |
+
</tr>
|
224 |
+
<tr>
|
225 |
+
<td><input type="radio" name="figures" class="figure" value="754" id="754"
|
226 |
+
onclick="close_dropdown()"><label for="754"><img class="double-figure" src="./src/74.png"
|
227 |
+
height="20" valign="middle" alt="74"> or <img src="./src/754.png" height="28" valign="middle"
|
228 |
+
alt="754"></label></td>
|
229 |
+
<td><input type="radio" name="figures" class="figure" value="8" id="8"
|
230 |
+
onclick="close_dropdown()"><label for="8">8</label></td>
|
231 |
+
<td><input type="radio" name="figures" class="figure" value="84" id="84"
|
232 |
+
onclick="close_dropdown()"><label for="84"><img class="double-figure" src="./src/84.png"
|
233 |
+
height="20" valign="middle" alt="84"></label></td>
|
234 |
+
<td><input type="radio" name="figures" class="figure" value="853" id="853"
|
235 |
+
onclick="close_dropdown()"><label for="853"><img src="./src/853.png" height="28" valign="middle"
|
236 |
+
alt="853"></label></td>
|
237 |
+
<td><input type="radio" name="figures" class="figure" value="953" id="9"
|
238 |
+
onclick="close_dropdown()"><label for="9">9</label></td>
|
239 |
+
</tr>
|
240 |
+
</tbody>
|
241 |
+
</table>
|
242 |
+
</span>
|
243 |
+
</span>
|
244 |
+
</td>
|
245 |
+
</tr>
|
246 |
+
<tr>
|
247 |
+
<td><input id="chord" type="button" onclick="show_notes_to_play()" value="计算应该演奏的和弦"></td>
|
248 |
+
<td>
|
249 |
+
<div id="demo">Show chord to play</div>
|
250 |
+
</td>
|
251 |
+
</tr>
|
252 |
+
</tbody>
|
253 |
+
</table>
|
254 |
+
</body>
|
255 |
+
|
256 |
+
</html>
|
js/calculator.js
ADDED
@@ -0,0 +1,387 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var line_of_fifths = [
|
2 |
+
"F\u266D",
|
3 |
+
"C\u266D",
|
4 |
+
"G\u266D",
|
5 |
+
"D\u266D",
|
6 |
+
"A\u266D",
|
7 |
+
"E\u266D",
|
8 |
+
"B\u266D",
|
9 |
+
"F",
|
10 |
+
"C",
|
11 |
+
"G",
|
12 |
+
"D",
|
13 |
+
"A",
|
14 |
+
"E",
|
15 |
+
"B",
|
16 |
+
"F\u266F",
|
17 |
+
"C\u266F",
|
18 |
+
"G\u266F",
|
19 |
+
"D\u266F",
|
20 |
+
"A\u266F",
|
21 |
+
"E\u266F",
|
22 |
+
"B\u266F",
|
23 |
+
];
|
24 |
+
|
25 |
+
function show_notes_to_play() {
|
26 |
+
|
27 |
+
var keyNoteElement = document.getElementById("key");
|
28 |
+
var keyModeElement = document.getElementById("mode");
|
29 |
+
var bassNoteElement = document.getElementById("bassNote");
|
30 |
+
var bassNote = bassNoteElement.options[bassNoteElement.selectedIndex].value;
|
31 |
+
var keyNote = keyNoteElement.options[keyNoteElement.selectedIndex].text;
|
32 |
+
var keyMode = keyModeElement.options[keyModeElement.selectedIndex].text;
|
33 |
+
var scale = get_scale(keyNote, keyMode);
|
34 |
+
var bassAccidentalElement = document.getElementById("accidental");
|
35 |
+
var bassAccidental = bassAccidentalElement.options[bassAccidentalElement.selectedIndex].text;
|
36 |
+
if (bassAccidental == "\u00A0") {
|
37 |
+
if (!scale.includes(bassNote)) {
|
38 |
+
var index = scale.findIndex(note => note.startsWith(bassNote));
|
39 |
+
bassNote = scale[index];
|
40 |
+
}
|
41 |
+
}
|
42 |
+
bassNote += bassAccidental;
|
43 |
+
getIntervalAboveWithinKey(scale, bassNote, 5, 1);
|
44 |
+
|
45 |
+
var figures = document.querySelector('input[name="figures"]:checked').value;
|
46 |
+
var notes = realizeFigures(scale, bassNote.trim(), figures);
|
47 |
+
var bSorted = -1;
|
48 |
+
notes.sort();
|
49 |
+
for (i = 0; bSorted != 1; i++) {
|
50 |
+
if (notes[i] != null && compare(notes[i], bassNote) == -1)
|
51 |
+
notes = mutableRotateLeft(notes);
|
52 |
+
else
|
53 |
+
bSorted = 1;
|
54 |
+
}
|
55 |
+
document.getElementById("demo").innerHTML = bassNote.trim() + "," + notes; // "Bass note: "+bassNote+"<br/>Notes to play above bass note: "+notes;
|
56 |
+
notes.length = 0;
|
57 |
+
|
58 |
+
}
|
59 |
+
|
60 |
+
function compare(a, b) {
|
61 |
+
if (a < b)
|
62 |
+
return -1;
|
63 |
+
else if (a > b)
|
64 |
+
return 1;
|
65 |
+
else
|
66 |
+
return 0;
|
67 |
+
}
|
68 |
+
|
69 |
+
function mutableRotateLeft(arr) {
|
70 |
+
arr.push(arr.shift());
|
71 |
+
return arr;
|
72 |
+
}
|
73 |
+
|
74 |
+
function get_scale(keyNote, keyMode) {
|
75 |
+
var scale = [];
|
76 |
+
var keyNoteIndex = line_of_fifths.indexOf(keyNote);
|
77 |
+
|
78 |
+
if (keyMode == "Major") {
|
79 |
+
scale.push(line_of_fifths[keyNoteIndex]);
|
80 |
+
scale.push(line_of_fifths[keyNoteIndex + 2]);
|
81 |
+
scale.push(line_of_fifths[keyNoteIndex + 4]);
|
82 |
+
scale.push(line_of_fifths[keyNoteIndex - 1]);
|
83 |
+
scale.push(line_of_fifths[keyNoteIndex + 1]);
|
84 |
+
scale.push(line_of_fifths[keyNoteIndex + 3]);
|
85 |
+
scale.push(line_of_fifths[keyNoteIndex + 5]);
|
86 |
+
}
|
87 |
+
else {
|
88 |
+
scale.push(line_of_fifths[keyNoteIndex]);
|
89 |
+
scale.push(line_of_fifths[keyNoteIndex + 2]);
|
90 |
+
scale.push(line_of_fifths[keyNoteIndex - 3]);
|
91 |
+
scale.push(line_of_fifths[keyNoteIndex - 1]);
|
92 |
+
scale.push(line_of_fifths[keyNoteIndex + 1]);
|
93 |
+
scale.push(line_of_fifths[keyNoteIndex - 4]);
|
94 |
+
scale.push(line_of_fifths[keyNoteIndex - 2]);
|
95 |
+
}
|
96 |
+
return scale;
|
97 |
+
}
|
98 |
+
|
99 |
+
function getIntervalAboveWithinKey(scale, noteBass, nStepsUp, iAlter) {
|
100 |
+
var startIndex = scale.findIndex(note => note.startsWith(noteBass.charAt(0)));
|
101 |
+
var endIndex = startIndex + nStepsUp - 1;
|
102 |
+
if (endIndex > 6)
|
103 |
+
endIndex %= 7;
|
104 |
+
var newNote = scale[endIndex];
|
105 |
+
switch (iAlter) {
|
106 |
+
case -2:
|
107 |
+
{
|
108 |
+
for (i = 0; i < 2; i++) {
|
109 |
+
if (newNote.endsWith("\u266F"))
|
110 |
+
newNote = newNote.substring(0, newNote.length - 1);
|
111 |
+
else
|
112 |
+
newNote += "\u266D";
|
113 |
+
}
|
114 |
+
break;
|
115 |
+
}
|
116 |
+
case -1:
|
117 |
+
{
|
118 |
+
if (newNote.endsWith("\u266F"))
|
119 |
+
newNote = newNote.substring(0, newNote.length - 1);
|
120 |
+
else
|
121 |
+
newNote += "\u266D";
|
122 |
+
break;
|
123 |
+
}
|
124 |
+
case 1:
|
125 |
+
{
|
126 |
+
if (newNote.endsWith("\u266D"))
|
127 |
+
newNote = newNote.substring(0, newNote.length - 1);
|
128 |
+
else
|
129 |
+
newNote += "\u266F";
|
130 |
+
break;
|
131 |
+
}
|
132 |
+
case 2:
|
133 |
+
{
|
134 |
+
for (i = 0; i < 2; i++) {
|
135 |
+
if (newNote.endsWith("\u266D"))
|
136 |
+
newNote = newNote.substring(0, newNote.length - 1);
|
137 |
+
else
|
138 |
+
newNote += "\u266F";
|
139 |
+
}
|
140 |
+
break;
|
141 |
+
}
|
142 |
+
case 0:
|
143 |
+
default:
|
144 |
+
}
|
145 |
+
//alert("Bass Note: "+noteBass+" Scale: "+scale+" Index: "+startIndex+" End Index: "+endIndex+" New Note: "+newNote);
|
146 |
+
return newNote;
|
147 |
+
}
|
148 |
+
|
149 |
+
function realizeFigures(scale, noteBass, sFB) {
|
150 |
+
var figures = [];
|
151 |
+
var notes = [];
|
152 |
+
notes.push(noteBass);
|
153 |
+
var iAlter = 0;
|
154 |
+
|
155 |
+
for (index = 0; index < sFB.length; index++) {
|
156 |
+
if (sFB.charAt(index) == '#' || sFB.charAt(index) == '+' || sFB.charAt(index) == '\u266F')
|
157 |
+
iAlter += 1;
|
158 |
+
else if (sFB.charAt(index) == 'b' || sFB.charAt(index) == '-' || sFB.charAt(index) == '\u266D')
|
159 |
+
iAlter -= 1;
|
160 |
+
else if (sFB.charAt(index) == 'T' || sFB.charAt(index) == '0') {
|
161 |
+
figures.length = 0;
|
162 |
+
figures.push(0);
|
163 |
+
notes.length = 0;
|
164 |
+
notes.push("none");
|
165 |
+
return notes;
|
166 |
+
}
|
167 |
+
else if (!isNaN(parseInt(sFB.charAt(index), 10))) //isDigit?
|
168 |
+
{
|
169 |
+
var nSteps = parseInt(sFB.charAt(index), 10);
|
170 |
+
var note = getIntervalAboveWithinKey(scale, noteBass, nSteps, iAlter);
|
171 |
+
notes.push(note);
|
172 |
+
figures.push(nSteps);
|
173 |
+
iAlter = 0;
|
174 |
+
|
175 |
+
}
|
176 |
+
}
|
177 |
+
if (!figures.includes(5))
|
178 |
+
if (!figures.includes(6)) {
|
179 |
+
var note = getIntervalAboveWithinKey(scale, noteBass, 5, 0);
|
180 |
+
notes.push(note);
|
181 |
+
if (getNumberOfSecondsInChord(notes) > 1) {
|
182 |
+
notes = arrayRemove(notes, note);
|
183 |
+
note = getIntervalAboveWithinKey(scale, noteBass, 6, 0);
|
184 |
+
notes.push(note);
|
185 |
+
if (getNumberOfSecondsInChord(notes) > 1)
|
186 |
+
notes = arrayRemove(notes, note);
|
187 |
+
}
|
188 |
+
}
|
189 |
+
if (!figures.includes(3))
|
190 |
+
if (!figures.includes(4)) {
|
191 |
+
if (sFB.length == 1 && (sFB == "#" || sFB == "+" || sFB == "\u266F"))
|
192 |
+
var note = getIntervalAboveWithinKey(scale, noteBass, 3, 1);
|
193 |
+
else if (sFB.length == 1 && (sFB == "b" || sFB == "-" || sFB == "\u266D"))
|
194 |
+
var note = getIntervalAboveWithinKey(scale, noteBass, 3, -1);
|
195 |
+
else
|
196 |
+
var note = getIntervalAboveWithinKey(scale, noteBass, 3, iAlter);
|
197 |
+
notes.push(note);
|
198 |
+
if (getNumberOfSecondsInChord(notes) > 1) {
|
199 |
+
notes = arrayRemove(notes, note);
|
200 |
+
note = getIntervalAboveWithinKey(scale, noteBass, 4, 0);
|
201 |
+
notes.push(note);
|
202 |
+
if (getNumberOfSecondsInChord(notes) > 1)
|
203 |
+
notes = arrayRemove(notes, note);
|
204 |
+
}
|
205 |
+
}
|
206 |
+
notes.shift();
|
207 |
+
return notes;
|
208 |
+
}
|
209 |
+
|
210 |
+
function getNumberOfSecondsInChord(notes) {
|
211 |
+
var nSteps = 0;
|
212 |
+
notes.forEach(function (element) {
|
213 |
+
notes.forEach(function (element2) {
|
214 |
+
if (isStep(element, element2))
|
215 |
+
nSteps++;
|
216 |
+
});
|
217 |
+
});
|
218 |
+
return nSteps;
|
219 |
+
}
|
220 |
+
|
221 |
+
function isStep(note1, note2) {
|
222 |
+
switch (note1.charAt(0)) {
|
223 |
+
case 'A':
|
224 |
+
{
|
225 |
+
if (note2.charAt(0) == 'B')
|
226 |
+
return true;
|
227 |
+
else
|
228 |
+
return false;
|
229 |
+
}
|
230 |
+
case 'B':
|
231 |
+
{
|
232 |
+
if (note2.charAt(0) == 'C')
|
233 |
+
return true;
|
234 |
+
else
|
235 |
+
return false;
|
236 |
+
}
|
237 |
+
case 'C':
|
238 |
+
{
|
239 |
+
if (note2.charAt(0) == 'D')
|
240 |
+
return true;
|
241 |
+
else
|
242 |
+
return false;
|
243 |
+
}
|
244 |
+
case 'D':
|
245 |
+
{
|
246 |
+
if (note2.charAt(0) == 'E')
|
247 |
+
return true;
|
248 |
+
else
|
249 |
+
return false;
|
250 |
+
}
|
251 |
+
case 'E':
|
252 |
+
{
|
253 |
+
if (note2.charAt(0) == 'F')
|
254 |
+
return true;
|
255 |
+
else
|
256 |
+
return false;
|
257 |
+
}
|
258 |
+
case 'F':
|
259 |
+
{
|
260 |
+
if (note2.charAt(0) == 'G')
|
261 |
+
return true;
|
262 |
+
else
|
263 |
+
return false;
|
264 |
+
}
|
265 |
+
case 'G':
|
266 |
+
{
|
267 |
+
if (note2.charAt(0) == 'A')
|
268 |
+
return true;
|
269 |
+
else
|
270 |
+
return false;
|
271 |
+
}
|
272 |
+
default:
|
273 |
+
return false;
|
274 |
+
}
|
275 |
+
}
|
276 |
+
|
277 |
+
|
278 |
+
function arrayRemove(arr, value) {
|
279 |
+
|
280 |
+
return arr.filter(function (ele) {
|
281 |
+
return ele != value;
|
282 |
+
});
|
283 |
+
|
284 |
+
}
|
285 |
+
|
286 |
+
function convert_pitch_to_int(name, accidental) {
|
287 |
+
iStepClass = -1;
|
288 |
+
switch (name) {
|
289 |
+
case 'C': iStepClass = 0; break;
|
290 |
+
case 'D': iStepClass = 1; break;
|
291 |
+
case 'E': iStepClass = 2; break;
|
292 |
+
case 'F': iStepClass = 3; break;
|
293 |
+
case 'G': iStepClass = 4; break;
|
294 |
+
case 'A': iStepClass = 5; break;
|
295 |
+
case 'B': iStepClass = 6; break;
|
296 |
+
default: break;
|
297 |
+
}
|
298 |
+
return iStepClass;
|
299 |
+
}
|
300 |
+
|
301 |
+
function change_mode() {
|
302 |
+
var key = document.getElementById("key");
|
303 |
+
var mode = document.getElementById("mode");
|
304 |
+
var index = key.selectedIndex;
|
305 |
+
if (mode.options[mode.selectedIndex].value == "Major") {
|
306 |
+
key.options[0] = new Option('C\u266D', 'Cb');
|
307 |
+
key.options[1] = new Option('G\u266D', 'Gb');
|
308 |
+
key.options[2] = new Option('D\u266D', 'Db');
|
309 |
+
key.options[3] = new Option('A\u266D', 'Ab');
|
310 |
+
key.options[4] = new Option('E\u266D', 'Eb');
|
311 |
+
key.options[5] = new Option('B\u266D', 'Bb');
|
312 |
+
key.options[6] = new Option('F', 'F');
|
313 |
+
key.options[7] = new Option('C', 'C');
|
314 |
+
key.options[8] = new Option('G', 'G');
|
315 |
+
key.options[9] = new Option('D', 'D');
|
316 |
+
key.options[10] = new Option('A', 'A');
|
317 |
+
key.options[11] = new Option('E', 'E');
|
318 |
+
key.options[12] = new Option('B', 'B');
|
319 |
+
key.options[13] = new Option('F\u266F', 'F#');
|
320 |
+
key.options[14] = new Option('C\u266F', 'C#');
|
321 |
+
index += 3;
|
322 |
+
if (index > 14)
|
323 |
+
index -= 12;
|
324 |
+
key.selectedIndex = index;
|
325 |
+
}
|
326 |
+
else {
|
327 |
+
key.options[0] = new Option('A\u266D', 'Ab');
|
328 |
+
key.options[1] = new Option('E\u266D', 'Eb');
|
329 |
+
key.options[2] = new Option('B\u266D', 'Bb');
|
330 |
+
key.options[3] = new Option('F', 'F');
|
331 |
+
key.options[4] = new Option('C', 'C');
|
332 |
+
key.options[5] = new Option('G', 'G');
|
333 |
+
key.options[6] = new Option('D', 'D');
|
334 |
+
key.options[7] = new Option('A', 'A');
|
335 |
+
key.options[8] = new Option('E', 'E');
|
336 |
+
key.options[9] = new Option('B', 'B');
|
337 |
+
key.options[10] = new Option('F\u266F', 'F#');
|
338 |
+
key.options[11] = new Option('C\u266F', 'C#');
|
339 |
+
key.options[12] = new Option('G\u266F', 'G#');
|
340 |
+
key.options[13] = new Option('D\u266F', 'D#');
|
341 |
+
key.options[14] = new Option('A\u266F', 'A#');
|
342 |
+
index -= 3;
|
343 |
+
if (index < 0)
|
344 |
+
index += 12;
|
345 |
+
key.selectedIndex = index;
|
346 |
+
}
|
347 |
+
}
|
348 |
+
|
349 |
+
|
350 |
+
function close_dropdown() {
|
351 |
+
// var lab = document.getElementById("dropbuttonlabel");
|
352 |
+
// var btn = document.getElementById("dropbutton");
|
353 |
+
// var radioButtons = document.getElementsByName("figures");
|
354 |
+
// for (var x = 0; x < radioButtons.length; x++) {
|
355 |
+
// if (radioButtons[x].checked) {
|
356 |
+
// lab.innerHTML = radioButtons[x].nextSibling.innerHTML + " <span class='triangle'>▼</span>";
|
357 |
+
// }
|
358 |
+
// }
|
359 |
+
// btn.checked = false;
|
360 |
+
}
|
361 |
+
|
362 |
+
function deleteAllCookies() {
|
363 |
+
var cookies = document.cookie.split(";");
|
364 |
+
|
365 |
+
for (var i = 0; i < cookies.length; i++) {
|
366 |
+
var cookie = cookies[i];
|
367 |
+
var eqPos = cookie.indexOf("=");
|
368 |
+
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
|
369 |
+
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
|
370 |
+
}
|
371 |
+
}
|
372 |
+
|
373 |
+
function getCookie(cname) {
|
374 |
+
var name = cname + "=";
|
375 |
+
var decodedCookie = decodeURIComponent(document.cookie);
|
376 |
+
var ca = decodedCookie.split(';');
|
377 |
+
for (var i = 0; i < ca.length; i++) {
|
378 |
+
var c = ca[i];
|
379 |
+
while (c.charAt(0) == ' ') {
|
380 |
+
c = c.substring(1);
|
381 |
+
}
|
382 |
+
if (c.indexOf(name) == 0) {
|
383 |
+
return c.substring(name.length, c.length);
|
384 |
+
}
|
385 |
+
}
|
386 |
+
return "";
|
387 |
+
}
|
src/+42.png
ADDED
![]() |
src/+6+43.png
ADDED
![]() |
src/+64.png
ADDED
![]() |
src/+643.png
ADDED
![]() |
src/+65.png
ADDED
![]() |
src/+6b5.png
ADDED
![]() |
src/2+.png
ADDED
![]() |
src/4+2.png
ADDED
![]() |
src/4+b3.png
ADDED
![]() |
src/42.png
ADDED
![]() |
src/43.png
ADDED
![]() |
src/4b.png
ADDED
![]() |
src/4b3.png
ADDED
![]() |
src/5+.png
ADDED
![]() |
src/5+3.png
ADDED
![]() |
src/53.png
ADDED
![]() |
src/54.png
ADDED
![]() |
src/6+43.png
ADDED
![]() |
src/64.png
ADDED
![]() |
src/642.png
ADDED
![]() |
src/643.png
ADDED
![]() |
src/65+.png
ADDED
![]() |
src/65+3.png
ADDED
![]() |
src/65.png
ADDED
![]() |
src/65b.png
ADDED
![]() |
src/65b3.png
ADDED
![]() |
src/6slash.png
ADDED
![]() |
src/6slash4.png
ADDED
![]() |
src/6slash5.png
ADDED
![]() |
src/6slashb5.png
ADDED
![]() |
src/7+.png
ADDED
![]() |
src/7+3.png
ADDED
![]() |
src/73.png
ADDED
![]() |
src/74.png
ADDED
![]() |
src/742.png
ADDED
![]() |
src/743.png
ADDED
![]() |
src/754.png
ADDED
![]() |
src/84.png
ADDED
![]() |
src/853.png
ADDED
![]() |
style.css
DELETED
@@ -1,28 +0,0 @@
|
|
1 |
-
body {
|
2 |
-
padding: 2rem;
|
3 |
-
font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
|
4 |
-
}
|
5 |
-
|
6 |
-
h1 {
|
7 |
-
font-size: 16px;
|
8 |
-
margin-top: 0;
|
9 |
-
}
|
10 |
-
|
11 |
-
p {
|
12 |
-
color: rgb(107, 114, 128);
|
13 |
-
font-size: 15px;
|
14 |
-
margin-bottom: 10px;
|
15 |
-
margin-top: 5px;
|
16 |
-
}
|
17 |
-
|
18 |
-
.card {
|
19 |
-
max-width: 620px;
|
20 |
-
margin: 0 auto;
|
21 |
-
padding: 16px;
|
22 |
-
border: 1px solid lightgray;
|
23 |
-
border-radius: 16px;
|
24 |
-
}
|
25 |
-
|
26 |
-
.card p:last-child {
|
27 |
-
margin-bottom: 0;
|
28 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|