@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,95 @@
1
+ {
2
+ "id": "bossa-nova-basic",
3
+ "title": "Bossa Nova in C (Basic Pattern)",
4
+ "genre": "latin",
5
+ "difficulty": "intermediate",
6
+ "key": "C major",
7
+ "tempo": 130,
8
+ "timeSignature": "4/4",
9
+ "durationSeconds": 30,
10
+ "tags": [
11
+ "bossa-nova",
12
+ "brazilian",
13
+ "syncopation",
14
+ "chord-melody",
15
+ "groove"
16
+ ],
17
+ "source": "Traditional bossa nova comping pattern",
18
+ "musicalLanguage": {
19
+ "description": "The bossa nova piano pattern is syncopated magic. The left hand plays the signature 'long-short-short-long-short' rhythm while the right hand adds chord stabs and melody. This basic pattern in C major teaches the fundamental bossa groove that underpins songs like The Girl from Ipanema.",
20
+ "structure": "Repeated 8-bar vamp: CM7-Dm7-G7-CM7",
21
+ "keyMoments": [
22
+ "Bars 1-2: CM7 — establish the bossa rhythm. The syncopation is everything.",
23
+ "Bars 3-4: Dm7 — the ii chord. Same rhythm, new color.",
24
+ "Bars 5-6: G7 — the V chord. The rhythm drives toward resolution.",
25
+ "Bars 7-8: Back to CM7 — smooth landing. Loop endlessly."
26
+ ],
27
+ "teachingGoals": [
28
+ "Bossa nova syncopation — the signature long-short-short-long-short pattern",
29
+ "Left-hand independence: bass notes on specific off-beats",
30
+ "Chord voicings in the right hand: 3rds and 7ths close together"
31
+ ],
32
+ "styleTips": [
33
+ "Relaxed but precise — the syncopation must be exact but never stiff",
34
+ "Light touch — bossa nova is whispered, not shouted",
35
+ "The left hand is the groove; the right hand adds color and melody"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "R:e E4:e G4:e R:e E4:e G4:q R:e",
42
+ "leftHand": "C3:q R:e C3:e R:q C3:q",
43
+ "fingering": "RH: 1-3 chord stabs, LH: syncopated bass",
44
+ "teachingNote": "CM7 — the signature bossa rhythm. Count: 'rest-AND-a rest-AND-a-rest'. The syncopation IS the style.",
45
+ "dynamics": "mp"
46
+ },
47
+ {
48
+ "number": 2,
49
+ "rightHand": "R:e E4:e B4:e R:e E4:e B4:q R:e",
50
+ "leftHand": "C3:q R:e C3:e R:q C3:q",
51
+ "teachingNote": "Still CM7 — add the B (major 7th) for that dreamy bossa sound."
52
+ },
53
+ {
54
+ "number": 3,
55
+ "rightHand": "R:e D4:e F4:e R:e D4:e A4:q R:e",
56
+ "leftHand": "D3:q R:e D3:e R:q D3:q",
57
+ "fingering": "RH: 1-3 then 1-5, LH: syncopated bass on D",
58
+ "teachingNote": "Dm7 — same rhythm, move everything up one scale step. The groove shouldn't change."
59
+ },
60
+ {
61
+ "number": 4,
62
+ "rightHand": "R:e D4:e F4:e R:e D4:e C5:q R:e",
63
+ "leftHand": "D3:q R:e D3:e R:q D3:q",
64
+ "teachingNote": "Dm7 continued — the C on top adds the 7th. Rich and mellow."
65
+ },
66
+ {
67
+ "number": 5,
68
+ "rightHand": "R:e B3:e F4:e R:e B3:e F4:q R:e",
69
+ "leftHand": "G2:q R:e G2:e R:q G2:q",
70
+ "fingering": "RH: 1-4 (G7 tritone), LH: bass on G",
71
+ "teachingNote": "G7 — the tritone (B-F) gives this chord its pull. In bossa, it's subtle, not aggressive.",
72
+ "dynamics": "mf"
73
+ },
74
+ {
75
+ "number": 6,
76
+ "rightHand": "R:e B3:e F4:e R:e D4:e F4:q R:e",
77
+ "leftHand": "G2:q R:e G2:e R:q G2:q",
78
+ "teachingNote": "G7 continued — the D adds the 5th. Feel the tension wanting to resolve to C."
79
+ },
80
+ {
81
+ "number": 7,
82
+ "rightHand": "R:e E4:e G4:e R:e E4:e B4:q R:e",
83
+ "leftHand": "C3:q R:e C3:e R:q C3:q",
84
+ "teachingNote": "CM7 — home again. The resolution should feel like a sigh of relief.",
85
+ "dynamics": "mp"
86
+ },
87
+ {
88
+ "number": 8,
89
+ "rightHand": "E4:q G4:q B4:h",
90
+ "leftHand": "C3:h C3:h",
91
+ "teachingNote": "Ending CM7 — let the major 7th ring. In a loop, skip this and go back to bar 1.",
92
+ "dynamics": "p"
93
+ }
94
+ ]
95
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "id": "chopin-nocturne-op9-no2",
3
+ "title": "Nocturne in Eb Major, Op. 9 No. 2",
4
+ "genre": "classical",
5
+ "composer": "Frederic Chopin",
6
+ "difficulty": "intermediate",
7
+ "key": "Eb major",
8
+ "tempo": 66,
9
+ "timeSignature": "12/8",
10
+ "durationSeconds": 29,
11
+ "tags": ["classical", "chopin", "nocturne", "romantic", "lyrical"],
12
+ "source": "Claude arrangement — simplified interpretation",
13
+ "musicalLanguage": {
14
+ "description": "Chopin's most beloved Nocturne, Op. 9 No. 2, features one of the most singing melodies ever written for piano. This simplified 8-bar excerpt captures the essential theme: a soaring right-hand melody over gently rocking left-hand arpeggios in 12/8 time.",
15
+ "structure": "Main theme excerpt (8 bars in 12/8)",
16
+ "keyMoments": ["Opening melodic statement in measure 1", "Ornamental turn in measure 5"],
17
+ "teachingGoals": ["Develop singing legato tone in the right hand", "Practice wide left-hand arpeggio patterns"],
18
+ "styleTips": ["The melody should sing as if a vocalist were performing it", "Left hand arpeggios should be very soft and even — a cushion for the melody"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "R:q Bb4:q G4:q Bb4:h.",
24
+ "leftHand": "Eb3:e Bb3:e Eb4:e G3:e Bb3:e Eb4:e Eb3:e Bb3:e Eb4:e G3:e Bb3:e Eb4:e",
25
+ "dynamics": "p"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "R:q Bb4:q Ab4:q G4:h.",
30
+ "leftHand": "Eb3:e Bb3:e Eb4:e G3:e Bb3:e Eb4:e Eb3:e Bb3:e Eb4:e G3:e Bb3:e Eb4:e",
31
+ "dynamics": "p"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "R:q F4:q G4:q Ab4:q Bb4:q C5:q",
36
+ "leftHand": "Ab2:e Eb3:e Ab3:e C3:e Eb3:e Ab3:e Ab2:e Eb3:e Ab3:e C3:e Eb3:e Ab3:e",
37
+ "dynamics": "mp"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "Bb4:h. R:h.",
42
+ "leftHand": "Bb2:e F3:e Bb3:e D3:e F3:e Bb3:e Bb2:e F3:e Bb3:e D3:e F3:e Bb3:e",
43
+ "dynamics": "mp"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "R:q Bb4:q G4:q Bb4:q C5:q D5:q",
48
+ "leftHand": "Eb3:e Bb3:e Eb4:e G3:e Bb3:e Eb4:e Eb3:e Bb3:e Eb4:e G3:e Bb3:e Eb4:e",
49
+ "dynamics": "mf"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "Eb5:h. D5:q C5:q Bb4:q",
54
+ "leftHand": "Ab2:e Eb3:e Ab3:e C3:e Eb3:e Ab3:e F2:e C3:e F3:e Ab2:e C3:e F3:e",
55
+ "dynamics": "mf"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "Ab4:q G4:q F4:q Eb4:h.",
60
+ "leftHand": "Bb2:e F3:e Bb3:e D3:e F3:e Bb3:e Eb3:e Bb3:e Eb4:e G3:e Bb3:e Eb4:e",
61
+ "dynamics": "mp"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "Eb4:h. R:h.",
66
+ "leftHand": "Eb3:e Bb3:e Eb4:e G3:e Bb3:e Eb4:e Eb2:h. R:h.",
67
+ "dynamics": "p"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "id": "cinema-paradiso",
3
+ "title": "Cinema Paradiso (Love Theme)",
4
+ "genre": "film",
5
+ "composer": "Ennio Morricone",
6
+ "difficulty": "intermediate",
7
+ "key": "F major",
8
+ "tempo": 66,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 29,
11
+ "tags": [
12
+ "morricone",
13
+ "nostalgic",
14
+ "italian",
15
+ "ballad",
16
+ "lyrical"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "Morricone's nostalgic love theme from Cinema Paradiso is one of the most emotionally affecting film melodies ever written. The piece unfolds in F major with a gentle, singing melody that captures the bittersweet longing for lost innocence. The left hand provides warm, arpeggiated accompaniment while the right hand melody rises and falls with exquisite tenderness.",
21
+ "structure": "A section: ascending melody over F-Bb-C (4 bars), B section: emotional climax and resolution (4 bars)",
22
+ "keyMoments": [
23
+ "Bar 1: The opening F major melody — simple and achingly beautiful.",
24
+ "Bars 3-4: The melody reaches upward to Bb4 — the emotional yearning.",
25
+ "Bars 7-8: The gentle resolution — nostalgia accepted, not resolved."
26
+ ],
27
+ "teachingGoals": [
28
+ "Lyrical melodic playing — making the piano sing",
29
+ "Arpeggiated left hand accompaniment patterns",
30
+ "Rubato and expressive tempo flexibility"
31
+ ],
32
+ "styleTips": [
33
+ "Play as if remembering something beautiful and lost",
34
+ "The melody must sing above the accompaniment — balance is crucial",
35
+ "Allow subtle rubato — slow down at phrase peaks, move forward in transitions"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "C4:q F4:q A4:h",
42
+ "leftHand": "F2:e A2:e C3:e F3:e A3:e C4:e A3:e F3:e",
43
+ "dynamics": "p",
44
+ "teachingNote": "Fmaj — the opening ascent. Tender and questioning. Let it sing."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "G4:q A4:q Bb4:h",
49
+ "leftHand": "Bb2:e D3:e F3:e Bb3:e D4:e Bb3:e F3:e D3:e",
50
+ "dynamics": "mp",
51
+ "teachingNote": "Bb major — melody continues climbing. The yearning intensifies."
52
+ },
53
+ {
54
+ "number": 3,
55
+ "rightHand": "A4:q G4:q F4:q E4:q",
56
+ "leftHand": "C2:e E2:e G2:e C3:e E3:e C3:e G2:e E2:e",
57
+ "teachingNote": "C7 — melody descends through the dominant. Gentle tension."
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "F4:h R:q C4:q",
62
+ "leftHand": "F2:e A2:e C3:e F3:e A3:e F3:e C3:e A2:e",
63
+ "teachingNote": "F major — resolution. The rest allows a breath before the B section."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "D4:q F4:q A4:q C5:q",
68
+ "leftHand": "Dm2:e F2:e A2:e D3:e F3:e D3:e A2:e F2:e",
69
+ "dynamics": "mf",
70
+ "teachingNote": "Dm — the B section. Melody reaches higher, C5. More emotional weight."
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "Bb4:q A4:q G4:q F4:q",
75
+ "leftHand": "Bb2:e D3:e F3:e Bb3:e D4:e Bb3:e F3:e D3:e",
76
+ "dynamics": "f",
77
+ "teachingNote": "Bb major — the emotional peak. Full, warm tone. Don't hold back."
78
+ },
79
+ {
80
+ "number": 7,
81
+ "rightHand": "E4:q F4:q G4:q A4:q",
82
+ "leftHand": "C2:e E2:e G2:e Bb2:e C3:e Bb2:e G2:e E2:e",
83
+ "dynamics": "mf",
84
+ "teachingNote": "C7 — the final climb. Each note steps toward resolution."
85
+ },
86
+ {
87
+ "number": 8,
88
+ "rightHand": "F4:w",
89
+ "leftHand": "F2:e A2:e C3:e F3:e A3:e F3:e C3:e F2:e",
90
+ "dynamics": "pp",
91
+ "teachingNote": "F major — whole note F over gentle arpeggios. Memory fades to silence."
92
+ }
93
+ ]
94
+ }