Merge pull request #24 from outis1one/claude/drum-rhythm-game-ChXaj

Claude/drum rhythm game ch xaj
This commit is contained in:
Outis
2026-03-31 09:41:44 -04:00
committed by GitHub
+24 -7
View File
@@ -3555,10 +3555,12 @@ const FOLK_PIECES=(function(){
3,C4);
// ── Red River Valley ──
// Slow American ballad in 4/4. "From this val-ley they say you are go-ing"
// Uses dotted-quarter + eighth for the flowing melodic phrases.
var redriver=folk("Red River Valley","American Traditional (1870s)",85,
[C4,D4,E4,G4,G4,E4,D4,C4,D4,E4,F4,E4,D4,C4,E4,G4,A4,G4,E4,D4,C4,D4,E4,C4],
[0,1,2,3,3,2,1,0,1,2,1,2,1,0,2,3,0,3,2,1,0,1,2,0],
[2,2,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4],
[2,3,1,4,1,3,2,4, 2,3,1,3,1,4,2,4, 2,3,1,3,1,3,1,8],
4,C4);
// ── Home on the Range ──
@@ -3583,10 +3585,16 @@ const FOLK_PIECES=(function(){
5,G4);
// ── Danny Boy ──
// Londonderry Air: flowing Irish ballad, famous "long-short" dotted feel.
// Phrase A: "Oh Dan-ny Boy, the pipes, the pipes are call-ing" (notes 0-10)
// Phrase B: "From glen to glen and down the moun-tain side" (notes 11-24)
// Phrase C: High passage, peaks at E5 (notes 25-37)
// Phrase D: Final resolution back to tonic C (notes 38-48)
// Duration units: 1=eighth, 2=quarter, 3=dotted-quarter, 4=half, 6=dotted-half, 8=whole
var dannyboy=folk("Danny Boy","Irish Traditional (1910s)",72,
[C4,E4,F4,G4,A4,G4,A4,C5,B4,A4,G4,F4,G4,C4,E4,F4,G4,A4,G4,A4,C5,D5,C5,A4,G4,A4,A4,C5,D5,E5,D5,C5,A4,C5,B4,A4,G4,A4,G4,E4,C4,E4,F4,G4,A4,G4,F4,E4,C4],
[0,2,1,3,0,3,0,0,3,0,3,1,3,0,2,1,3,0,3,0,0,1,0,0,3,0,0,0,1,2,1,0,0,0,3,0,3,0,3,2,0,2,1,3,0,3,1,2,0],
[2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4],
[2,3,1,4,1,3,1,3,1,3,6, 2,3,1,3,1,4,1,3,1,3,1,3,1,6, 2,1,3,1,4,1,3,1,3,1,3,1,6, 2,3,1,3,1,4,1,3,1,3,8],
3,C4);
return [ohsusanna,greensleeves,camptown,redriver,homerange,yankee,turkey,dannyboy];
@@ -3656,7 +3664,9 @@ const CHRISTMAS_PIECES=(function(){
var away=carol("Away in a Manger","J.Murray (1885)",80,
[C4,F4,F4,F4,G4,A4,F4,F4,A4,G4,F4,G4,F4,D4,C4,C4,F4,F4,F4,G4,A4,F4,F4,A4,G4,F4,G4,F4,D4,C4,Bb4,A4,F4],
[0,1,1,1,3,0,1,1,0,3,1,3,1,1,0,0,1,1,1,3,0,1,1,0,3,1,3,1,1,0,2,0,1],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6],
// 3/4 waltz. "A-way in a man-ger no crib for a bed":
// beat 1 of each bar gets a longer note, phrase ends get dotted-half
[2,2,2,2,2,4, 2,2,2,2,6, 2,2,2,4, 2,2,2,2,2,4, 2,2,2,2,6, 2,2,2,4, 2,4,8],
4,F4);
var twelve=carol("12 Days of Christmas","English (1780)",110,
[C4,F4,F4,F4,F4,E4,F4,G4,A4,Bb4,A4,G4,F4,G4,A4,Bb4,A4,G4,F4,G4,A4,Bb4,C5,A4,Bb4,G4,A4,F4],
@@ -3700,7 +3710,9 @@ const CHRISTMAS_PIECES=(function(){
var oholynight=carol("O Holy Night","A. Adam (1847)",72,
[C4,F4,F4,F4,E4,F4,A4,A4,G4,F4,F4,Bb4,A4,G4,F4,G4,A4,G4,F4,E4,F4,C5,C5,Bb4,A4,G4,A4,Bb4,A4,G4,F4],
[0,1,1,1,2,1,0,0,3,1,1,2,0,3,1,3,0,3,1,2,1,0,0,2,0,3,0,2,0,3,1],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,2,2,2,2,2,2,2,4],
// 12/8 compound feel: "O ho-ly night! The stars are bright-ly shi-ning"
// Characteristic dotted-quarter+eighth pairs and long phrase-end notes
[2,3,1,4,1,3,1,3,1,3,1, 2,3,1,4,1,3,1,3,1,4, 2,3,1,3,1,2,2,3,1,4],
3,F4);
// ── Rudolph the Red-Nosed Reindeer (in C major) ──
@@ -3783,7 +3795,9 @@ const SINGALONG_PIECES=(function(){
var parting=pub("The Parting Glass","Irish/Scots (Trad.)",80,
[E4,G4,A4,B4,A4,G4,E4,D4,E4,G4,A4,B4,D5,B4,A4,G4,E4,G4,A4,B4,A4,G4,E4,D4,E4,G4,A4,B4,D5,B4,A4,G4],
[2,3,0,3,0,3,2,1,2,3,0,3,1,3,0,3,2,3,0,3,0,3,2,1,2,3,0,3,1,3,0,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4],
// "Of all the mon-ey that e'er I had / I spent it in good com-pa-ny"
// Flowing Irish 4/4 with dotted-quarter+eighth pairs and half-notes on stressed syllables
[2,3,1,4,1,3,2,4, 2,3,1,2,6,2,2,6, 2,3,1,4,1,3,2,4, 2,3,1,2,6,2,2,6],
4,E4);
var amazing=pub("Amazing Grace","J. Newton (1779)",80,
[G4,C5,E5,C5,E5,D5,C5,A4,G4,G4,C5,E5,C5,E5,D5,E5,E5,C5,A4,A4,G4,E4,G4,C5,E5,C5,E5,D5,C5],
@@ -3982,7 +3996,9 @@ const SPIRITUAL_PIECES=(function(){
var kumbaya=spirit("Kumbaya","Spiritual (Trad.)",75,
[C4,E4,F4,G4,G4,F4,E4,C4,C4,E4,F4,G4,A4,G4,E4,C4,E4,F4,G4,G4,F4,E4,D4,C4],
[0,2,1,3,3,1,2,0,0,2,1,3,0,3,2,0,2,1,3,3,1,2,1,0],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6],
// Slow meditative spiritual. "Kum-ba-ya my Lord Kum-ba-ya"
// Dotted-quarter+eighth for the 3-syllable "Kum-ba-ya" feel, half-note on "Lord"
[3,1,2,4, 3,1,2,4, 3,1,2,4, 3,1,2,4, 3,1,2,4, 3,1,2,8],
5,C4);
var michael=spirit("Michael Row the Boat Ashore","Spiritual (1860s)",90,
[C4,E4,F4,G4,A4,A4,G4,E4,C4,C4,E4,F4,G4,A4,A4,G4,E4,C4,D4,E4,F4,E4,D4,C4,D4,C4],
@@ -3997,7 +4013,8 @@ const SPIRITUAL_PIECES=(function(){
var nobody=spirit("Nobody Knows the Trouble I've Seen","Spiritual (Trad.)",75,
[C4,E4,G4,A4,G4,E4,C4,D4,E4,G4,C5,A4,G4,E4,D4,C4,E4,G4,A4,C5,A4,G4,E4,D4,C4],
[0,2,3,0,3,2,0,1,2,3,0,0,3,2,1,0,2,3,0,0,0,3,2,1,0],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6],
// Slow gospel: "No-bo-dy knows the trou-ble I've seen" — dotted-feel on key words
[2,3,1,3,1,3,2,4, 3,1,4,2,2,2,2,6, 3,1,4,2,2,2,2,2,8],
4,C4);
var battle=spirit("Battle Hymn of the Republic","J.W. Howe (1861)",115,
[C4,C4,C4,E4,E4,D4,C4,D4,E4,F4,E4,D4,C4,C4,E4,G4,G4,F4,E4,F4,G4,A4,G4,E4,C4,E4,D4,C4],