Compare commits

..
16 Commits
Author SHA1 Message Date
Outis d0d43514d5 Merge pull request #47 from outis1one/claude/webfetch-capability-nb746n
Claude/webfetch capability nb746n
2026-08-03 09:57:05 -04:00
Claude 842c382de8 Fix a missing note in Mary Had a Little Lamb
Verified against a teaching transcription (gmajormusictheory.org): line 2
("...its fleece was white as snow") is E D C D E E E E D D E D C — four
E's in a row, not three. The previous version dropped one E.

Also fetch-verified and confirmed already accurate: Twinkle Twinkle
Little Star, Row Row Row Your Boat, Old MacDonald Had a Farm, London
Bridge, Three Blind Mice, and (independently) the earlier Jingle Bells
fix.
2026-08-03 13:46:28 +00:00
Claude 05a50b08e1 Fix Blow the Man Down verse melody after fetching a period arrangement
The real shanty verse is a near-monotone chant on one pitch (typical of
a shantyman's call-and-response work song) with the only real melodic
movement on the "with a yo ho!" leap and the "blow the man down" hook.
The previous version had an elaborate scalar melody that doesn't match
how this song is actually sung.

Also fetched and checked (no changes needed, content already matched):
South Australia, Spanish Ladies, Skye Boat Song, Scarborough Fair,
Swing Low Sweet Chariot.
2026-08-03 13:25:24 +00:00
Claude 5161d062e4 Re-verify session's rhythm fixes against fetched public-domain scores
Went back through the pieces modified this session and checked each
against an actual fetched source (mobilehymns.org, gmajormusictheory.org
public-domain hymnal/beginner scores, rendered and read directly) instead
of relying on memory alone. Corrected what didn't match:

- Oh! Susanna: chorus was too fast/rhythmically flat; the real setting
  opens "Oh! Su-" on sustained half notes, much slower than the verse
- Camptown Races: "Doo-dah! Doo-dah!" was an even stepwise run; the real
  song is quick "Doo-" + long held "dah!" (quarter + dotted-half)
- We Three Kings: refrain confirmed to be in a lilting compound meter,
  not straight 4/4 as this had it; opening "O" adjusted toward that feel
- Angels We Have Heard on High: the Gloria melisma is a 16-note rise-
  and-fall that dramatically descends a full octave; previous version
  was 15 notes spanning only a 6th
- Hark the Herald Angels Sing: confirmed this hymn is truly strophic —
  "Joyful, all ye nations rise" is sung to the exact same tune as "Hark!
  the herald angels sing," not a different melody. Rebuilt from an
  invented chorus+verse alternation into one repeated 8-line stanza tune
  with a closing reprise of just the opening couplet, matching the score
- O Come All Ye Faithful: "O come, let us adore Him" is a descending
  sequence — the same phrase shape repeated a step lower each time — not
  one phrase repeated verbatim three times
- What Child Is This: the hymn is published in E minor with its own
  confirmed melodic shape, distinct in some details from the Greensleeves
  transcription elsewhere in this file; corrected to the hymn's own
  source rather than assuming the two are pitch-for-pitch identical

Also fetched and read an actual public-domain score for 12 Days of
Christmas and We Wish You a Merry Christmas: both confirmed the existing
content (cumulative day-by-day structure, and the earlier New Year's
ending fix, respectively) without needing further changes.

Molly Malone, Whiskey in the Jar, and Cielito Lindo: attempted the same
verification, but couldn't reach a fetchable note-level source for these
(several sites blocked automated fetches); their content is unchanged
from the prior pass and remains a best-effort construction rather than
source-verified.
2026-08-03 12:24:22 +00:00
Claude ff5bdd964c Fix missing choruses/refrains in Singalong and World songs; dedupe Nursery Rhymes
Same class of bug as the Folk/Christmas fixes: the pub()/world() helpers
loop a single melody, which drops any distinct chorus or refrain.

- Molly Malone: added the "Alive, alive-o!" hook, previously missing
- Whiskey in the Jar: added the "Musha ring dum-a-doo-dum-a-da / Whack
  for the daddy-o" chorus, previously missing
- Cielito Lindo: added the iconic "Ay, ay, ay, ay, canta y no llores"
  refrain (arguably the most recognizable part of the song), previously
  missing

Also removed a dead duplicate block in NURSERY_PIECES where twinkle,
mary, birthday, chopsticks, lavender, and shortnin were each declared
twice with byte-identical content — harmless (the second assignment
always won) but pure waste.

Verified other Singalong/Spirituals/World songs and left them as-is:
their chorus/refrain reuses the same melody as the verse in the real
song, so the single-loop structure is already correct. Ragtime pieces
are honestly labeled "A section" only in their comments — a known,
intentional simplification rather than a bug, since accurately
transcribing the additional strains of Joplin's multi-strain piano rags
is a materially different and much higher-risk undertaking than a
folk-song verse/chorus fix.
2026-08-03 11:55:17 +00:00
Outis ff0cdb30ee Merge pull request #46 from outis1one/claude/webfetch-capability-nb746n
Claude/webfetch capability nb746n
2026-08-03 07:40:29 -04:00
Claude 581e26644e Fix remaining pitch/rhythm errors in Christmas carols
- We Wish You a Merry Christmas: the closing "and a happy New Year!" line
  was truncated to 4 notes with an odd upward leap to D5; replaced with a
  proper 6-note stepwise descent resolving to the tonic.
- What Child Is This: this carol is written to the Greensleeves melody,
  but its note data had diverged into a different contour. Rewrote it to
  mirror the Greensleeves shape one octave up so the two match as they
  should.
2026-08-03 11:05:23 +00:00
Claude dfde6a0b98 Fix Folk/Christmas songs missing chorus/refrain melodies
The folk()/carol() helper loops one fixed melody per verse, which breaks
for songs whose chorus/refrain is musically distinct from the verse —
the helper just repeated the verse tune where the chorus should be,
silently dropping the actual chorus content from both the audio and the
highway. Rewrote 8 pieces as explicit note-by-note builders (matching the
existing Drunken Sailor/Jingle Bells pattern) with real verse+chorus
structure:

- Oh! Susanna, Camptown Races: added the missing chorus melody
- Turkey in the Straw: added the missing second fiddle strain (AABB reel)
- We Three Kings, Angels We Have Heard on High, Hark the Herald Angels
  Sing, O Come All Ye Faithful: added the missing refrain
- 12 Days of Christmas: rebuilt as a genuinely cumulative structure
  (day N sings N gift lines counting down to "a partridge in a pear
  tree"), which a single fixed-length loop could never represent
2026-08-03 03:16:13 +00:00
Outis 5c9129d1e2 Merge pull request #45 from outis1one/claude/caddy2-fqdn-hosting-5coicz
Fix classical/singalong rhythm bugs and remove non-public-domain songs
2026-08-02 21:42:48 -04:00
Claude f0d86ec612 Fix classical/singalong rhythm bugs and remove non-public-domain songs
- buildClassicalNotes() had an unreachable return after the note-building
  chain, so simplifyNotes() (the Full/Simple note-density toggle) was never
  applied to any isClassical piece — fixed by assigning to a variable first.
- Jingle Bells' note durations used an eighth-note-heavy pattern that
  compressed the tune to roughly half its correct length instead of the
  familiar quarter/half-note "Jingle bells, jingle bells" cadence — replaced
  with a standard, measure-verified rhythm.
- Drunken Sailor inserted a stray extra beat between each of its 3 passes
  (t+=q, one full quarter note tied to the beat grid) which broke the 4/4
  pulse; changed to an off-grid pause. Also extended its chord backing to
  cover the chorus (mm9-16), which previously had none on repeat passes.
- Removed O Fortuna (Orff, 1936) and Sabre Dance (Khachaturian, 1942) from
  Classical, and Rudolph the Red-Nosed Reindeer (1949), Frosty the Snowman
  (1950), and Winter Wonderland (1934) from Christmas — none of these are
  actually public domain (all still under active copyright), despite being
  filed under a "public domain compositions" list.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PbwKCCj1vwAoqgRYDoqgeL
2026-08-03 00:41:42 +00:00
Outis c755f3afa9 Merge pull request #44 from outis1one/claude/caddy2-fqdn-hosting-5coicz
Change host port from 8080 to 8888
2026-08-02 19:45:54 -04:00
Outis 695dd4cfe5 Merge pull request #43 from outis1one/claude/fix-linux-pad-registration-62OqF
Fix Linux pad registration, add remap timeout, fix audio clipping
2026-08-02 18:58:34 -04:00
Outis 45aef89bf6 Merge pull request #42 from outis1one/clDemoe/fix-pitch-editing-kH3FR
Add text shorthand, MusicXML, and MIDI import to editor
2026-08-02 18:57:35 -04:00
Outis 0acaa3be0b Merge pull request #41 from outis1one/claude/caddy2-fqdn-hosting-5coicz
Add Docker/Compose hosting with Caddy 2 reverse-proxy docs
2026-08-02 17:14:30 -04:00
Claude 8840e1be4a Fix Linux pad registration, add remap timeout, fix audio clipping
- Linux gamepad: add axis-as-button support for Wii drums that report
  hits as axis changes instead of button presses on Linux
- Linux gamepad: initialize prevBtns from actual button state on first
  detection to prevent spurious triggers when controller connects
- Linux gamepad: add btn.value>0.5 check for analog button thresholding
- Linux gamepad: add gamepadconnected event listener (catches late-
  connecting controllers that polling alone misses on Linux)
- Remap: add 5-second per-step countdown timeout for both gamepad and
  keyboard remap; auto-skips unmapped pads (e.g. kits with fewer pads)
- Audio: add DynamicsCompressor master bus per AudioContext to prevent
  clipping when multiple drums hit simultaneously
- Audio: normalize playDrumAt volumes from raw 0-8 range to 0-1 before
  gain nodes; compressor handles peak limiting cleanly
- Audio: route playSynth (classical orchestral) through master bus too

https://claude.ai/code/session_01GJY5fktsdBkSUFLmePfZpv
2026-04-05 15:36:17 +00:00
Claude 2492fbcb83 Add text shorthand, MusicXML, and MIDI import to editor
The import panel now has 4 tabs:
- JSON: existing JSON import (unchanged)
- Text/Shorthand: type notes like "C4 quarter, D4 eighth, E4 half"
  or "C4 q D4 e E4 h" — supports all duration names, rests, auto
  lane assignment by pitch range
- MusicXML: import .xml/.musicxml files from MuseScore, Finale,
  Sibelius, flat.io etc. Parses pitch, duration, tempo, chords,
  rests, and mid-stream tempo changes
- MIDI: import .mid files with a minimal parser that handles format
  0/1, tempo events, note on/off pairing, and tick-to-second conversion

All import modes support an "Append" checkbox to add to existing notes.
Lanes are auto-assigned by pitch range (high=Red, low=Kick).

https://claude.ai/code/session_01TLvDyKzUQekd9hzFuEJ5YX
2026-04-02 17:30:40 +00:00
3 changed files with 970 additions and 599 deletions
+2 -2
View File
@@ -159,7 +159,6 @@ Add a new genre called **"Classical"** with the following pieces. Each piece nee
|-------|----------|-------|
| Beethoven's 5th (Opening) | Beethoven | DA DA DA DUM — 3 same pad + 1 different |
| Hall of the Mountain King | Grieg | Starts slow, accelerates — great difficulty curve |
| O Fortuna | Orff | Heavy rhythmic hits, powerful |
| Ride of the Valkyries | Wagner | Galloping rhythm pattern |
| Mars, Bringer of War | Holst | Heavy 5/4 march |
| Toccata & Fugue in D Minor | Bach | Famous DUN DUN DUN opener |
@@ -168,13 +167,14 @@ Add a new genre called **"Classical"** with the following pieces. Each piece nee
| Also Sprach Zarathustra | Strauss | DA DAAAA DA DUM (2001 theme) |
| Barber of Seville Overture | Rossini | Bugs Bunny classic |
| The Blue Danube | Strauss Jr. | Waltz rhythm |
| Sabre Dance | Khachaturian | Very fast and fun |
| Night on Bald Mountain | Mussorgsky | Fantasia — dark and dramatic |
| Sorcerer's Apprentice | Dukas | Fantasia — Mickey Mouse |
| Swan Lake (Theme) | Tchaikovsky | Elegant waltz |
| Morning Mood | Grieg | Peer Gynt — gentle build |
| In the Hall of the Mountain King | Grieg | (same as above, confirm not duplicate) |
> **Not actually public domain — do not re-add:** O Fortuna (Orff, 1936; composer d. 1982 — still under copyright until 2032 in the US / 2052 in the EU) and Sabre Dance (Khachaturian, 1942; composer d. 1978 — still under copyright until 2048 in the EU) were removed from the repo on this basis. The rest of this table is genuinely public domain (composers who died before ~1955, or works published before 1930).
#### How Classical Mode Should Work
1. Player selects a classical piece
2. Game starts with countdown
+3 -8
View File
@@ -25,7 +25,7 @@ Works with **keyboard**, **Wii Rock Band drums**, **Xbox/PS Rock Band drums**, *
## Features
- **18 Genres** across two modes: synth orchestra songs + drum beat patterns
- **124 synth pieces** with full synthesized orchestra background
- **119 synth pieces** with full synthesized orchestra background
- **120 drum patterns** across 8 genres
- **Note density toggle** — switch between Full and Simple (fewer notes for beginners)
- **Drums or Orchestra mode** — choose whether pad hits play drum sounds or the actual melody note
@@ -82,7 +82,7 @@ Works with **keyboard**, **Wii Rock Band drums**, **Xbox/PS Rock Band drums**, *
- Scarborough Fair (English Medieval)
- My Bonnie Lies Over the Ocean (Scottish, 1881)
### Christmas (20 songs)
### Christmas (17 songs)
- Jingle Bells (1857)
- Silent Night (1818)
- Deck the Halls (1862)
@@ -98,9 +98,6 @@ Works with **keyboard**, **Wii Rock Band drums**, **Xbox/PS Rock Band drums**, *
- What Child Is This (English, 1865)
- Angels We Have Heard on High (French, 1862)
- O Holy Night (A. Adam, 1847)
- Rudolph the Red-Nosed Reindeer (J. Marks, 1949)
- Frosty the Snowman (S. Nelson, 1950)
- Winter Wonderland (F. Bernard, 1934)
- Good King Wenceslas (Finnish, 1582)
- We Three Kings (J.H. Hopkins Jr., 1857)
@@ -144,10 +141,9 @@ Works with **keyboard**, **Wii Rock Band drums**, **Xbox/PS Rock Band drums**, *
- The Cascades (Scott Joplin, 1904)
- Pineapple Rag (Scott Joplin, 1908)
### Classical (26 pieces)
### Classical (24 pieces)
- Beethoven's 5th (Opening)
- Hall of the Mountain King (Grieg)
- O Fortuna (Orff)
- Ride of the Valkyries (Wagner) — Apocalypse Now
- Mars, Bringer of War (Holst)
- Toccata & Fugue in D Minor (Bach)
@@ -156,7 +152,6 @@ Works with **keyboard**, **Wii Rock Band drums**, **Xbox/PS Rock Band drums**, *
- Also Sprach Zarathustra (R. Strauss) — 2001: A Space Odyssey
- Barber of Seville Overture (Rossini) — Bugs Bunny
- The Blue Danube (J. Strauss II) — 2001: A Space Odyssey
- Sabre Dance (Khachaturian)
- Night on Bald Mountain (Mussorgsky) — Fantasia
- Sorcerer's Apprentice (Dukas) — Fantasia
- Swan Lake Theme (Tchaikovsky)
+965 -589
View File
File diff suppressed because it is too large Load Diff