@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": "elite-syncopations",
3
+ "title": "Elite Syncopations",
4
+ "genre": "ragtime",
5
+ "composer": "Scott Joplin",
6
+ "difficulty": "advanced",
7
+ "key": "F major",
8
+ "tempo": 116,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 17,
11
+ "tags": ["ragtime", "joplin", "syncopated", "advanced", "virtuosic"],
12
+ "source": "Claude arrangement — simplified interpretation",
13
+ "musicalLanguage": {
14
+ "description": "Elite Syncopations (1902) is one of Joplin's most rhythmically complex rags. The right hand weaves intricate syncopated patterns that constantly shift the accent, demanding precise coordination with the steady left-hand stride.",
15
+ "structure": "A section excerpt (8 bars)",
16
+ "keyMoments": ["Cross-rhythm syncopation in measures 1-2", "Chromatic descent in measure 6"],
17
+ "teachingGoals": ["Master complex syncopation against steady bass", "Develop independence between hands at tempo"],
18
+ "styleTips": ["Exaggerate the syncopated accents slightly for clarity", "Left hand must be absolutely rock-steady to anchor the rhythm"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "R:e F5:e A5:e F5:e C5:e F5:e A5:e F5:e",
24
+ "leftHand": "F2:q A3 C4:q F2:q A3 C4:q",
25
+ "dynamics": "f"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "G5:e E5:e C5:e E5:e G5:q E5:q",
30
+ "leftHand": "C3:q E4 Bb3:q C3:q E4 Bb3:q",
31
+ "dynamics": "mf"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "F5:e D5:e A4:e D5:e F5:e A5:e F5:q",
36
+ "leftHand": "Bb2:q D4 F4:q Bb2:q D4 F4:q",
37
+ "dynamics": "mf"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "E5:e C5:e A4:e G4:e F4:q R:q",
42
+ "leftHand": "C3:q E4 Bb3:q F2:q A3 C4:q",
43
+ "dynamics": "mf"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "R:e F5:e A5:e C6:e A5:e F5:e C5:q",
48
+ "leftHand": "F2:q A3 C4:q F2:q A3 C4:q",
49
+ "dynamics": "f"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "Bb5:e A5:e Ab5:e G5:e F5:e E5:e D5:q",
54
+ "leftHand": "Bb2:q D4 F4:q C3:q E4 Bb3:q",
55
+ "dynamics": "mf"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "C5:e D5:e E5:e F5:e G5:e A5:e Bb5:q",
60
+ "leftHand": "F2:q A3 C4:q Bb2:q D4 F4:q",
61
+ "dynamics": "f"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "A5:q F5:q C5:q R:q",
66
+ "leftHand": "F2:q A3 C4:q F2:q R:q",
67
+ "dynamics": "ff"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "id": "evening-calm",
3
+ "title": "Evening Calm",
4
+ "genre": "new-age",
5
+ "composer": "Claude (original)",
6
+ "difficulty": "beginner",
7
+ "key": "D minor",
8
+ "tempo": 56,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 34,
11
+ "tags": ["new-age", "meditative", "calm", "beginner", "evening"],
12
+ "source": "Claude arrangement",
13
+ "musicalLanguage": {
14
+ "description": "A deeply meditative piece for the end of the day. Simple, slow-moving harmonies in D minor create a contemplative space. The melody uses very few notes, letting silence and resonance do much of the work.",
15
+ "structure": "Through-composed meditative piece (8 bars)",
16
+ "keyMoments": ["Opening stillness in measure 1", "Gentle major resolution in measure 7"],
17
+ "teachingGoals": ["Learn to use silence and space musically", "Practice slow, deliberate note placement with care"],
18
+ "styleTips": ["Less is more — let each note resonate fully before playing the next", "Use pedal to create long, blending tones"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "D5:h A4:h",
24
+ "leftHand": "D3:w",
25
+ "dynamics": "pp"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "F4:h E4:h",
30
+ "leftHand": "A2:w",
31
+ "dynamics": "pp"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "D4:q F4:q A4:q G4:q",
36
+ "leftHand": "Bb2:h F3:h",
37
+ "dynamics": "p"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "F4:h E4:h",
42
+ "leftHand": "C3:h G3:h",
43
+ "dynamics": "p"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "A4:q Bb4:q A4:q G4:q",
48
+ "leftHand": "F3:h C4:h",
49
+ "dynamics": "mp"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "F4:q E4:q D4:h",
54
+ "leftHand": "Bb2:h A2:h",
55
+ "dynamics": "mp"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "D4:q E4:q F4:q A4:q",
60
+ "leftHand": "Bb2:h F3:h",
61
+ "dynamics": "p"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "D4:w",
66
+ "leftHand": "D3:w",
67
+ "dynamics": "pp"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "everyday-blues",
3
+ "title": "Every Day I Have the Blues",
4
+ "genre": "blues",
5
+ "composer": "Memphis Slim (Peter Chatman)",
6
+ "difficulty": "beginner",
7
+ "key": "Bb major",
8
+ "tempo": 110,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 17,
11
+ "tags": [
12
+ "walking-blues",
13
+ "memphis-slim",
14
+ "bb-king",
15
+ "jump-blues",
16
+ "12-bar",
17
+ "beginner-friendly"
18
+ ],
19
+ "source": "Claude arrangement — simplified interpretation",
20
+ "musicalLanguage": {
21
+ "description": "Originally by Memphis Slim, this became a hit for B.B. King in 1955. It is a perfect medium-tempo blues with a walking bass line and a singable melody. The walking left hand moves in steady quarter notes, creating a sense of forward motion like a slow train rolling.",
22
+ "structure": "12-bar blues with walking bass. This excerpt: first 8 bars",
23
+ "keyMoments": [
24
+ "Bar 1-2: Bb7 — walking bass line starts its journey. Steady and relentless.",
25
+ "Bar 3-4: Bb7 — melody enters with a simple blues phrase",
26
+ "Bar 5-6: Eb7 — the IV chord. Walking bass adjusts to the new root.",
27
+ "Bar 7-8: Bb7 — home again. The bass never stops walking."
28
+ ],
29
+ "teachingGoals": [
30
+ "Walking bass line — quarter note motion connecting chord tones",
31
+ "Coordinating walking bass with simple right-hand melody",
32
+ "Blues in Bb — a common key for blues and jazz"
33
+ ],
34
+ "styleTips": [
35
+ "Walking bass should be smooth and connected — legato quarter notes",
36
+ "The bass walks BETWEEN chord tones using scale and chromatic passing tones",
37
+ "Right hand stays simple — let the walking bass do the heavy lifting"
38
+ ]
39
+ },
40
+ "measures": [
41
+ {
42
+ "number": 1,
43
+ "rightHand": "F4:q Bb4:q D5:q F5:q",
44
+ "leftHand": "Bb2:q D3:q F3:q Ab3:q",
45
+ "teachingNote": "Bb7 — right hand arpeggiates up. Left hand walks: Bb-D-F-Ab (chord tones of Bb7).",
46
+ "dynamics": "mf"
47
+ },
48
+ {
49
+ "number": 2,
50
+ "rightHand": "D5:q Db5:e D5:e F5:h",
51
+ "leftHand": "Bb3:q Ab3:q F3:q D3:q",
52
+ "teachingNote": "Bb7 — the Db grace note is the blue 3rd. Left hand walks back down."
53
+ },
54
+ {
55
+ "number": 3,
56
+ "rightHand": "Bb4:h Ab4:h",
57
+ "leftHand": "Bb2:q C3:q D3:q Eb3:q",
58
+ "teachingNote": "Bb7 — simple half notes in the melody. Left hand walks up chromatically: Bb-C-D-Eb."
59
+ },
60
+ {
61
+ "number": 4,
62
+ "rightHand": "F4:h R:h",
63
+ "leftHand": "F3:q D3:q Bb2:q A2:q",
64
+ "teachingNote": "Bb7 — melody rests. Left hand walks down with A as a chromatic approach to Bb."
65
+ },
66
+ {
67
+ "number": 5,
68
+ "rightHand": "Bb4:q Eb5:q G5:q Bb5:q",
69
+ "leftHand": "Eb3:q G3:q Bb3:q Db4:q",
70
+ "teachingNote": "Eb7 — IV chord! Walking bass shifts to Eb territory. Right hand arpeggiates Eb7.",
71
+ "dynamics": "f"
72
+ },
73
+ {
74
+ "number": 6,
75
+ "rightHand": "G5:q F5:q Eb5:h",
76
+ "leftHand": "Db4:q Bb3:q G3:q Eb3:q",
77
+ "teachingNote": "Eb7 — melody descends. Left hand walks back down through Eb7 chord tones."
78
+ },
79
+ {
80
+ "number": 7,
81
+ "rightHand": "D5:q F5:q D5:q Bb4:q",
82
+ "leftHand": "Bb2:q D3:q F3:q Ab3:q",
83
+ "teachingNote": "Bb7 — back to the tonic. The opening pattern returns.",
84
+ "dynamics": "mf"
85
+ },
86
+ {
87
+ "number": 8,
88
+ "rightHand": "Ab4:q F4:q D4:h",
89
+ "leftHand": "Bb3:q Ab3:q F3:q D3:q",
90
+ "teachingNote": "Bb7 — descending to rest. Left hand mirrors the descent. Settling in."
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "id": "fly-me-to-the-moon",
3
+ "title": "Fly Me to the Moon",
4
+ "genre": "jazz",
5
+ "composer": "Bart Howard",
6
+ "difficulty": "beginner",
7
+ "key": "C major",
8
+ "tempo": 120,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 16,
11
+ "tags": [
12
+ "jazz-standard",
13
+ "sinatra",
14
+ "swing",
15
+ "beginner-friendly",
16
+ "great-american-songbook",
17
+ "romantic"
18
+ ],
19
+ "source": "Claude arrangement — simplified interpretation",
20
+ "musicalLanguage": {
21
+ "description": "One of the most beloved jazz standards ever written. Originally titled 'In Other Words,' it became Frank Sinatra's signature after his 1964 recording. The melody descends in a graceful sequence through the circle of fifths, making it a perfect first jazz standard for piano students.",
22
+ "structure": "ABAB — 32 bars. This excerpt: first 8 bars (A section)",
23
+ "keyMoments": [
24
+ "Bar 1-2: Am7 — the melody begins on C5 and descends stepwise. Instantly recognizable.",
25
+ "Bar 3-4: Dm7 to G7 — the ii-V that defines the harmonic motion",
26
+ "Bar 7-8: Em7 to A7 — the iii-VI introduces a secondary dominant pull"
27
+ ],
28
+ "teachingGoals": [
29
+ "Descending stepwise melody — easy to memorize and sing",
30
+ "Basic jazz chord progression: vi - ii - V - I",
31
+ "Simple left-hand shell voicings with root and seventh"
32
+ ],
33
+ "styleTips": [
34
+ "Swing the eighth notes — long-short, not even",
35
+ "The melody should be legato and lyrical — imagine singing the words",
36
+ "Left hand keeps it simple — whole notes or half notes are fine for beginners"
37
+ ]
38
+ },
39
+ "measures": [
40
+ {
41
+ "number": 1,
42
+ "rightHand": "C5:q B4:q A4:q G4:q",
43
+ "leftHand": "A2:h E3:h",
44
+ "teachingNote": "Am7 — descending scale from C. This is the opening everyone knows.",
45
+ "dynamics": "mf"
46
+ },
47
+ {
48
+ "number": 2,
49
+ "rightHand": "F4:h R:h",
50
+ "leftHand": "A2:h E3:h",
51
+ "teachingNote": "The phrase lands on F and rests. Let the note ring."
52
+ },
53
+ {
54
+ "number": 3,
55
+ "rightHand": "B4:q A4:q G4:q F4:q",
56
+ "leftHand": "D3:h A3:h",
57
+ "teachingNote": "Dm7 — same descending pattern, starting a step lower. Sequence!"
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "E4:h R:h",
62
+ "leftHand": "G2:h F3:h",
63
+ "teachingNote": "G7 — phrase lands on E. The V chord wants to resolve to C."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "A4:q G4:q F4:q E4:q",
68
+ "leftHand": "C3:h G3:h",
69
+ "teachingNote": "CMaj7 — the I chord arrives! The melody continues its descent."
70
+ },
71
+ {
72
+ "number": 6,
73
+ "rightHand": "D4:h R:h",
74
+ "leftHand": "C3:h G3:h",
75
+ "teachingNote": "CMaj7 continues. Simple and elegant. Less is more."
76
+ },
77
+ {
78
+ "number": 7,
79
+ "rightHand": "G4:q F4:q E4:q D4:q",
80
+ "leftHand": "E3:h B3:h",
81
+ "teachingNote": "Em7 — the iii chord. Pattern descends yet again. Notice the sequence."
82
+ },
83
+ {
84
+ "number": 8,
85
+ "rightHand": "C4:h R:h",
86
+ "leftHand": "A2:h E3:h",
87
+ "teachingNote": "A7 — secondary dominant. The phrase resolves to C4. Ready for the next section.",
88
+ "dynamics": "p"
89
+ }
90
+ ]
91
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "forrest-gump-suite",
3
+ "title": "Forrest Gump Suite (Feather Theme)",
4
+ "genre": "film",
5
+ "composer": "Alan Silvestri",
6
+ "difficulty": "beginner",
7
+ "key": "C major",
8
+ "tempo": 72,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 27,
11
+ "tags": [
12
+ "silvestri",
13
+ "gentle",
14
+ "americana",
15
+ "peaceful",
16
+ "feather"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "Alan Silvestri's gentle piano theme accompanies the floating feather in Forrest Gump's opening and closing scenes. The melody is built on simple, stepwise motion in C major with a childlike innocence that mirrors Forrest's character. The arrangement is deliberately sparse — the beauty comes from the simplicity and the space between notes. This is music about floating, not flying.",
21
+ "structure": "Feather floating: gentle ascending figures (4 bars), Settling: descending resolution (4 bars)",
22
+ "keyMoments": [
23
+ "Bars 1-2: The feather begins its journey — gentle ascending thirds.",
24
+ "Bars 3-4: The melody drifts higher — weightless and innocent.",
25
+ "Bars 7-8: The feather lands — the simplest, most peaceful resolution."
26
+ ],
27
+ "teachingGoals": [
28
+ "Gentle, controlled touch at soft dynamics",
29
+ "Playing simple music beautifully — less is more",
30
+ "Pedal technique for creating a floating, resonant sound"
31
+ ],
32
+ "styleTips": [
33
+ "Imagine a feather floating on the breeze — weightless, drifting",
34
+ "Never play louder than mp — this music is about quietness",
35
+ "Use plenty of sustain pedal — let the notes blend and float"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "E4:h G4:h",
42
+ "leftHand": "C3:w",
43
+ "dynamics": "pp",
44
+ "teachingNote": "C major — the feather lifts off. Two gentle notes. Nothing more needed."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "A4:h G4:h",
49
+ "leftHand": "F3:w",
50
+ "teachingNote": "F major — the feather drifts. A to G, gentle rocking motion."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "F4:h E4:h",
55
+ "leftHand": "D3:h A3:h",
56
+ "dynamics": "p",
57
+ "teachingNote": "Dm — slight descent. The feather catches a downdraft."
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "D4:h E4:h",
62
+ "leftHand": "G2:h B2:h",
63
+ "teachingNote": "G major — rising again. The feather is carried upward."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "G4:h A4:h",
68
+ "leftHand": "C3:w",
69
+ "dynamics": "mp",
70
+ "teachingNote": "C major — a little higher now. The quietest crescendo."
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "G4:h F4:h",
75
+ "leftHand": "F3:h A3:h",
76
+ "teachingNote": "F major — beginning to descend. The feather is finding its way down."
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "E4:h D4:h",
81
+ "leftHand": "G2:h B2:h",
82
+ "dynamics": "pp",
83
+ "teachingNote": "G major — almost there. Two notes, descending. Getting quieter."
84
+ },
85
+ {
86
+ "number": 8,
87
+ "rightHand": "C4:w",
88
+ "leftHand": "C3:w",
89
+ "dynamics": "ppp",
90
+ "teachingNote": "C major — the feather has landed. One whole note each hand. Silence."
91
+ }
92
+ ]
93
+ }