Skip to content

Commit beaac6d

Browse files
committed
update more color and readme
1 parent 9aa7d17 commit beaac6d

3 files changed

Lines changed: 172 additions & 2 deletions

File tree

README.md

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,45 @@
11
# nyantracker player
22

3-
A simple web-based player for chiptune music modules or music tracker, built with WebAssembly and TypeScript. It supports various module formats and provides a user-friendly interface for playback and navigation. Using [DrSnuggles's chiptune3](https://github.com/DrSnuggles/chiptune) for playback and [libopenmpt (WASM)](https://lib.openmpt.org/libopenmpt) for pattern viewer.
3+
![GitHub License](https://img.shields.io/github/license/michioxd/nyantracker)
4+
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/michioxd/nyantracker/build.yml)
5+
![Website](https://img.shields.io/website?url=http%3A%2F%2Fnyantracker.michioxd.ch%2F)
46

5-
![](https://github.com/user-attachments/assets/8f80792f-6bc0-492c-9432-9b16c1544129)
7+
A simple web-based player for chiptune music modules or music tracker, built with WebAssembly and TypeScript. It supports various module formats and provides a user-friendly interface for playback and navigation. Using [DrSnuggles's chiptune3](https://github.com/DrSnuggles/chiptune) for playback (via [AudioWorklet](https://developer.mozilla.org/en-US/docs/Web/API/AudioWorklet)) and [libopenmpt (WASM)](https://lib.openmpt.org/libopenmpt) for pattern viewer.
8+
9+
![screenshot](https://github.com/user-attachments/assets/8f80792f-6bc0-492c-9432-9b16c1544129)
10+
11+
## Features
12+
13+
- Support for various module formats (e.g., MOD, XM, S3M, IT)
14+
- Pattern viewer for visualizing the music structure
15+
- Oscilloscope for visualizing each channel's output
16+
- Support multiple sources (local files, modland.com, etc.). You can create your own source by implementing the [`BrowserSource`](./src/sources/base.ts) interface.
17+
- Support multiple color themes.
18+
19+
## Development
20+
21+
You must have the latest version of [bun](https://bun.sh/). If not, please install it first.
22+
23+
```bash
24+
git clone https://github.com/michioxd/nyantracker.git
25+
cd nyantracker
26+
bun i
27+
bun dev
28+
```
29+
30+
Then open `http://localhost:5173` in your browser to see the player in action.
31+
32+
To build the project, run:
33+
34+
```bash
35+
bun run build
36+
```
37+
38+
## Contributing
39+
40+
Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request. Please make sure to follow the existing code style and include tests for any new features or bug fixes.
41+
42+
AI (or *vibe code*) contributions is closed for now, but feel free to ask for help if you want to contribute.
643

744
## License
845

src/constants.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,19 @@ export const APP_CONSTANTS = {
2222

2323
export const COLOR_SCHEMES = [
2424
{ id: "default", label: "Default", oscColor: "#4ade80", oscBg: "#0c0c0c" },
25+
2526
{ id: "neon-blue", label: "Neon Blue", oscColor: "#56d6ff", oscBg: "#08101f" },
2627
{ id: "amber-dusk", label: "Amber Dusk", oscColor: "#ffd27a", oscBg: "#120e08" },
2728
{ id: "violet-pulse", label: "Violet Pulse", oscColor: "#9a8cff", oscBg: "#0b0612" },
2829
{ id: "dracula", label: "Dracula", oscColor: "#bd93f9", oscBg: "#191a21" },
2930
{ id: "monokai", label: "Monokai", oscColor: "#a6e22e", oscBg: "#1f201b" },
3031
{ id: "solarized", label: "Solarized", oscColor: "#2aa198", oscBg: "#002b36" },
32+
{ id: "matrix-green", label: "Matrix Green", oscColor: "#00ff66", oscBg: "#020a03" },
33+
{ id: "gothic-purple", label: "Gothic Purple", oscColor: "#c084fc", oscBg: "#120814" },
34+
{ id: "pastel-pink", label: "Pastel Pink", oscColor: "#d870ad", oscBg: "#fff7fb" },
35+
{ id: "pastel-pink-dark", label: "Pastel Pink Dark", oscColor: "#ff9ecb", oscBg: "#1a0f17" },
36+
{ id: "black", label: "Black", oscColor: "#ffffff", oscBg: "#000000" },
37+
{ id: "white", label: "White", oscColor: "#000000", oscBg: "#ffffff" },
3138
] as const;
3239

3340
export type ColorSchemeId = (typeof COLOR_SCHEMES)[number]["id"];

src/style.scss

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,132 @@ html {
152152
--term-cyan: #2aa198;
153153
--term-red: #dc322f;
154154
}
155+
156+
&[data-color="matrix-green"] {
157+
--bg-main: #020a03;
158+
--bg-panel: #061108;
159+
--bg-panel-soft: #0a160d;
160+
--bg-active-row: #103019;
161+
--text-normal: #98ffb5;
162+
--text-muted: #4c9a63;
163+
--color-note: #00ff66;
164+
--color-inst: #b7ff7a;
165+
--color-eff: #4dffb8;
166+
--color-empty: #2c6d3f;
167+
--osc-bg: #020a03;
168+
--osc-border: #1f7a3a;
169+
--osc-text: #00ff66;
170+
--osc-line: #00ff66;
171+
--border-color: #1a5c2d;
172+
--term-green: #00ff66;
173+
--term-cyan: #4dffb8;
174+
--term-red: #c6ff4d;
175+
}
176+
177+
&[data-color="pastel-pink"] {
178+
--bg-main: #fff7fb;
179+
--bg-panel: #fff0f7;
180+
--bg-panel-soft: #ffe7f2;
181+
--bg-active-row: #ffd8eb;
182+
--text-normal: #6f3d57;
183+
--text-muted: #b07f98;
184+
--color-note: #d870ad;
185+
--color-inst: #f2a65a;
186+
--color-eff: #e779c1;
187+
--color-empty: #c9a8ba;
188+
--osc-bg: #fff7fb;
189+
--osc-border: #e7bfd3;
190+
--osc-text: #d870ad;
191+
--osc-line: #d870ad;
192+
--border-color: #ddb3c8;
193+
--term-green: #d870ad;
194+
--term-cyan: #b870d8;
195+
--term-red: #ef8f6a;
196+
}
197+
198+
&[data-color="pastel-pink-dark"] {
199+
--bg-main: #1a0f17;
200+
--bg-panel: #241520;
201+
--bg-panel-soft: #2d1b29;
202+
--bg-active-row: #4a2d45;
203+
--text-normal: #ffe7f2;
204+
--text-muted: #c69ab4;
205+
--color-note: #ff9ecb;
206+
--color-inst: #ffd6a5;
207+
--color-eff: #ffb3e6;
208+
--color-empty: #8b647f;
209+
--osc-bg: #1a0f17;
210+
--osc-border: #9f6285;
211+
--osc-text: #ff9ecb;
212+
--osc-line: #ff9ecb;
213+
--border-color: #7e4f6a;
214+
--term-green: #ff9ecb;
215+
--term-cyan: #ffd1e8;
216+
--term-red: #ffb38a;
217+
}
218+
219+
&[data-color="gothic-purple"] {
220+
--bg-main: #120814;
221+
--bg-panel: #1a0d1f;
222+
--bg-panel-soft: #24112b;
223+
--bg-active-row: #3b1f47;
224+
--text-normal: #f0ddff;
225+
--text-muted: #a98cc2;
226+
--color-note: #c084fc;
227+
--color-inst: #e9c46a;
228+
--color-eff: #ff6fb5;
229+
--color-empty: #6f5a82;
230+
--osc-bg: #120814;
231+
--osc-border: #7c4d9e;
232+
--osc-text: #c084fc;
233+
--osc-line: #c084fc;
234+
--border-color: #5e3978;
235+
--term-green: #c084fc;
236+
--term-cyan: #d8b4fe;
237+
--term-red: #ff8fab;
238+
}
239+
240+
&[data-color="black"] {
241+
--bg-main: #000000;
242+
--bg-panel: #050505;
243+
--bg-panel-soft: #0a0a0a;
244+
--bg-active-row: #141414;
245+
--text-normal: #f5f5f5;
246+
--text-muted: #8a8a8a;
247+
--color-note: #ffffff;
248+
--color-inst: #d4d4d4;
249+
--color-eff: #a3a3a3;
250+
--color-empty: #5c5c5c;
251+
--osc-bg: #000000;
252+
--osc-border: #2a2a2a;
253+
--osc-text: #ffffff;
254+
--osc-line: #ffffff;
255+
--border-color: #2f2f2f;
256+
--term-green: #ffffff;
257+
--term-cyan: #d9d9d9;
258+
--term-red: #9f9f9f;
259+
}
260+
261+
&[data-color="white"] {
262+
--bg-main: #ffffff;
263+
--bg-panel: #f7f7f7;
264+
--bg-panel-soft: #efefef;
265+
--bg-active-row: #e2e2e2;
266+
--text-normal: #111111;
267+
--text-muted: #6b6b6b;
268+
--color-note: #000000;
269+
--color-inst: #444444;
270+
--color-eff: #767676;
271+
--color-empty: #adadad;
272+
--osc-bg: #ffffff;
273+
--osc-border: #cfcfcf;
274+
--osc-text: #000000;
275+
--osc-line: #000000;
276+
--border-color: #d6d6d6;
277+
--term-green: #000000;
278+
--term-cyan: #3f3f3f;
279+
--term-red: #7a7a7a;
280+
}
155281
}
156282

157283
a {

0 commit comments

Comments
 (0)