@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,94 @@
1
+ {
2
+ "id": "thrill-is-gone",
3
+ "title": "The Thrill Is Gone",
4
+ "genre": "blues",
5
+ "composer": "Roy Hawkins / Rick Darnell",
6
+ "difficulty": "intermediate",
7
+ "key": "B minor",
8
+ "tempo": 84,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 23,
11
+ "tags": [
12
+ "minor-blues",
13
+ "bb-king",
14
+ "slow-blues",
15
+ "minor-key",
16
+ "string-arrangement",
17
+ "iconic"
18
+ ],
19
+ "source": "Claude arrangement — simplified interpretation",
20
+ "musicalLanguage": {
21
+ "description": "B.B. King's signature song, recorded in 1969 with a string section that transformed blues forever. The minor key gives it a haunting, melancholy quality unlike standard major-key blues. The melody is sparse and vocal — every note is chosen with the economy of a master storyteller.",
22
+ "structure": "Minor blues form (Bm-Em-F#7). This excerpt: first 8 bars",
23
+ "keyMoments": [
24
+ "Bar 1-2: Bm — the stark minor opening. Sparse melody over a simple bass.",
25
+ "Bar 3-4: Bm continues — the space between notes IS the emotion",
26
+ "Bar 5-6: Em — the iv chord deepens the sadness",
27
+ "Bar 7-8: Bm — return to the tonic with a melodic sigh"
28
+ ],
29
+ "teachingGoals": [
30
+ "Minor blues form — different from standard major 12-bar",
31
+ "Economy of notes — saying more with less, B.B. King style",
32
+ "Minor key voicings and the natural minor scale"
33
+ ],
34
+ "styleTips": [
35
+ "Less is more — B.B. King was the master of one perfect note",
36
+ "Let notes sustain and decay naturally — use the pedal",
37
+ "The rests are emotional — they are where the listener feels the weight"
38
+ ]
39
+ },
40
+ "measures": [
41
+ {
42
+ "number": 1,
43
+ "rightHand": "D5:q F#5:h D5:q",
44
+ "leftHand": "B2:h F#3:h",
45
+ "teachingNote": "Bm — the melody enters simply. D-F#-D outlines the minor triad. Spare and powerful.",
46
+ "dynamics": "mp"
47
+ },
48
+ {
49
+ "number": 2,
50
+ "rightHand": "B4:h R:h",
51
+ "leftHand": "B2:h F#3:h",
52
+ "teachingNote": "Bm — the melody descends to the root and stops. The silence speaks."
53
+ },
54
+ {
55
+ "number": 3,
56
+ "rightHand": "A4:q B4:q D5:q E5:q",
57
+ "leftHand": "B2:h F#3:h",
58
+ "teachingNote": "Bm — melody climbs stepwise. A-B-D-E from the B natural minor scale.",
59
+ "dynamics": "mf"
60
+ },
61
+ {
62
+ "number": 4,
63
+ "rightHand": "D5:h B4:h",
64
+ "leftHand": "B2:h F#3:h",
65
+ "teachingNote": "Bm — settling back down. Two half notes, unhurried. No rush."
66
+ },
67
+ {
68
+ "number": 5,
69
+ "rightHand": "G5:q E5:q D5:q B4:q",
70
+ "leftHand": "E3:h B3:h",
71
+ "teachingNote": "Em — the iv chord. Melody descends through Em chord tones. The sadness deepens."
72
+ },
73
+ {
74
+ "number": 6,
75
+ "rightHand": "E5:h R:h",
76
+ "leftHand": "E3:h B3:h",
77
+ "teachingNote": "Em — rest after E5. Let the minor quality hang in the air.",
78
+ "dynamics": "mp"
79
+ },
80
+ {
81
+ "number": 7,
82
+ "rightHand": "D5:q C#5:q B4:h",
83
+ "leftHand": "B2:h F#3:h",
84
+ "teachingNote": "Bm — melody sighs downward: D-C#-B. The C# adds a dorian color.",
85
+ "dynamics": "p"
86
+ },
87
+ {
88
+ "number": 8,
89
+ "rightHand": "A4:q B4:h R:q",
90
+ "leftHand": "B2:h F#3:h",
91
+ "teachingNote": "Bm — a small upward gesture (A to B) before resting. Breath before the next phrase."
92
+ }
93
+ ]
94
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "id": "twilight-garden",
3
+ "title": "Twilight Garden",
4
+ "genre": "new-age",
5
+ "composer": "Claude (original)",
6
+ "difficulty": "intermediate",
7
+ "key": "F# minor",
8
+ "tempo": 68,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 28,
11
+ "tags": ["new-age", "mysterious", "nocturnal", "intermediate", "atmospheric"],
12
+ "source": "Claude arrangement",
13
+ "musicalLanguage": {
14
+ "description": "A mysterious, atmospheric piece set in a garden at dusk. The harmony lingers in the darker shades of F# minor, with unexpected chord shifts that evoke shadows lengthening across flower beds. The left hand plays bell-like tones beneath a wandering melody.",
15
+ "structure": "Through-composed atmospheric nocturne (8 bars)",
16
+ "keyMoments": ["Mysterious opening fifth in measure 1", "Unexpected Dmaj7 color in measure 5"],
17
+ "teachingGoals": ["Explore minor key atmosphere and color", "Practice expressive rubato in a new-age context"],
18
+ "styleTips": ["Let each phrase breathe naturally with slight rubato", "Bring out the bass bell tones while keeping the arpeggio soft"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "C#5:q A4:q F#4:q E4:q",
24
+ "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",
25
+ "dynamics": "p"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "F#4:q A4:q B4:q C#5:q",
30
+ "leftHand": "D3:e A3:e D4:e A3:e D3:e A3:e D4:e A3:e",
31
+ "dynamics": "p"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "E5:q D5:q C#5:q A4:q",
36
+ "leftHand": "A2:e E3:e A3:e E3:e A2:e E3:e A3:e E3:e",
37
+ "dynamics": "mp"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "B4:h G#4:h",
42
+ "leftHand": "E3:e B3:e E4:e B3:e E3:e B3:e E4:e B3:e",
43
+ "dynamics": "mp"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "A4:q F#5:q E5:q D5:q",
48
+ "leftHand": "D3:e A3:e D4:e A3:e D3:e A3:e D4:e A3:e",
49
+ "dynamics": "mf"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "C#5:q B4:q A4:q G#4:q",
54
+ "leftHand": "A2:e E3:e A3:e E3:e E3:e B3:e E4:e B3:e",
55
+ "dynamics": "mf"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "F#4:q A4:e B4:e C#5:q A4:q",
60
+ "leftHand": "F#2:e C#3:e F#3:e C#3:e D3:e A3:e D4:e A3:e",
61
+ "dynamics": "mp"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "F#4:w",
66
+ "leftHand": "F#2:e C#3:e F#3:e C#3:e F#2:h",
67
+ "dynamics": "pp"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "id": "watermark",
3
+ "title": "Watermark",
4
+ "genre": "new-age",
5
+ "composer": "Claude (Enya-inspired)",
6
+ "difficulty": "beginner",
7
+ "key": "D major",
8
+ "tempo": 66,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 29,
11
+ "tags": ["new-age", "ethereal", "gentle", "beginner", "enya"],
12
+ "source": "Claude arrangement",
13
+ "musicalLanguage": {
14
+ "description": "An ethereal, Enya-inspired piece built on shimmering open fifths and gentle arpeggiated patterns. The melody floats above a bed of sustained harmonies, evoking the image of light refracting through water.",
15
+ "structure": "Through-composed atmospheric piece (8 bars)",
16
+ "keyMoments": ["Open fifth shimmer in measure 1", "Melody emerges gently in measure 3"],
17
+ "teachingGoals": ["Learn to sustain open voicings with pedal", "Develop a gentle, floating touch"],
18
+ "styleTips": ["Use sustain pedal generously — let harmonies blend", "Play as softly as possible while still producing tone"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "D5:h A5:h",
24
+ "leftHand": "D3:e A3:e D4:e A3:e D3:e A3:e D4:e A3:e",
25
+ "dynamics": "pp"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "F#5:h E5:h",
30
+ "leftHand": "D3:e A3:e D4:e A3:e D3:e A3:e D4:e A3:e",
31
+ "dynamics": "pp"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "D5:q E5:q F#5:q A5:q",
36
+ "leftHand": "G3:e D4:e G4:e D4:e G3:e D4:e G4:e D4:e",
37
+ "dynamics": "p"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "G5:h F#5:h",
42
+ "leftHand": "A3:e E4:e A4:e E4:e A3:e E4:e A4:e E4:e",
43
+ "dynamics": "p"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "D5:q E5:e F#5:e A5:h",
48
+ "leftHand": "D3:e A3:e D4:e A3:e D3:e A3:e D4:e A3:e",
49
+ "dynamics": "mp"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "B5:q A5:q G5:q F#5:q",
54
+ "leftHand": "G3:e D4:e G4:e D4:e G3:e D4:e G4:e D4:e",
55
+ "dynamics": "mp"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "E5:q D5:q A4:h",
60
+ "leftHand": "A3:e E4:e A4:e E4:e D3:e A3:e D4:e A3:e",
61
+ "dynamics": "p"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "D5:w",
66
+ "leftHand": "D3:e A3:e D4:e A3:e D3:e A3:e D4:q",
67
+ "dynamics": "pp"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "wave",
3
+ "title": "Wave",
4
+ "genre": "latin",
5
+ "composer": "Antonio Carlos Jobim",
6
+ "difficulty": "advanced",
7
+ "key": "D major",
8
+ "tempo": 126,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 15,
11
+ "tags": [
12
+ "bossa-nova",
13
+ "jobim",
14
+ "advanced-harmony",
15
+ "brazilian",
16
+ "lyrical"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "Jobim's Wave is one of the most harmonically rich bossa novas, featuring a melody that sweeps up and down like ocean waves over constantly shifting chords. The piece moves through diminished chords, secondary dominants, and chromatic substitutions while maintaining the effortless bossa groove. The melody is one of Jobim's most beautiful — long, arching lines that require sophisticated phrasing.",
21
+ "structure": "A section: Dmaj7 through chromatic descent (4 bars), B section: Bbdim7-Am7-D7 circle (4 bars)",
22
+ "keyMoments": [
23
+ "Bar 1: Dmaj7 — the sweeping opening melody that gives the song its name.",
24
+ "Bars 3-4: Bbdim7 — the chromatic passing chord that creates the 'wave' motion.",
25
+ "Bars 5-7: Circle of secondary dominants — each chord pulls to the next."
26
+ ],
27
+ "teachingGoals": [
28
+ "Advanced bossa nova chord voicings with diminished passing chords",
29
+ "Long melodic phrases requiring breath and phrasing control",
30
+ "Chromatic voice leading in a bossa nova context"
31
+ ],
32
+ "styleTips": [
33
+ "The melody should feel like a wave — long sweeping arcs, not choppy",
34
+ "Each chord change should melt seamlessly into the next",
35
+ "Advanced does not mean loud — keep the intimate bossa dynamic"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "F#4:q A4:q D5:q C#5:q",
42
+ "leftHand": "D2:q F#3 A3 C#4:q D2:q F#3 A3 C#4:q",
43
+ "dynamics": "mp",
44
+ "teachingNote": "Dmaj7 — the sweeping melody rises. Like a wave building."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "B4:q A4:q G4:q F#4:q",
49
+ "leftHand": "Bb2:q D3 F3 Ab3:q Bb2:q D3 F3 Ab3:q",
50
+ "teachingNote": "Bbdim7 — chromatic passing chord. The descent creates tension."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "E4:q G4:q F#4:q E4:q",
55
+ "leftHand": "A2:q C#3 E3 G3:q A2:q C#3 E3 G3:q",
56
+ "dynamics": "mf",
57
+ "teachingNote": "Am7 — the wave falls. Melody settles into the mid-range."
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "D4:q E4:q F#4:h",
62
+ "leftHand": "D2:q F#3 A3 C4:q G2:q B3 D4 F#4:q",
63
+ "teachingNote": "D7 to Gmaj7 — secondary dominant. Melody rises again for the B section."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "A4:q B4:q C5:q B4:q",
68
+ "leftHand": "G2:q B3 D4 F#4:q G2:q B3 D4 F#4:q",
69
+ "dynamics": "mf",
70
+ "teachingNote": "Gmaj7 — the B section melody reaches higher. Fuller sound."
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "A4:q G4:q F#4:q E4:q",
75
+ "leftHand": "G2:q Bb3 D4 F4:q C2:q E3 G3 Bb3:q",
76
+ "teachingNote": "Gm7 to C7 — borrowed minor. The wave crests and descends."
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "F#4:q A4:q G4:q F#4:q",
81
+ "leftHand": "F#2:q A3 C#4 E4:q B2:q D3 F#3 A3:q",
82
+ "dynamics": "f",
83
+ "teachingNote": "F#m7 to B7 — secondary dominants cascading. Rich harmony."
84
+ },
85
+ {
86
+ "number": 8,
87
+ "rightHand": "E4:q F#4:q D4:h",
88
+ "leftHand": "E2:q G3 B3 D4:q A2:q C#3 E3 G3:q",
89
+ "dynamics": "p",
90
+ "teachingNote": "Em7 to A7 — the final wave subsides, landing softly on the implied D."
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "whats-going-on",
3
+ "title": "What's Going On",
4
+ "genre": "rnb",
5
+ "composer": "Marvin Gaye / Al Cleveland / Renaldo Benson",
6
+ "difficulty": "intermediate",
7
+ "key": "E major",
8
+ "tempo": 98,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 20,
11
+ "tags": [
12
+ "smooth-soul",
13
+ "marvin-gaye",
14
+ "jazz-chords",
15
+ "protest",
16
+ "classic"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "Marvin Gaye's smooth soul masterpiece floats on lush major seventh chords and a gently swaying rhythm. The arrangement emphasizes the song's dreamy quality with rich chord voicings in the left hand and a lyrical, unhurried melody in the right. The Emaj7 tonality gives it a warm, golden color.",
21
+ "structure": "Verse vamp: Emaj7-C#m7 alternation (4 bars), Bridge: F#m7-B7 movement (4 bars)",
22
+ "keyMoments": [
23
+ "Bars 1-2: Emaj7 to C#m7 — the signature floating vamp.",
24
+ "Bar 5: F#m7 — the harmony shifts and the energy lifts.",
25
+ "Bar 8: B7 turnaround — smooth dominant pull back to the top."
26
+ ],
27
+ "teachingGoals": [
28
+ "Major seventh chord voicings and their smooth sound",
29
+ "Relaxed groove playing — sitting back on the beat",
30
+ "Voice leading between related seventh chords"
31
+ ],
32
+ "styleTips": [
33
+ "Everything should feel effortless — never push or rush",
34
+ "The chords should shimmer, not thump — light left hand touch",
35
+ "Think of the melody as Marvin's voice — smooth, floating, intimate"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "G#4:q F#4:q E4:q D#4:q",
42
+ "leftHand": "E2:q G#2:q B2:q D#3:q",
43
+ "dynamics": "mp",
44
+ "teachingNote": "Emaj7 — golden, warm. Melody descends gently through the chord."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "E4:q F#4:q G#4:h",
49
+ "leftHand": "C#3:q E3:q G#3:q B3:q",
50
+ "teachingNote": "C#m7 — relative minor. Melody climbs back up."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "G#4:q F#4:q E4:q G#4:q",
55
+ "leftHand": "E2:q G#2:q B2:q D#3:q",
56
+ "teachingNote": "Emaj7 again — the vamp repeats. Settle into the groove."
57
+ },
58
+ {
59
+ "number": 4,
60
+ "rightHand": "F#4:q E4:q D#4:q C#4:q",
61
+ "leftHand": "C#3:q E3:q G#3:q B3:q",
62
+ "dynamics": "mf",
63
+ "teachingNote": "C#m7 — longer descent this time. Building toward the bridge."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "C#4:q D#4:q E4:q F#4:q",
68
+ "leftHand": "F#2:q A2:q C#3:q E3:q",
69
+ "dynamics": "mf",
70
+ "teachingNote": "F#m7 — new harmonic color. The melody lifts with fresh energy."
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "G#4:q F#4:q E4:q D#4:q",
75
+ "leftHand": "B2:q D#3:q F#3:q A3:q",
76
+ "teachingNote": "B7 — dominant chord. Smooth tension wanting to resolve."
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "E4:q G#4:q F#4:q E4:q",
81
+ "leftHand": "E2:q G#2:q B2:q D#3:q",
82
+ "dynamics": "mp",
83
+ "teachingNote": "Back to Emaj7 — the resolution feels like coming home."
84
+ },
85
+ {
86
+ "number": 8,
87
+ "rightHand": "D#4:q E4:h R:q",
88
+ "leftHand": "C#3:q E3:q G#3:h",
89
+ "dynamics": "p",
90
+ "teachingNote": "C#m7 ending — the rest lets the chord ring out and fade."
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "id": "yesterday",
3
+ "title": "Yesterday",
4
+ "genre": "pop",
5
+ "composer": "John Lennon & Paul McCartney",
6
+ "difficulty": "beginner",
7
+ "key": "F major",
8
+ "tempo": 96,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 20,
11
+ "tags": [
12
+ "beatles",
13
+ "ballad",
14
+ "melancholic",
15
+ "beginner-friendly",
16
+ "classic"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "One of the most covered songs in history, originally performed with a string quartet. The melody is singable and poignant, moving through F major with surprising chromatic touches. This simplified arrangement focuses on the vocal melody with basic chord support.",
21
+ "structure": "Verse (8 bars) — F-Em7-A7-Dm-Bb-C-F progression with melodic narrative",
22
+ "keyMoments": [
23
+ "Bars 1-2: F major opening — the melody immediately establishes the wistful mood",
24
+ "Bars 3-4: A7 to Dm — the harmonic surprise that gives the song its distinctive color",
25
+ "Bars 7-8: Bb-C-F cadence — the classic resolution that brings the verse home"
26
+ ],
27
+ "teachingGoals": [
28
+ "Playing a lyrical melody with proper phrasing",
29
+ "Basic chord shapes in F major: F, Dm, Bb, C",
30
+ "Understanding how melody and harmony work together"
31
+ ],
32
+ "styleTips": [
33
+ "Play the melody as if you were singing it — breathe where a singer would",
34
+ "Left hand should be gentle and supportive, never overpowering",
35
+ "Slightly slower than strict tempo feels right — let it be nostalgic"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "A4:q A4:q A4:q Bb4:q",
42
+ "leftHand": "F3:h C3:h",
43
+ "teachingNote": "F major — the melody begins on the third degree. Simple, direct, unforgettable.",
44
+ "dynamics": "mp"
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "C5:q Bb4:q A4:q G4:q",
49
+ "leftHand": "E3:h A2:h",
50
+ "teachingNote": "Em7 to A7 implied — the melody descends smoothly. Notice the E natural in the bass."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "F4:q G4:q A4:h",
55
+ "leftHand": "D3:h A2:h",
56
+ "teachingNote": "D minor — the relative minor. The melody rises F-G-A, a hopeful gesture."
57
+ },
58
+ {
59
+ "number": 4,
60
+ "rightHand": "A4:q G4:q F4:h",
61
+ "leftHand": "Bb2:h C3:h",
62
+ "teachingNote": "Bb to C — the melody mirrors the rise with a fall. Classic arch-shaped phrasing."
63
+ },
64
+ {
65
+ "number": 5,
66
+ "rightHand": "F4:q G4:q A4:q Bb4:q",
67
+ "leftHand": "F3:h C3:h",
68
+ "teachingNote": "Back to F — the second phrase begins with ascending energy.",
69
+ "dynamics": "mf"
70
+ },
71
+ {
72
+ "number": 6,
73
+ "rightHand": "C5:q Bb4:q A4:q G4:q",
74
+ "leftHand": "E3:h A2:h",
75
+ "teachingNote": "Same harmonic motion as bar 2 — the symmetry is what makes this melody stick."
76
+ },
77
+ {
78
+ "number": 7,
79
+ "rightHand": "F4:q E4:q D4:q C4:q",
80
+ "leftHand": "Bb2:h C3:h",
81
+ "teachingNote": "Bb to C — melody descends to the depths. This is the emotional low point.",
82
+ "dynamics": "p"
83
+ },
84
+ {
85
+ "number": 8,
86
+ "rightHand": "F4:w",
87
+ "leftHand": "F2:h F3:h",
88
+ "teachingNote": "F major — the melody lands on the tonic. Hold it and let the sadness settle.",
89
+ "dynamics": "p"
90
+ }
91
+ ]
92
+ }