@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,91 @@
1
+ {
2
+ "id": "clocks",
3
+ "title": "Clocks",
4
+ "genre": "pop",
5
+ "composer": "Coldplay",
6
+ "difficulty": "intermediate",
7
+ "key": "Eb major",
8
+ "tempo": 130,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 15,
11
+ "tags": [
12
+ "coldplay",
13
+ "driving-riff",
14
+ "arpeggiated",
15
+ "energetic",
16
+ "repetitive-pattern"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "The iconic driving piano riff that defines modern alternative pop. Built on a rapid arpeggiated pattern cycling through Eb, Bbm, and Fm chords. The left hand provides a steady bass anchor while the right hand plays the signature ascending broken chord figure.",
21
+ "structure": "Riff pattern (8 bars) — Eb-Bbm-Fm cycle with repetition",
22
+ "keyMoments": [
23
+ "Bars 1-2: The Eb major riff — the signature ascending pattern that everyone recognizes",
24
+ "Bars 3-4: Bb minor — the riff darkens, creating tension",
25
+ "Bars 5-6: F minor — the third chord of the cycle completes the harmonic circuit"
26
+ ],
27
+ "teachingGoals": [
28
+ "Rapid arpeggiated right-hand patterns at tempo",
29
+ "Maintaining steady pulse with the left hand while the right hand moves",
30
+ "Playing in a flat key — Eb major with Bb and Ab"
31
+ ],
32
+ "styleTips": [
33
+ "The right hand should be percussive but flowing — like a clock mechanism",
34
+ "Keep strict time — this riff lives or dies by its rhythmic precision",
35
+ "Left hand stays simple and grounded while right hand drives the energy"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "Bb4:e G4:e Eb4:e Bb4:e G4:e Eb4:e Bb4:e G4:e",
42
+ "leftHand": "Eb2:h Eb3:h",
43
+ "teachingNote": "The iconic riff begins — Bb-G-Eb pattern repeating. Keep it crisp and even.",
44
+ "dynamics": "mf"
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "Bb4:e G4:e Eb4:e Bb4:e G4:e Eb4:e Bb4:e G4:e",
49
+ "leftHand": "Eb2:h Eb3:h",
50
+ "teachingNote": "Same pattern — lock into the groove. Consistency is everything here."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "Bb4:e F4:e Db4:e Bb4:e F4:e Db4:e Bb4:e F4:e",
55
+ "leftHand": "Bb2:h Bb2:h",
56
+ "teachingNote": "Bb minor — same rhythmic pattern but Db replaces Eb, F replaces G. Feel the darkness."
57
+ },
58
+ {
59
+ "number": 4,
60
+ "rightHand": "Bb4:e F4:e Db4:e Bb4:e F4:e Db4:e Bb4:e F4:e",
61
+ "leftHand": "Bb2:h Bb2:h",
62
+ "teachingNote": "Bb minor continues — keep the momentum relentless."
63
+ },
64
+ {
65
+ "number": 5,
66
+ "rightHand": "Ab4:e F4:e C4:e Ab4:e F4:e C4:e Ab4:e F4:e",
67
+ "leftHand": "F2:h F3:h",
68
+ "teachingNote": "F minor — the third chord. Ab-F-C pattern. The cycle is nearly complete."
69
+ },
70
+ {
71
+ "number": 6,
72
+ "rightHand": "Ab4:e F4:e C4:e Ab4:e F4:e C4:e Ab4:e F4:e",
73
+ "leftHand": "F2:h F3:h",
74
+ "teachingNote": "F minor repeats — you're now hearing the full chord cycle."
75
+ },
76
+ {
77
+ "number": 7,
78
+ "rightHand": "Bb4:e G4:e Eb4:e Bb4:e G4:e Eb4:e Bb4:e G4:e",
79
+ "leftHand": "Eb2:h Eb3:h",
80
+ "teachingNote": "Back to Eb major — the return feels like coming home. The cycle begins again.",
81
+ "dynamics": "f"
82
+ },
83
+ {
84
+ "number": 8,
85
+ "rightHand": "Bb4:e G4:e Eb4:e Bb4:e G4:e Eb4:e Bb4:q",
86
+ "leftHand": "Eb2:h Eb3:h",
87
+ "teachingNote": "Final bar — the last note is a quarter note, giving the phrase a slight landing before looping.",
88
+ "dynamics": "mf"
89
+ }
90
+ ]
91
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "id": "crystal-stream",
3
+ "title": "Crystal Stream",
4
+ "genre": "new-age",
5
+ "composer": "Claude (original)",
6
+ "difficulty": "intermediate",
7
+ "key": "E minor",
8
+ "tempo": 80,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 24,
11
+ "tags": ["new-age", "flowing", "water", "intermediate", "arpeggios"],
12
+ "source": "Claude arrangement",
13
+ "musicalLanguage": {
14
+ "description": "A flowing piece that captures the movement of water over smooth stones. The right hand plays continuous sixteenth-note arpeggios that ripple across the keyboard while the left hand provides a deep, anchoring bass line.",
15
+ "structure": "Through-composed flowing arpeggio piece (8 bars)",
16
+ "keyMoments": ["Continuous water-like flow begins in measure 1", "Minor-to-major shift in measure 5"],
17
+ "teachingGoals": ["Develop even sixteenth-note arpeggio technique", "Practice sustaining a flowing texture while the bass moves independently"],
18
+ "styleTips": ["Keep the right hand perfectly even — the water flows without interruption", "Pedal changes on each new harmony to keep the stream clear"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "E4:s G4:s B4:s E5:s G4:s B4:s E5:s G5:s B4:s E5:s G5:s B5:s E5:s G5:s B5:s E6:s",
24
+ "leftHand": "E2:h B2:h",
25
+ "dynamics": "p"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "D4:s G4:s B4:s D5:s G4:s B4:s D5:s G5:s B4:s D5:s G5:s B5:s D5:s G5:s B5:s D6:s",
30
+ "leftHand": "G2:h D3:h",
31
+ "dynamics": "p"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "C4:s E4:s A4:s C5:s E4:s A4:s C5:s E5:s A4:s C5:s E5:s A5:s C5:s E5:s A5:s C6:s",
36
+ "leftHand": "A2:h E3:h",
37
+ "dynamics": "mp"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "B3:s D4:s F#4:s B4:s D4:s F#4:s B4:s D5:s F#4:s B4:s D5:s F#5:s B4:s D5:s F#5:s B5:s",
42
+ "leftHand": "B2:h F#3:h",
43
+ "dynamics": "mp"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "C4:s E4:s G4:s C5:s E4:s G4:s C5:s E5:s G4:s C5:s E5:s G5:s C5:s E5:s G5:s C6:s",
48
+ "leftHand": "C3:h G3:h",
49
+ "dynamics": "mf"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "D4:s F#4:s A4:s D5:s F#4:s A4:s D5:s F#5:s A4:s D5:s F#5:s A5:s D5:s F#5:s A5:s D6:s",
54
+ "leftHand": "D3:h A3:h",
55
+ "dynamics": "mf"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "E4:s G4:s B4:s E5:s G4:s B4:s E5:s G5:s B4:s E5:s G5:s B5:s G5:s E5:s B4:s G4:s",
60
+ "leftHand": "E2:h B2:h",
61
+ "dynamics": "mp"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "E4:s G4:s B4:s E5:s B4:s G4:s E4:q E5:h",
66
+ "leftHand": "E2:w",
67
+ "dynamics": "p"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "desafinado",
3
+ "title": "Desafinado",
4
+ "genre": "latin",
5
+ "composer": "Antonio Carlos Jobim / Newton Mendonca",
6
+ "difficulty": "advanced",
7
+ "key": "F major",
8
+ "tempo": 126,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 15,
11
+ "tags": [
12
+ "bossa-nova",
13
+ "jobim",
14
+ "chromatic",
15
+ "advanced-harmony",
16
+ "brazilian"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "Jobim's witty bossa nova about being out of tune is itself a masterclass in sophisticated harmony. The melody deliberately uses chromatic passing tones and altered chord extensions, creating a charming 'slightly off' quality that is actually perfectly calculated. The chord progression moves through diminished and augmented chords with elegant voice leading.",
21
+ "structure": "A section: Fmaj7 through chromatic descents (4 bars), B section: altered dominants and tritone subs (4 bars)",
22
+ "keyMoments": [
23
+ "Bar 1: Fmaj7 — deceptively simple opening before the chromatic adventure.",
24
+ "Bar 3: The Ab diminished passing chord — the 'desafinado' moment.",
25
+ "Bars 5-7: Chain of altered dominants — the harmonic heart of the piece."
26
+ ],
27
+ "teachingGoals": [
28
+ "Chromatic voice leading in jazz context",
29
+ "Diminished and augmented chord voicings",
30
+ "Playing 'wrong' notes that are actually right — altered extensions"
31
+ ],
32
+ "styleTips": [
33
+ "The chromatic notes should sound deliberate, not accidental",
34
+ "Bossa rhythm stays constant even when harmony gets adventurous",
35
+ "Think of the melody as a singer who knows exactly how 'off' to be"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "A4:q G4:e A4:e Bb4:q A4:q",
42
+ "leftHand": "F2:q A3 C4 E4:q F2:q A3 C4 E4:q",
43
+ "dynamics": "mp",
44
+ "teachingNote": "Fmaj7 — clean opening. Bb is the first chromatic hint."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "G4:q F4:e G4:e Ab4:q G4:q",
49
+ "leftHand": "G2:q B3 D4 F4:q G2:q B3 D4 F4:q",
50
+ "teachingNote": "G7 — same pattern, down a step. Ab4 is the chromatic spice."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "F4:q E4:q Eb4:q D4:q",
55
+ "leftHand": "Ab2:q B3 D4 F4:q Ab2:q B3 D4 F4:q",
56
+ "dynamics": "mf",
57
+ "teachingNote": "Abdim7 — the 'out of tune' moment. Eb against F creates the tension."
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "D4:q E4:q F4:h",
62
+ "leftHand": "G2:q Bb3 Db4 E4:q C2:q E3 G3 Bb3:q",
63
+ "teachingNote": "G7b9 to C7 — resolution through altered dominant. Complex but beautiful."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "A4:q Ab4:q G4:q Gb4:q",
68
+ "leftHand": "D2:q F3 A3 C4:q Db2:q F3 Ab3 B3:q",
69
+ "dynamics": "mf",
70
+ "teachingNote": "Dm7 to Db7 — tritone substitution. Every note descends chromatically."
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "F4:q E4:e F4:e G4:q A4:q",
75
+ "leftHand": "C2:q E3 G3 Bb3:q C2:q E3 G3 Bb3:q",
76
+ "dynamics": "f",
77
+ "teachingNote": "C7 — melody starts climbing back. The tension wants to resolve."
78
+ },
79
+ {
80
+ "number": 7,
81
+ "rightHand": "Bb4:q A4:q Ab4:q G4:q",
82
+ "leftHand": "F2:q A3 C4 Eb4:q Bb2:q D3 F3 Ab3:q",
83
+ "teachingNote": "F7 to Bbm — another chromatic descent. Every chord has a story."
84
+ },
85
+ {
86
+ "number": 8,
87
+ "rightHand": "A4:q G4:q F4:h",
88
+ "leftHand": "C2:q E3 G3 Bb3:q F2:q A2:q",
89
+ "dynamics": "p",
90
+ "teachingNote": "C7 to F — home at last. The chromatic journey resolves to pure F major."
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "id": "dont-stop-believin",
3
+ "title": "Don't Stop Believin'",
4
+ "genre": "rock",
5
+ "composer": "Steve Perry, Neal Schon & Jonathan Cain",
6
+ "difficulty": "beginner",
7
+ "key": "E major",
8
+ "tempo": 120,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 16,
11
+ "tags": [
12
+ "journey",
13
+ "anthem",
14
+ "iconic-riff",
15
+ "beginner-friendly",
16
+ "arena-rock"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "One of the most recognizable piano intros in rock history. Jonathan Cain's opening riff is a simple broken chord pattern cycling through E-B-C#m-A. This beginner arrangement captures the essence of the riff with a simplified right-hand pattern and basic left-hand bass notes.",
21
+ "structure": "Intro-Verse riff (8 bars) — E-B-C#m-A repeated twice",
22
+ "keyMoments": [
23
+ "Bars 1-2: E to B — the bright, optimistic opening that everyone knows",
24
+ "Bars 3-4: C#m to A — the minor chord adds depth, then A brings it back to warmth",
25
+ "Bars 5-8: Same progression repeated — by the second time, your hands know the way"
26
+ ],
27
+ "teachingGoals": [
28
+ "Playing in E major — four sharps (F#, C#, G#, D#)",
29
+ "Simple broken chord patterns in the right hand",
30
+ "Maintaining steady eighth-note momentum"
31
+ ],
32
+ "styleTips": [
33
+ "Keep the rhythm steady and bright — this is feel-good arena rock",
34
+ "The right hand pattern should be light and bouncy, not heavy",
35
+ "Think of a crowd singing along — this music is meant to uplift"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "E4:e G#4:e B4:e E5:e B4:e G#4:e E4:e G#4:e",
42
+ "leftHand": "E2:h E3:h",
43
+ "teachingNote": "E major broken chord — the iconic opening riff. Bright and hopeful.",
44
+ "dynamics": "mf"
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "F#4:e B4:e D#5:e B4:e F#4:e B4:e D#5:e B4:e",
49
+ "leftHand": "B2:h B2:h",
50
+ "teachingNote": "B major — same pattern transposed. The D# gives the major third its brightness."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "E4:e G#4:e C#5:e G#4:e E4:e G#4:e C#5:e G#4:e",
55
+ "leftHand": "C#3:h C#3:h",
56
+ "teachingNote": "C# minor — the only minor chord. Notice G# stays while B changes to C#5. Subtle shift."
57
+ },
58
+ {
59
+ "number": 4,
60
+ "rightHand": "E4:e A4:e C#5:e A4:e E4:e A4:e C#5:e A4:e",
61
+ "leftHand": "A2:h A2:h",
62
+ "teachingNote": "A major — warm and grounding. The IV chord feels like coming home before the loop."
63
+ },
64
+ {
65
+ "number": 5,
66
+ "rightHand": "E4:e G#4:e B4:e E5:e B4:e G#4:e E4:e G#4:e",
67
+ "leftHand": "E2:h E3:h",
68
+ "teachingNote": "E major again — second time through. Your fingers should be finding the patterns now."
69
+ },
70
+ {
71
+ "number": 6,
72
+ "rightHand": "F#4:e B4:e D#5:e B4:e F#4:e B4:e D#5:e B4:e",
73
+ "leftHand": "B2:h B2:h",
74
+ "teachingNote": "B major — same as bar 2. Repetition builds confidence and groove."
75
+ },
76
+ {
77
+ "number": 7,
78
+ "rightHand": "E4:e G#4:e C#5:e G#4:e E4:e G#4:e C#5:e G#4:e",
79
+ "leftHand": "C#3:h C#3:h",
80
+ "teachingNote": "C# minor — the bittersweet moment before the final resolution.",
81
+ "dynamics": "f"
82
+ },
83
+ {
84
+ "number": 8,
85
+ "rightHand": "E4:e A4:e C#5:e A4:e E4:h",
86
+ "leftHand": "A2:h E2:h",
87
+ "teachingNote": "A to E — the phrase closes on the tonic. You just played one of rock's greatest piano parts.",
88
+ "dynamics": "mf"
89
+ }
90
+ ]
91
+ }
@@ -0,0 +1,100 @@
1
+ {
2
+ "id": "dream-on",
3
+ "title": "Dream On (Piano Intro)",
4
+ "genre": "rock",
5
+ "composer": "Steven Tyler",
6
+ "arranger": "Piano reduction of the intro",
7
+ "difficulty": "intermediate",
8
+ "key": "F minor",
9
+ "tempo": 80,
10
+ "timeSignature": "4/4",
11
+ "durationSeconds": 45,
12
+ "tags": [
13
+ "aerosmith",
14
+ "classic-rock",
15
+ "arpeggios",
16
+ "dramatic",
17
+ "intro"
18
+ ],
19
+ "source": "Piano arrangement of the iconic intro section",
20
+ "musicalLanguage": {
21
+ "description": "The piano intro to Aerosmith's 'Dream On' is one of rock's great piano moments. Descending arpeggios over a chromatic bass line create mounting drama. The pattern is deceptively simple — broken chords moving down by half-steps — but the emotional effect is enormous.",
22
+ "structure": "Intro sequence: descending chromatic bass with arpeggiated chords (8 bars)",
23
+ "keyMoments": [
24
+ "Bars 1-2: Fm — the opening statement. Stark, dramatic, alone.",
25
+ "Bars 3-4: E major — a half-step down. The chromatic shift is unsettling.",
26
+ "Bars 5-6: Eb — another half-step. The descent accelerates the drama.",
27
+ "Bars 7-8: Db to C7 — arrival at the dominant. Maximum tension before the verse."
28
+ ],
29
+ "teachingGoals": [
30
+ "Arpeggiated chord patterns with consistent rhythm",
31
+ "Chromatic bass line awareness — hearing the half-step descent",
32
+ "Dynamic build: starting quiet and growing through the intro"
33
+ ],
34
+ "styleTips": [
35
+ "Start very quietly — let the drama build naturally",
36
+ "Each chord change should feel like a step deeper into the song",
37
+ "Sustain pedal: change with each new chord"
38
+ ]
39
+ },
40
+ "measures": [
41
+ {
42
+ "number": 1,
43
+ "rightHand": "F4:e Ab4:e C5:e Ab4:e F4:e Ab4:e C5:e Ab4:e",
44
+ "leftHand": "F2:w",
45
+ "fingering": "RH: 1-3-5-3-1-3-5-3, LH: 5",
46
+ "teachingNote": "F minor — broken chord, up and back. This pattern defines the whole intro.",
47
+ "dynamics": "p"
48
+ },
49
+ {
50
+ "number": 2,
51
+ "rightHand": "F4:e Ab4:e C5:e Ab4:e F4:e Ab4:e C5:e Ab4:e",
52
+ "leftHand": "F2:w",
53
+ "teachingNote": "Same pattern — let it settle. The audience is listening."
54
+ },
55
+ {
56
+ "number": 3,
57
+ "rightHand": "E4:e G#4:e B4:e G#4:e E4:e G#4:e B4:e G#4:e",
58
+ "leftHand": "E2:w",
59
+ "fingering": "RH: 1-3-5-3-1-3-5-3, LH: 5",
60
+ "teachingNote": "E major — one half-step down in the bass. The chromatic descent has begun.",
61
+ "dynamics": "mp"
62
+ },
63
+ {
64
+ "number": 4,
65
+ "rightHand": "E4:e G#4:e B4:e G#4:e E4:e G#4:e B4:e G#4:e",
66
+ "leftHand": "E2:w",
67
+ "teachingNote": "Second bar of E major. Feel the contrast with F minor — brighter but tense."
68
+ },
69
+ {
70
+ "number": 5,
71
+ "rightHand": "Eb4:e G4:e Bb4:e G4:e Eb4:e G4:e Bb4:e G4:e",
72
+ "leftHand": "Eb2:w",
73
+ "fingering": "RH: 1-3-5-3-1-3-5-3, LH: 5",
74
+ "teachingNote": "Eb major — another half-step down. The pattern is relentless now.",
75
+ "dynamics": "mf"
76
+ },
77
+ {
78
+ "number": 6,
79
+ "rightHand": "Eb4:e G4:e Bb4:e G4:e Eb4:e G4:e Bb4:e G4:e",
80
+ "leftHand": "Eb2:w",
81
+ "teachingNote": "Ride the crescendo. Each chord change adds urgency."
82
+ },
83
+ {
84
+ "number": 7,
85
+ "rightHand": "Db4:e F4:e Ab4:e F4:e Db4:e F4:e Ab4:e F4:e",
86
+ "leftHand": "Db2:w",
87
+ "fingering": "RH: 1-3-5-3-1-3-5-3, LH: 5",
88
+ "teachingNote": "Db major — almost at the bottom of the descent. Build the intensity.",
89
+ "dynamics": "f"
90
+ },
91
+ {
92
+ "number": 8,
93
+ "rightHand": "C4:e E4:e G4:e Bb4:e C4:e E4:e G4:e Bb4:e",
94
+ "leftHand": "C2:w",
95
+ "fingering": "RH: 1-3-5-5-1-3-5-5, LH: 5",
96
+ "teachingNote": "C7 — the dominant of F minor. Maximum tension. The verse is about to explode.",
97
+ "dynamics": "ff"
98
+ }
99
+ ]
100
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "id": "easy-winners",
3
+ "title": "The Easy Winners",
4
+ "genre": "ragtime",
5
+ "composer": "Scott Joplin",
6
+ "difficulty": "intermediate",
7
+ "key": "G major",
8
+ "tempo": 108,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 18,
11
+ "tags": ["ragtime", "joplin", "march", "spirited"],
12
+ "source": "Claude arrangement — simplified interpretation",
13
+ "musicalLanguage": {
14
+ "description": "Published in 1901, The Easy Winners is a march-like rag with a confident stride. Its melody steps boldly through syncopated passages while the left hand maintains a steady, propulsive oom-pah pattern.",
15
+ "structure": "A section excerpt (8 bars)",
16
+ "keyMoments": ["Bold opening octave statement in measure 1", "March-like ascending passage in measures 5-6"],
17
+ "teachingGoals": ["Build left-hand oom-pah endurance", "Practice march-like right-hand articulation"],
18
+ "styleTips": ["Play with a confident, march-like feel", "Keep articulation crisp — slightly detached quarter notes in the melody"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "G4:e B4:e D5:q G5:q D5:q",
24
+ "leftHand": "G2:q B3 D4:q G2:q B3 D4:q",
25
+ "dynamics": "f"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "E5:e D5:e C5:e B4:e A4:q G4:q",
30
+ "leftHand": "C3:q E4 G4:q D3:q F#3 A3:q",
31
+ "dynamics": "mf"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "G4:e B4:e D5:q E5:e D5:e B4:q",
36
+ "leftHand": "G2:q B3 D4:q G2:q B3 D4:q",
37
+ "dynamics": "mf"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "C5:q A4:e B4:e G4:h",
42
+ "leftHand": "C3:q E4 G4:q D3:q F#3 C4:q",
43
+ "dynamics": "mf"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "G4:e A4:e B4:e C5:e D5:q E5:q",
48
+ "leftHand": "G2:q B3 D4:q C3:q E4 G4:q",
49
+ "dynamics": "mf"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "F#5:e E5:e D5:q C5:e B4:e A4:q",
54
+ "leftHand": "D3:q F#3 A3:q D3:q F#3 A3:q",
55
+ "dynamics": "f"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "B4:e D5:e G5:q F#5:e E5:e D5:q",
60
+ "leftHand": "G2:q B3 D4:q C3:q E4 G4:q",
61
+ "dynamics": "mf"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "G5:h R:h",
66
+ "leftHand": "G2:q B3 D4:q G2:q R:q",
67
+ "dynamics": "f"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "el-condor-pasa",
3
+ "title": "El Condor Pasa",
4
+ "genre": "latin",
5
+ "composer": "Daniel Alomia Robles",
6
+ "difficulty": "intermediate",
7
+ "key": "E minor",
8
+ "tempo": 108,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 18,
11
+ "tags": [
12
+ "andean",
13
+ "folk",
14
+ "peruvian",
15
+ "pentatonic",
16
+ "simon-and-garfunkel"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "The Peruvian Andean folk melody, composed in 1913 and later popularized internationally, is built on the pentatonic scale that gives it its distinctive soaring quality. The melody evokes the flight of a condor over the Andes — wide intervals and open voicings create a sense of vast space. The arrangement uses the E minor pentatonic scale throughout, keeping the authentic Andean sound.",
21
+ "structure": "A section: pentatonic melody over Em-G (4 bars), B section: ascending climax over Am-Em (4 bars)",
22
+ "keyMoments": [
23
+ "Bars 1-2: The opening pentatonic melody — instantly recognizable, soaring and open.",
24
+ "Bar 5: The melody reaches its highest point — the condor at its peak.",
25
+ "Bars 7-8: The gentle descent — the condor gliding back down."
26
+ ],
27
+ "teachingGoals": [
28
+ "Pentatonic scale — the foundation of folk music worldwide",
29
+ "Wide intervals and open voicings to create spacious sound",
30
+ "Connecting Andean folk tradition to piano technique"
31
+ ],
32
+ "styleTips": [
33
+ "Think of wide open spaces — the Andes mountains. Let notes ring.",
34
+ "The melody should soar — use legato and sustain pedal generously",
35
+ "Left hand should be sparse and open — fifths and octaves, not dense chords"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "E4:q G4:q A4:q B4:q",
42
+ "leftHand": "E3:h B3:h",
43
+ "dynamics": "mp",
44
+ "teachingNote": "Em pentatonic — ascending. Open and airy. The condor takes flight."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "D5:q B4:q A4:h",
49
+ "leftHand": "G3:h D4:h",
50
+ "teachingNote": "G major — melody peaks on D5 and descends. Wide and free."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "G4:q A4:q B4:q D5:q",
55
+ "leftHand": "E3:h B3:h",
56
+ "dynamics": "mf",
57
+ "teachingNote": "Em — climbing again. Each ascent reaches a little higher."
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "E5:q D5:q B4:h",
62
+ "leftHand": "A3:h E3:h",
63
+ "teachingNote": "Am — the peak at E5. Wide descending interval. Majestic."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "E5:q D5:q B4:q A4:q",
68
+ "leftHand": "E3:q B3:q E3:q B3:q",
69
+ "dynamics": "f",
70
+ "teachingNote": "Em — the soaring passage. The condor at its highest. Full tone."
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "G4:q A4:q B4:q A4:q",
75
+ "leftHand": "G3:h D4:h",
76
+ "teachingNote": "G major — beginning the descent. Still graceful, still open."
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "G4:q E4:q D4:q E4:q",
81
+ "leftHand": "A3:h E3:h",
82
+ "dynamics": "mp",
83
+ "teachingNote": "Am to Em — gliding lower. The melody settles."
84
+ },
85
+ {
86
+ "number": 8,
87
+ "rightHand": "E4:w",
88
+ "leftHand": "E3:q B3:q E3:h",
89
+ "dynamics": "p",
90
+ "teachingNote": "Em — home. Whole note E. The condor has landed."
91
+ }
92
+ ]
93
+ }