Minor text cleanup in comments, configs, and tests

This commit is contained in:
Fabricio Giglio
2026-05-10 23:53:40 +02:00
parent c6a0c7f676
commit 3659430da8
7 changed files with 30 additions and 30 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
# Root-level .dockerignore — applied to the build context for the frontend # Root-level .dockerignore - applied to the build context for the frontend
# (which uses the repo root as context). Keep this list aggressive so the # (which uses the repo root as context). Keep this list aggressive so the
# build context stays small. # build context stays small.
+2 -2
View File
@@ -1,6 +1,6 @@
# ─── Bach to Basics — environment configuration ───────────────────────────── # ─── Bach to Basics - environment configuration ─────────────────────────────
# Copy this file to .env and customize for your deployment. # Copy this file to .env and customize for your deployment.
# .env is gitignored — never commit secrets. # .env is gitignored - never commit secrets.
# ── Authentication ─────────────────────────────────────────────────────────── # ── Authentication ───────────────────────────────────────────────────────────
+1 -1
View File
@@ -26,7 +26,7 @@ __pycache__/
*.key *.key
secrets.* secrets.*
# ── Audiveris (large binary — download separately per README) ──────────────── # ── Audiveris (large binary - download separately per README) ────────────────
backend/bin/*.jar backend/bin/*.jar
# ── OS metadata ─────────────────────────────────────────────────────────────── # ── OS metadata ───────────────────────────────────────────────────────────────
+22 -22
View File
@@ -14,45 +14,45 @@ frontend/public/soundfont/sonivox.sf3
Used here as the AlphaTab playback soundfont. Used here as the AlphaTab playback soundfont.
──────────────────────────────────────────────────────────────────────────── ────────────────────────────────────────────────────────────────────────────
Frontend dependencies (selected — full list in frontend/package.json) Frontend dependencies (selected - full list in frontend/package.json)
──────────────────────────────────────────────────────────────────────────── ────────────────────────────────────────────────────────────────────────────
AlphaTab — MPL-2.0 (sheet music renderer) AlphaTab - MPL-2.0 (sheet music renderer)
PixiJS — MIT (WebGL renderer) PixiJS - MIT (WebGL renderer)
Tone.js — MIT (audio scheduling) Tone.js - MIT (audio scheduling)
smplr — MIT (sample-based instruments) smplr - MIT (sample-based instruments)
WebMidi.js — Apache-2.0 (MIDI input) WebMidi.js - Apache-2.0 (MIDI input)
React — MIT React - MIT
Zustand — MIT Zustand - MIT
Vite — MIT Vite - MIT
Tailwind CSS — MIT Tailwind CSS - MIT
MPL-2.0 note: AlphaTab is consumed unmodified as an npm dependency. MPL-2.0 MPL-2.0 note: AlphaTab is consumed unmodified as an npm dependency. MPL-2.0
is per-file copyleft — if you modify AlphaTab's own source files you must is per-file copyleft - if you modify AlphaTab's own source files you must
share those changes under MPL-2.0, but the rest of this codebase remains share those changes under MPL-2.0, but the rest of this codebase remains
under MIT. under MIT.
──────────────────────────────────────────────────────────────────────────── ────────────────────────────────────────────────────────────────────────────
Backend dependencies (selected — full list in backend/requirements.txt) Backend dependencies (selected - full list in backend/requirements.txt)
──────────────────────────────────────────────────────────────────────────── ────────────────────────────────────────────────────────────────────────────
music21 — LGPL-3.0 (music theory + MusicXML) music21 - LGPL-3.0 (music theory + MusicXML)
FastAPI — MIT FastAPI - MIT
defusedxml — PSF-2.0 defusedxml - PSF-2.0
pianoplayer — MIT (Parncutt fingering algorithm) pianoplayer - MIT (Parncutt fingering algorithm)
yt-dlp — Unlicense (YouTube audio extraction) yt-dlp - Unlicense (YouTube audio extraction)
pdf2image — MIT pdf2image - MIT
Basic Pitch (optional) — Apache-2.0 (audio → MIDI transcription) Basic Pitch (optional) - Apache-2.0 (audio → MIDI transcription)
LGPL note (music21): used as a pure Python library import, unmodified. LGPL note (music21): used as a pure Python library import, unmodified.
──────────────────────────────────────────────────────────────────────────── ────────────────────────────────────────────────────────────────────────────
Optional external tools (NOT bundled — user installs separately) Optional external tools (NOT bundled - user installs separately)
──────────────────────────────────────────────────────────────────────────── ────────────────────────────────────────────────────────────────────────────
Audiveris 5.x — AGPL-3.0 (PDF → MusicXML OMR) Audiveris 5.x - AGPL-3.0 (PDF → MusicXML OMR)
Audiveris is invoked as a subprocess if the user places audiveris.jar at Audiveris is invoked as a subprocess if the user places audiveris.jar at
backend/bin/. Because it's distributed separately by the user (and is backend/bin/. Because it's distributed separately by the user (and is
optional), the AGPL obligations apply only to anyone redistributing the optional), the AGPL obligations apply only to anyone redistributing the
JAR or hosting Audiveris itself — not to this codebase. JAR or hosting Audiveris itself - not to this codebase.
@@ -94,7 +94,7 @@ describe("AccuracyTracker", () => {
bus.emit("note:on", note); bus.emit("note:on", note);
bus.emit("input:note:on", { midi: 60, velocity: 80 }); // correct hit bus.emit("input:note:on", { midi: 60, velocity: 80 }); // correct hit
const countBefore = updates.length; const countBefore = updates.length;
bus.emit("note:off", note); // already hit — should not emit again bus.emit("note:off", note); // already hit - should not emit again
// No new accuracy:update should have been emitted for the note:off // No new accuracy:update should have been emitted for the note:off
expect(updates.length).toBe(countBefore); expect(updates.length).toBe(countBefore);
@@ -247,7 +247,7 @@ describe("AccuracyTracker", () => {
bus.emit("transport:seek", { seconds: 5 }); // clears pending bus.emit("transport:seek", { seconds: 5 }); // clears pending
const countBefore = updates.length; const countBefore = updates.length;
bus.emit("note:off", note); // pending was cleared — should be a no-op bus.emit("note:off", note); // pending was cleared - should be a no-op
// No new accuracy:update should have fired // No new accuracy:update should have fired
expect(updates.length).toBe(countBefore); expect(updates.length).toBe(countBefore);
+1 -1
View File
@@ -116,7 +116,7 @@ describe("MidiClock", () => {
mockTransport.seconds = 2; mockTransport.seconds = 2;
expect(clock.currentSeconds).toBe(5); expect(clock.currentSeconds).toBe(5);
// Change multiplier — currentSeconds must remain 5 // Change multiplier - currentSeconds must remain 5
clock.tempoMultiplier = 0.5; clock.tempoMultiplier = 0.5;
expect(clock.currentSeconds).toBeCloseTo(5); expect(clock.currentSeconds).toBeCloseTo(5);
}); });
+1 -1
View File
@@ -36,7 +36,7 @@ describe("lighten", () => {
}); });
it("handles zero channel values", () => { it("handles zero channel values", () => {
// Red only — green and blue stay 0 // Red only - green and blue stay 0
// Math.round(255 * 0.5) = Math.round(127.5) = 128 = 0x80 // Math.round(255 * 0.5) = Math.round(127.5) = 128 = 0x80
expect(lighten(0xff0000, 0.5)).toBe(0x800000); expect(lighten(0xff0000, 0.5)).toBe(0x800000);
}); });