@mcptoolshop/ai_jam_session 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/LICENSE +21 -0
  2. package/README.es.md +212 -0
  3. package/README.fr.md +212 -0
  4. package/README.hi.md +212 -0
  5. package/README.it.md +212 -0
  6. package/README.ja.md +214 -0
  7. package/README.md +214 -0
  8. package/README.pt-BR.md +212 -0
  9. package/dist/audio-engine.d.ts +9 -0
  10. package/dist/audio-engine.d.ts.map +1 -0
  11. package/dist/audio-engine.js +422 -0
  12. package/dist/audio-engine.js.map +1 -0
  13. package/dist/cli.d.ts +3 -0
  14. package/dist/cli.d.ts.map +1 -0
  15. package/dist/cli.js +551 -0
  16. package/dist/cli.js.map +1 -0
  17. package/dist/index.d.ts +32 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +41 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/mcp-server.d.ts +3 -0
  22. package/dist/mcp-server.d.ts.map +1 -0
  23. package/dist/mcp-server.js +903 -0
  24. package/dist/mcp-server.js.map +1 -0
  25. package/dist/midi/parser.d.ts +16 -0
  26. package/dist/midi/parser.d.ts.map +1 -0
  27. package/dist/midi/parser.js +192 -0
  28. package/dist/midi/parser.js.map +1 -0
  29. package/dist/midi/types.d.ts +44 -0
  30. package/dist/midi/types.d.ts.map +1 -0
  31. package/dist/midi/types.js +8 -0
  32. package/dist/midi/types.js.map +1 -0
  33. package/dist/note-parser.d.ts +105 -0
  34. package/dist/note-parser.d.ts.map +1 -0
  35. package/dist/note-parser.js +278 -0
  36. package/dist/note-parser.js.map +1 -0
  37. package/dist/playback/controls.d.ts +124 -0
  38. package/dist/playback/controls.d.ts.map +1 -0
  39. package/dist/playback/controls.js +252 -0
  40. package/dist/playback/controls.js.map +1 -0
  41. package/dist/playback/midi-engine.d.ts +68 -0
  42. package/dist/playback/midi-engine.d.ts.map +1 -0
  43. package/dist/playback/midi-engine.js +227 -0
  44. package/dist/playback/midi-engine.js.map +1 -0
  45. package/dist/playback/position.d.ts +95 -0
  46. package/dist/playback/position.d.ts.map +1 -0
  47. package/dist/playback/position.js +223 -0
  48. package/dist/playback/position.js.map +1 -0
  49. package/dist/playback/timing.d.ts +31 -0
  50. package/dist/playback/timing.d.ts.map +1 -0
  51. package/dist/playback/timing.js +57 -0
  52. package/dist/playback/timing.js.map +1 -0
  53. package/dist/sample-engine.d.ts +17 -0
  54. package/dist/sample-engine.d.ts.map +1 -0
  55. package/dist/sample-engine.js +428 -0
  56. package/dist/sample-engine.js.map +1 -0
  57. package/dist/schemas.d.ts +40 -0
  58. package/dist/schemas.d.ts.map +1 -0
  59. package/dist/schemas.js +42 -0
  60. package/dist/schemas.js.map +1 -0
  61. package/dist/session.d.ts +106 -0
  62. package/dist/session.d.ts.map +1 -0
  63. package/dist/session.js +361 -0
  64. package/dist/session.js.map +1 -0
  65. package/dist/sfz-parser.d.ts +36 -0
  66. package/dist/sfz-parser.d.ts.map +1 -0
  67. package/dist/sfz-parser.js +95 -0
  68. package/dist/sfz-parser.js.map +1 -0
  69. package/dist/smoke.d.ts +2 -0
  70. package/dist/smoke.d.ts.map +1 -0
  71. package/dist/smoke.js +512 -0
  72. package/dist/smoke.js.map +1 -0
  73. package/dist/songs/config/loader.d.ts +14 -0
  74. package/dist/songs/config/loader.d.ts.map +1 -0
  75. package/dist/songs/config/loader.js +53 -0
  76. package/dist/songs/config/loader.js.map +1 -0
  77. package/dist/songs/config/schema.d.ts +70 -0
  78. package/dist/songs/config/schema.d.ts.map +1 -0
  79. package/dist/songs/config/schema.js +53 -0
  80. package/dist/songs/config/schema.js.map +1 -0
  81. package/dist/songs/index.d.ts +16 -0
  82. package/dist/songs/index.d.ts.map +1 -0
  83. package/dist/songs/index.js +20 -0
  84. package/dist/songs/index.js.map +1 -0
  85. package/dist/songs/jam.d.ts +48 -0
  86. package/dist/songs/jam.d.ts.map +1 -0
  87. package/dist/songs/jam.js +324 -0
  88. package/dist/songs/jam.js.map +1 -0
  89. package/dist/songs/loader.d.ts +27 -0
  90. package/dist/songs/loader.d.ts.map +1 -0
  91. package/dist/songs/loader.js +90 -0
  92. package/dist/songs/loader.js.map +1 -0
  93. package/dist/songs/midi/hands.d.ts +46 -0
  94. package/dist/songs/midi/hands.d.ts.map +1 -0
  95. package/dist/songs/midi/hands.js +134 -0
  96. package/dist/songs/midi/hands.js.map +1 -0
  97. package/dist/songs/midi/ingest.d.ts +8 -0
  98. package/dist/songs/midi/ingest.d.ts.map +1 -0
  99. package/dist/songs/midi/ingest.js +191 -0
  100. package/dist/songs/midi/ingest.js.map +1 -0
  101. package/dist/songs/midi/measures.d.ts +41 -0
  102. package/dist/songs/midi/measures.d.ts.map +1 -0
  103. package/dist/songs/midi/measures.js +64 -0
  104. package/dist/songs/midi/measures.js.map +1 -0
  105. package/dist/songs/midi/types.d.ts +25 -0
  106. package/dist/songs/midi/types.d.ts.map +1 -0
  107. package/dist/songs/midi/types.js +8 -0
  108. package/dist/songs/midi/types.js.map +1 -0
  109. package/dist/songs/registry.d.ts +37 -0
  110. package/dist/songs/registry.d.ts.map +1 -0
  111. package/dist/songs/registry.js +197 -0
  112. package/dist/songs/registry.js.map +1 -0
  113. package/dist/songs/types.d.ts +99 -0
  114. package/dist/songs/types.d.ts.map +1 -0
  115. package/dist/songs/types.js +27 -0
  116. package/dist/songs/types.js.map +1 -0
  117. package/dist/teaching/live-midi-feedback.d.ts +36 -0
  118. package/dist/teaching/live-midi-feedback.d.ts.map +1 -0
  119. package/dist/teaching/live-midi-feedback.js +259 -0
  120. package/dist/teaching/live-midi-feedback.js.map +1 -0
  121. package/dist/teaching/midi-feedback.d.ts +33 -0
  122. package/dist/teaching/midi-feedback.d.ts.map +1 -0
  123. package/dist/teaching/midi-feedback.js +208 -0
  124. package/dist/teaching/midi-feedback.js.map +1 -0
  125. package/dist/teaching/sing-on-midi.d.ts +77 -0
  126. package/dist/teaching/sing-on-midi.d.ts.map +1 -0
  127. package/dist/teaching/sing-on-midi.js +186 -0
  128. package/dist/teaching/sing-on-midi.js.map +1 -0
  129. package/dist/teaching.d.ts +148 -0
  130. package/dist/teaching.d.ts.map +1 -0
  131. package/dist/teaching.js +453 -0
  132. package/dist/teaching.js.map +1 -0
  133. package/dist/test-sound.d.ts +3 -0
  134. package/dist/test-sound.d.ts.map +1 -0
  135. package/dist/test-sound.js +41 -0
  136. package/dist/test-sound.js.map +1 -0
  137. package/dist/types.d.ts +229 -0
  138. package/dist/types.d.ts.map +1 -0
  139. package/dist/types.js +22 -0
  140. package/dist/types.js.map +1 -0
  141. package/dist/vmpk.d.ts +23 -0
  142. package/dist/vmpk.d.ts.map +1 -0
  143. package/dist/vmpk.js +236 -0
  144. package/dist/vmpk.js.map +1 -0
  145. package/logo.png +0 -0
  146. package/package.json +70 -0
  147. package/songs/builtin/a-change-is-gonna-come.json +95 -0
  148. package/songs/builtin/a-thousand-years.json +93 -0
  149. package/songs/builtin/aint-no-sunshine.json +98 -0
  150. package/songs/builtin/all-blues.json +92 -0
  151. package/songs/builtin/autumn-leaves.json +100 -0
  152. package/songs/builtin/baba-oriley.json +91 -0
  153. package/songs/builtin/bach-invention-no1.json +70 -0
  154. package/songs/builtin/bach-prelude-c-major-bwv846.json +1282 -0
  155. package/songs/builtin/basic-12-bar-blues.json +119 -0
  156. package/songs/builtin/beethoven-waldstein-mvt1.json +7766 -0
  157. package/songs/builtin/bennie-and-the-jets.json +92 -0
  158. package/songs/builtin/besame-mucho.json +93 -0
  159. package/songs/builtin/black-orpheus.json +92 -0
  160. package/songs/builtin/blue-bossa.json +94 -0
  161. package/songs/builtin/blues-in-g.json +92 -0
  162. package/songs/builtin/bohemian-rhapsody-intro.json +94 -0
  163. package/songs/builtin/boogie-woogie-basics.json +93 -0
  164. package/songs/builtin/bossa-nova-basic.json +95 -0
  165. package/songs/builtin/chopin-nocturne-op9-no2.json +70 -0
  166. package/songs/builtin/cinema-paradiso.json +94 -0
  167. package/songs/builtin/clair-de-lune.json +11511 -0
  168. package/songs/builtin/clocks.json +91 -0
  169. package/songs/builtin/crystal-stream.json +70 -0
  170. package/songs/builtin/desafinado.json +93 -0
  171. package/songs/builtin/dont-stop-believin.json +91 -0
  172. package/songs/builtin/dream-on.json +100 -0
  173. package/songs/builtin/easy-winners.json +70 -0
  174. package/songs/builtin/el-condor-pasa.json +93 -0
  175. package/songs/builtin/elite-syncopations.json +70 -0
  176. package/songs/builtin/evening-calm.json +70 -0
  177. package/songs/builtin/everyday-blues.json +93 -0
  178. package/songs/builtin/fly-me-to-the-moon.json +91 -0
  179. package/songs/builtin/forrest-gump-suite.json +93 -0
  180. package/songs/builtin/fur-elise.json +20094 -0
  181. package/songs/builtin/georgia-on-my-mind.json +93 -0
  182. package/songs/builtin/girl-from-ipanema.json +92 -0
  183. package/songs/builtin/gladiolus-rag.json +70 -0
  184. package/songs/builtin/great-balls-of-fire.json +92 -0
  185. package/songs/builtin/guantanamera.json +92 -0
  186. package/songs/builtin/hallelujah.json +92 -0
  187. package/songs/builtin/hedwigs-theme.json +93 -0
  188. package/songs/builtin/hotel-california.json +92 -0
  189. package/songs/builtin/imagine.json +92 -0
  190. package/songs/builtin/just-the-two-of-us.json +92 -0
  191. package/songs/builtin/la-bamba.json +92 -0
  192. package/songs/builtin/layla-piano-coda.json +93 -0
  193. package/songs/builtin/lean-on-me.json +91 -0
  194. package/songs/builtin/let-it-be.json +101 -0
  195. package/songs/builtin/lets-stay-together.json +93 -0
  196. package/songs/builtin/magnetic-rag.json +70 -0
  197. package/songs/builtin/maple-leaf-rag.json +99 -0
  198. package/songs/builtin/mia-and-sebastians-theme.json +93 -0
  199. package/songs/builtin/minor-blues-in-a.json +94 -0
  200. package/songs/builtin/misty.json +94 -0
  201. package/songs/builtin/moon-river.json +93 -0
  202. package/songs/builtin/moonlight-sonata-mvt1.json +101 -0
  203. package/songs/builtin/morning-light.json +70 -0
  204. package/songs/builtin/mountain-dawn.json +70 -0
  205. package/songs/builtin/mozart-k545-mvt1.json +2956 -0
  206. package/songs/builtin/my-girl.json +92 -0
  207. package/songs/builtin/night-train.json +92 -0
  208. package/songs/builtin/november-rain.json +93 -0
  209. package/songs/builtin/ocean-waves.json +70 -0
  210. package/songs/builtin/over-the-rainbow.json +93 -0
  211. package/songs/builtin/oye-como-va.json +93 -0
  212. package/songs/builtin/peacherine-rag.json +70 -0
  213. package/songs/builtin/piano-man.json +92 -0
  214. package/songs/builtin/pineapple-rag.json +70 -0
  215. package/songs/builtin/pink-panther.json +94 -0
  216. package/songs/builtin/ragtime-dance.json +70 -0
  217. package/songs/builtin/river-flows-in-you.json +102 -0
  218. package/songs/builtin/rocket-man.json +92 -0
  219. package/songs/builtin/satie-gymnopedie-no1.json +70 -0
  220. package/songs/builtin/satin-doll.json +93 -0
  221. package/songs/builtin/schindlers-list.json +96 -0
  222. package/songs/builtin/schumann-traumerei.json +70 -0
  223. package/songs/builtin/sitting-on-the-dock.json +91 -0
  224. package/songs/builtin/slow-blues-in-bb.json +98 -0
  225. package/songs/builtin/snowfall.json +70 -0
  226. package/songs/builtin/so-what.json +92 -0
  227. package/songs/builtin/solace.json +70 -0
  228. package/songs/builtin/someone-like-you.json +92 -0
  229. package/songs/builtin/spirited-away.json +94 -0
  230. package/songs/builtin/st-louis-blues.json +93 -0
  231. package/songs/builtin/stairway-intro.json +93 -0
  232. package/songs/builtin/starlight-waltz.json +70 -0
  233. package/songs/builtin/stay-with-me.json +93 -0
  234. package/songs/builtin/stormy-monday.json +94 -0
  235. package/songs/builtin/superstition.json +93 -0
  236. package/songs/builtin/sweet-home-chicago.json +93 -0
  237. package/songs/builtin/take-five.json +92 -0
  238. package/songs/builtin/take-the-a-train.json +93 -0
  239. package/songs/builtin/the-entertainer.json +98 -0
  240. package/songs/builtin/the-godfather-waltz.json +93 -0
  241. package/songs/builtin/thrill-is-gone.json +94 -0
  242. package/songs/builtin/twilight-garden.json +70 -0
  243. package/songs/builtin/watermark.json +70 -0
  244. package/songs/builtin/wave.json +93 -0
  245. package/songs/builtin/whats-going-on.json +93 -0
  246. package/songs/builtin/yesterday.json +92 -0
@@ -0,0 +1,70 @@
1
+ {
2
+ "id": "solace",
3
+ "title": "Solace",
4
+ "genre": "ragtime",
5
+ "composer": "Scott Joplin",
6
+ "difficulty": "intermediate",
7
+ "key": "G major",
8
+ "tempo": 76,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 25,
11
+ "tags": ["ragtime", "joplin", "serenade", "lyrical", "mexican"],
12
+ "source": "Claude arrangement — simplified interpretation",
13
+ "musicalLanguage": {
14
+ "description": "Subtitled 'A Mexican Serenade,' Solace is one of Joplin's most beautiful and unusual works. It blends ragtime syncopation with a habanera-like rhythm, creating a wistful, swaying quality unlike any other rag.",
15
+ "structure": "A section excerpt (8 bars) with habanera bass",
16
+ "keyMoments": ["Habanera rhythm established in measure 1", "Lyrical melodic peak in measure 5"],
17
+ "teachingGoals": ["Learn dotted-eighth-sixteenth habanera feel", "Develop smooth legato melody over rhythmic bass"],
18
+ "styleTips": ["Play the melody expressively with gentle rubato", "Left hand should have a gentle lilt, not a strict march"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "D5:q B4:e A4:e G4:h",
24
+ "leftHand": "G2:q D4 B3:q G2:q D4 B3:q",
25
+ "dynamics": "mp"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "A4:q B4:e D5:e B4:h",
30
+ "leftHand": "D3:q A3 F#4:q D3:q A3 F#4:q",
31
+ "dynamics": "mp"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "E5:q D5:e B4:e A4:h",
36
+ "leftHand": "C3:q E4 G4:q C3:q E4 G4:q",
37
+ "dynamics": "mf"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "G4:q F#4:e G4:e A4:h",
42
+ "leftHand": "D3:q A3 F#4:q D3:q A3 F#4:q",
43
+ "dynamics": "mp"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "B4:e D5:e G5:q F#5:e E5:e D5:q",
48
+ "leftHand": "G2:q B3 D4:q E3:q G3 B3:q",
49
+ "dynamics": "mf"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "E5:q D5:e C5:e B4:h",
54
+ "leftHand": "C3:q E4 G4:q A2:q C4 E4:q",
55
+ "dynamics": "mf"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "A4:e B4:e A4:e G4:e F#4:q G4:q",
60
+ "leftHand": "D3:q F#3 A3:q D3:q F#3 A3:q",
61
+ "dynamics": "mp"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "G4:h R:h",
66
+ "leftHand": "G2:q B3 D4:q G2:h",
67
+ "dynamics": "p"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "id": "someone-like-you",
3
+ "title": "Someone Like You",
4
+ "genre": "pop",
5
+ "composer": "Adele Adkins & Dan Wilson",
6
+ "difficulty": "intermediate",
7
+ "key": "A major",
8
+ "tempo": 68,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 28,
11
+ "tags": [
12
+ "adele",
13
+ "ballad",
14
+ "emotional",
15
+ "arpeggiated",
16
+ "modern-pop"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "Built on a flowing arpeggiated pattern in A major, this arrangement captures the emotional weight of the original. The left hand rolls through broken chords while the right hand carries the vocal melody. The I-V-vi-IV progression drives the entire piece with understated power.",
21
+ "structure": "Verse pattern (8 bars) — A-E-F#m-D progression repeated twice",
22
+ "keyMoments": [
23
+ "Bars 1-2: A to E — the open, hopeful beginning",
24
+ "Bars 3-4: F#m to D — the emotional turn where melancholy enters",
25
+ "Bars 7-8: Second pass with slightly fuller texture, building intensity"
26
+ ],
27
+ "teachingGoals": [
28
+ "Smooth arpeggiated left-hand patterns across 4 chord shapes",
29
+ "Independent hand coordination — melody over flowing accompaniment",
30
+ "Expressive dynamics within a soft dynamic range"
31
+ ],
32
+ "styleTips": [
33
+ "The left hand should flow like water — even, unhurried eighth notes",
34
+ "Right-hand melody needs to breathe, like a singer taking breaths between phrases",
35
+ "Keep dynamics restrained — the power comes from the harmonic motion, not volume"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "E4:q C#5:q B4:q A4:q",
42
+ "leftHand": "A2:e E3:e A3:e E3:e A2:e E3:e A3:e E3:e",
43
+ "teachingNote": "A major arpeggiation — establish the rolling pattern that defines this song.",
44
+ "dynamics": "p"
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "G#4:q A4:q B4:h",
49
+ "leftHand": "E2:e B2:e E3:e B2:e E2:e B2:e E3:e B2:e",
50
+ "teachingNote": "E major — the V chord. The melody rises to B4, opening up the phrase."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "A4:q C#5:q B4:q A4:q",
55
+ "leftHand": "F#2:e C#3:e F#3:e C#3:e F#2:e C#3:e F#3:e C#3:e",
56
+ "teachingNote": "F# minor — the vi chord. Same melody shape but the harmony darkens beneath it.",
57
+ "dynamics": "mp"
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "F#4:q E4:q D4:h",
62
+ "leftHand": "D2:e A2:e D3:e A2:e D2:e A2:e D3:e A2:e",
63
+ "teachingNote": "D major — the IV chord. Melody descends to rest. Feel the sadness here."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "E4:q C#5:q B4:q A4:q",
68
+ "leftHand": "A2:e E3:e A3:e E3:e A2:e E3:e A3:e E3:e",
69
+ "teachingNote": "Second verse pass — same chords, growing confidence."
70
+ },
71
+ {
72
+ "number": 6,
73
+ "rightHand": "G#4:q A4:q B4:q C#5:q",
74
+ "leftHand": "E2:e B2:e E3:e B2:e E2:e B2:e E3:e B2:e",
75
+ "teachingNote": "This time the melody pushes higher to C#5 — building emotional intensity.",
76
+ "dynamics": "mf"
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "C#5:q B4:q A4:q B4:q",
81
+ "leftHand": "F#2:e C#3:e F#3:e C#3:e F#2:e C#3:e F#3:e C#3:e",
82
+ "teachingNote": "F# minor again — the melody lingers higher, more urgent."
83
+ },
84
+ {
85
+ "number": 8,
86
+ "rightHand": "A4:h E4:h",
87
+ "leftHand": "D2:e A2:e D3:e A2:e A2:e E3:e A3:h",
88
+ "teachingNote": "D resolving to A — the melody drops to a quiet close. Let the last note fade.",
89
+ "dynamics": "p"
90
+ }
91
+ ]
92
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "id": "spirited-away",
3
+ "title": "One Summer's Day (Spirited Away)",
4
+ "genre": "film",
5
+ "composer": "Joe Hisaishi",
6
+ "difficulty": "intermediate",
7
+ "key": "D major",
8
+ "tempo": 72,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 27,
11
+ "tags": [
12
+ "hisaishi",
13
+ "studio-ghibli",
14
+ "wistful",
15
+ "japanese",
16
+ "lyrical"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "Joe Hisaishi's wistful piano piece from Spirited Away captures the innocence and wonder of Chihiro's journey. The D major key gives it a warm, golden tone, while the melody moves with a gentle, searching quality that mirrors the film's themes of growing up and finding courage. The left hand plays broken chord patterns that create a flowing, water-like accompaniment beneath the singing melody.",
21
+ "structure": "A section: the gentle searching melody (4 bars), B section: the melody opens up and resolves (4 bars)",
22
+ "keyMoments": [
23
+ "Bar 1: D major — the opening melody, gentle and curious like Chihiro.",
24
+ "Bars 3-4: The melody reaches upward — wonder and discovery.",
25
+ "Bars 7-8: The resolution — wistful acceptance and beauty."
26
+ ],
27
+ "teachingGoals": [
28
+ "Singing right hand melody over broken chord left hand",
29
+ "Japanese classical-pop piano style — clean, lyrical, unadorned",
30
+ "Creating emotional depth with simple means"
31
+ ],
32
+ "styleTips": [
33
+ "Pure and clear — Hisaishi's style has no ornament, only emotion",
34
+ "The melody should sound like a child humming to herself",
35
+ "Left hand broken chords should flow like a stream — continuous and gentle"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "F#4:q A4:q D5:q C#5:q",
42
+ "leftHand": "D3:e A3:e D4:e A3:e D3:e A3:e D4:e A3:e",
43
+ "dynamics": "p",
44
+ "teachingNote": "D major — the gentle opening. Melody ascends with innocent curiosity."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "B4:q A4:q F#4:h",
49
+ "leftHand": "G3:e D4:e G4:e D4:e G3:e D4:e G4:e D4:e",
50
+ "teachingNote": "G major — melody descends. The flowing left hand never stops."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "E4:q F#4:q A4:q B4:q",
55
+ "leftHand": "A2:e E3:e A3:e E3:e A2:e E3:e A3:e E3:e",
56
+ "dynamics": "mp",
57
+ "teachingNote": "A major — climbing again, reaching higher this time."
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "A4:q G4:q F#4:h",
62
+ "leftHand": "D3:e A3:e D4:e A3:e D3:e A3:e D4:e A3:e",
63
+ "teachingNote": "D major — gentle landing. The phrase ends with a sigh."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "D5:q C#5:q B4:q A4:q",
68
+ "leftHand": "B2:e F#3:e B3:e F#3:e B2:e F#3:e B3:e F#3:e",
69
+ "dynamics": "mf",
70
+ "teachingNote": "Bm — the B section opens up. Melody starts high and descends."
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "B4:q C#5:q D5:h",
75
+ "leftHand": "G3:e D4:e G4:e D4:e A3:e E4:e A4:e E4:e",
76
+ "dynamics": "f",
77
+ "teachingNote": "G to A — the emotional peak. D5 sustained at the loudest point."
78
+ },
79
+ {
80
+ "number": 7,
81
+ "rightHand": "C#5:q B4:q A4:q G4:q",
82
+ "leftHand": "F#3:e C#4:e F#4:e C#4:e E3:e B3:e E4:e B3:e",
83
+ "dynamics": "mp",
84
+ "teachingNote": "F#m to Em — gently retreating. The wistfulness deepens."
85
+ },
86
+ {
87
+ "number": 8,
88
+ "rightHand": "F#4:h D4:h",
89
+ "leftHand": "D3:e A3:e D4:e A3:e D3:q R:q",
90
+ "dynamics": "pp",
91
+ "teachingNote": "D major — the melody settles to rest. One summer's day, remembered."
92
+ }
93
+ ]
94
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "st-louis-blues",
3
+ "title": "St. Louis Blues",
4
+ "genre": "blues",
5
+ "composer": "W.C. Handy",
6
+ "difficulty": "intermediate",
7
+ "key": "G major",
8
+ "tempo": 96,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 20,
11
+ "tags": [
12
+ "classic-blues",
13
+ "wc-handy",
14
+ "tango-section",
15
+ "12-bar",
16
+ "historical",
17
+ "swing"
18
+ ],
19
+ "source": "Claude arrangement — simplified interpretation",
20
+ "musicalLanguage": {
21
+ "description": "The 'Father of the Blues' wrote this in 1914, and it became one of the most recorded songs in history. The first section uses a habanera/tango rhythm that distinguishes it from standard 12-bar blues. The melody mixes blues notes with a sophisticated, almost orchestral sensibility.",
22
+ "structure": "12-bar blues form. This excerpt: 8 bars of the opening section",
23
+ "keyMoments": [
24
+ "Bar 1-2: The habanera-flavored opening — NOT a standard shuffle. Feel the dotted rhythm.",
25
+ "Bar 3-4: G7 with blue notes — the melody bends between major and minor thirds",
26
+ "Bar 5-6: C7 (IV chord) — the harmony opens up while the habanera continues",
27
+ "Bar 7-8: Return to G7 with a classic blues turnaround feel"
28
+ ],
29
+ "teachingGoals": [
30
+ "Habanera rhythm — dotted-quarter + eighth + two quarters",
31
+ "Blue notes — the ambiguity between major and minor 3rd (B vs Bb)",
32
+ "Historical blues form — understanding the roots of American music"
33
+ ],
34
+ "styleTips": [
35
+ "The habanera feel is the key — do not play this as a straight shuffle",
36
+ "Blue notes should be slightly hesitant, not clean — they live between the cracks",
37
+ "Left hand is steady and rhythmic — it anchors the exotic rhythm"
38
+ ]
39
+ },
40
+ "measures": [
41
+ {
42
+ "number": 1,
43
+ "rightHand": "D5:q. B4:e Bb4:q G4:q",
44
+ "leftHand": "G2:q B2:q D3:q G3:q",
45
+ "teachingNote": "G7 — the dotted rhythm gives the habanera feel. Bb is the blue note — let it growl.",
46
+ "dynamics": "mf"
47
+ },
48
+ {
49
+ "number": 2,
50
+ "rightHand": "A4:q Bb4:e B4:e D5:h",
51
+ "leftHand": "G2:q B2:q D3:q G3:q",
52
+ "teachingNote": "G7 — the melody slides from Bb to B natural. That major/minor ambiguity IS the blues."
53
+ },
54
+ {
55
+ "number": 3,
56
+ "rightHand": "D5:q. B4:e G4:h",
57
+ "leftHand": "G2:q B2:q D3:q B2:q",
58
+ "teachingNote": "G7 continues. The melody repeats its signature dotted figure."
59
+ },
60
+ {
61
+ "number": 4,
62
+ "rightHand": "A4:q G4:q F#4:h",
63
+ "leftHand": "D3:q A2:q D3:q A2:q",
64
+ "teachingNote": "D7 — moving to the V chord briefly. F#4 is the major 3rd of D7."
65
+ },
66
+ {
67
+ "number": 5,
68
+ "rightHand": "G5:q. E5:e Eb5:q C5:q",
69
+ "leftHand": "C3:q E3:q G3:q C4:q",
70
+ "teachingNote": "C7 — the IV chord. Same melodic contour transposed up. Eb is the blue note over C.",
71
+ "dynamics": "f"
72
+ },
73
+ {
74
+ "number": 6,
75
+ "rightHand": "D5:q Eb5:e E5:e G5:h",
76
+ "leftHand": "C3:q E3:q G3:q C4:q",
77
+ "teachingNote": "C7 continues. The chromatic slide Eb-E is pure blues expression."
78
+ },
79
+ {
80
+ "number": 7,
81
+ "rightHand": "D5:q. B4:e Bb4:q G4:q",
82
+ "leftHand": "G2:q B2:q D3:q G3:q",
83
+ "teachingNote": "Back to G7 — the opening riff returns. Familiarity feels good.",
84
+ "dynamics": "mf"
85
+ },
86
+ {
87
+ "number": 8,
88
+ "rightHand": "A4:q B4:q D5:q F#4:q",
89
+ "leftHand": "D3:q F#3:q A3:q D3:q",
90
+ "teachingNote": "D7 turnaround. The melody leaps down to F#4, setting up the repeat."
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "stairway-intro",
3
+ "title": "Stairway to Heaven (Intro)",
4
+ "genre": "rock",
5
+ "composer": "Jimmy Page & Robert Plant",
6
+ "difficulty": "intermediate",
7
+ "key": "A minor",
8
+ "tempo": 72,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 27,
11
+ "tags": [
12
+ "led-zeppelin",
13
+ "fingerpicking",
14
+ "arpeggiated",
15
+ "iconic-intro",
16
+ "classic-rock"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "An adaptation of the legendary guitar fingerpicking intro for piano. The original features a chromatic descending bass line under arpeggiated chords, creating one of the most recognizable openings in rock history. This piano arrangement preserves the descending bass motion and the delicate arpeggiated texture.",
21
+ "structure": "Intro (8 bars) — Am descending bass line: A-G#-G-F#-F-E with arpeggiated chords above",
22
+ "keyMoments": [
23
+ "Bars 1-4: The chromatic descent from A to F — each bass note drops a half step while the upper voices sustain",
24
+ "Bars 5-6: The arrival at F major and the mood shift",
25
+ "Bars 7-8: G to Am resolution — the descent completes its cycle"
26
+ ],
27
+ "teachingGoals": [
28
+ "Chromatic bass line movement — half-step descents",
29
+ "Arpeggiated patterns adapted from guitar fingerpicking",
30
+ "Independent voice control — bass moves while upper notes sustain"
31
+ ],
32
+ "styleTips": [
33
+ "Play delicately — this is fingerpicking, not strumming",
34
+ "The bass line descent should be smooth and connected, like a slow walk downstairs",
35
+ "Let the upper notes ring while the bass moves — use pedal carefully"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "E4:e A4:e C5:e A4:e E4:e A4:e C5:e A4:e",
42
+ "leftHand": "A2:h G#2:h",
43
+ "teachingNote": "Am — the iconic opening. The right hand arpeggiates while the bass begins its chromatic descent.",
44
+ "dynamics": "p"
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "E4:e A4:e C5:e A4:e E4:e B4:e C5:e B4:e",
49
+ "leftHand": "G2:h F#2:h",
50
+ "teachingNote": "The bass continues descending G-F# while the arpeggiation pattern subtly varies."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "E4:e A4:e C5:e A4:e E4:e A4:e C5:e A4:e",
55
+ "leftHand": "F2:h E2:h",
56
+ "teachingNote": "F to E — the bass descent continues. We are moving through the chromatic scale step by step.",
57
+ "dynamics": "mp"
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "E4:e G4:e B4:e G4:e E4:e G4:e B4:e G4:e",
62
+ "leftHand": "E2:h D2:h",
63
+ "teachingNote": "E minor arpeggiation — the harmony opens up as the bass reaches D. A moment of clarity."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "C4:e F4:e A4:e F4:e C4:e F4:e A4:e F4:e",
68
+ "leftHand": "F2:h F3:h",
69
+ "teachingNote": "F major — a warm, bright contrast after the chromatic descent. The mood shifts.",
70
+ "dynamics": "mp"
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "D4:e G4:e B4:e G4:e D4:e G4:e B4:e G4:e",
75
+ "leftHand": "G2:h G3:h",
76
+ "teachingNote": "G major — building energy. The arpeggio pattern is becoming natural now."
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "E4:e A4:e C5:e A4:e E4:e A4:e C5:e A4:e",
81
+ "leftHand": "A2:h E2:h",
82
+ "teachingNote": "Back to Am — the cycle returns home. The descent was a journey, and here we arrive.",
83
+ "dynamics": "mf"
84
+ },
85
+ {
86
+ "number": 8,
87
+ "rightHand": "E4:e A4:e C5:e A4:e E4:h",
88
+ "leftHand": "A2:h A2:h",
89
+ "teachingNote": "A minor settles — the arpeggio slows to a held E. The intro is complete.",
90
+ "dynamics": "p"
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "id": "starlight-waltz",
3
+ "title": "Starlight Waltz",
4
+ "genre": "new-age",
5
+ "composer": "Claude (original)",
6
+ "difficulty": "intermediate",
7
+ "key": "A major",
8
+ "tempo": 108,
9
+ "timeSignature": "3/4",
10
+ "durationSeconds": 13,
11
+ "tags": ["new-age", "waltz", "stars", "intermediate", "elegant"],
12
+ "source": "Claude arrangement",
13
+ "musicalLanguage": {
14
+ "description": "A graceful waltz set against a starlit sky. The 3/4 time signature gives it a gentle swaying quality, while the melody sparkles in the upper register like distant stars. The left hand provides a classic waltz bass-chord-chord pattern softened into something dreamlike.",
15
+ "structure": "Through-composed waltz (8 bars in 3/4)",
16
+ "keyMoments": ["Sparkling high register melody in measure 1", "Waltz pattern transformation in measure 5"],
17
+ "teachingGoals": ["Practice 3/4 waltz accompaniment patterns", "Develop light, sparkling touch in upper register"],
18
+ "styleTips": ["Keep the waltz pattern gentle, not heavy", "The high notes should shimmer like starlight"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "A5:q E5:q C#5:q",
24
+ "leftHand": "A2:q E3 A3:q E3 A3:q",
25
+ "dynamics": "p"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "D5:q E5:q F#5:q",
30
+ "leftHand": "D3:q F#3 A3:q F#3 A3:q",
31
+ "dynamics": "p"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "E5:q C#5:q A4:q",
36
+ "leftHand": "A2:q E3 A3:q E3 A3:q",
37
+ "dynamics": "mp"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "B4:q A4:q G#4:q",
42
+ "leftHand": "E3:q G#3 B3:q G#3 B3:q",
43
+ "dynamics": "mp"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "A5:q B5:q C#6:q",
48
+ "leftHand": "F#3:q A3 C#4:q A3 C#4:q",
49
+ "dynamics": "mf"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "D6:q C#6:q B5:q",
54
+ "leftHand": "D3:q F#3 A3:q F#3 A3:q",
55
+ "dynamics": "mf"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "A5:q G#5:q E5:q",
60
+ "leftHand": "E3:q G#3 B3:q A2:q E3 A3:q",
61
+ "dynamics": "mp"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "A5:h.",
66
+ "leftHand": "A2:q E3 A3:h",
67
+ "dynamics": "p"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "stay-with-me",
3
+ "title": "Stay With Me",
4
+ "genre": "pop",
5
+ "composer": "Sam Smith, James Napier & William Phillips",
6
+ "difficulty": "beginner",
7
+ "key": "C major",
8
+ "tempo": 84,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 23,
11
+ "tags": [
12
+ "sam-smith",
13
+ "gospel-pop",
14
+ "soulful",
15
+ "beginner-friendly",
16
+ "modern"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "A gospel-tinged pop song built on just three chords: Am, F, and C. The simplicity is its power — the emotional weight comes from the vocal melody and the gospel-soul harmonic flavor. This beginner arrangement uses block chords in the left hand with a straightforward vocal melody in the right.",
21
+ "structure": "Verse-Chorus feel (8 bars) — Am-F-C repeated with subtle melodic variation",
22
+ "keyMoments": [
23
+ "Bars 1-2: Am to F — the minor-to-major shift gives the gospel flavor",
24
+ "Bars 3-4: C major — the resolution that the ear craves",
25
+ "Bars 5-8: The same progression with the melody reaching higher — building to an emotional peak"
26
+ ],
27
+ "teachingGoals": [
28
+ "Three-chord song — Am, F, C in root position",
29
+ "Playing with a soulful, slightly behind-the-beat feel",
30
+ "Connecting simple chords to create emotional impact"
31
+ ],
32
+ "styleTips": [
33
+ "Play with a relaxed, soulful feel — slightly behind the beat, never ahead",
34
+ "The left hand chords should have a soft, warm attack",
35
+ "Think gospel choir — there is weight and warmth in every chord change"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "E4:q E4:q E4:q D4:q",
42
+ "leftHand": "A2:q C3:q E3:q C3:q",
43
+ "teachingNote": "A minor — the melody repeats E before stepping down. Soulful and direct.",
44
+ "dynamics": "mp"
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "C4:q D4:q C4:h",
49
+ "leftHand": "F2:q A2:q C3:q A2:q",
50
+ "teachingNote": "F major — the melody relaxes to C. Feel the gospel warmth in the F chord."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "E4:q E4:q D4:q C4:q",
55
+ "leftHand": "C3:q E3:q G3:q E3:q",
56
+ "teachingNote": "C major — the melody descends E-D-C. The resolution feels like a deep breath."
57
+ },
58
+ {
59
+ "number": 4,
60
+ "rightHand": "C4:h R:h",
61
+ "leftHand": "C3:q E3:q G3:h",
62
+ "teachingNote": "Hold and rest — give the phrase space to breathe. Silence is part of the music.",
63
+ "dynamics": "p"
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "E4:q G4:q A4:q G4:q",
68
+ "leftHand": "A2:q C3:q E3:q C3:q",
69
+ "teachingNote": "A minor — the melody reaches higher this time, up to A4. Building intensity.",
70
+ "dynamics": "mf"
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "F4:q G4:q F4:h",
75
+ "leftHand": "F2:q A2:q C3:q A2:q",
76
+ "teachingNote": "F major — melody peaks and settles. The gospel feel intensifies."
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "E4:q D4:q C4:q D4:q",
81
+ "leftHand": "C3:q E3:q G3:q E3:q",
82
+ "teachingNote": "C major — the melody winds down with a gentle ornamental turn.",
83
+ "dynamics": "mp"
84
+ },
85
+ {
86
+ "number": 8,
87
+ "rightHand": "C4:w",
88
+ "leftHand": "A2:q C3:q E3:h",
89
+ "teachingNote": "Landing on C over Am — a bittersweet ending. The minor chord under a major melody note.",
90
+ "dynamics": "p"
91
+ }
92
+ ]
93
+ }