@mcptoolshop/ai_jam_session 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/LICENSE +21 -0
  2. package/README.es.md +212 -0
  3. package/README.fr.md +212 -0
  4. package/README.hi.md +212 -0
  5. package/README.it.md +212 -0
  6. package/README.ja.md +214 -0
  7. package/README.md +214 -0
  8. package/README.pt-BR.md +212 -0
  9. package/dist/audio-engine.d.ts +9 -0
  10. package/dist/audio-engine.d.ts.map +1 -0
  11. package/dist/audio-engine.js +422 -0
  12. package/dist/audio-engine.js.map +1 -0
  13. package/dist/cli.d.ts +3 -0
  14. package/dist/cli.d.ts.map +1 -0
  15. package/dist/cli.js +551 -0
  16. package/dist/cli.js.map +1 -0
  17. package/dist/index.d.ts +32 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +41 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/mcp-server.d.ts +3 -0
  22. package/dist/mcp-server.d.ts.map +1 -0
  23. package/dist/mcp-server.js +903 -0
  24. package/dist/mcp-server.js.map +1 -0
  25. package/dist/midi/parser.d.ts +16 -0
  26. package/dist/midi/parser.d.ts.map +1 -0
  27. package/dist/midi/parser.js +192 -0
  28. package/dist/midi/parser.js.map +1 -0
  29. package/dist/midi/types.d.ts +44 -0
  30. package/dist/midi/types.d.ts.map +1 -0
  31. package/dist/midi/types.js +8 -0
  32. package/dist/midi/types.js.map +1 -0
  33. package/dist/note-parser.d.ts +105 -0
  34. package/dist/note-parser.d.ts.map +1 -0
  35. package/dist/note-parser.js +278 -0
  36. package/dist/note-parser.js.map +1 -0
  37. package/dist/playback/controls.d.ts +124 -0
  38. package/dist/playback/controls.d.ts.map +1 -0
  39. package/dist/playback/controls.js +252 -0
  40. package/dist/playback/controls.js.map +1 -0
  41. package/dist/playback/midi-engine.d.ts +68 -0
  42. package/dist/playback/midi-engine.d.ts.map +1 -0
  43. package/dist/playback/midi-engine.js +227 -0
  44. package/dist/playback/midi-engine.js.map +1 -0
  45. package/dist/playback/position.d.ts +95 -0
  46. package/dist/playback/position.d.ts.map +1 -0
  47. package/dist/playback/position.js +223 -0
  48. package/dist/playback/position.js.map +1 -0
  49. package/dist/playback/timing.d.ts +31 -0
  50. package/dist/playback/timing.d.ts.map +1 -0
  51. package/dist/playback/timing.js +57 -0
  52. package/dist/playback/timing.js.map +1 -0
  53. package/dist/sample-engine.d.ts +17 -0
  54. package/dist/sample-engine.d.ts.map +1 -0
  55. package/dist/sample-engine.js +428 -0
  56. package/dist/sample-engine.js.map +1 -0
  57. package/dist/schemas.d.ts +40 -0
  58. package/dist/schemas.d.ts.map +1 -0
  59. package/dist/schemas.js +42 -0
  60. package/dist/schemas.js.map +1 -0
  61. package/dist/session.d.ts +106 -0
  62. package/dist/session.d.ts.map +1 -0
  63. package/dist/session.js +361 -0
  64. package/dist/session.js.map +1 -0
  65. package/dist/sfz-parser.d.ts +36 -0
  66. package/dist/sfz-parser.d.ts.map +1 -0
  67. package/dist/sfz-parser.js +95 -0
  68. package/dist/sfz-parser.js.map +1 -0
  69. package/dist/smoke.d.ts +2 -0
  70. package/dist/smoke.d.ts.map +1 -0
  71. package/dist/smoke.js +512 -0
  72. package/dist/smoke.js.map +1 -0
  73. package/dist/songs/config/loader.d.ts +14 -0
  74. package/dist/songs/config/loader.d.ts.map +1 -0
  75. package/dist/songs/config/loader.js +53 -0
  76. package/dist/songs/config/loader.js.map +1 -0
  77. package/dist/songs/config/schema.d.ts +70 -0
  78. package/dist/songs/config/schema.d.ts.map +1 -0
  79. package/dist/songs/config/schema.js +53 -0
  80. package/dist/songs/config/schema.js.map +1 -0
  81. package/dist/songs/index.d.ts +16 -0
  82. package/dist/songs/index.d.ts.map +1 -0
  83. package/dist/songs/index.js +20 -0
  84. package/dist/songs/index.js.map +1 -0
  85. package/dist/songs/jam.d.ts +48 -0
  86. package/dist/songs/jam.d.ts.map +1 -0
  87. package/dist/songs/jam.js +324 -0
  88. package/dist/songs/jam.js.map +1 -0
  89. package/dist/songs/loader.d.ts +27 -0
  90. package/dist/songs/loader.d.ts.map +1 -0
  91. package/dist/songs/loader.js +90 -0
  92. package/dist/songs/loader.js.map +1 -0
  93. package/dist/songs/midi/hands.d.ts +46 -0
  94. package/dist/songs/midi/hands.d.ts.map +1 -0
  95. package/dist/songs/midi/hands.js +134 -0
  96. package/dist/songs/midi/hands.js.map +1 -0
  97. package/dist/songs/midi/ingest.d.ts +8 -0
  98. package/dist/songs/midi/ingest.d.ts.map +1 -0
  99. package/dist/songs/midi/ingest.js +191 -0
  100. package/dist/songs/midi/ingest.js.map +1 -0
  101. package/dist/songs/midi/measures.d.ts +41 -0
  102. package/dist/songs/midi/measures.d.ts.map +1 -0
  103. package/dist/songs/midi/measures.js +64 -0
  104. package/dist/songs/midi/measures.js.map +1 -0
  105. package/dist/songs/midi/types.d.ts +25 -0
  106. package/dist/songs/midi/types.d.ts.map +1 -0
  107. package/dist/songs/midi/types.js +8 -0
  108. package/dist/songs/midi/types.js.map +1 -0
  109. package/dist/songs/registry.d.ts +37 -0
  110. package/dist/songs/registry.d.ts.map +1 -0
  111. package/dist/songs/registry.js +197 -0
  112. package/dist/songs/registry.js.map +1 -0
  113. package/dist/songs/types.d.ts +99 -0
  114. package/dist/songs/types.d.ts.map +1 -0
  115. package/dist/songs/types.js +27 -0
  116. package/dist/songs/types.js.map +1 -0
  117. package/dist/teaching/live-midi-feedback.d.ts +36 -0
  118. package/dist/teaching/live-midi-feedback.d.ts.map +1 -0
  119. package/dist/teaching/live-midi-feedback.js +259 -0
  120. package/dist/teaching/live-midi-feedback.js.map +1 -0
  121. package/dist/teaching/midi-feedback.d.ts +33 -0
  122. package/dist/teaching/midi-feedback.d.ts.map +1 -0
  123. package/dist/teaching/midi-feedback.js +208 -0
  124. package/dist/teaching/midi-feedback.js.map +1 -0
  125. package/dist/teaching/sing-on-midi.d.ts +77 -0
  126. package/dist/teaching/sing-on-midi.d.ts.map +1 -0
  127. package/dist/teaching/sing-on-midi.js +186 -0
  128. package/dist/teaching/sing-on-midi.js.map +1 -0
  129. package/dist/teaching.d.ts +148 -0
  130. package/dist/teaching.d.ts.map +1 -0
  131. package/dist/teaching.js +453 -0
  132. package/dist/teaching.js.map +1 -0
  133. package/dist/test-sound.d.ts +3 -0
  134. package/dist/test-sound.d.ts.map +1 -0
  135. package/dist/test-sound.js +41 -0
  136. package/dist/test-sound.js.map +1 -0
  137. package/dist/types.d.ts +229 -0
  138. package/dist/types.d.ts.map +1 -0
  139. package/dist/types.js +22 -0
  140. package/dist/types.js.map +1 -0
  141. package/dist/vmpk.d.ts +23 -0
  142. package/dist/vmpk.d.ts.map +1 -0
  143. package/dist/vmpk.js +236 -0
  144. package/dist/vmpk.js.map +1 -0
  145. package/logo.png +0 -0
  146. package/package.json +70 -0
  147. package/songs/builtin/a-change-is-gonna-come.json +95 -0
  148. package/songs/builtin/a-thousand-years.json +93 -0
  149. package/songs/builtin/aint-no-sunshine.json +98 -0
  150. package/songs/builtin/all-blues.json +92 -0
  151. package/songs/builtin/autumn-leaves.json +100 -0
  152. package/songs/builtin/baba-oriley.json +91 -0
  153. package/songs/builtin/bach-invention-no1.json +70 -0
  154. package/songs/builtin/bach-prelude-c-major-bwv846.json +1282 -0
  155. package/songs/builtin/basic-12-bar-blues.json +119 -0
  156. package/songs/builtin/beethoven-waldstein-mvt1.json +7766 -0
  157. package/songs/builtin/bennie-and-the-jets.json +92 -0
  158. package/songs/builtin/besame-mucho.json +93 -0
  159. package/songs/builtin/black-orpheus.json +92 -0
  160. package/songs/builtin/blue-bossa.json +94 -0
  161. package/songs/builtin/blues-in-g.json +92 -0
  162. package/songs/builtin/bohemian-rhapsody-intro.json +94 -0
  163. package/songs/builtin/boogie-woogie-basics.json +93 -0
  164. package/songs/builtin/bossa-nova-basic.json +95 -0
  165. package/songs/builtin/chopin-nocturne-op9-no2.json +70 -0
  166. package/songs/builtin/cinema-paradiso.json +94 -0
  167. package/songs/builtin/clair-de-lune.json +11511 -0
  168. package/songs/builtin/clocks.json +91 -0
  169. package/songs/builtin/crystal-stream.json +70 -0
  170. package/songs/builtin/desafinado.json +93 -0
  171. package/songs/builtin/dont-stop-believin.json +91 -0
  172. package/songs/builtin/dream-on.json +100 -0
  173. package/songs/builtin/easy-winners.json +70 -0
  174. package/songs/builtin/el-condor-pasa.json +93 -0
  175. package/songs/builtin/elite-syncopations.json +70 -0
  176. package/songs/builtin/evening-calm.json +70 -0
  177. package/songs/builtin/everyday-blues.json +93 -0
  178. package/songs/builtin/fly-me-to-the-moon.json +91 -0
  179. package/songs/builtin/forrest-gump-suite.json +93 -0
  180. package/songs/builtin/fur-elise.json +20094 -0
  181. package/songs/builtin/georgia-on-my-mind.json +93 -0
  182. package/songs/builtin/girl-from-ipanema.json +92 -0
  183. package/songs/builtin/gladiolus-rag.json +70 -0
  184. package/songs/builtin/great-balls-of-fire.json +92 -0
  185. package/songs/builtin/guantanamera.json +92 -0
  186. package/songs/builtin/hallelujah.json +92 -0
  187. package/songs/builtin/hedwigs-theme.json +93 -0
  188. package/songs/builtin/hotel-california.json +92 -0
  189. package/songs/builtin/imagine.json +92 -0
  190. package/songs/builtin/just-the-two-of-us.json +92 -0
  191. package/songs/builtin/la-bamba.json +92 -0
  192. package/songs/builtin/layla-piano-coda.json +93 -0
  193. package/songs/builtin/lean-on-me.json +91 -0
  194. package/songs/builtin/let-it-be.json +101 -0
  195. package/songs/builtin/lets-stay-together.json +93 -0
  196. package/songs/builtin/magnetic-rag.json +70 -0
  197. package/songs/builtin/maple-leaf-rag.json +99 -0
  198. package/songs/builtin/mia-and-sebastians-theme.json +93 -0
  199. package/songs/builtin/minor-blues-in-a.json +94 -0
  200. package/songs/builtin/misty.json +94 -0
  201. package/songs/builtin/moon-river.json +93 -0
  202. package/songs/builtin/moonlight-sonata-mvt1.json +101 -0
  203. package/songs/builtin/morning-light.json +70 -0
  204. package/songs/builtin/mountain-dawn.json +70 -0
  205. package/songs/builtin/mozart-k545-mvt1.json +2956 -0
  206. package/songs/builtin/my-girl.json +92 -0
  207. package/songs/builtin/night-train.json +92 -0
  208. package/songs/builtin/november-rain.json +93 -0
  209. package/songs/builtin/ocean-waves.json +70 -0
  210. package/songs/builtin/over-the-rainbow.json +93 -0
  211. package/songs/builtin/oye-como-va.json +93 -0
  212. package/songs/builtin/peacherine-rag.json +70 -0
  213. package/songs/builtin/piano-man.json +92 -0
  214. package/songs/builtin/pineapple-rag.json +70 -0
  215. package/songs/builtin/pink-panther.json +94 -0
  216. package/songs/builtin/ragtime-dance.json +70 -0
  217. package/songs/builtin/river-flows-in-you.json +102 -0
  218. package/songs/builtin/rocket-man.json +92 -0
  219. package/songs/builtin/satie-gymnopedie-no1.json +70 -0
  220. package/songs/builtin/satin-doll.json +93 -0
  221. package/songs/builtin/schindlers-list.json +96 -0
  222. package/songs/builtin/schumann-traumerei.json +70 -0
  223. package/songs/builtin/sitting-on-the-dock.json +91 -0
  224. package/songs/builtin/slow-blues-in-bb.json +98 -0
  225. package/songs/builtin/snowfall.json +70 -0
  226. package/songs/builtin/so-what.json +92 -0
  227. package/songs/builtin/solace.json +70 -0
  228. package/songs/builtin/someone-like-you.json +92 -0
  229. package/songs/builtin/spirited-away.json +94 -0
  230. package/songs/builtin/st-louis-blues.json +93 -0
  231. package/songs/builtin/stairway-intro.json +93 -0
  232. package/songs/builtin/starlight-waltz.json +70 -0
  233. package/songs/builtin/stay-with-me.json +93 -0
  234. package/songs/builtin/stormy-monday.json +94 -0
  235. package/songs/builtin/superstition.json +93 -0
  236. package/songs/builtin/sweet-home-chicago.json +93 -0
  237. package/songs/builtin/take-five.json +92 -0
  238. package/songs/builtin/take-the-a-train.json +93 -0
  239. package/songs/builtin/the-entertainer.json +98 -0
  240. package/songs/builtin/the-godfather-waltz.json +93 -0
  241. package/songs/builtin/thrill-is-gone.json +94 -0
  242. package/songs/builtin/twilight-garden.json +70 -0
  243. package/songs/builtin/watermark.json +70 -0
  244. package/songs/builtin/wave.json +93 -0
  245. package/songs/builtin/whats-going-on.json +93 -0
  246. package/songs/builtin/yesterday.json +92 -0
@@ -0,0 +1,93 @@
1
+ {
2
+ "id": "satin-doll",
3
+ "title": "Satin Doll",
4
+ "genre": "jazz",
5
+ "composer": "Duke Ellington / Billy Strayhorn",
6
+ "difficulty": "intermediate",
7
+ "key": "C major",
8
+ "tempo": 120,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 16,
11
+ "tags": [
12
+ "swing",
13
+ "duke-ellington",
14
+ "ii-V",
15
+ "chromatic",
16
+ "big-band",
17
+ "jazz-standard"
18
+ ],
19
+ "source": "Claude arrangement — simplified interpretation",
20
+ "musicalLanguage": {
21
+ "description": "Duke Ellington's sophisticated swing masterpiece, co-written with Billy Strayhorn. The tune is built on a series of ii-V pairs that shift chromatically — Dm7-G7, then Em7-A7 — creating an elegant, serpentine harmonic motion. The melody is angular and hip, full of chromatic neighbor tones.",
22
+ "structure": "AABA — 32 bars. This excerpt: first A section (8 bars)",
23
+ "keyMoments": [
24
+ "Bar 1-2: Dm7 to G7 — first ii-V pair targeting C",
25
+ "Bar 3-4: Em7 to A7 — second ii-V pair targeting D. The chromatic shift is the magic.",
26
+ "Bar 5-8: Resolution and turnaround — the phrase lands and resets"
27
+ ],
28
+ "teachingGoals": [
29
+ "Chromatic ii-V pairs — the backbone of Ellington harmony",
30
+ "Swing rhythm — crisp, bouncy, big-band feel",
31
+ "Chromatic approach notes in the melody"
32
+ ],
33
+ "styleTips": [
34
+ "Play with swing confidence — this is Ellington, not a ballad",
35
+ "Short, punchy articulation on the melody — staccato where marked",
36
+ "Left hand comps in a relaxed swing pattern, slightly behind the beat"
37
+ ]
38
+ },
39
+ "measures": [
40
+ {
41
+ "number": 1,
42
+ "rightHand": "D5:e E5:e F5:q R:q A4:q",
43
+ "leftHand": "D3:q F3 A3:q R:q C4:q",
44
+ "teachingNote": "Dm7 — the melody uses a chromatic enclosure around E. Swing the eighths!",
45
+ "dynamics": "mf"
46
+ },
47
+ {
48
+ "number": 2,
49
+ "rightHand": "D5:e E5:e F5:q R:h",
50
+ "leftHand": "G2:q F3 B3:q R:h",
51
+ "teachingNote": "G7 — same melodic figure repeated. The ii-V pair is a matching set."
52
+ },
53
+ {
54
+ "number": 3,
55
+ "rightHand": "E5:e F5:e G5:q R:q B4:q",
56
+ "leftHand": "E3:q G3 B3:q R:q D4:q",
57
+ "teachingNote": "Em7 — the whole pattern shifts up a step. Same shape, new key center."
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "E5:e F5:e G5:q R:h",
62
+ "leftHand": "A2:q E3 G3:q R:h",
63
+ "teachingNote": "A7 — second ii-V completes. Notice how the bass moves chromatically: D-G, E-A."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "G5:q F5:q E5:q D5:q",
68
+ "leftHand": "Ab3:q Db4:q R:q G3:q",
69
+ "teachingNote": "AbMaj7 passing chord — a surprise! The melody descends smoothly.",
70
+ "dynamics": "f"
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "C5:h R:h",
75
+ "leftHand": "Db3:q Ab3:q G3:q F3:q",
76
+ "teachingNote": "DbMaj7 to C — chromatic resolution. The left hand walks down."
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "D5:e E5:e F5:q A4:q D5:q",
81
+ "leftHand": "D3:q F3 A3:q G2:q B2 F3:q",
82
+ "teachingNote": "Dm7-G7 returns for the turnaround. The A section is about to repeat.",
83
+ "dynamics": "mf"
84
+ },
85
+ {
86
+ "number": 8,
87
+ "rightHand": "C5:h R:h",
88
+ "leftHand": "C3:q E3 G3:q R:h",
89
+ "teachingNote": "CMaj7 — resolution. Clean and satisfying. The form resets.",
90
+ "dynamics": "mp"
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "id": "schindlers-list",
3
+ "title": "Theme from Schindler's List",
4
+ "genre": "film",
5
+ "composer": "John Williams",
6
+ "difficulty": "advanced",
7
+ "key": "A minor",
8
+ "tempo": 56,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 34,
11
+ "tags": [
12
+ "john-williams",
13
+ "mournful",
14
+ "violin-transcription",
15
+ "emotional",
16
+ "minor-key"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "John Williams' devastating violin theme transcribed for piano. The melody, originally played by Itzhak Perlman, is one of the most emotionally powerful pieces in film music. The A minor tonality carries deep sorrow, while the melody's wide leaps and expressive intervals demand advanced phrasing and dynamic control. The left hand provides a spare, grief-laden accompaniment.",
21
+ "structure": "A section: the main theme with its characteristic leap (4 bars), B section: development and emotional climax (4 bars)",
22
+ "keyMoments": [
23
+ "Bar 1: The opening A — a single note that carries the weight of history.",
24
+ "Bars 3-4: The wide leap upward — the melody's most expressive moment.",
25
+ "Bar 6: The emotional climax on E5 — ff, full of grief and beauty."
26
+ ],
27
+ "teachingGoals": [
28
+ "Transcribing violin expressiveness to piano — singing tone, vibrato-like dynamics",
29
+ "Wide interval leaps with smooth connection",
30
+ "Advanced dynamic control from pp to ff within phrases"
31
+ ],
32
+ "styleTips": [
33
+ "Play as if this is the most important melody you will ever play",
34
+ "Each note must connect to the next, even across wide leaps — use pedal",
35
+ "The silences between phrases are as important as the notes"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "A4:h B4:q C5:q",
42
+ "leftHand": "A2:w",
43
+ "dynamics": "pp",
44
+ "teachingNote": "Am — the opening. A single bass note anchors a melody of infinite sadness."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "B4:q A4:q G#4:q A4:q",
49
+ "leftHand": "E2:h A2:h",
50
+ "dynamics": "p",
51
+ "teachingNote": "E7 to Am — the turn figure. G# is the weeping note. Linger on it."
52
+ },
53
+ {
54
+ "number": 3,
55
+ "rightHand": "A4:q C5:q E5:h",
56
+ "leftHand": "A2:q C3:q E3:q A3:q",
57
+ "dynamics": "mf",
58
+ "teachingNote": "Am — the great upward leap to E5. This is where the heart breaks."
59
+ },
60
+ {
61
+ "number": 4,
62
+ "rightHand": "D5:q C5:q B4:q A4:q",
63
+ "leftHand": "D2:h E2:h",
64
+ "dynamics": "mp",
65
+ "teachingNote": "Dm to E — descending after the peak. Each note falls with weight."
66
+ },
67
+ {
68
+ "number": 5,
69
+ "rightHand": "A4:q B4:q C5:q D5:q",
70
+ "leftHand": "F2:q A2:q C3:q F3:q",
71
+ "dynamics": "mf",
72
+ "teachingNote": "F major — the melody builds again. More urgency this time."
73
+ },
74
+ {
75
+ "number": 6,
76
+ "rightHand": "E5:h D5:q C5:q",
77
+ "leftHand": "E2:q G#2:q B2:q E3:q",
78
+ "dynamics": "ff",
79
+ "teachingNote": "E7 — the climax. E5 sustained at full volume. Pure grief."
80
+ },
81
+ {
82
+ "number": 7,
83
+ "rightHand": "B4:q A4:q G4:q A4:q",
84
+ "leftHand": "D2:q F2:q A2:q D3:q",
85
+ "dynamics": "mf",
86
+ "teachingNote": "Dm — receding from the climax. The melody curls inward."
87
+ },
88
+ {
89
+ "number": 8,
90
+ "rightHand": "A4:w",
91
+ "leftHand": "A2:q E3:q A3:h",
92
+ "dynamics": "ppp",
93
+ "teachingNote": "Am — whole note A. The softest sound you can make. Let it disappear."
94
+ }
95
+ ]
96
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "id": "schumann-traumerei",
3
+ "title": "Traumerei (Dreaming)",
4
+ "genre": "classical",
5
+ "composer": "Robert Schumann",
6
+ "difficulty": "intermediate",
7
+ "key": "F major",
8
+ "tempo": 56,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 34,
11
+ "tags": ["classical", "schumann", "romantic", "lyrical", "dreaming"],
12
+ "source": "Claude arrangement — simplified interpretation",
13
+ "musicalLanguage": {
14
+ "description": "From Kinderszenen (Scenes from Childhood), Traumerei is perhaps the most famous piano miniature ever written. Its gently rising melody evokes the act of dreaming itself — each phrase reaching upward before settling back, like a sigh of contentment.",
15
+ "structure": "Main theme excerpt (8 bars)",
16
+ "keyMoments": ["Rising melody arc in measure 1-2", "Tender melodic peak in measure 5"],
17
+ "teachingGoals": ["Shape a long singing phrase across multiple measures", "Learn gentle, expressive rubato"],
18
+ "styleTips": ["Each phrase should rise and fall like a slow breath", "Take the tiniest pause at the peak of each phrase"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "F4:q A4:q C5:q F5:q",
24
+ "leftHand": "F3:q C4 A3:q F3:q C4 A3:q",
25
+ "dynamics": "p"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "E5:q D5:q C5:h",
30
+ "leftHand": "Bb3:q D4 F4:q F3:q A3 C4:q",
31
+ "dynamics": "p"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "A4:q C5:q E5:q A5:q",
36
+ "leftHand": "F3:q C4 A3:q F3:q C4 A3:q",
37
+ "dynamics": "mp"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "G5:q F5:q E5:h",
42
+ "leftHand": "C3:q E4 Bb3:q C3:q E4 G3:q",
43
+ "dynamics": "mp"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "F5:q A5:q C6:q A5:q",
48
+ "leftHand": "F3:q C4 A3:q F3:q C4 A3:q",
49
+ "dynamics": "mf"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "G5:q E5:q D5:q C5:q",
54
+ "leftHand": "Bb3:q D4 F4:q Bb3:q D4 G4:q",
55
+ "dynamics": "mp"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "A4:q Bb4:q A4:q G4:q",
60
+ "leftHand": "F3:q C4 A3:q C3:q E4 Bb3:q",
61
+ "dynamics": "p"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "F4:w",
66
+ "leftHand": "F3:q C4 A3:q F2:h",
67
+ "dynamics": "pp"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "id": "sitting-on-the-dock",
3
+ "title": "Sitting On the Dock of the Bay",
4
+ "genre": "rnb",
5
+ "composer": "Otis Redding / Steve Cropper",
6
+ "difficulty": "beginner",
7
+ "key": "G major",
8
+ "tempo": 104,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 18,
11
+ "tags": [
12
+ "soul",
13
+ "otis-redding",
14
+ "relaxed",
15
+ "classic",
16
+ "easy-chords"
17
+ ],
18
+ "source": "Claude arrangement — simplified interpretation",
19
+ "musicalLanguage": {
20
+ "description": "Otis Redding's laid-back masterpiece captures the feeling of watching the tide roll in. Built on a simple G-B7-C-A progression, the song is accessible for beginners while sounding musically complete. The melody is conversational and unhurried, and the left hand plays simple root-position chords.",
21
+ "structure": "Verse: G-B7-C-A pattern (4 bars), Chorus: E-G-E-G rocking motion (4 bars)",
22
+ "keyMoments": [
23
+ "Bar 1: G major opens — relaxed, like sitting on a dock.",
24
+ "Bar 2: B7 — the unexpected major chord on the III. Gives it soul.",
25
+ "Bars 5-6: E minor to G — the rocking motion of the chorus, like waves."
26
+ ],
27
+ "teachingGoals": [
28
+ "Simple chord progressions with one unexpected chord (B7)",
29
+ "Relaxed tempo playing — resisting the urge to rush",
30
+ "Basic left hand chord patterns supporting melody"
31
+ ],
32
+ "styleTips": [
33
+ "Play like you have nowhere to be — this song is about doing nothing",
34
+ "The B7 chord should surprise slightly — bring it out a touch",
35
+ "Left hand: simple and steady. Right hand: conversational and easy"
36
+ ]
37
+ },
38
+ "measures": [
39
+ {
40
+ "number": 1,
41
+ "rightHand": "B4:q A4:q G4:h",
42
+ "leftHand": "G2:q B2:q D3:q G3:q",
43
+ "dynamics": "mf",
44
+ "teachingNote": "G major — open and easy. The melody settles immediately."
45
+ },
46
+ {
47
+ "number": 2,
48
+ "rightHand": "B4:q A4:q G4:q F#4:q",
49
+ "leftHand": "B2:q D#3:q F#3:q B3:q",
50
+ "teachingNote": "B7 — the soulful twist. F# in the melody leans into this chord."
51
+ },
52
+ {
53
+ "number": 3,
54
+ "rightHand": "G4:q A4:q B4:q A4:q",
55
+ "leftHand": "C3:q E3:q G3:q C4:q",
56
+ "teachingNote": "C major — bright lift. Melody bounces gently."
57
+ },
58
+ {
59
+ "number": 4,
60
+ "rightHand": "G4:q E4:q D4:h",
61
+ "leftHand": "A2:q C#3:q E3:q A3:q",
62
+ "teachingNote": "A major — settling down before the chorus."
63
+ },
64
+ {
65
+ "number": 5,
66
+ "rightHand": "E4:q G4:q E4:q G4:q",
67
+ "leftHand": "E3:h B3:h",
68
+ "dynamics": "mf",
69
+ "teachingNote": "E minor — the rocking chorus figure. Back and forth like waves."
70
+ },
71
+ {
72
+ "number": 6,
73
+ "rightHand": "D4:q G4:q D4:q G4:q",
74
+ "leftHand": "G2:h D3:h",
75
+ "teachingNote": "G major — still rocking. Keep it effortless."
76
+ },
77
+ {
78
+ "number": 7,
79
+ "rightHand": "E4:q G4:q E4:q G4:q",
80
+ "leftHand": "E3:h B3:h",
81
+ "teachingNote": "E minor — the wave continues. Same gentle motion."
82
+ },
83
+ {
84
+ "number": 8,
85
+ "rightHand": "G4:h R:h",
86
+ "leftHand": "G2:q B2:q D3:h",
87
+ "dynamics": "p",
88
+ "teachingNote": "G major — fade out. The rest at the end is the sound of the ocean."
89
+ }
90
+ ]
91
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "id": "slow-blues-in-bb",
3
+ "title": "Slow Blues in Bb",
4
+ "genre": "blues",
5
+ "composer": "Traditional",
6
+ "difficulty": "advanced",
7
+ "key": "Bb major",
8
+ "tempo": 60,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 32,
11
+ "tags": [
12
+ "slow-shuffle",
13
+ "advanced",
14
+ "expressive",
15
+ "rubato",
16
+ "9th-chords",
17
+ "ornamental"
18
+ ],
19
+ "source": "Claude arrangement",
20
+ "musicalLanguage": {
21
+ "description": "A slow, deeply expressive blues in Bb that demands advanced harmonic vocabulary and emotional phrasing. At 60 BPM, every beat is an eternity — you must fill the space with intention. Rich 9th and 13th voicings, chromatic passing tones, and gospel-influenced turnarounds make this a graduate-level blues study.",
22
+ "structure": "Slow 12-bar blues with substitutions. This excerpt: 8 bars",
23
+ "keyMoments": [
24
+ "Bar 1-2: Bb9 — wide voicings with the 9th and 13th. The slow tempo demands rich harmony.",
25
+ "Bar 3-4: Chromatic approach and grace notes — filling the slow tempo with expression",
26
+ "Bar 5-6: Eb9 — the IV chord with jazz-gospel color changes",
27
+ "Bar 7-8: Bb9 with chromatic inner movement — sophisticated voice leading"
28
+ ],
29
+ "teachingGoals": [
30
+ "Extended chord voicings — 9ths, 13ths, altered dominants",
31
+ "Filling slow tempos with expressive ornaments and grace notes",
32
+ "Chromatic voice leading between blues changes",
33
+ "Gospel turnaround influence in blues piano"
34
+ ],
35
+ "styleTips": [
36
+ "At 60 BPM, time stretches — fill it with intent, not filler",
37
+ "Grace notes and ornaments should be vocal — think of a singer bending notes",
38
+ "Use sustain pedal to let rich voicings ring and blend",
39
+ "Dynamic range matters more at slow tempos — use the full spectrum"
40
+ ]
41
+ },
42
+ "measures": [
43
+ {
44
+ "number": 1,
45
+ "rightHand": "D5:q F5:q Ab5:e A5:e C6:h",
46
+ "leftHand": "Bb2:q F3 Ab3 D4:q Bb2:h",
47
+ "teachingNote": "Bb9 — rich voicing with the 9th (C) on top. The Ab-A grace note is a blue note smear into the major 3rd.",
48
+ "dynamics": "mp"
49
+ },
50
+ {
51
+ "number": 2,
52
+ "rightHand": "A5:q F5:q D5:q C5:q",
53
+ "leftHand": "Bb2:q F3 Ab3 D4:q Bb2:q F3:q",
54
+ "teachingNote": "Bb9 — melody descends through chord extensions. Every note sings at this tempo."
55
+ },
56
+ {
57
+ "number": 3,
58
+ "rightHand": "Db5:e D5:e F5:q Ab5:q G5:q",
59
+ "leftHand": "Bb2:q F3 Ab3:q D3 Ab3:q Bb2:q",
60
+ "teachingNote": "Bb13 — Db slides into D (blue 3rd to major 3rd). G is the 13th. Left hand moves through different voicings.",
61
+ "dynamics": "mf"
62
+ },
63
+ {
64
+ "number": 4,
65
+ "rightHand": "F5:h D5:q C5:q",
66
+ "leftHand": "Bb2:q D3 F3 Ab3:q Bb2:h",
67
+ "teachingNote": "Bb9 — phrase settles. Half note on F5 lets the rich harmony bloom underneath."
68
+ },
69
+ {
70
+ "number": 5,
71
+ "rightHand": "G5:q Bb5:q Db5:e D5:e F5:h",
72
+ "leftHand": "Eb3:q G3 Bb3 Db4:q Eb3:h",
73
+ "teachingNote": "Eb9 — IV chord with the same lush treatment. Db-D blue note smear appears again.",
74
+ "dynamics": "mf"
75
+ },
76
+ {
77
+ "number": 6,
78
+ "rightHand": "Eb5:q Db5:q Bb4:q G4:q",
79
+ "leftHand": "Eb3:q Bb3 Db4:q Eb3:q G3:q",
80
+ "teachingNote": "Eb9 — descending through the IV chord tones. Db is the b7. Let the phrase sigh.",
81
+ "dynamics": "mp"
82
+ },
83
+ {
84
+ "number": 7,
85
+ "rightHand": "D5:q F5:q A5:q C6:q",
86
+ "leftHand": "Bb2:q F3 Ab3 D4:q Bb2:q D3:q",
87
+ "teachingNote": "Bb9 — back to the tonic with an ascending line reaching up to C6 (the 9th above).",
88
+ "dynamics": "mf"
89
+ },
90
+ {
91
+ "number": 8,
92
+ "rightHand": "Bb5:q Ab5:e G5:e F5:q D5:q",
93
+ "leftHand": "Bb2:q F3 Ab3 D4:q Bb2:q F3:q",
94
+ "teachingNote": "Bb9 — ornamental descent with grace notes. The Ab-G is a chromatic passing tone. Settle into the resolution.",
95
+ "dynamics": "p"
96
+ }
97
+ ]
98
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "id": "snowfall",
3
+ "title": "Snowfall",
4
+ "genre": "new-age",
5
+ "composer": "Claude (original)",
6
+ "difficulty": "beginner",
7
+ "key": "A minor",
8
+ "tempo": 60,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 32,
11
+ "tags": ["new-age", "gentle", "winter", "beginner", "meditative"],
12
+ "source": "Claude arrangement",
13
+ "musicalLanguage": {
14
+ "description": "A gentle, contemplative piece that evokes snowflakes drifting slowly downward. Simple descending patterns in the right hand mimic falling snow, while the left hand provides a warm harmonic cushion beneath.",
15
+ "structure": "Through-composed descending pattern piece (8 bars)",
16
+ "keyMoments": ["First snowflake pattern in measure 1", "Warm major resolution in measure 7"],
17
+ "teachingGoals": ["Practice gentle descending scale patterns", "Learn to create atmosphere with simple notes and pedal"],
18
+ "styleTips": ["Imagine each note is a snowflake landing softly", "Use pedal to connect the falling notes into a continuous texture"]
19
+ },
20
+ "measures": [
21
+ {
22
+ "number": 1,
23
+ "rightHand": "E5:q D5:q C5:q B4:q",
24
+ "leftHand": "A2:h E3:h",
25
+ "dynamics": "pp"
26
+ },
27
+ {
28
+ "number": 2,
29
+ "rightHand": "A4:q G4:q F4:q E4:q",
30
+ "leftHand": "A2:h F3:h",
31
+ "dynamics": "pp"
32
+ },
33
+ {
34
+ "number": 3,
35
+ "rightHand": "E5:q D5:q C5:q A4:q",
36
+ "leftHand": "D3:h A3:h",
37
+ "dynamics": "p"
38
+ },
39
+ {
40
+ "number": 4,
41
+ "rightHand": "B4:q G4:q E4:h",
42
+ "leftHand": "E3:h B3:h",
43
+ "dynamics": "p"
44
+ },
45
+ {
46
+ "number": 5,
47
+ "rightHand": "F5:q E5:q D5:q C5:q",
48
+ "leftHand": "F3:h C4:h",
49
+ "dynamics": "mp"
50
+ },
51
+ {
52
+ "number": 6,
53
+ "rightHand": "B4:q A4:q G4:q F4:q",
54
+ "leftHand": "G3:h D4:h",
55
+ "dynamics": "mp"
56
+ },
57
+ {
58
+ "number": 7,
59
+ "rightHand": "E4:q F4:q G4:q A4:q",
60
+ "leftHand": "C3:h G3:h",
61
+ "dynamics": "p"
62
+ },
63
+ {
64
+ "number": 8,
65
+ "rightHand": "A4:w",
66
+ "leftHand": "A2:w",
67
+ "dynamics": "pp"
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "id": "so-what",
3
+ "title": "So What",
4
+ "genre": "jazz",
5
+ "composer": "Miles Davis",
6
+ "difficulty": "intermediate",
7
+ "key": "D dorian",
8
+ "tempo": 136,
9
+ "timeSignature": "4/4",
10
+ "durationSeconds": 14,
11
+ "tags": [
12
+ "modal-jazz",
13
+ "miles-davis",
14
+ "kind-of-blue",
15
+ "dorian",
16
+ "cool",
17
+ "quartal"
18
+ ],
19
+ "source": "Claude arrangement — simplified interpretation",
20
+ "musicalLanguage": {
21
+ "description": "The opening track from Kind of Blue — the best-selling jazz album in history. Built on just two scales (D dorian and Eb dorian), So What is the gateway to modal jazz. The famous two-chord piano voicing (stacked fourths answered by bass) defines the sound.",
22
+ "structure": "AABA — 32 bars. This excerpt: first A section (8 bars in D dorian)",
23
+ "keyMoments": [
24
+ "Bar 1-2: The iconic bass call — ascending answer from the piano in quartal voicings",
25
+ "Bar 3-4: Melody floats over D dorian with cool detachment",
26
+ "Bar 7-8: Phrase resolves gently — space and silence are part of the music"
27
+ ],
28
+ "teachingGoals": [
29
+ "Quartal voicings — chords built in fourths instead of thirds",
30
+ "D dorian mode — D E F G A B C D — the 'jazz minor' sound",
31
+ "Less is more — Miles played fewer notes, not more"
32
+ ],
33
+ "styleTips": [
34
+ "Leave space — the rests are as important as the notes",
35
+ "The quartal voicing is E-A-D-G-B, not a traditional Dm chord",
36
+ "Swing lightly — this is cool jazz, not hard bop. Stay relaxed."
37
+ ]
38
+ },
39
+ "measures": [
40
+ {
41
+ "number": 1,
42
+ "rightHand": "R:h D5:q E5:q",
43
+ "leftHand": "D2:q A2:q D3:q A2:q",
44
+ "teachingNote": "Bass establishes D. Right hand enters on beat 3 — the classic 'call' gesture.",
45
+ "dynamics": "mp"
46
+ },
47
+ {
48
+ "number": 2,
49
+ "rightHand": "E4 A4 D5 G5:h R:h",
50
+ "leftHand": "D2:q A2:q D3:h",
51
+ "teachingNote": "The quartal 'answer' voicing — E-A-D-G stacked in fourths. Let it ring."
52
+ },
53
+ {
54
+ "number": 3,
55
+ "rightHand": "A4:q F4:q D4:h",
56
+ "leftHand": "D2:q A2:q D3:q A2:q",
57
+ "teachingNote": "Melody descends through D dorian. Simple, vocal, space between phrases."
58
+ },
59
+ {
60
+ "number": 4,
61
+ "rightHand": "E4:q F4:q A4:q G4:q",
62
+ "leftHand": "D2:q A2:q D3:q A2:q",
63
+ "teachingNote": "Melody moves stepwise. Every note is a chord tone of D dorian."
64
+ },
65
+ {
66
+ "number": 5,
67
+ "rightHand": "A4:h R:q D5:q",
68
+ "leftHand": "D2:q A2:q D3:h",
69
+ "teachingNote": "A4 sustains, then silence, then D5 — Miles-style phrasing with breath.",
70
+ "dynamics": "mf"
71
+ },
72
+ {
73
+ "number": 6,
74
+ "rightHand": "E5:q D5:q A4:q F4:q",
75
+ "leftHand": "D2:q A2:q D3:q A2:q",
76
+ "teachingNote": "Descending line from E5. Keep it smooth and connected."
77
+ },
78
+ {
79
+ "number": 7,
80
+ "rightHand": "G4:h A4:h",
81
+ "leftHand": "D2:q A2:q D3:q A2:q",
82
+ "teachingNote": "Two half notes — simplicity. The G resolves up to A, the dorian fifth."
83
+ },
84
+ {
85
+ "number": 8,
86
+ "rightHand": "D4:w",
87
+ "leftHand": "D2:h A2:h",
88
+ "teachingNote": "Rest on the tonic. Let the sound decay naturally. This is where the next section would begin.",
89
+ "dynamics": "p"
90
+ }
91
+ ]
92
+ }