Upload 3 files
Browse files- app.js +1 -1
- index.html +5 -0
- styles.css +6 -0
app.js
CHANGED
|
@@ -1155,7 +1155,7 @@ function drawVisualizer() {
|
|
| 1155 |
const minMidi = 36;
|
| 1156 |
const maxMidi = 96;
|
| 1157 |
const secondsVisible = 4.5;
|
| 1158 |
-
const keyboardH = 120;
|
| 1159 |
const playLineY = height - keyboardH;
|
| 1160 |
const speed = playLineY / secondsVisible;
|
| 1161 |
|
|
|
|
| 1155 |
const minMidi = 36;
|
| 1156 |
const maxMidi = 96;
|
| 1157 |
const secondsVisible = 4.5;
|
| 1158 |
+
const keyboardH = width < 640 ? 80 : 120;
|
| 1159 |
const playLineY = height - keyboardH;
|
| 1160 |
const speed = playLineY / secondsVisible;
|
| 1161 |
|
index.html
CHANGED
|
@@ -48,6 +48,11 @@
|
|
| 48 |
<p>This model is a tiny, approximately 50 MB music-generation model with about 13 million parameters, designed to run continuously in real time on almost any consumer CPU.</p>
|
| 49 |
<p>Inference runs entirely on your device through WebAssembly (WASM), allowing NanoMaestro to generate music directly on your device locally.</p>
|
| 50 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
</aside>
|
| 52 |
|
| 53 |
<!-- Left Column: Visualizer and bottom controls -->
|
|
|
|
| 48 |
<p>This model is a tiny, approximately 50 MB music-generation model with about 13 million parameters, designed to run continuously in real time on almost any consumer CPU.</p>
|
| 49 |
<p>Inference runs entirely on your device through WebAssembly (WASM), allowing NanoMaestro to generate music directly on your device locally.</p>
|
| 50 |
</div>
|
| 51 |
+
|
| 52 |
+
<div class="info-card">
|
| 53 |
+
<h5>Bored from the song?</h5>
|
| 54 |
+
<p>Click the <strong>New Song</strong> button to generate a completely new unique song. NanoMaestro will keep generating forever!</p>
|
| 55 |
+
</div>
|
| 56 |
</aside>
|
| 57 |
|
| 58 |
<!-- Left Column: Visualizer and bottom controls -->
|
styles.css
CHANGED
|
@@ -322,6 +322,12 @@ body {
|
|
| 322 |
min-width: 0;
|
| 323 |
}
|
| 324 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 325 |
.info-card {
|
| 326 |
background-color: var(--color-panel);
|
| 327 |
border: 1px dashed var(--color-border);
|
|
|
|
| 322 |
min-width: 0;
|
| 323 |
}
|
| 324 |
|
| 325 |
+
.info-sidebar {
|
| 326 |
+
display: flex;
|
| 327 |
+
flex-direction: column;
|
| 328 |
+
gap: 16px;
|
| 329 |
+
}
|
| 330 |
+
|
| 331 |
.info-card {
|
| 332 |
background-color: var(--color-panel);
|
| 333 |
border: 1px dashed var(--color-border);
|