@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.
- package/LICENSE +21 -0
- package/README.es.md +212 -0
- package/README.fr.md +212 -0
- package/README.hi.md +212 -0
- package/README.it.md +212 -0
- package/README.ja.md +214 -0
- package/README.md +214 -0
- package/README.pt-BR.md +212 -0
- package/dist/audio-engine.d.ts +9 -0
- package/dist/audio-engine.d.ts.map +1 -0
- package/dist/audio-engine.js +422 -0
- package/dist/audio-engine.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +551 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server.d.ts +3 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +903 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/midi/parser.d.ts +16 -0
- package/dist/midi/parser.d.ts.map +1 -0
- package/dist/midi/parser.js +192 -0
- package/dist/midi/parser.js.map +1 -0
- package/dist/midi/types.d.ts +44 -0
- package/dist/midi/types.d.ts.map +1 -0
- package/dist/midi/types.js +8 -0
- package/dist/midi/types.js.map +1 -0
- package/dist/note-parser.d.ts +105 -0
- package/dist/note-parser.d.ts.map +1 -0
- package/dist/note-parser.js +278 -0
- package/dist/note-parser.js.map +1 -0
- package/dist/playback/controls.d.ts +124 -0
- package/dist/playback/controls.d.ts.map +1 -0
- package/dist/playback/controls.js +252 -0
- package/dist/playback/controls.js.map +1 -0
- package/dist/playback/midi-engine.d.ts +68 -0
- package/dist/playback/midi-engine.d.ts.map +1 -0
- package/dist/playback/midi-engine.js +227 -0
- package/dist/playback/midi-engine.js.map +1 -0
- package/dist/playback/position.d.ts +95 -0
- package/dist/playback/position.d.ts.map +1 -0
- package/dist/playback/position.js +223 -0
- package/dist/playback/position.js.map +1 -0
- package/dist/playback/timing.d.ts +31 -0
- package/dist/playback/timing.d.ts.map +1 -0
- package/dist/playback/timing.js +57 -0
- package/dist/playback/timing.js.map +1 -0
- package/dist/sample-engine.d.ts +17 -0
- package/dist/sample-engine.d.ts.map +1 -0
- package/dist/sample-engine.js +428 -0
- package/dist/sample-engine.js.map +1 -0
- package/dist/schemas.d.ts +40 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +42 -0
- package/dist/schemas.js.map +1 -0
- package/dist/session.d.ts +106 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +361 -0
- package/dist/session.js.map +1 -0
- package/dist/sfz-parser.d.ts +36 -0
- package/dist/sfz-parser.d.ts.map +1 -0
- package/dist/sfz-parser.js +95 -0
- package/dist/sfz-parser.js.map +1 -0
- package/dist/smoke.d.ts +2 -0
- package/dist/smoke.d.ts.map +1 -0
- package/dist/smoke.js +512 -0
- package/dist/smoke.js.map +1 -0
- package/dist/songs/config/loader.d.ts +14 -0
- package/dist/songs/config/loader.d.ts.map +1 -0
- package/dist/songs/config/loader.js +53 -0
- package/dist/songs/config/loader.js.map +1 -0
- package/dist/songs/config/schema.d.ts +70 -0
- package/dist/songs/config/schema.d.ts.map +1 -0
- package/dist/songs/config/schema.js +53 -0
- package/dist/songs/config/schema.js.map +1 -0
- package/dist/songs/index.d.ts +16 -0
- package/dist/songs/index.d.ts.map +1 -0
- package/dist/songs/index.js +20 -0
- package/dist/songs/index.js.map +1 -0
- package/dist/songs/jam.d.ts +48 -0
- package/dist/songs/jam.d.ts.map +1 -0
- package/dist/songs/jam.js +324 -0
- package/dist/songs/jam.js.map +1 -0
- package/dist/songs/loader.d.ts +27 -0
- package/dist/songs/loader.d.ts.map +1 -0
- package/dist/songs/loader.js +90 -0
- package/dist/songs/loader.js.map +1 -0
- package/dist/songs/midi/hands.d.ts +46 -0
- package/dist/songs/midi/hands.d.ts.map +1 -0
- package/dist/songs/midi/hands.js +134 -0
- package/dist/songs/midi/hands.js.map +1 -0
- package/dist/songs/midi/ingest.d.ts +8 -0
- package/dist/songs/midi/ingest.d.ts.map +1 -0
- package/dist/songs/midi/ingest.js +191 -0
- package/dist/songs/midi/ingest.js.map +1 -0
- package/dist/songs/midi/measures.d.ts +41 -0
- package/dist/songs/midi/measures.d.ts.map +1 -0
- package/dist/songs/midi/measures.js +64 -0
- package/dist/songs/midi/measures.js.map +1 -0
- package/dist/songs/midi/types.d.ts +25 -0
- package/dist/songs/midi/types.d.ts.map +1 -0
- package/dist/songs/midi/types.js +8 -0
- package/dist/songs/midi/types.js.map +1 -0
- package/dist/songs/registry.d.ts +37 -0
- package/dist/songs/registry.d.ts.map +1 -0
- package/dist/songs/registry.js +197 -0
- package/dist/songs/registry.js.map +1 -0
- package/dist/songs/types.d.ts +99 -0
- package/dist/songs/types.d.ts.map +1 -0
- package/dist/songs/types.js +27 -0
- package/dist/songs/types.js.map +1 -0
- package/dist/teaching/live-midi-feedback.d.ts +36 -0
- package/dist/teaching/live-midi-feedback.d.ts.map +1 -0
- package/dist/teaching/live-midi-feedback.js +259 -0
- package/dist/teaching/live-midi-feedback.js.map +1 -0
- package/dist/teaching/midi-feedback.d.ts +33 -0
- package/dist/teaching/midi-feedback.d.ts.map +1 -0
- package/dist/teaching/midi-feedback.js +208 -0
- package/dist/teaching/midi-feedback.js.map +1 -0
- package/dist/teaching/sing-on-midi.d.ts +77 -0
- package/dist/teaching/sing-on-midi.d.ts.map +1 -0
- package/dist/teaching/sing-on-midi.js +186 -0
- package/dist/teaching/sing-on-midi.js.map +1 -0
- package/dist/teaching.d.ts +148 -0
- package/dist/teaching.d.ts.map +1 -0
- package/dist/teaching.js +453 -0
- package/dist/teaching.js.map +1 -0
- package/dist/test-sound.d.ts +3 -0
- package/dist/test-sound.d.ts.map +1 -0
- package/dist/test-sound.js +41 -0
- package/dist/test-sound.js.map +1 -0
- package/dist/types.d.ts +229 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +22 -0
- package/dist/types.js.map +1 -0
- package/dist/vmpk.d.ts +23 -0
- package/dist/vmpk.d.ts.map +1 -0
- package/dist/vmpk.js +236 -0
- package/dist/vmpk.js.map +1 -0
- package/logo.png +0 -0
- package/package.json +70 -0
- package/songs/builtin/a-change-is-gonna-come.json +95 -0
- package/songs/builtin/a-thousand-years.json +93 -0
- package/songs/builtin/aint-no-sunshine.json +98 -0
- package/songs/builtin/all-blues.json +92 -0
- package/songs/builtin/autumn-leaves.json +100 -0
- package/songs/builtin/baba-oriley.json +91 -0
- package/songs/builtin/bach-invention-no1.json +70 -0
- package/songs/builtin/bach-prelude-c-major-bwv846.json +1282 -0
- package/songs/builtin/basic-12-bar-blues.json +119 -0
- package/songs/builtin/beethoven-waldstein-mvt1.json +7766 -0
- package/songs/builtin/bennie-and-the-jets.json +92 -0
- package/songs/builtin/besame-mucho.json +93 -0
- package/songs/builtin/black-orpheus.json +92 -0
- package/songs/builtin/blue-bossa.json +94 -0
- package/songs/builtin/blues-in-g.json +92 -0
- package/songs/builtin/bohemian-rhapsody-intro.json +94 -0
- package/songs/builtin/boogie-woogie-basics.json +93 -0
- package/songs/builtin/bossa-nova-basic.json +95 -0
- package/songs/builtin/chopin-nocturne-op9-no2.json +70 -0
- package/songs/builtin/cinema-paradiso.json +94 -0
- package/songs/builtin/clair-de-lune.json +11511 -0
- package/songs/builtin/clocks.json +91 -0
- package/songs/builtin/crystal-stream.json +70 -0
- package/songs/builtin/desafinado.json +93 -0
- package/songs/builtin/dont-stop-believin.json +91 -0
- package/songs/builtin/dream-on.json +100 -0
- package/songs/builtin/easy-winners.json +70 -0
- package/songs/builtin/el-condor-pasa.json +93 -0
- package/songs/builtin/elite-syncopations.json +70 -0
- package/songs/builtin/evening-calm.json +70 -0
- package/songs/builtin/everyday-blues.json +93 -0
- package/songs/builtin/fly-me-to-the-moon.json +91 -0
- package/songs/builtin/forrest-gump-suite.json +93 -0
- package/songs/builtin/fur-elise.json +20094 -0
- package/songs/builtin/georgia-on-my-mind.json +93 -0
- package/songs/builtin/girl-from-ipanema.json +92 -0
- package/songs/builtin/gladiolus-rag.json +70 -0
- package/songs/builtin/great-balls-of-fire.json +92 -0
- package/songs/builtin/guantanamera.json +92 -0
- package/songs/builtin/hallelujah.json +92 -0
- package/songs/builtin/hedwigs-theme.json +93 -0
- package/songs/builtin/hotel-california.json +92 -0
- package/songs/builtin/imagine.json +92 -0
- package/songs/builtin/just-the-two-of-us.json +92 -0
- package/songs/builtin/la-bamba.json +92 -0
- package/songs/builtin/layla-piano-coda.json +93 -0
- package/songs/builtin/lean-on-me.json +91 -0
- package/songs/builtin/let-it-be.json +101 -0
- package/songs/builtin/lets-stay-together.json +93 -0
- package/songs/builtin/magnetic-rag.json +70 -0
- package/songs/builtin/maple-leaf-rag.json +99 -0
- package/songs/builtin/mia-and-sebastians-theme.json +93 -0
- package/songs/builtin/minor-blues-in-a.json +94 -0
- package/songs/builtin/misty.json +94 -0
- package/songs/builtin/moon-river.json +93 -0
- package/songs/builtin/moonlight-sonata-mvt1.json +101 -0
- package/songs/builtin/morning-light.json +70 -0
- package/songs/builtin/mountain-dawn.json +70 -0
- package/songs/builtin/mozart-k545-mvt1.json +2956 -0
- package/songs/builtin/my-girl.json +92 -0
- package/songs/builtin/night-train.json +92 -0
- package/songs/builtin/november-rain.json +93 -0
- package/songs/builtin/ocean-waves.json +70 -0
- package/songs/builtin/over-the-rainbow.json +93 -0
- package/songs/builtin/oye-como-va.json +93 -0
- package/songs/builtin/peacherine-rag.json +70 -0
- package/songs/builtin/piano-man.json +92 -0
- package/songs/builtin/pineapple-rag.json +70 -0
- package/songs/builtin/pink-panther.json +94 -0
- package/songs/builtin/ragtime-dance.json +70 -0
- package/songs/builtin/river-flows-in-you.json +102 -0
- package/songs/builtin/rocket-man.json +92 -0
- package/songs/builtin/satie-gymnopedie-no1.json +70 -0
- package/songs/builtin/satin-doll.json +93 -0
- package/songs/builtin/schindlers-list.json +96 -0
- package/songs/builtin/schumann-traumerei.json +70 -0
- package/songs/builtin/sitting-on-the-dock.json +91 -0
- package/songs/builtin/slow-blues-in-bb.json +98 -0
- package/songs/builtin/snowfall.json +70 -0
- package/songs/builtin/so-what.json +92 -0
- package/songs/builtin/solace.json +70 -0
- package/songs/builtin/someone-like-you.json +92 -0
- package/songs/builtin/spirited-away.json +94 -0
- package/songs/builtin/st-louis-blues.json +93 -0
- package/songs/builtin/stairway-intro.json +93 -0
- package/songs/builtin/starlight-waltz.json +70 -0
- package/songs/builtin/stay-with-me.json +93 -0
- package/songs/builtin/stormy-monday.json +94 -0
- package/songs/builtin/superstition.json +93 -0
- package/songs/builtin/sweet-home-chicago.json +93 -0
- package/songs/builtin/take-five.json +92 -0
- package/songs/builtin/take-the-a-train.json +93 -0
- package/songs/builtin/the-entertainer.json +98 -0
- package/songs/builtin/the-godfather-waltz.json +93 -0
- package/songs/builtin/thrill-is-gone.json +94 -0
- package/songs/builtin/twilight-garden.json +70 -0
- package/songs/builtin/watermark.json +70 -0
- package/songs/builtin/wave.json +93 -0
- package/songs/builtin/whats-going-on.json +93 -0
- package/songs/builtin/yesterday.json +92 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "a-change-is-gonna-come",
|
|
3
|
+
"title": "A Change Is Gonna Come",
|
|
4
|
+
"genre": "rnb",
|
|
5
|
+
"composer": "Sam Cooke",
|
|
6
|
+
"difficulty": "intermediate",
|
|
7
|
+
"key": "Bb major",
|
|
8
|
+
"tempo": 60,
|
|
9
|
+
"timeSignature": "4/4",
|
|
10
|
+
"durationSeconds": 32,
|
|
11
|
+
"tags": [
|
|
12
|
+
"soul-anthem",
|
|
13
|
+
"sam-cooke",
|
|
14
|
+
"orchestral",
|
|
15
|
+
"civil-rights",
|
|
16
|
+
"ballad"
|
|
17
|
+
],
|
|
18
|
+
"source": "Claude arrangement — simplified interpretation",
|
|
19
|
+
"musicalLanguage": {
|
|
20
|
+
"description": "Sam Cooke's towering soul anthem, originally backed by sweeping strings. This piano arrangement captures the song's orchestral grandeur through wide-voiced chords and a soaring melody. The Bb major key has a warm, brassy quality, and the slow tempo allows every note to carry emotional weight.",
|
|
21
|
+
"structure": "Verse: 4 bars building from quiet to powerful, Chorus: 4 bars with the anthemic climax",
|
|
22
|
+
"keyMoments": [
|
|
23
|
+
"Bar 1: The opening Bb major — quiet dignity before the storm.",
|
|
24
|
+
"Bars 5-6: The chorus lift — 'A change is gonna come' — the melody reaches its peak on F5.",
|
|
25
|
+
"Bar 8: The gentle descent and resolution — hope, not despair."
|
|
26
|
+
],
|
|
27
|
+
"teachingGoals": [
|
|
28
|
+
"Wide chord voicings to create orchestral fullness",
|
|
29
|
+
"Dynamic range — from pp to ff within 8 bars",
|
|
30
|
+
"Sustain pedal technique for legato bass movement"
|
|
31
|
+
],
|
|
32
|
+
"styleTips": [
|
|
33
|
+
"This song demands emotional commitment — play every phrase like it matters",
|
|
34
|
+
"Build dynamics gradually — the climax in bar 6 should feel earned",
|
|
35
|
+
"Left hand chord changes should be seamless — use pedal to connect"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"measures": [
|
|
39
|
+
{
|
|
40
|
+
"number": 1,
|
|
41
|
+
"rightHand": "D4:q F4:q D5:h",
|
|
42
|
+
"leftHand": "Bb2:h F3:h",
|
|
43
|
+
"dynamics": "pp",
|
|
44
|
+
"teachingNote": "Bb major — barely audible. The song begins as a whisper."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"number": 2,
|
|
48
|
+
"rightHand": "C5:q Bb4:q A4:q G4:q",
|
|
49
|
+
"leftHand": "F2:h C3:h",
|
|
50
|
+
"dynamics": "mp",
|
|
51
|
+
"teachingNote": "F major — melody descends. Growing slightly louder."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"number": 3,
|
|
55
|
+
"rightHand": "F4:q G4:q A4:q Bb4:q",
|
|
56
|
+
"leftHand": "Eb2:h Bb2:h",
|
|
57
|
+
"dynamics": "mf",
|
|
58
|
+
"teachingNote": "Eb major — the climb begins. Each note steps higher with purpose."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"number": 4,
|
|
62
|
+
"rightHand": "A4:q G4:q F4:h",
|
|
63
|
+
"leftHand": "F2:q A2:q C3:q F3:q",
|
|
64
|
+
"teachingNote": "F7 — dominant tension. The verse wants to break open into the chorus."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"number": 5,
|
|
68
|
+
"rightHand": "Bb4:q D5:q F5:h",
|
|
69
|
+
"leftHand": "Bb2:q D3:q F3:q Bb3:q",
|
|
70
|
+
"dynamics": "f",
|
|
71
|
+
"teachingNote": "Chorus — Bb major soaring. The melody reaches up to F5."
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"number": 6,
|
|
75
|
+
"rightHand": "F5:q Eb5:q D5:q C5:q",
|
|
76
|
+
"leftHand": "Eb2:q G2:q Bb2:q Eb3:q",
|
|
77
|
+
"dynamics": "ff",
|
|
78
|
+
"teachingNote": "Eb major — the emotional peak. Full tone, full heart."
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"number": 7,
|
|
82
|
+
"rightHand": "D5:q C5:q Bb4:q A4:q",
|
|
83
|
+
"leftHand": "F2:q A2:q C3:q Eb3:q",
|
|
84
|
+
"dynamics": "mf",
|
|
85
|
+
"teachingNote": "F7 — beginning to settle. The melody descends with grace."
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"number": 8,
|
|
89
|
+
"rightHand": "Bb4:w",
|
|
90
|
+
"leftHand": "Bb2:h F2:h",
|
|
91
|
+
"dynamics": "p",
|
|
92
|
+
"teachingNote": "Bb major — home. A whole note of peace and resolve."
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "a-thousand-years",
|
|
3
|
+
"title": "A Thousand Years",
|
|
4
|
+
"genre": "pop",
|
|
5
|
+
"composer": "Christina Perri & David Hodges",
|
|
6
|
+
"difficulty": "beginner",
|
|
7
|
+
"key": "Bb major",
|
|
8
|
+
"tempo": 66,
|
|
9
|
+
"timeSignature": "4/4",
|
|
10
|
+
"durationSeconds": 29,
|
|
11
|
+
"tags": [
|
|
12
|
+
"christina-perri",
|
|
13
|
+
"romantic",
|
|
14
|
+
"ballad",
|
|
15
|
+
"beginner-friendly",
|
|
16
|
+
"wedding"
|
|
17
|
+
],
|
|
18
|
+
"source": "Claude arrangement — simplified interpretation",
|
|
19
|
+
"musicalLanguage": {
|
|
20
|
+
"description": "A modern romantic ballad with a gentle, flowing quality. The song uses a simple I-V-vi-IV progression in Bb major with a tender melodic line. This beginner arrangement simplifies the arpeggiated accompaniment to block chords while preserving the emotional melody.",
|
|
21
|
+
"structure": "Verse (8 bars) — Bb-F-Gm-Eb repeated with melodic development",
|
|
22
|
+
"keyMoments": [
|
|
23
|
+
"Bars 1-2: Bb to F — the warm, open beginning that sets the romantic tone",
|
|
24
|
+
"Bars 3-4: Gm to Eb — the emotional deepening as minor harmony enters",
|
|
25
|
+
"Bars 7-8: The melody reaches its highest point then settles — a miniature emotional arc"
|
|
26
|
+
],
|
|
27
|
+
"teachingGoals": [
|
|
28
|
+
"Playing in Bb major — two flats (Bb and Eb)",
|
|
29
|
+
"Slow, sustained left-hand chords with a singing melody",
|
|
30
|
+
"Legato playing — connecting notes smoothly without gaps"
|
|
31
|
+
],
|
|
32
|
+
"styleTips": [
|
|
33
|
+
"Everything should feel warm and connected — no gaps between notes",
|
|
34
|
+
"The slow tempo means every note matters — place each one carefully",
|
|
35
|
+
"Think of the right hand as a cello solo — rich, sustained, singing"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"measures": [
|
|
39
|
+
{
|
|
40
|
+
"number": 1,
|
|
41
|
+
"rightHand": "F4:q D4:q F4:q G4:q",
|
|
42
|
+
"leftHand": "Bb2:h F3:h",
|
|
43
|
+
"teachingNote": "Bb major — the melody starts gently on the 5th degree. Warm and inviting.",
|
|
44
|
+
"dynamics": "p"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"number": 2,
|
|
48
|
+
"rightHand": "F4:h D4:h",
|
|
49
|
+
"leftHand": "F2:h C3:h",
|
|
50
|
+
"teachingNote": "F major — melody settles downward. Keep the left hand soft and sustained."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"number": 3,
|
|
54
|
+
"rightHand": "D4:q Eb4:q F4:q G4:q",
|
|
55
|
+
"leftHand": "G2:h D3:h",
|
|
56
|
+
"teachingNote": "G minor — the melody climbs stepwise. Notice the Eb — it gives the minor color.",
|
|
57
|
+
"dynamics": "mp"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"number": 4,
|
|
61
|
+
"rightHand": "F4:h Eb4:h",
|
|
62
|
+
"leftHand": "Eb2:h Bb2:h",
|
|
63
|
+
"teachingNote": "Eb major — the IV chord. Melody relaxes downward to Eb."
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"number": 5,
|
|
67
|
+
"rightHand": "F4:q D4:q F4:q Bb4:q",
|
|
68
|
+
"leftHand": "Bb2:h F3:h",
|
|
69
|
+
"teachingNote": "Bb major again — this time the melody reaches up to Bb4. Expanding the range.",
|
|
70
|
+
"dynamics": "mp"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"number": 6,
|
|
74
|
+
"rightHand": "A4:q Bb4:q C5:h",
|
|
75
|
+
"leftHand": "F2:h C3:h",
|
|
76
|
+
"teachingNote": "F major — melody pushes to C5, the emotional peak of the phrase.",
|
|
77
|
+
"dynamics": "mf"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"number": 7,
|
|
81
|
+
"rightHand": "Bb4:q A4:q G4:q F4:q",
|
|
82
|
+
"leftHand": "G2:h D3:h",
|
|
83
|
+
"teachingNote": "G minor — a descending line that releases the built-up tension."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"number": 8,
|
|
87
|
+
"rightHand": "F4:h Bb3:h",
|
|
88
|
+
"leftHand": "Eb2:q Bb2:q Bb2:h",
|
|
89
|
+
"teachingNote": "Eb to Bb — the phrase closes gently on the tonic. A sigh of contentment.",
|
|
90
|
+
"dynamics": "p"
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "aint-no-sunshine",
|
|
3
|
+
"title": "Ain't No Sunshine",
|
|
4
|
+
"genre": "rnb",
|
|
5
|
+
"composer": "Bill Withers",
|
|
6
|
+
"arranger": "Simplified piano arrangement",
|
|
7
|
+
"difficulty": "beginner",
|
|
8
|
+
"key": "A minor",
|
|
9
|
+
"tempo": 78,
|
|
10
|
+
"timeSignature": "4/4",
|
|
11
|
+
"durationSeconds": 50,
|
|
12
|
+
"tags": [
|
|
13
|
+
"soul",
|
|
14
|
+
"minor-key",
|
|
15
|
+
"simple-melody",
|
|
16
|
+
"bill-withers",
|
|
17
|
+
"classic"
|
|
18
|
+
],
|
|
19
|
+
"source": "Simplified arrangement of the main verse melody",
|
|
20
|
+
"musicalLanguage": {
|
|
21
|
+
"description": "Bill Withers' soul masterpiece built on a haunting minor-key vamp. The melody is almost entirely stepwise motion over Am-Em-G-Am, making it one of the most approachable R&B songs for beginners. The emotional weight comes from the repetition and the minor tonality, not from complexity.",
|
|
22
|
+
"structure": "Verse vamp: Am-Em-G-Am repeated (8 bars)",
|
|
23
|
+
"keyMoments": [
|
|
24
|
+
"Bars 1-2: Am to Em — the core vamp. The melody clings to A and B.",
|
|
25
|
+
"Bars 3-4: G to Am — the IV-i movement. This is where the ache lives.",
|
|
26
|
+
"Bars 5-8: Repeat — the repetition IS the point. Let it hypnotize."
|
|
27
|
+
],
|
|
28
|
+
"teachingGoals": [
|
|
29
|
+
"Minor key feel — understanding how Am sounds different from C",
|
|
30
|
+
"Simple left-hand chord patterns with minimal movement",
|
|
31
|
+
"Expressive melody playing with dynamic control"
|
|
32
|
+
],
|
|
33
|
+
"styleTips": [
|
|
34
|
+
"Slow and soulful — never rush this song",
|
|
35
|
+
"The melody should sound like someone talking, not performing",
|
|
36
|
+
"Left hand: very simple, just grounding chords. Don't overplay."
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"measures": [
|
|
40
|
+
{
|
|
41
|
+
"number": 1,
|
|
42
|
+
"rightHand": "A4:q B4:q C5:q B4:q",
|
|
43
|
+
"leftHand": "A2:q E3:q A3:q E3:q",
|
|
44
|
+
"fingering": "RH: 1-2-3-2, LH: 5-2-1-2",
|
|
45
|
+
"teachingNote": "Am — the melody rocks between A and C. Keep it simple and soulful.",
|
|
46
|
+
"dynamics": "mp"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"number": 2,
|
|
50
|
+
"rightHand": "A4:h G4:h",
|
|
51
|
+
"leftHand": "E2:q B2:q E3:q B2:q",
|
|
52
|
+
"fingering": "RH: 1-5, LH: 5-2-1-2 (Em)",
|
|
53
|
+
"teachingNote": "Em — the melody drops to G. Let it breathe."
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"number": 3,
|
|
57
|
+
"rightHand": "A4:q B4:q C5:q D5:q",
|
|
58
|
+
"leftHand": "G2:q B2:q D3:q B2:q",
|
|
59
|
+
"fingering": "RH: 1-2-3-4, LH: 5-3-1-3 (G major)",
|
|
60
|
+
"teachingNote": "G major — the melody climbs. This is the peak of the phrase."
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"number": 4,
|
|
64
|
+
"rightHand": "C5:h A4:h",
|
|
65
|
+
"leftHand": "A2:q E3:q A3:q E3:q",
|
|
66
|
+
"fingering": "RH: 3-1, LH: 5-2-1-2 (Am)",
|
|
67
|
+
"teachingNote": "Back to Am — resolution. Let the half notes sing.",
|
|
68
|
+
"dynamics": "p"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"number": 5,
|
|
72
|
+
"rightHand": "A4:q B4:q C5:q B4:q",
|
|
73
|
+
"leftHand": "A2:q E3:q A3:q E3:q",
|
|
74
|
+
"teachingNote": "Second verse pass — play with more confidence this time.",
|
|
75
|
+
"dynamics": "mf"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"number": 6,
|
|
79
|
+
"rightHand": "A4:h G4:h",
|
|
80
|
+
"leftHand": "E2:q B2:q E3:q B2:q",
|
|
81
|
+
"teachingNote": "Em again — you know this shape. Focus on smooth transitions."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"number": 7,
|
|
85
|
+
"rightHand": "A4:q B4:q C5:q D5:q",
|
|
86
|
+
"leftHand": "G2:q B2:q D3:q B2:q",
|
|
87
|
+
"teachingNote": "G major — push the melody a tiny bit louder on D5. That's the climax."
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"number": 8,
|
|
91
|
+
"rightHand": "A4:w",
|
|
92
|
+
"leftHand": "A2:q E3:q A3:h",
|
|
93
|
+
"fingering": "RH: 1, LH: 5-2-1",
|
|
94
|
+
"teachingNote": "Final Am — whole note A. Let it fade like the end of a sentence.",
|
|
95
|
+
"dynamics": "pp"
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "all-blues",
|
|
3
|
+
"title": "All Blues",
|
|
4
|
+
"genre": "jazz",
|
|
5
|
+
"composer": "Miles Davis",
|
|
6
|
+
"difficulty": "intermediate",
|
|
7
|
+
"key": "G mixolydian",
|
|
8
|
+
"tempo": 132,
|
|
9
|
+
"timeSignature": "6/8",
|
|
10
|
+
"durationSeconds": 22,
|
|
11
|
+
"tags": [
|
|
12
|
+
"modal-jazz",
|
|
13
|
+
"miles-davis",
|
|
14
|
+
"kind-of-blue",
|
|
15
|
+
"waltz-blues",
|
|
16
|
+
"6/8",
|
|
17
|
+
"groove"
|
|
18
|
+
],
|
|
19
|
+
"source": "Claude arrangement — simplified interpretation",
|
|
20
|
+
"musicalLanguage": {
|
|
21
|
+
"description": "A hypnotic 6/8 blues from Kind of Blue that grooves like a slow waltz. Built on a G7 mixolydian foundation, the piece uses a rocking left-hand figure that never stops. The piano tremolo between two voicings creates the signature shimmering sound that Bill Evans made famous.",
|
|
22
|
+
"structure": "12-bar blues in 6/8. This excerpt: first 8 bars (I and IV chords)",
|
|
23
|
+
"keyMoments": [
|
|
24
|
+
"Bar 1-4: G7 — the hypnotic rocking figure establishes the trance-like feel",
|
|
25
|
+
"Bar 5-6: C7/G — the IV chord. Same rocking motion, new harmony",
|
|
26
|
+
"Bar 7-8: Back to G7 — the groove never breaks, only the colors change"
|
|
27
|
+
],
|
|
28
|
+
"teachingGoals": [
|
|
29
|
+
"6/8 feel — two groups of three, like a slow waltz with blues flavor",
|
|
30
|
+
"Piano tremolo/rocking voicing technique between two shapes",
|
|
31
|
+
"Blues form adapted to 6/8 — same I-IV-V structure, different groove"
|
|
32
|
+
],
|
|
33
|
+
"styleTips": [
|
|
34
|
+
"The left hand rocks gently — think of a boat on calm water",
|
|
35
|
+
"Do not accent beat 1 too hard — let the 6/8 flow evenly",
|
|
36
|
+
"Right hand melody is sparse and modal — leave lots of space"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"measures": [
|
|
40
|
+
{
|
|
41
|
+
"number": 1,
|
|
42
|
+
"rightHand": "D5:q. B4:q.",
|
|
43
|
+
"leftHand": "G2:e B2:e D3:e G2:e B2:e D3:e",
|
|
44
|
+
"teachingNote": "G7 — the rocking bass pattern: G-B-D repeating in eighth notes. Two groups of three in 6/8.",
|
|
45
|
+
"dynamics": "mp"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"number": 2,
|
|
49
|
+
"rightHand": "F5:q. D5:q.",
|
|
50
|
+
"leftHand": "G2:e B2:e D3:e G2:e B2:e D3:e",
|
|
51
|
+
"teachingNote": "G7 continues. Right hand adds the b7 (F) — this is the blues note."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"number": 3,
|
|
55
|
+
"rightHand": "G5:q. F5:e D5:q",
|
|
56
|
+
"leftHand": "G2:e B2:e D3:e G2:e B2:e D3:e",
|
|
57
|
+
"teachingNote": "Melody peaks at G5 then descends. The groove stays hypnotic underneath.",
|
|
58
|
+
"dynamics": "mf"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"number": 4,
|
|
62
|
+
"rightHand": "B4:q. R:q.",
|
|
63
|
+
"leftHand": "G2:e B2:e D3:e G2:e B2:e D3:e",
|
|
64
|
+
"teachingNote": "Phrase ends on B4 with a rest. Silence is as important as sound."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"number": 5,
|
|
68
|
+
"rightHand": "E5:q. C5:q.",
|
|
69
|
+
"leftHand": "C3:e E3:e G3:e C3:e E3:e G3:e",
|
|
70
|
+
"teachingNote": "C7 — the IV chord! Left hand shifts the rocking pattern to C-E-G."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"number": 6,
|
|
74
|
+
"rightHand": "Bb4:q. G4:q.",
|
|
75
|
+
"leftHand": "C3:e E3:e G3:e C3:e E3:e G3:e",
|
|
76
|
+
"teachingNote": "C7 continues. Bb is the 7th — dominant color over the IV chord."
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"number": 7,
|
|
80
|
+
"rightHand": "D5:q. B4:q.",
|
|
81
|
+
"leftHand": "G2:e B2:e D3:e G2:e B2:e D3:e",
|
|
82
|
+
"teachingNote": "Back to G7. Same voicings as bar 1. The groove comes home.",
|
|
83
|
+
"dynamics": "mp"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"number": 8,
|
|
87
|
+
"rightHand": "G4:q. R:q.",
|
|
88
|
+
"leftHand": "G2:e B2:e D3:e G2:e B2:e D3:e",
|
|
89
|
+
"teachingNote": "G7 settles. The melody disappears, leaving only the rocking bass."
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "autumn-leaves",
|
|
3
|
+
"title": "Autumn Leaves",
|
|
4
|
+
"genre": "jazz",
|
|
5
|
+
"composer": "Joseph Kosma",
|
|
6
|
+
"arranger": "Simplified piano arrangement",
|
|
7
|
+
"difficulty": "intermediate",
|
|
8
|
+
"key": "G major",
|
|
9
|
+
"tempo": 120,
|
|
10
|
+
"timeSignature": "4/4",
|
|
11
|
+
"durationSeconds": 60,
|
|
12
|
+
"tags": [
|
|
13
|
+
"jazz-standard",
|
|
14
|
+
"ii-V-I",
|
|
15
|
+
"ballad",
|
|
16
|
+
"real-book",
|
|
17
|
+
"swing"
|
|
18
|
+
],
|
|
19
|
+
"source": "Traditional jazz standard — simplified lead sheet arrangement",
|
|
20
|
+
"musicalLanguage": {
|
|
21
|
+
"description": "The quintessential jazz standard for learning ii-V-I progressions. The A section descends through the circle of fifths in G major (Cm7-F7-BbM7-EbM7), then the B section mirrors the same motion in E minor. Every jazz musician knows this tune — it's the 'Hello World' of jazz harmony.",
|
|
22
|
+
"structure": "AABA — 32 bars (this excerpt: first A section, 8 bars)",
|
|
23
|
+
"keyMoments": [
|
|
24
|
+
"Bars 1-2: Cm7 to F7 — the ii-V in Bb major. Feel the pull toward resolution.",
|
|
25
|
+
"Bars 3-4: BbMaj7 to EbMaj7 — arrival, then the IV chord adds color",
|
|
26
|
+
"Bars 5-8: Am7b5 to D7 to Gm — the ii-V-i in G minor. The tune 'turns the corner' here."
|
|
27
|
+
],
|
|
28
|
+
"teachingGoals": [
|
|
29
|
+
"ii-V-I voice leading — the smoothest path between chords",
|
|
30
|
+
"Swing eighth notes — long-short feel, not straight",
|
|
31
|
+
"Left-hand shell voicings: root + 7th (or 3rd + 7th) for each chord"
|
|
32
|
+
],
|
|
33
|
+
"styleTips": [
|
|
34
|
+
"Swing feel — triplet-based eighths, emphasis on beats 2 and 4",
|
|
35
|
+
"Melody in the right hand should be legato and vocal",
|
|
36
|
+
"Left hand: keep shell voicings in the middle register, not too low"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"measures": [
|
|
40
|
+
{
|
|
41
|
+
"number": 1,
|
|
42
|
+
"rightHand": "C5:h A4:q G4:q",
|
|
43
|
+
"leftHand": "C3:q Bb3:q",
|
|
44
|
+
"fingering": "RH: 5-3-2, LH: 1-2 (Cm7 shell)",
|
|
45
|
+
"teachingNote": "Cm7 chord — the ii of Bb. Left hand plays root + 7th shell voicing.",
|
|
46
|
+
"dynamics": "mf"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"number": 2,
|
|
50
|
+
"rightHand": "F4:h D4:q C4:q",
|
|
51
|
+
"leftHand": "F2:q E3:q",
|
|
52
|
+
"fingering": "RH: 4-2-1, LH: 1-2 (F7 shell)",
|
|
53
|
+
"teachingNote": "F7 — the V of Bb. Notice how the melody descends stepwise."
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"number": 3,
|
|
57
|
+
"rightHand": "Bb4:h G4:q F4:q",
|
|
58
|
+
"leftHand": "Bb2:q A3:q",
|
|
59
|
+
"fingering": "RH: 5-3-2, LH: 1-2 (BbM7 shell)",
|
|
60
|
+
"teachingNote": "BbMaj7 — resolution! The ii-V has arrived. Let it ring."
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"number": 4,
|
|
64
|
+
"rightHand": "Eb4:h C4:q Bb3:q",
|
|
65
|
+
"leftHand": "Eb2:q D3:q",
|
|
66
|
+
"fingering": "RH: 4-2-1, LH: 1-2 (EbM7 shell)",
|
|
67
|
+
"teachingNote": "EbMaj7 — the IV chord. It adds warmth before the tune shifts to minor."
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"number": 5,
|
|
71
|
+
"rightHand": "A4:h F4:q E4:q",
|
|
72
|
+
"leftHand": "A2:q G3:q",
|
|
73
|
+
"fingering": "RH: 5-3-2, LH: 1-2 (Am7b5 shell)",
|
|
74
|
+
"teachingNote": "Am7b5 — half-diminished. This is the ii of G minor. Feel the mood darken.",
|
|
75
|
+
"dynamics": "mp"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"number": 6,
|
|
79
|
+
"rightHand": "D4:h B3:q A3:q",
|
|
80
|
+
"leftHand": "D2:q C3:q",
|
|
81
|
+
"fingering": "RH: 4-2-1, LH: 1-2 (D7 shell)",
|
|
82
|
+
"teachingNote": "D7 — the V of G minor. The F# in this chord pulls hard toward G."
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"number": 7,
|
|
86
|
+
"rightHand": "G4:h Bb4:q A4:q",
|
|
87
|
+
"leftHand": "G2:q Bb2:q",
|
|
88
|
+
"fingering": "RH: 3-5-4, LH: 1-3 (Gm shell)",
|
|
89
|
+
"teachingNote": "Gm — minor resolution. The whole section was a journey through the circle of fifths."
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"number": 8,
|
|
93
|
+
"rightHand": "G4:w",
|
|
94
|
+
"leftHand": "G2:h D3:h",
|
|
95
|
+
"fingering": "RH: 3, LH: 1-5",
|
|
96
|
+
"teachingNote": "Let the G ring out. In performance, this is where you'd start improvising.",
|
|
97
|
+
"dynamics": "p"
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "baba-oriley",
|
|
3
|
+
"title": "Baba O'Riley",
|
|
4
|
+
"genre": "rock",
|
|
5
|
+
"composer": "Pete Townshend",
|
|
6
|
+
"difficulty": "intermediate",
|
|
7
|
+
"key": "F major",
|
|
8
|
+
"tempo": 116,
|
|
9
|
+
"timeSignature": "4/4",
|
|
10
|
+
"durationSeconds": 17,
|
|
11
|
+
"tags": [
|
|
12
|
+
"the-who",
|
|
13
|
+
"synth-riff",
|
|
14
|
+
"driving",
|
|
15
|
+
"energetic",
|
|
16
|
+
"classic-rock"
|
|
17
|
+
],
|
|
18
|
+
"source": "Claude arrangement — simplified interpretation",
|
|
19
|
+
"musicalLanguage": {
|
|
20
|
+
"description": "The iconic synthesizer riff adapted for piano. Pete Townshend's pulsing, repetitive arpeggio was originally created on a Lowrey organ with a sequencer. This piano arrangement captures the hypnotic, driving quality of the riff, cycling through F and Bb with relentless eighth-note energy.",
|
|
21
|
+
"structure": "Riff (8 bars) — F major arpeggiated pattern with Bb and C chord variations",
|
|
22
|
+
"keyMoments": [
|
|
23
|
+
"Bars 1-4: The hypnotic F major riff — pure rhythmic energy building through repetition",
|
|
24
|
+
"Bars 5-6: Bb chord variation — the harmony shifts while the rhythmic pattern continues",
|
|
25
|
+
"Bars 7-8: C to F resolution — the riff completes its cycle with a satisfying cadence"
|
|
26
|
+
],
|
|
27
|
+
"teachingGoals": [
|
|
28
|
+
"Rapid arpeggiated patterns at a brisk tempo",
|
|
29
|
+
"Maintaining energy and evenness across repeated patterns",
|
|
30
|
+
"Adaptation of synthesizer patterns for piano technique"
|
|
31
|
+
],
|
|
32
|
+
"styleTips": [
|
|
33
|
+
"Play with mechanical precision — this was originally a sequenced synth pattern",
|
|
34
|
+
"Every note should be exactly the same volume and length — uniformity is the aesthetic",
|
|
35
|
+
"The left hand should anchor solidly while the right hand drives the pattern"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"measures": [
|
|
39
|
+
{
|
|
40
|
+
"number": 1,
|
|
41
|
+
"rightHand": "C4:e F4:e A4:e C5:e A4:e F4:e C4:e F4:e",
|
|
42
|
+
"leftHand": "F2:h F3:h",
|
|
43
|
+
"teachingNote": "F major arpeggio — the driving riff begins. Keep it absolutely even.",
|
|
44
|
+
"dynamics": "mf"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"number": 2,
|
|
48
|
+
"rightHand": "C4:e F4:e A4:e C5:e A4:e F4:e C4:e F4:e",
|
|
49
|
+
"leftHand": "F2:h F3:h",
|
|
50
|
+
"teachingNote": "Same pattern — repetition is the point. Lock into the groove."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"number": 3,
|
|
54
|
+
"rightHand": "C4:e F4:e A4:e C5:e A4:e F4:e C4:e F4:e",
|
|
55
|
+
"leftHand": "F2:h C3:h",
|
|
56
|
+
"teachingNote": "F major continues — the hypnotic quality builds with each repeat."
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"number": 4,
|
|
60
|
+
"rightHand": "C4:e F4:e A4:e C5:e A4:e F4:e C4:e F4:e",
|
|
61
|
+
"leftHand": "F2:h F3:h",
|
|
62
|
+
"teachingNote": "Four bars of the same riff — you should be in a trance by now. That is the intention."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"number": 5,
|
|
66
|
+
"rightHand": "D4:e F4:e Bb4:e D5:e Bb4:e F4:e D4:e F4:e",
|
|
67
|
+
"leftHand": "Bb2:h F3:h",
|
|
68
|
+
"teachingNote": "Bb major — the same rhythmic pattern but the notes shift to Bb chord. A harmonic breath.",
|
|
69
|
+
"dynamics": "f"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"number": 6,
|
|
73
|
+
"rightHand": "D4:e F4:e Bb4:e D5:e Bb4:e F4:e D4:e F4:e",
|
|
74
|
+
"leftHand": "Bb2:h F3:h",
|
|
75
|
+
"teachingNote": "Bb continues — the contrast with F makes the return even more powerful."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"number": 7,
|
|
79
|
+
"rightHand": "C4:e E4:e G4:e C5:e G4:e E4:e C4:e E4:e",
|
|
80
|
+
"leftHand": "C3:h G2:h",
|
|
81
|
+
"teachingNote": "C major — the V chord. Energy building toward the final resolution."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"number": 8,
|
|
85
|
+
"rightHand": "C4:e F4:e A4:e C5:e A4:e F4:q.",
|
|
86
|
+
"leftHand": "F2:h F3:h",
|
|
87
|
+
"teachingNote": "Back to F — the riff completes its cycle. The last note holds slightly longer for closure.",
|
|
88
|
+
"dynamics": "mf"
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "bach-invention-no1",
|
|
3
|
+
"title": "Invention No. 1 in C Major, BWV 772",
|
|
4
|
+
"genre": "classical",
|
|
5
|
+
"composer": "Johann Sebastian Bach",
|
|
6
|
+
"difficulty": "beginner",
|
|
7
|
+
"key": "C major",
|
|
8
|
+
"tempo": 96,
|
|
9
|
+
"timeSignature": "4/4",
|
|
10
|
+
"durationSeconds": 20,
|
|
11
|
+
"tags": ["classical", "bach", "baroque", "counterpoint", "invention"],
|
|
12
|
+
"source": "Claude arrangement — simplified interpretation",
|
|
13
|
+
"musicalLanguage": {
|
|
14
|
+
"description": "Bach's Two-Part Invention No. 1 in C Major is one of the most important pedagogical works in the piano repertoire. The right hand states the subject, and the left hand answers in imitation. This simplified excerpt captures the opening subject and answer.",
|
|
15
|
+
"structure": "Opening subject and answer (8 bars)",
|
|
16
|
+
"keyMoments": ["Subject statement in right hand, measure 1", "Imitative answer in left hand, measure 3"],
|
|
17
|
+
"teachingGoals": ["Understand imitative counterpoint between two voices", "Develop hand independence with two melodic lines"],
|
|
18
|
+
"styleTips": ["Each hand should sound like an independent singer", "Keep articulation light and clear — no pedal"]
|
|
19
|
+
},
|
|
20
|
+
"measures": [
|
|
21
|
+
{
|
|
22
|
+
"number": 1,
|
|
23
|
+
"rightHand": "C4:s D4:s E4:s F4:s D4:s E4:s C4:s E4:e G4:e C5:e",
|
|
24
|
+
"leftHand": "R:w",
|
|
25
|
+
"dynamics": "mf"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"number": 2,
|
|
29
|
+
"rightHand": "B4:s A4:s G4:s A4:s B4:s C5:s A4:q G4:q",
|
|
30
|
+
"leftHand": "R:w",
|
|
31
|
+
"dynamics": "mf"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"number": 3,
|
|
35
|
+
"rightHand": "A4:q D5:q C5:e B4:e A4:e G4:e",
|
|
36
|
+
"leftHand": "C3:s D3:s E3:s F3:s D3:s E3:s C3:s E3:e G3:e C4:e",
|
|
37
|
+
"dynamics": "mf"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"number": 4,
|
|
41
|
+
"rightHand": "F4:e G4:e A4:e F4:e D4:e E4:e F4:e D4:e",
|
|
42
|
+
"leftHand": "B3:s A3:s G3:s A3:s B3:s C4:s A3:q G3:q",
|
|
43
|
+
"dynamics": "mf"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"number": 5,
|
|
47
|
+
"rightHand": "G4:e A4:e B4:e G4:e A4:e B4:e C5:e A4:e",
|
|
48
|
+
"leftHand": "E3:e F3:e G3:e A3:e F3:e G3:e E3:q",
|
|
49
|
+
"dynamics": "mf"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"number": 6,
|
|
53
|
+
"rightHand": "B4:e C5:e D5:e B4:e C5:e D5:e E5:e C5:e",
|
|
54
|
+
"leftHand": "D3:q G3:q F3:e E3:e D3:e C3:e",
|
|
55
|
+
"dynamics": "mf"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"number": 7,
|
|
59
|
+
"rightHand": "D5:e E5:e F5:e D5:e E5:q C5:q",
|
|
60
|
+
"leftHand": "B2:e C3:e D3:e B2:e C3:q E3:q",
|
|
61
|
+
"dynamics": "mf"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"number": 8,
|
|
65
|
+
"rightHand": "C5:h R:h",
|
|
66
|
+
"leftHand": "C3:h R:h",
|
|
67
|
+
"dynamics": "f"
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|