@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,93 @@
1
+ {
2
+ "id": "lets-stay-together",
3
+ "title": "Let's Stay Together",
4
+ "genre": "rnb",
5
+ "composer": "Al Green / Willie Mitchell / Al Jackson Jr.",
6
+ "difficulty": "advanced",
7
+ "key": "F major",
8
+ "tempo": 104,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 18,
11
+ "tags": [
12
+ "smooth-soul",
13
+ "al-green",
14
+ "memphis",
15
+ "advanced-harmony",
16
+ "groove"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "Al Green's Memphis soul masterpiece features sophisticated chord movement with major and minor ninths, chromatic bass motion, and a silky smooth groove. This advanced arrangement includes extended chord voicings, inner voice movement, and a demanding left hand bass line that drives the iconic rhythm. The interplay between the lush harmony and floating melody demands refined coordination.",
21
+ "structure": "Verse: Fmaj9-Am7-Dm9-Bbmaj7-Am7-Gm7-C9 (4 bars), Chorus: intensified with wider voicings (4 bars)",
22
+ "keyMoments": [
23
+ "Bar 1: Fmaj9 — the opening chord sets the silk standard.",
24
+ "Bars 3-4: Bbmaj7 to Gm7 to C9 — the cascading descent that defines the song.",
25
+ "Bars 7-8: The climactic passage with full extended voicings."
26
+ ],
27
+ "teachingGoals": [
28
+ "Extended chord voicings — 9ths and major 7ths",
29
+ "Chromatic bass movement and smooth voice leading",
30
+ "Advanced two-hand coordination with independent rhythms"
31
+ ],
32
+ "styleTips": [
33
+ "The groove should feel like velvet — smooth but with subtle rhythmic push",
34
+ "Voice each chord carefully — every note in the voicing matters",
35
+ "The bass line is the backbone — make it sing, not just thump"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "A4:e G4:e F4:q E4:q G4:q",
42
+ "leftHand": "F2:q C3:e A2:e F2:q C3:q",
43
+ "dynamics": "mf",
44
+ "teachingNote": "Fmaj9 — lush opening. The eighth notes in both hands must align precisely."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "A4:q G4:e F4:e E4:q D4:q",
49
+ "leftHand": "A2:q E3:q D3:q A2:q",
50
+ "teachingNote": "Am7 to Dm9 — melody weaves through the chord tones. Keep it legato."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "D4:q F4:q A4:e Bb4:e A4:q",
55
+ "leftHand": "Bb2:q F3:q A2:q E3:q",
56
+ "dynamics": "f",
57
+ "teachingNote": "Bbmaj7 to Am7 — the chromatic bass descent. This is the money move."
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "G4:q Bb4:q A4:q G4:q",
62
+ "leftHand": "G2:q D3:q C2:q G2:e Bb2:e",
63
+ "teachingNote": "Gm7 to C9 — dominant turnaround. The Bb in the bass is the 7th of C."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "F4:e A4:e C5:q Bb4:q A4:q",
68
+ "leftHand": "F2:q C3:q F3:q C3:q",
69
+ "dynamics": "f",
70
+ "teachingNote": "Chorus — Fmaj9. Melody leaps to C5. Open up the sound."
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "Bb4:q A4:e G4:e F4:q E4:q",
75
+ "leftHand": "Bb2:q F3:q A2:q E3:q",
76
+ "teachingNote": "Bbmaj7 to Am7 — same chromatic bass as before but melody is more active."
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "D4:e F4:e A4:q C5:e Bb4:e A4:q",
81
+ "leftHand": "D2:q A2:q G2:q D3:q",
82
+ "dynamics": "ff",
83
+ "teachingNote": "Dm9 to Gm7 — the climax. Both hands are fully active. Focus on timing."
84
+ },
85
+ {
86
+ "number": 8,
87
+ "rightHand": "G4:q A4:q F4:h",
88
+ "leftHand": "C2:q E2:q F2:h",
89
+ "dynamics": "mf",
90
+ "teachingNote": "C9 to Fmaj7 — resolution. The bass walks C-E-F, guiding us home."
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "id": "magnetic-rag",
3
+ "title": "Magnetic Rag",
4
+ "genre": "ragtime",
5
+ "composer": "Scott Joplin",
6
+ "difficulty": "advanced",
7
+ "key": "Bb major",
8
+ "tempo": 100,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 19,
11
+ "tags": ["ragtime", "joplin", "final", "sophisticated", "advanced"],
12
+ "source": "Claude arrangement — simplified interpretation",
13
+ "musicalLanguage": {
14
+ "description": "Magnetic Rag (1914) was Joplin's last published rag and shows his most mature compositional voice. It blends ragtime with deeper harmonic language, foreshadowing early jazz with unexpected chord changes and a bittersweet quality.",
15
+ "structure": "A section excerpt (8 bars)",
16
+ "keyMoments": ["Chromatic bass motion in measures 3-4", "Bittersweet harmonic shift in measure 6"],
17
+ "teachingGoals": ["Navigate chromatic harmony in ragtime context", "Develop sensitivity to Joplin's late harmonic language"],
18
+ "styleTips": ["Play with weight and gravitas — this is mature Joplin", "Let the chromatic moments breathe; do not rush through them"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "Bb4:e D5:e F5:q Eb5:e D5:e C5:q",
24
+ "leftHand": "Bb2:q D4 F4:q Bb2:q D4 F4:q",
25
+ "dynamics": "mf"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "D5:e C5:e Bb4:e A4:e Bb4:q D5:q",
30
+ "leftHand": "F3:q A3 C4:q F3:q A3 C4:q",
31
+ "dynamics": "mf"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "F5:e Eb5:e D5:e Db5:e C5:q Bb4:q",
36
+ "leftHand": "Bb2:q D4 F4:q A2:q C4 Eb4:q",
37
+ "dynamics": "mf"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "A4:e Bb4:e C5:e D5:e Eb5:q D5:q",
42
+ "leftHand": "Ab2:q C4 Eb4:q G2:q Bb3 D4:q",
43
+ "dynamics": "mp"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "F5:e D5:e Bb4:e D5:e F5:q A5:q",
48
+ "leftHand": "Bb2:q D4 F4:q Bb2:q D4 F4:q",
49
+ "dynamics": "f"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "Ab5:e G5:e F5:e Eb5:e Db5:q C5:q",
54
+ "leftHand": "Db3:q F3 Ab3:q C3:q E4 Bb3:q",
55
+ "dynamics": "mf"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "D5:e Eb5:e F5:e G5:e A5:e Bb5:e A5:q",
60
+ "leftHand": "Bb2:q D4 F4:q F3:q A3 Eb4:q",
61
+ "dynamics": "f"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "Bb5:h R:h",
66
+ "leftHand": "Bb2:q D4 F4:q Bb2:q R:q",
67
+ "dynamics": "ff"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,99 @@
1
+ {
2
+ "id": "maple-leaf-rag",
3
+ "title": "Maple Leaf Rag (A Section)",
4
+ "genre": "ragtime",
5
+ "composer": "Scott Joplin",
6
+ "difficulty": "advanced",
7
+ "key": "Ab major",
8
+ "tempo": 96,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 30,
11
+ "tags": [
12
+ "joplin",
13
+ "ragtime",
14
+ "stride",
15
+ "syncopation",
16
+ "classic"
17
+ ],
18
+ "source": "Public domain — A section of the original score (simplified)",
19
+ "musicalLanguage": {
20
+ "description": "The piece that launched ragtime into the mainstream. Maple Leaf Rag's A section is a masterclass in syncopated melody over stride bass. The right hand plays off the beat while the left hand keeps strict time with the oom-pah stride pattern. This is the piece Joplin was most proud of.",
21
+ "structure": "A section — 8 bars, repeated",
22
+ "keyMoments": [
23
+ "Bar 1: The syncopated octave Abs set the tone — aggressive and confident",
24
+ "Bars 3-4: The melody climbs through Bb-C-Db — the classic ragtime scale run",
25
+ "Bars 7-8: The turnaround with the chromatic bass descent into the repeat"
26
+ ],
27
+ "teachingGoals": [
28
+ "Advanced stride left hand: octave bass + mid-range chord alternation",
29
+ "Right-hand syncopation against a steady left hand — true independence",
30
+ "Ragtime articulation: detached bass, connected melody"
31
+ ],
32
+ "styleTips": [
33
+ "NOT FAST — Joplin explicitly marked 'Tempo di marcia' (march tempo)",
34
+ "Left hand: bass notes short and detached, chords lighter and sustained",
35
+ "Right hand: let the syncopated notes ring slightly longer than written"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "Ab4:e R:s Ab4:s Ab4:e C5:e Eb5:e Ab4:e",
42
+ "leftHand": "Ab2:e Eb3:e Ab3:e Eb3:e",
43
+ "fingering": "RH: 1-1-1-3-5-1, LH: 5-2-1-2 (stride)",
44
+ "teachingNote": "The famous opening — syncopated Ab octaves. The 'rest-sixteenth' gives it the kick.",
45
+ "dynamics": "f"
46
+ },
47
+ {
48
+ "number": 2,
49
+ "rightHand": "Db5:e C5:e Ab4:e Eb4:e C4:q R:q",
50
+ "leftHand": "Db2:e Ab2:e Db3:e Ab2:e",
51
+ "fingering": "RH: 4-3-1-3-1, LH: 5-2-1-2",
52
+ "teachingNote": "Descending from the peak — Db-C-Ab-Eb. Keep it crisp and bouncy."
53
+ },
54
+ {
55
+ "number": 3,
56
+ "rightHand": "Ab4:e Bb4:e C5:e Db5:e Eb5:e R:e Db5:q",
57
+ "leftHand": "Ab2:e Eb3:e Ab3:e Eb3:e",
58
+ "fingering": "RH: 1-2-3-4-5-4, LH: stride",
59
+ "teachingNote": "The ascending scale run — the heart of the rag. Don't accent the top note — it's the REST that makes it ragtime.",
60
+ "dynamics": "mf"
61
+ },
62
+ {
63
+ "number": 4,
64
+ "rightHand": "C5:e Ab4:e Eb4:e Ab4:e C5:h",
65
+ "leftHand": "Eb2:e Bb2:e Eb3:e Bb2:e",
66
+ "fingering": "RH: 3-1-1-1-3, LH: 5-2-1-2 (Eb stride)",
67
+ "teachingNote": "Eb major in the bass — the V chord. The melody outlines the chord going up and down."
68
+ },
69
+ {
70
+ "number": 5,
71
+ "rightHand": "Ab4:e R:s Ab4:s Ab4:e C5:e Eb5:e Ab4:e",
72
+ "leftHand": "Ab2:e Eb3:e Ab3:e Eb3:e",
73
+ "teachingNote": "The A section repeats its opening. This time, play with more confidence.",
74
+ "dynamics": "f"
75
+ },
76
+ {
77
+ "number": 6,
78
+ "rightHand": "Db5:e C5:e Ab4:e F4:e Eb4:q R:q",
79
+ "leftHand": "Db2:e Ab2:e Db3:e Ab2:e",
80
+ "fingering": "RH: 4-3-1-2-1, LH: 5-2-1-2",
81
+ "teachingNote": "Slight variation — F natural instead of Eb. Joplin loved these small surprises."
82
+ },
83
+ {
84
+ "number": 7,
85
+ "rightHand": "Eb4:e G4:e Bb4:e Eb5:e Db5:e C5:e Bb4:e Ab4:e",
86
+ "leftHand": "Eb2:e Bb2:e Eb3:e Bb2:e",
87
+ "fingering": "RH: 1-3-4-5-4-3-2-1, LH: stride",
88
+ "teachingNote": "The turnaround — up through Eb major then cascade down. This is the show-off moment.",
89
+ "dynamics": "ff"
90
+ },
91
+ {
92
+ "number": 8,
93
+ "rightHand": "Ab4:q R:e Ab3:e Ab4:h",
94
+ "leftHand": "Ab2:e Eb3:e Ab3:e Eb2:e",
95
+ "fingering": "RH: 1-1-1, LH: 5-2-1-5",
96
+ "teachingNote": "Landing back on Ab. The octave drop is the exclamation point. Ready to loop!"
97
+ }
98
+ ]
99
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "mia-and-sebastians-theme",
3
+ "title": "Mia & Sebastian's Theme",
4
+ "genre": "film",
5
+ "composer": "Justin Hurwitz",
6
+ "difficulty": "intermediate",
7
+ "key": "A major",
8
+ "tempo": 108,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 18,
11
+ "tags": [
12
+ "la-la-land",
13
+ "romantic",
14
+ "jazz",
15
+ "lyrical",
16
+ "modern"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "The romantic piano theme from La La Land, played by Ryan Gosling's character in the film. The melody is built on cascading arpeggiated figures in A major that capture the magic and heartbreak of the story. The left hand plays jazz-influenced chord voicings while the right hand dances through the signature descending and ascending patterns that make this theme so memorable.",
21
+ "structure": "A section: the cascading arpeggio theme (4 bars), B section: lyrical development and resolution (4 bars)",
22
+ "keyMoments": [
23
+ "Bar 1: The opening A major arpeggio cascade — pure romantic magic.",
24
+ "Bars 3-4: The theme develops with wider intervals — reaching and yearning.",
25
+ "Bars 7-8: The gentle landing — bittersweet resolution."
26
+ ],
27
+ "teachingGoals": [
28
+ "Flowing arpeggiated right hand figures",
29
+ "Jazz-influenced left hand chord voicings",
30
+ "Pedaling technique for connected, resonant sound"
31
+ ],
32
+ "styleTips": [
33
+ "The right hand should flow like water — never choppy or mechanical",
34
+ "Use sustain pedal to create a wash of sound, changing with each chord",
35
+ "Think of Ryan Gosling playing this at the piano — passionate but effortless"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "E5:e C#5:e A4:e E5:e C#5:e A4:e E4:q",
42
+ "leftHand": "A2:q E3:q A3:q E3:q",
43
+ "dynamics": "mp",
44
+ "teachingNote": "A major — the cascading arpeggio. Let it flow downward like falling stars."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "D5:e B4:e G#4:e D5:e B4:e G#4:e E4:q",
49
+ "leftHand": "E2:q B2:q G#3:q B3:q",
50
+ "teachingNote": "E major — same pattern, shifted. The cascade continues."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "C#5:e A4:e F#4:e C#5:q A4:q F#4:q",
55
+ "leftHand": "F#2:q C#3:q A3:q C#4:q",
56
+ "dynamics": "mf",
57
+ "teachingNote": "F#m — the pattern slows slightly. The melody breathes."
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "D5:q C#5:q B4:q A4:q",
62
+ "leftHand": "D2:q A2:q D3:q F#3:q",
63
+ "teachingNote": "D major — stepwise descent. The theme finds its lyrical shape."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "A4:q B4:q C#5:q E5:q",
68
+ "leftHand": "A2:q E3:q A3:q C#4:q",
69
+ "dynamics": "f",
70
+ "teachingNote": "A major — ascending now. The melody reaches upward with hope."
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "D5:q C#5:e B4:e A4:q G#4:q",
75
+ "leftHand": "F#2:q C#3:q F#3:q A3:q",
76
+ "teachingNote": "F#m — peak and descent. Romantic yearning at its height."
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "A4:q B4:q C#5:e B4:e A4:q",
81
+ "leftHand": "D2:q F#2:q A2:q D3:q",
82
+ "dynamics": "mf",
83
+ "teachingNote": "D major — gentle rocking figure. Preparing the final landing."
84
+ },
85
+ {
86
+ "number": 8,
87
+ "rightHand": "A4:w",
88
+ "leftHand": "E2:q B2:q A2:h",
89
+ "dynamics": "p",
90
+ "teachingNote": "A major — whole note A. The romance rests. Bittersweet and beautiful."
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "id": "minor-blues-in-a",
3
+ "title": "Minor Blues in A",
4
+ "genre": "blues",
5
+ "composer": "Traditional",
6
+ "difficulty": "intermediate",
7
+ "key": "A minor",
8
+ "tempo": 92,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 21,
11
+ "tags": [
12
+ "minor-blues",
13
+ "A-minor",
14
+ "dark",
15
+ "moody",
16
+ "12-bar",
17
+ "modal"
18
+ ],
19
+ "source": "Claude arrangement",
20
+ "musicalLanguage": {
21
+ "description": "A minor-key 12-bar blues with a darker, moodier sound than standard major-key blues. The Am7-Dm7-E7 progression creates tension without resolution, a haunting quality that influenced everything from jazz to rock. The A minor blues scale (A C D Eb E G) provides the melodic vocabulary.",
22
+ "structure": "Minor 12-bar blues: i(4)-iv(2)-i(2)-V-iv-i-V. This excerpt: 8 bars",
23
+ "keyMoments": [
24
+ "Bar 1-2: Am7 — the minor tonic sets a dark, introspective mood",
25
+ "Bar 3-4: Am7 continues — the melody uses the minor blues scale with Eb (the blue note)",
26
+ "Bar 5-6: Dm7 — minor iv chord. The darkness deepens.",
27
+ "Bar 7-8: Am7 — return home with a descending line"
28
+ ],
29
+ "teachingGoals": [
30
+ "Minor blues form — i-iv-V in a minor key",
31
+ "A minor blues scale: A C D Eb E G",
32
+ "Difference between major and minor blues sound and feel"
33
+ ],
34
+ "styleTips": [
35
+ "Play with a darker touch — less bounce, more weight",
36
+ "The Eb (blue note) should be emphasized — it is the soul of minor blues",
37
+ "Left hand uses minor 7th voicings — root + minor 7th"
38
+ ]
39
+ },
40
+ "measures": [
41
+ {
42
+ "number": 1,
43
+ "rightHand": "A4:q C5:q E5:q G5:q",
44
+ "leftHand": "A2:q E3:q A3:q E3:q",
45
+ "teachingNote": "Am7 — ascending through Am7 chord tones. Left hand establishes the minor root-fifth pattern.",
46
+ "dynamics": "mf"
47
+ },
48
+ {
49
+ "number": 2,
50
+ "rightHand": "E5:q Eb5:q D5:q C5:q",
51
+ "leftHand": "A2:q E3:q A3:q E3:q",
52
+ "teachingNote": "Am7 — the E-Eb is the critical blues move: natural 5th sliding down to the blue note."
53
+ },
54
+ {
55
+ "number": 3,
56
+ "rightHand": "A4:q C5:q D5:q Eb5:q",
57
+ "leftHand": "A2:q E3:q A3:q G3:q",
58
+ "teachingNote": "Am7 — climbing through the minor blues scale. Eb (the blue note) is the peak.",
59
+ "dynamics": "f"
60
+ },
61
+ {
62
+ "number": 4,
63
+ "rightHand": "E5:q D5:q C5:q A4:q",
64
+ "leftHand": "A2:q E3:q A3:q E3:q",
65
+ "teachingNote": "Am7 — descending back to A. Natural E replaces Eb on the way down — common practice."
66
+ },
67
+ {
68
+ "number": 5,
69
+ "rightHand": "D5:q F5:q A5:q C6:q",
70
+ "leftHand": "D3:q A3:q D4:q A3:q",
71
+ "teachingNote": "Dm7 — the iv chord. Melody arpeggiates Dm7 upward. The mood deepens.",
72
+ "dynamics": "mf"
73
+ },
74
+ {
75
+ "number": 6,
76
+ "rightHand": "A5:q Ab5:q G5:q F5:q",
77
+ "leftHand": "D3:q A3:q D4:q A3:q",
78
+ "teachingNote": "Dm7 — descending with Ab as the blue note over Dm. Chromatic tension."
79
+ },
80
+ {
81
+ "number": 7,
82
+ "rightHand": "E5:q D5:q C5:q B4:q",
83
+ "leftHand": "A2:q E3:q A3:q E3:q",
84
+ "teachingNote": "Am7 — back to the tonic. Stepwise descent through A minor.",
85
+ "dynamics": "mp"
86
+ },
87
+ {
88
+ "number": 8,
89
+ "rightHand": "A4:h R:h",
90
+ "leftHand": "A2:q E3:q A3:h",
91
+ "teachingNote": "Am7 — land on the root and rest. Silence after the descent creates weight."
92
+ }
93
+ ]
94
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "id": "misty",
3
+ "title": "Misty",
4
+ "genre": "jazz",
5
+ "composer": "Erroll Garner",
6
+ "difficulty": "advanced",
7
+ "key": "Eb major",
8
+ "tempo": 66,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 29,
11
+ "tags": [
12
+ "ballad",
13
+ "jazz-standard",
14
+ "erroll-garner",
15
+ "romantic",
16
+ "rubato",
17
+ "lush-harmony"
18
+ ],
19
+ "source": "Claude arrangement — simplified interpretation",
20
+ "musicalLanguage": {
21
+ "description": "Erroll Garner's most famous composition — a lush, romantic ballad with wide melodic leaps and rich chromatic harmony. The opening octave leap (Bb to Bb) is one of the most recognizable gestures in all of jazz. The chords are dense and colorful, requiring careful voicing and pedal technique.",
22
+ "structure": "AABA — 32 bars. This excerpt: first A section (8 bars)",
23
+ "keyMoments": [
24
+ "Bar 1: The signature octave leap Bb4 to Bb5 — sets the dreamy mood instantly",
25
+ "Bar 3-4: Chromatic inner voice movement as chords shift — Abm7 to Db7",
26
+ "Bar 7-8: The phrase resolves with a gentle rubato feel — take your time"
27
+ ],
28
+ "teachingGoals": [
29
+ "Wide melodic intervals — reaching across the keyboard with confidence",
30
+ "Rich jazz ballad voicings with extensions (9ths, 13ths)",
31
+ "Rubato phrasing — stretching and compressing time expressively"
32
+ ],
33
+ "styleTips": [
34
+ "Use sustain pedal generously — this is a lush ballad, let chords ring",
35
+ "The melody should sing above everything — bring it out with touch",
36
+ "Tempo is flexible — slow down at phrase peaks, move forward in transitions"
37
+ ]
38
+ },
39
+ "measures": [
40
+ {
41
+ "number": 1,
42
+ "rightHand": "Bb4:q Bb5:h Ab5:q",
43
+ "leftHand": "Eb3 G3 Bb3:h Eb3 G3 Bb3:h",
44
+ "teachingNote": "EbMaj7 — the famous octave leap from Bb4 to Bb5. Let it soar.",
45
+ "dynamics": "mp"
46
+ },
47
+ {
48
+ "number": 2,
49
+ "rightHand": "G5:q F5:q Eb5:h",
50
+ "leftHand": "Bb2 F3 Ab3:h Bb2 F3 Ab3:h",
51
+ "teachingNote": "Bbm7 — melody descends gracefully. Left hand provides a warm Bb minor cushion."
52
+ },
53
+ {
54
+ "number": 3,
55
+ "rightHand": "Db5:q C5:q Bb4:q Ab4:q",
56
+ "leftHand": "Ab2 Eb3 Gb3:h Db3 F3 Ab3:h",
57
+ "teachingNote": "Abm7 to Db7 — chromatic passing chords. The inner voices shift beautifully.",
58
+ "dynamics": "mf"
59
+ },
60
+ {
61
+ "number": 4,
62
+ "rightHand": "G4:q Bb4:q C5:h",
63
+ "leftHand": "Eb3 G3 Bb3:h Eb3 G3 Bb3:h",
64
+ "teachingNote": "EbMaj7 — resolution. The melody climbs back up to C5, settling in."
65
+ },
66
+ {
67
+ "number": 5,
68
+ "rightHand": "Eb5:q F5:q G5:q Bb5:q",
69
+ "leftHand": "C3 Eb3 G3:h F3 A3 Eb4:h",
70
+ "teachingNote": "Cm7 to F7 — the ii-V of Bb. Melody ascends through the chord tones.",
71
+ "dynamics": "mf"
72
+ },
73
+ {
74
+ "number": 6,
75
+ "rightHand": "Ab5:h F5:h",
76
+ "leftHand": "Bb2 D3 F3 Ab3:h Bb2 D3 F3 Ab3:h",
77
+ "teachingNote": "Bb7 — dominant chord with lush left-hand voicing including the 7th. Let it breathe."
78
+ },
79
+ {
80
+ "number": 7,
81
+ "rightHand": "G5:q Eb5:q C5:q Bb4:q",
82
+ "leftHand": "Eb3 G3 Bb3:h Ab2 C3 Eb3:h",
83
+ "teachingNote": "EbMaj7 to Ab — melody descends in a gentle cascade. Slow down slightly.",
84
+ "dynamics": "mp"
85
+ },
86
+ {
87
+ "number": 8,
88
+ "rightHand": "Bb4:w",
89
+ "leftHand": "Eb3 G3 Bb3:w",
90
+ "teachingNote": "EbMaj7 — final resolution. Hold the whole note with pedal. Breathe.",
91
+ "dynamics": "p"
92
+ }
93
+ ]
94
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "moon-river",
3
+ "title": "Moon River",
4
+ "genre": "film",
5
+ "composer": "Henry Mancini / Johnny Mercer",
6
+ "difficulty": "beginner",
7
+ "key": "C major",
8
+ "tempo": 78,
9
+ "timeSignature": "3/4",
10
+ "durationSeconds": 19,
11
+ "tags": [
12
+ "mancini",
13
+ "waltz",
14
+ "dreamy",
15
+ "breakfast-at-tiffanys",
16
+ "classic"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "Henry Mancini's dreamy waltz from Breakfast at Tiffany's is one of the most beloved film melodies. The wide opening interval (C to A, a major sixth) immediately establishes the song's yearning character. The simple C major harmony and gentle 3/4 waltz make this accessible for beginners, while the melody's beauty rewards even the simplest performance.",
21
+ "structure": "A section: the wide-interval melody over C-Am-F-G (4 bars), B section: melodic development and return (4 bars)",
22
+ "keyMoments": [
23
+ "Bar 1: The opening leap from C to A — the most famous interval in film music.",
24
+ "Bars 3-4: F major to G — the classic IV-V waltz motion.",
25
+ "Bar 8: Return to C — dreamy resolution, like moonlight on water."
26
+ ],
27
+ "teachingGoals": [
28
+ "Wide melodic intervals — the opening sixth requires confident leaping",
29
+ "3/4 waltz feel at a slow, dreamy tempo",
30
+ "Simple left hand waltz accompaniment pattern"
31
+ ],
32
+ "styleTips": [
33
+ "Dreamy and floating — like moonlight on a river",
34
+ "The opening leap should feel natural, not effortful",
35
+ "Left hand waltz pattern: bass-chord-chord, very gentle"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "C4:q A4:h",
42
+ "leftHand": "C3:q E3 G3:q E3 G3:q",
43
+ "dynamics": "p",
44
+ "teachingNote": "C major — the iconic leap from C to A. Moon River begins."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "B4:q A4:q G4:q",
49
+ "leftHand": "A2:q C3 E3:q C3 E3:q",
50
+ "teachingNote": "Am — descending melody. Each note gently falls like a sigh."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "F4:q G4:q A4:q",
55
+ "leftHand": "F2:q A2 C3:q A2 C3:q",
56
+ "dynamics": "mp",
57
+ "teachingNote": "F major — melody climbs stepwise. Hopeful and tender."
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "G4:h.",
62
+ "leftHand": "G2:q B2 D3:q B2 D3:q",
63
+ "teachingNote": "G major — dotted half note. Let it ring through the whole bar."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "C4:q A4:h",
68
+ "leftHand": "C3:q E3 G3:q E3 G3:q",
69
+ "dynamics": "mp",
70
+ "teachingNote": "C major — the leap returns. Same magic, second time."
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "G4:q F4:q E4:q",
75
+ "leftHand": "F2:q A2 C3:q A2 C3:q",
76
+ "teachingNote": "F major — a different descent this time. More intimate."
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "D4:q E4:q F4:q",
81
+ "leftHand": "G2:q B2 D3:q B2 D3:q",
82
+ "dynamics": "mf",
83
+ "teachingNote": "G major — gentle ascent preparing the final resolution."
84
+ },
85
+ {
86
+ "number": 8,
87
+ "rightHand": "C4:h.",
88
+ "leftHand": "C3:q E3 G3:q E3 G3:q",
89
+ "dynamics": "pp",
90
+ "teachingNote": "C major — dotted half note C. Moon River at rest. Peaceful."
91
+ }
92
+ ]
93
+ }