-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
106 lines (98 loc) · 5.05 KB
/
Copy pathindex.html
File metadata and controls
106 lines (98 loc) · 5.05 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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<!DOCTYPE html>
<html>
<head>
<title>SharpMod · WebAssembly</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preload" id="webassembly" />
<script type="importmap"></script>
<script type="module" src="main.js"></script>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;700&display=swap" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" />
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<header class="topbar">
<div class="brand">
<h1>SharpMod <span class="sub">· WebAssembly · </span><a href="https://github.com/morphx666/SharpMod" target="_blank"><i class="fa-brands fa-github"></i></a></h1>
<p class="tagline">.NET module player · MOD / 669 / STM / S3M / XM</p>
</div>
<div class="transport">
<label class="file-pick">
<span class="lbl">Module file</span>
<input type="file" id="file" accept=".mod,.s3m,.xm,.stm,.669" disabled />
</label>
<div class="track-pick" id="trackPick">
<span class="lbl">Demo tracks</span>
<button type="button" id="trackPickButton" class="track-pick-button" disabled
aria-haspopup="listbox" aria-expanded="false" aria-controls="trackPickPanel">
<span class="caption" id="trackPickCaption">Loading track list…</span>
<i class="fa-solid fa-chevron-down"></i>
</button>
<div class="track-pick-panel" id="trackPickPanel">
<input type="search" id="trackPickFilter" class="track-pick-filter"
placeholder="Filter by file or song name…" autocomplete="off" spellcheck="false" />
<!-- tabindex="-1": Chrome puts scrollable regions in the tab order, which would
trap Tab inside the panel instead of moving on and closing it. Rows are
still reachable with the arrow keys. -->
<div class="track-pick-list" id="trackPickList" role="listbox" aria-label="Demo tracks" tabindex="-1"></div>
<div class="track-pick-empty" id="trackPickEmpty">No tracks match that filter.</div>
</div>
</div>
<button id="playPause" disabled>
<i class="icon fa-solid fa-play"></i>
<span class="label">Play</span>
</button>
</div>
</header>
<section class="infobar" id="infobar">
<span class="title" id="m-title">—</span>
<span class="sep">│</span>
<span class="kv"><span class="label">Type:</span><span class="val" id="m-type">—</span></span>
<span class="kv"><span class="label">Channels:</span><span class="val" id="m-channels">—</span></span>
<span class="kv"><span class="label">Pattern:</span><span class="val" id="m-pattern">—</span></span>
<span class="kv"><span class="label">Row:</span><span class="val" id="m-row">—</span></span>
<span class="kv"><span class="label">Tempo/Speed:</span><span class="val" id="m-tempo">—</span></span>
</section>
<nav class="tabs">
<button class="tab active" data-view="patterns">Patterns</button>
<button class="tab" data-view="samples">Samples</button>
<span class="status" id="status">Loading .NET runtime…</span>
</nav>
<main class="view" id="view-patterns">
<div class="channels-row" id="channels-row"></div>
<div class="patterns-scroll">
<div class="patterns" id="patterns"></div>
</div>
</main>
<main class="view hidden" id="view-samples">
<div class="samples-summary">
<span class="lbl">Length:</span><span class="val" id="s-length">—</span>
<span class="lbl">BPM:</span><span class="val" id="s-bpm">—</span>
<span class="filename" id="s-filename">—</span>
</div>
<div class="samples-header">
<span class="col-i">#</span>
<span class="col-n">Name</span>
<span class="col-l">Length</span>
<span class="col-v">Vol</span>
<span class="col-f">Fmt</span>
<span class="col-ls">LoopStart</span>
<span class="col-le">LoopEnd</span>
<span class="col-w">Waveform</span>
</div>
<div class="samples-list" id="samples-list"></div>
</main>
<footer class="bottombar">
<input type="range" id="pos" min="0" max="0" value="0" disabled />
<div class="shortcuts">
<kbd>Tab</kbd> switch view ·
<kbd>Space</kbd> pause/play ·
<kbd>1</kbd>–<kbd>9</kbd> mute channels (Shift +9 · Ctrl +18) ·
click a channel header to mute
</div>
</footer>
</body>
</html>