0:00/0:00
// Holberg Suite Op.40 — Edvard Grieg Op. 40
// 152 bpm, 2/2, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (1/2 at bar 1, 2/2 at bar 2, 1/2 at bar 10, 2/2 at bar 11, ...) are rendered on a constant 2/2 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5933472; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 131 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(152/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.
// chords · piano
const piano = note(`<
~@2 A ~ B C D E F@2 ~ G H ~@4 A ~ B C D E I@2 ~ J ~ K L M N O ~ A ~@2 P D Q@4 ~@11 R S T U V W X Y ~@11 Z@2 AA@2 AB AC
AD@2 ~@8 AE@2 ~ AF@6 AG@3 ~@3 AE@2 ~ AH@6 ~ AI ~ AJ AK@2 AL AM AE@2 ~@2 AN@3 AO@3
>`.pickRestart({
A: "[c5,e5]@11 ~@13", B: "~@4 [b3,g4,b4,g5]@2 [c4,g4,a4,c5,g5,a5] ~",
C: "[c4,g4,a4,c5,g5,a5]@2 [e4,g4,c5,e5,g5,c6] ~ [e4,g4,c5,e5,g5,c6]@2 [f#4,c5,e5,f#5,c6,e6] ~", // Am7 C F#m7b5
D: "[f#4,c5,e5,f#5,c6,e6]@4 [d5,d6] [c5,c6] [g4,b4,g5,b5]@2, ~@2 [g4,g5] ~", // F#m7b5 D C G
E: "[g4,c5,g5,c6]@2 [f#4,a4,f#5,a5]@2 [g4,b4,g5,b5] [c5,c6] [a4,a5] [g4,g5]", // C5 F#m G C A G
F: "[[f#4,f#5] [g4,g5] [f#4,f#5]@7 [g4,g5] ~@2 [g4,g5]@18 ~@18]/2", G: "[b4,d5,b5]@2 ~@3 f#5 a5 d6",
H: "g5 e5 g5 d6 ~@4, d5@11 ~@13", I: "[[f#4,f#5] [g4,g5] [f#4,f#5]@7 [g4,g5] ~@2 [g4,g5]@18 ~@6 [g4,c5]@11 ~]/2",
J: "~@12 [b4,e5]@11 ~", K: "~@12 [g4,c5,g5,c6]@11 ~",
L: "[b4,b5] [c5,c6] [b4,b5] [a4,a5]@3 [g4,g5]@3 ~@3 [g4,c5,g5,c6]@3 [g4,d5,g5,d6]@3 [g4,e5,g5,e6]@3 ~@3", // B C B A G C5 G5 C
M: "[g4,b4,g5,b5] [b4,e5,b5,e6]", // G E5
N: "[d5,d6] [e5,e6] [d5,d6] [b4,b5]@3 [d5,d6]@3 ~@3 [c5,c6] [d5,d6] [c5,c6] [b4,b5]@3 [c5,c6]@3 ~@3", // D E D B D C D C …
O: "[b4,d5,b5] ~ [a4,d5,a5] ~@5", P: "~ [g4,c5,g5,c6]!2 [g4,c5,e5,g5,c6,e6]",
Q: "[~ [g4,c5,g5,c6]@6 [f#4,a4,f#5,a5]@6 ~ [b4,b5]@3 [c5,c6]@4 [a4,a5]@3 [g4,g5]@4 [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [e4,e5] [f#4,f#5] [g4,g5]@3 [d4,g4,d5,g5]@39 ~@12, ~@14 [g4,g5]@7 [e4,e5]@7 ~@68]/4", // C5 F#m B C A G F# G …
R: "~@20 [c5,f5]@3 ~", S: "~ [d5,f5]@3 a#5@3 [d5,f5,a5]@3 a#5@3 [d5,f5]@3 ~@2 [c5,e5,a5]@3 a#5@3, ~@13 g5@5 ~@6",
T: "[c5,f5,a5]@3 g5@3 f5@5 [f5,f6]@13", U: "~ [g5,g6]@3 [f5,f6]@3 [g5,g6]@3 [e5,e6]@13 ~",
V: "[f5,f6]@3 [e5,e6]@2 [f5,f6]@3 [d5,d6]@3 [e5,e6]@3 [d5,d6]@3 [e5,e6]@3 [c5,c6]@2 [d5,d6]@2", // F E F D E D E C …
W: "~ [c5,c6]@3 [d5,d6]@3 [b4,b5]@3 [c5,c6]@2 [b4,b5]@3 [c5,c6]@3 [a4,a5]@3 [b4,b5]@3", // C D B C B C A B
X: "[a4,a5]@3 [b4,b5]@2 [g4,g5]@3 [b4,a5]@3 [g4,g5]@3 [c5,c6]@3 [g4,g5]@2 [c5,c6]@3 [f4,f5]@2", // A B G B7 G C G C …
Y: "~ [c5,c6]@3 [g4,c5,g5,c6]@5 [b4,b5]@3 [c5,c6]@3 [g4,c5,g5,c6]@8 ~, ~@9 [g4,g5]@5 ~@10", // C C5 B C C5 G
Z: "[~@14 [c5,f5]@3 ~@3 [d5,f5]@3 a#5@2 [d5,f5,a5]@3 a#5@3 [d5,f5]@3 ~@3 [c5,e5,a5]@3 a#5@2 [c5,f5,a5]@3 g5@3, ~@31 g5@5 ~@12]/2", // F5 Dm Am F
AA: "[f5@5 ~ [f5,f6]@13 ~ [g5,g6]@3 [f5,f6]@2 [g5,g6]@3 [e5,e6]@13 ~ [f5,f6]@3 [e5,e6]@3]/2", // F G F G E F E
AB: "[f5,f6]@3 [d5,d6]@2 [e5,e6]@3 [d5,d6]@3 [e5,e6]@3 [c5,c6]@3 [d5,d6]@3 [c5,c6]@2 [d5,d6]@2", // F D E D E C D C …
AC: "~ [b4,b5]@3 [c5,c6]@3 [b4,b5]@3 [c5,c6]@2 [a4,a5]@3 [b4,b5]@3 [a4,a5]@3 [b4,b5]@3", // B C B C A B A B
AD: "[[g4,g5]@3 [b4,a5]@2 [g4,g5]@3 [c5,c6]@3 [g4,g5]@3 [c5,c6]@3 [f4,f5]@2 [c5,c6]@3 [g4,c5,g5,c6]@5 ~ [b4,b5]@3 [c5,c6]@2 [g4,c5,g5,c6]@8 ~@7, ~@28 [g4,g5]@5 ~@15]/2", // G B7 G C G C F C …
AE: "[~@21 [c5,e5]@11 ~@16]/2", // C
AF: "[~@9 [b3,g4,b4,g5]@6 [c4,g4,a4,c5,g5,a5]@3 ~@3 [c4,g4,a4,c5,g5,a5]@6 [e4,g4,c5,e5,g5,c6]@3 ~@3 [e4,g4,c5,e5,g5,c6]@6 [f#4,c5,e5,f#5,c6,e6]@3 ~@3 [f#4,c5,e5,f#5,c6,e6]@12 [d5,d6]@3 [c5,c6]@3 [g4,b4,g5,b5]@6 [g4,c5,g5,c6]@6 [f#4,a4,f#5,a5]@6 [g4,b4,g5,b5]@3 [c5,c6]@3 [a4,a5]@3 [g4,g5]@3 [f#4,f#5] [g4,g5] [f#4,f#5]@7 [g4,g5] ~@2 [g4,g5]@18 ~@21, ~@19 [g4,g5]@2 ~@27]/6", // Em Am7 C F#m7b5 D C G C5 …
AG: "[~@7 [b4,d5,b5]@2 ~@3 f#5 a5 d6 g5 e5 g5 d6 ~@5, ~@45 d5@11 ~@16]/3", // Bm
AH: "[~@9 [b3,g4,b4,g5]@6 [c4,g4,a4,c5,g5,a5]@3 ~@3 [c4,g4,a4,c5,g5,a5]@6 [e4,g4,c5,e5,g5,c6]@3 ~@3 [e4,g4,c5,e5,g5,c6]@6 [f#4,c5,e5,f#5,c6,e6]@3 ~@3 [f#4,c5,e5,f#5,c6,e6]@12 [d5,d6]@3 [c5,c6]@3 [g4,b4,g5,b5]@6 [g4,c5,g5,c6]@6 [f#4,a4,f#5,a5]@6 [g4,b4,g5,b5]@3 [c5,c6]@3 [a4,a5]@3 [g4,g5]@3 [f#4,f#5] [g4,g5] [f#4,f#5]@7 [g4,g5] ~@2 [g4,g5]@18 ~@6 [g4,c5]@11 ~@4, ~@19 [g4,g5]@2 ~@27]/6", // Em Am7 C F#m7b5 D C G C5 …
AI: "~@9 [b4,e5]@11 ~@4", AJ: "~@9 [g4,c5,g5,c6]@11 ~ [b4,b5] [b4,c5,b5,c6] ~",
AK: "[[a4,a5]@3 [g4,g5]@3 ~@3 [g4,c5,g5,c6]@3 [g4,d5,g5,d6]@3 [g4,e5,g5,e6]@3 ~@3 [g4,b4,g5,b5]@12 [b4,e5,b5,e6]@12 [d5,d6] [d5,e5,d6,e6] ~]/2", // A G C5 G5 C G E5 D …
AL: "[b4,b5]@3 [d5,d6]@3 ~@3 [c5,c6] [c5,d5,c6,d6] ~ [b4,b5]@3 [c5,c6]@3 ~@3 [b4,d5,b5]@3", AM: "~ [a4,d5,a5] ~@6",
AN: "[~@3 [g4,c5,g5,c6]@6 [g4,c5,g5,c6]@6 [g4,c5,e5,g5,c6,e6]@6 [f#4,c5,e5,f#5,c6,e6]@12 [d5,d6]@3 [c5,c6]@3 [g4,b4,g5,b5]@6 [g4,c5,g5,c6]@6 ~ [f#4,a4,f#5,a5]@6 [b4,b5]@3 ~ [c5,c6]@3 [a4,a5]@4 [g4,g5]@3, ~@33 [g4,g5]@6 ~@19 [g4,g5]@7 [e4,e5]@7]/3", // C5 C F#m7b5 D C G C5 F#m …
AO: "[~ [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [e4,g4,e5,g5] [f#4,f#5] [g4,g5]@3 [d4,g4,d5,g5]@39 ~@16]/3", // F# G F# G F# G F# G …
})).s("gm_piano").gain(0.3)
// chords · piano · soft notes
const piano_soft = note(`<
A B C@2 D ~@4 E F G H I J A B K@2 D ~@5 L M N O ~@3 A P Q@2 R S ~@5 T@2 U V W X@8 ~@6 Y@5 Z@6 AA ~@6 AB@4 AC@2 AD@4
AE@3 ~@4 AF@2 AG AH AI AJ AK@2 AL@3 ~@4 AM@4 AN ~@3 AO@2 AP@4 ~@5
>`.pickRestart({
A: "~@6 a4 ~, ~@4 g4@3 ~", B: "a4@2 c5 ~ c5@2 [c5,e5] ~, g4@3 ~@5",
C: "[~@12 d5 e5 d5 c5@3 b4@6 c5@6 [f#4,a4]@6 b4@3 a4@3 g4@6, ~@12 b4@6 g4@11 ~@7 g4@6 ~@6]/2", D: "[f#4,a4]@11 ~@13",
E: "~@2 [d4,a4] [f#4,d5]", F: "[b4,b5]@2 [a4,a5] ~ a4 f#4 a4 d5, d5@3 ~@5",
G: "~@6 [a4,d5,a5]@3 ~@3 d5@11 ~, ~@4 a5 ~@3", H: "~@4 [d5,f#5] d5 f#5 d6", I: "e5 d5 e5 d6 d5 c#5 d5 d6",
J: "d5 c#5 d5 d6 d5 c#5 d5 d6",
K: "[~@12 d5 e5 d5 c5@3 b4@6 c5@6 [f#4,a4]@6 b4 c5 b4 a4@3 g4@6, ~@12 b4@6 g4@11 ~@7 g4@6 ~@6]/2", // F#m
L: "b4 c5 b4 a4@3 g4@6 c5@3 d5@3 e5@6, g4 ~@3", M: "b4@11 ~@13",
N: "d5 e5 d5 c5@3 d5@6 c5 d5 c5 a4@3 c5@6, a4@11 ~ g4@11 ~", O: "[g4,b4] ~ [f#4,a4] ~@5",
P: "[g4,a4]@2 [g4,c5] ~@3 c5 ~, ~@4 e5@3 ~", // Gsus2 C5
Q: "[~@4 d5 c5 b4@2 c5@2 [f#4,a4]@2 b4 a4 g4@2, ~@12 b4@6 g4@11 ~@7 g4@6 ~@6]/2", // F#m
R: "[f#4,a4]@11 ~ [b3,d4,g4,b4,d5,g5]@6 [d4,a4,d5,a5]@6", S: "[d4,a4,d5,a5] ~@3",
T: "[~@8 g3@8 g3@11 ~ g3@11 g3@5 ~@4]/2", U: "~@5 c4@8 ~@3 g3@8", V: "~@4 d3@8 ~@3 c3@8 ~",
W: "~@2 [e4,e5]@3 [d4,d5]@3 [e4,e5]@3 [g4,g5]@2 [f4,f5]@3 [e4,e5]@3 [d4,d5]@3 [f4,f5]@2", // E D E G F E D F
X: "[~ [e4,e5]@2 [d4,d5]@3 [c4,c5]@3 [e4,e5]@3 [d4,d5]@3 [b3,b4]@2 [g3,g4]@5 ~ [c5,c6]@11 [g4,g5]@11 ~ [d4,d5]@11 [c4,c5]@8 ~@3 b3@3 ~@3 b3@3 ~@2 a3@3 e4@3 [c#4,e4]@3 f4@3 d4@3 ~@2 d4@3 ~@3 d4@3 g4@3 [d4,f4]@2 g4@3 e4@5 ~ [c#4,f4]@3 g4@2 f4 g4 f4 e4@3 d4@5 ~ [a#4,d5]@3 ~@2 [a#4,d5]@3 ~@3 [a4,c5]@3 g5@3 [a#4,e5,g5]@2 a5@3 [c5,f5]@3 ~@31, ~@68 d4@13 ~@10 f4@13 ~@9 d4@3 ~@8 d4@3 ~@9 f5@13 ~@9 a5@13 ~@21]/8", // E D C E D B G C …
Y: "[~@2 g3@8 ~ g3@11 g3@11 g3@5 ~@9 c4@8 ~@4 g3@8 ~@3 d3@8 ~@3 c3@8 ~@3 [e4,e5]@3 [d4,d5]@3 [e4,e5]@3 [g4,g5]@3 [f4,f5]@3 [e4,e5]@2 [d4,d5]@3 [f4,f5]@3 [e4,e5]@3 [d4,d5]@2]/5", // E D E G F E D F …
Z: "[~ [c4,c5]@2 [e4,e5]@3 [d4,d5]@3 [b3,b4]@3 [g3,g4]@5 [c5,c6]@11 ~ [g4,g5]@11 [d4,d5]@11 [c4,c5]@8 ~@4 b3@3 ~@2 b3@3 ~@3 a3@3 e4@2 [c#4,e4]@3 f4@3 d4@3 ~@3 d4@3 ~@2 d4@3 g4@3 [d4,f4]@3 g4@3 e4@5 [c#4,f4]@3 g4@3 f4 [f4,g4] ~ e4@2 d4@5 ~ [a#4,d5]@3 ~@3 [a#4,d5]@3 ~@2 [a4,c5]@3, ~@63 d4@13 ~@9 f4@13 ~@10 d4@3 ~@8 d4@3 ~@8 f5@13 ~]/6", // C E D B G C G D …
AA: "g5 [a#4,e5,g5] a5 [c5,f5] ~@4, ~@9 a5@13 ~@2", AB: "[~@21 g3@8 g3@11 g3@11 ~ g3@5 ~@9 c4@8 ~@3 g3@8 ~@3 d3@8]/4",
AC: "[~@4 c3@8 ~@3 [e4,e5]@3 [d4,d5]@2 [e4,e5]@3 [g4,g5]@3 [f4,f5]@3 [e4,e5]@3 [d4,d5]@3 [f4,f5]@2 [e4,e5]@3 [d4,d5]@3 [c4,c5]@3 [e4,e5]@2]/2", // E D E G F E D F …
AD: "[~ [d4,d5]@2 [b3,b4]@3 [g3,g4]@5 ~ [c5,c6]@11 [g4,g5]@11 [d4,d5]@11 ~ [c4,c5]@8 ~@9 a4@3 ~@3 a4@6 c5@3 ~@3 c5@6 [c5,e5]@3 ~@6, ~@19 g4@3 ~ g4@3 ~@6]/4", // D B G C G D C
AE: "[~@9 d5 [d5,e5] ~ c5@3 b4@6 c5@6 [f#4,a4]@6 b4@3 a4@3 g4@6 [f#4,a4]@11 ~@16, ~@9 b4@6 g4@11 ~@7 g4@6 ~@33]/3", // Dsus2 F#m
AF: "[~@3 [d4,a4]@2 [f#4,d5]@2 [b4,b5]@2 [a4,a5] ~ a4 f#4 a4 d5 ~, ~@7 d5@3 ~@6]/2", // D5 D B A
AG: "~@3 [a4,d5,a5]@3 ~@3 d5@11 ~@4, ~@3 a5 ~@4", AH: "~@3 [d5,f#5] d5 f#5 d6 e5", AI: "d5 e5 d6 d5 c#5 d5 d6 d5",
AJ: "c#5 d5 d6 d5 c#5 d5 d6 ~", AK: "[~@5 a4 ~ a4@2 c5 ~ c5@2 [c5,e5] ~@2, ~@3 g4@3 ~ g4@3 ~@6]/2",
AL: "[~@9 d5 [d5,e5] ~ c5@3 b4@6 c5@6 [f#4,a4]@6 b4 [b4,c5] ~ a4@3 g4@6 [f#4,a4]@11 ~@16, ~@9 b4@6 g4@11 ~@7 g4@6 ~@33]/3", // Dsus2 F#m Cmaj7 F#m
AM: "[~@21 b4 [b4,c5] ~ a4@3 g4@6 c5@3 d5@3 e5@6 b4@11 ~@13 d5 [d5,e5] ~ c5@3 d5@6 c5 [c5,d5] ~ a4@3 c5@6 [g4,b4]@3, ~@21 g4@6 ~@42 a4@11 ~ g4@11 ~@4]/4", // Cmaj7 Dsus2 Csus2 G
AN: "~ [f#4,a4] ~@6", AO: "[~@5 a4 ~ [g4,a4]@2 [g4,c5] ~@3 c5 ~@2, ~@3 g4@3 ~@5 e5@3 ~@2]/2",
AP: "[~@9 d5@3 c5@3 b4@6 c5@6 [f#4,a4]@6 b4@3 a4@3 g4@6 [f#4,a4]@11 ~ [b3,d4,g4,b4,d5,g5]@6 [d4,a4,d5,a5]@6 [d4,a4,d5,a5]@6 ~@21, ~@9 b4@6 g4@11 ~@7 g4@6 ~@57]/4", // F#m G D5
})).s("gm_piano").gain(0.15)
// chords · piano
const piano_2 = note(`<
A B C ~ D E F G H I J@2 K L@2 A B C ~ D E F G H M@4 N O P Q R S C ~ T U F V@4 ~@2 W X Y@3 Z ~@4 AA AB@7 AC@2 ~ AD@2 AE
AF ~@3 AG AH AI@4 AJ@2 ~ AK AL ~ AM@6 ~ AN@5 AO@6 AP@3 ~ AN@5 AQ@4 AR AS@2 AT AU AV@2 ~ AW@4 AX@3
>`.pickRestart({
A: "~@2 b3 ~", B: "c4 ~ [e4,g4] ~", C: "[f#4,a4]@11 ~@13", D: "~@12 [g2,g3]@9 [f#2,f#3] ~@2",
E: "[e2,e3]@9 [d2,d3] ~@2 [c2,c3]@9 [b1,a2] ~@2", F: "[a1,a2]@2 [b1,b2] [e2,e3]",
G: "[a1,a2] [d2,d3] [g1,g2,d3] [c2,c3,e4]", H: "d2@2 d3@2 g2@2 [d2,d3] ~, [a3,d4]@11 ~ [b3,d4]@12",
I: "[b3,d4] ~ f#3 d3, [g1,g2]@3 ~@9 a3@11 ~", J: "g3@2 f#3 ~ f#3@2 d3@2, [a3,d4]@9 ~@3 [a3,d4]@11 ~",
K: "~ d3 ~ d3, [b3,d4,g4]@11 ~ [a3,c#4,f#4]@11 ~", // G F#m
L: "[~@6 d3@6 ~@6 d3@6 [e3,g3]@11 ~@13, [g3,b3,e4]@11 ~ [a3,d4]@34 ~@2, ~@12 f#3@11 ~@25]/2", // Em D5
M: "[[b3,d4]@3 ~@3 g3@23 ~ g3@17 ~, [g1,g2]@3 ~@9 e4@11 ~@37 g4@11 ~@25]/4", N: "~ [e2,e3,g3]",
O: "[d2,d3,g3] [c2,c3,g3] [b1,b2,g3] ~ [e2,e3,g3] [f#2,f#3,g3] [g2,g3] ~", P: "[d2,d3,g3] [g2,g3,g4]",
Q: "[f#2,f#3,g3,g4] [d2,d3,g3,g4] [f#2,f#3,g3,g4] ~ [e2,e3,g3,g4] [c2,c3,g3,g4] [e2,e3,g3,g4] ~", // Gmaj7 G5 Gmaj7 Em C5 Em
R: "[b1,b2,g3,d4] [c2,c3] [f#3,d4]@2 b3@2 ~@2, ~@2 [d2,d3] ~@5", S: "~@2 [e4,g4] ~", T: "~@2 [g2,g3] [f#2,f#3]",
U: "[f#2,f#3] [e2,e3]!2 [c2,c3]", // F# E C
V: "[~ [a1,a2]@6 [d2,d3]@6 ~ [g1,g2,d3,d4]@7 c4@3 b3@4 a3 b3 a3 b3 a3 b3 a3 b3 a3 b3 a3 b3 g3 a3 b3@3 g2@9 [d2,d3]@9 ~ [g1,g2]@19 ~@13, ~@21 [c2,c3]@7 [d2,d3]@7 ~ d3@8 ~ b3@39 ~@12]/4", // A D G5 D G C D
W: "~@5 [f4,a4]@3 ~@8 [c4,e4]@3 ~@5", X: "~@4 [g3,b3]@3 ~@17", Y: "[~@22 g3@11 g3@8 ~@6 f4@3 ~@8 c4@3 ~@9 g3@2]/3",
Z: "~@9 [e3,g3]@8 ~@7", AA: "~ [d3,d4,f4]@3 ~@3 [d3,d4,f4]@3 ~@3 [a#3,f4]@3 ~@2 [c3,c4,e4]@3 ~@3",
AB: "[[f3,c4,f4]@3 ~@3 [f2,a3]@3 ~@2 [d3,d4,f4,a4]@6 [d3,d4,f4,a4]@6 [d3,d4,g4,b4]@5 [d3,d4,g4,b4]@6 [c3,c4,g4,b4]@5 [c3,c4,g4,b4]@6 [c3,c4,f4,a4]@6 [c3,c4,f4,a4]@5 [b2,b3]@6 [b2,b3,e4,g4]@6 [a2,a3]@5 [a2,a3,d4,f4]@6 [g2,g3]@5 [g2,g3,c4,e4]@6 [f2,f3]@6 [f2,f3,b3,d4]@5 [f2,e3,b3,d4]@5 ~ [e2,e3,c4]@5 ~ [a2,a3,c4]@5 [a2,a3,c4]@6 [g2,g3,d4]@5 [g2,g3,d4]@6 c3@6 [c2,c3]@6 ~@21, ~@56 [f4,a4]@11 ~ [e4,g4]@11 [d4,f4]@11 [c4,e4]@11 ~@34 [c4,e4]@11 ~@22]/7", // F5 F Dm G Cmaj7 F B Em …
AC: "[~@23 [f4,a4]@3 ~@9 [c4,e4]@3 ~@8 [g3,b3]@2]/2", AD: "[~@16 g3@11 g3@8 ~@6 f4@3 ~@4]/2",
AE: "~@5 c4@3 ~@8 g3@3 ~@5", AF: "~@3 [e3,g3]@8 ~@13", AG: "~@20 [d3,d4,f4]@3 ~",
AH: "~ [d3,d4,f4]@3 ~@3 [a#3,f4]@3 ~@3 [c3,c4,e4]@3 ~@2 [f3,c4,f4]@3 ~@3", // Dm A#5 C F5
AI: "[[f2,a3]@3 ~@3 [d3,d4,f4,a4]@5 [d3,d4,f4,a4]@6 [d3,d4,g4,b4]@6 [d3,d4,g4,b4]@5 [c3,c4,g4,b4]@6 [c3,c4,g4,b4]@5 [c3,c4,f4,a4]@6 [c3,c4,f4,a4]@6 [b2,b3]@5 [b2,b3,e4,g4]@6 [a2,a3]@6 [a2,a3,d4,f4]@5 [g2,g3]@6 [g2,g3,c4,e4]@5 [f2,f3]@6 [f2,f3,b3,d4]@6, ~@51 [f4,a4]@11 [e4,g4]@11 [d4,f4]@11 [c4,e4]@11 ~]/4", // F Dm G Cmaj7 F B Em A …
AJ: "[[f2,e3,b3,d4]@5 [e2,e3,c4]@5 ~ [a2,a3,c4]@6 [a2,a3,c4]@5 [g2,g3,d4]@6 [g2,g3,d4]@5 c3@6 [c2,c3]@6 ~@3, ~@33 [c4,e4]@11 ~@4]/2", // Bdim C Am G5 C
AK: "~@6 [f4,a4] ~", AL: "~@5 [c4,e4]@3 ~@8 [g3,b3]@3 ~@5",
AM: "[~@11 g3@11 g3@8 ~@6 f4@3 ~@8 c4@3 ~@8 g3@3 ~@9 [e3,g3]@8 ~@3 b3@6 ~@6 c4@6 ~@6 [e4,g4]@6 ~@6 [f#4,a4]@11 ~@16]/6", // Em F#m
AN: "[~@9 [g2,g3]@9 [f#2,f#3] ~@2 [e2,e3]@9 [d2,d3] ~@2 [c2,c3]@9 [b1,a2] ~@2 [a1,a2]@12 [b1,b2]@6 [e2,e3]@6 [a1,a2]@6 [d2,d3]@6 [g1,g2,d3]@6 [c2,c3,e4]@6 d2@6 d3@6 g2@6 [d2,d3]@3 ~@3 [g1,g2,b3,d4]@3, ~@93 [a3,d4]@11 ~ [b3,d4]@12 ~@3]/5", // G F# E D C B7 A B …
AO: "[~@9 f#3@6 d3@6 g3@6 f#3@3 ~@3 f#3@6 d3@6 g3@6 f#3@3 ~@3 f#3@6 d3@6 ~@6 d3@6 ~@6 d3@6 ~@6 d3@6 ~@6 d3@6 [e3,g3]@11 ~@16, ~@9 a3@11 ~ [a3,d4]@9 ~@3 [a3,d4]@11 ~ [a3,d4]@9 ~@3 [a3,d4]@11 ~ [b3,d4,g4]@11 ~ [a3,c#4,f#4]@11 ~ [g3,b3,e4]@11 ~ [a3,d4]@34 ~@5, ~@105 f#3@11 ~@28]/6", // Em D5 G F#m Em D5
AP: "[~@9 b3@6 ~@6 c4@6 ~@6 [e4,g4]@6 ~@6 [f#4,a4]@11 ~@16]/3", // Em F#m
AQ: "[~@9 g3@46 ~@2 g3@34 ~@5, ~@9 e4@11 ~@37 g4@11 ~@28]/4", AR: "~@3 [e2,e3,g3]@4 [d2,d3,g3]",
AS: "[[c2,c3,g3] [b1,b2,g3] ~ [e2,e3,g3] [f#2,f#3,g3] [g2,g3] ~ [d2,d3,g3]@4 [g2,g3,g4]@4 [f#2,f#3,g3,g4]]/2", // C5 Em Gmaj7 G G5 G Gmaj7
AT: "[d2,d3,g3,g4] [f#2,f#3,g3,g4] ~ [e2,e3,g3,g4] [c2,c3,g3,g4] [e2,e3,g3,g4] ~ [b1,b2,g3,d4]", // G5 Gmaj7 Em C5 Em G
AU: "[c2,c3] [f#3,d4]@2 b3@2 ~@3, ~ [d2,d3] ~@6", AV: "[~@9 [e4,g4]@6 ~@6 [f#4,a4]@11 ~@16]/2",
AW: "[~@9 [g2,g3]@6 [f#2,f#3]@6 [f#2,f#3]@6 [e2,e3]@6 [e2,e3]@6 [c2,c3]@6 [a1,a2]@12 [b1,b2]@6 [e2,e3]@6 [a1,a2]@6 ~ [d2,d3]@6 [g1,g2,d3,d4]@7 c4@4 b3@3, ~@89 [c2,c3]@7]/4", // G F# E C A B E A …
AX: "[~ a3 b3 a3 b3 a3 b3 a3 b3 a3 b3 a3 [g3,b3] a3 b3@3 g2@9 ~ [d2,d3]@9 ~ [g1,g2]@19 ~@16, ~ [d2,d3]@7 ~ d3@8 b3@39 ~@16]/3", // G D G D
})).s("gm_piano").gain(0.3)
// chords · piano · soft notes
const piano_soft_2 = note(`<
A@3 B C ~@9 D E@3 B C ~@5 F@2 G H ~@3 I@4 C ~@6 J@5 K@3 L M@2 N ~@7 O P@7 Q R@2 S ~@6 T@8 U@5 ~@9 V W@5 ~@4 X Y@2 Z AA
~@3 AB@5 ~@6
>`.pickRestart({
A: "[~@6 c4 ~@3 e4 ~@3 [f#4,a4] ~@5 g4@2 e4@2, ~@4 g3@17 ~@3]/3", B: "[a3,e4] d4 [g3,d4] [b3,d4]",
C: "~ d3 ~@2, d4@11 ~@13", D: "~ a2 ~ d2, ~@12 [d3,f#3]@11 ~",
E: "[d4 c4 b3 a3 ~@2 c4 ~@3 e4 ~@3 [f#4,a4] ~@5 g4@2 e4@2, ~@4 g3@17 ~@3]/3", // F#m
F: "[d4 e4 d4 c4@3 b3@6 e4@3 f#4@3 ~@6 d4@11 ~@13, ~@18 g4@17 ~@13]/2",
G: "f#4 g4 f#4 d4@3 f#4@6 e4 f#4 e4 c4@3 e4@6", H: "[b3,d4] c4 d4 ~@5",
I: "[~@6 c4 ~ c4 ~ e4 ~@3 [f#4,a4] ~@5 g4@2 ~@2 a3@2 d4@2 [g3,d4]@2 [b3,d4]@2, ~@12 g3@51 ~@3 e4@11 ~@19]/4", // F#m G5 Bm
J: "[~@8 e4@3 d4@3 e4@2 g4@3 f4@3 e4@3 d4@3 f4@3 e4@2 d4@3 c4@3 e4@3 d4@3 b3@2 g3@5 ~@4 c5@3 [f4,a4]@2 d4@3 ~@3 g4@3 [c4,e4]@3 a3@3 ~@2 d4@3 [g3,b3]@3 d3@3 [e3,g3]@11 g3@8 ~ g3@11 ~@2, ~@8 [c2,g2]@21 ~@2 [c2,g2]@21 ~ [c2,g2]@21 ~@2 [c2,g2]@21 ~ [c2,g2]@21 ~]/5", // F C G Em C5
K: "[~ [c2,g2]@21 ~@4 a4@3 f4@3 d4@3 ~@2 e4@3 c4@3 a3@3 ~@2 b3@3 g3@3 d3@3 ~@11 g3@3 ~, ~@23 [c2,g2]@21 ~@2 [c2,g2]@19 ~@7]/3", // C5
L: "~@2 [g2,g3]@3 ~@2 [f2,f3]@3 ~@3 [e2,e3,g3]@3 ~@3 a3@3 ~@2", // G F Em
M: "[[d2,d3,a3]@3 ~@3 [a#2,a#3]@3 ~@3 [a#2,a#3]@3 ~@2 [g3,a#3]@3 ~@3 [a2,a3]@3 ~@2 [d3,a3]@3 ~@3 [d2,d3]@3 ~@3 [a#3,d4]@3 ~@2 [a#2,a#3,d4]@3]/2", // D5 A# Gm A D5 D A#
N: "~@3 [a2,a3,c4]@3 ~@3 [g2,a#3,e4]@3 ~@2 [c4,f4]@3 ~@3 [f2,f3,c4,f4]@3 ~", // Am Edim F5
O: "~@2 e4@3 d4@3 e4@3 g4@3 f4@2 e4@3 d4@3 f4@2, ~@2 [c2,g2]@21 ~", // C5
P: "[~ e4@3 d4@3 c4@2 e4@3 d4@3 b3@3 g3@5 ~@3 c5@3 [f4,a4]@3 d4@3 ~@2 g4@3 [c4,e4]@3 a3@3 ~@3 d4@3 [g3,b3]@2 d3@3 [e3,g3]@11 g3@8 ~ g3@11 ~@3 [c2,g2]@21 ~@4 a4@3 f4@3 d4@3 ~@3 e4@2 c4@3 a3@3 ~@3 b3@3 g3@2 d3@3 ~@12 g3@3 ~@2 [g2,g3]@3 ~, ~ [c2,g2]@21 ~ [c2,g2]@21 ~@2 [c2,g2]@21 ~ [c2,g2]@21 ~@24 [c2,g2]@21 ~@2 [c2,g2]@19 ~@13]/7", // F C G Em C5 G C5
Q: "~@2 [f2,f3]@3 ~@2 [e2,e3,g3]@3 ~@3 a3@3 ~@3 [d2,d3,a3]@3 ~@2", // F Em D5
R: "[[a#2,a#3]@3 ~@3 [a#2,a#3]@3 ~@3 [g3,a#3]@3 ~@2 [a2,a3]@3 ~@3 [d3,a3]@3 ~@2 [d2,d3]@3 ~@3 [a#3,d4]@3 ~@3 [a#2,a#3,d4]@3 ~@2 [a2,a3,c4]@3]/2", // A# Gm A D5 D A# Am
S: "~@3 [g2,a#3,e4]@3 ~@3 [c4,f4]@3 ~@2 [f2,f3,c4,f4]@3 ~@7", // Edim F5
T: "[~@21 e4@3 d4@2 e4@3 g4@3 f4@3 e4@3 d4@2 f4@3 e4@3 d4@3 c4@3 e4@3 d4@2 b3@3 g3@5 ~@4 c5@2 [f4,a4]@3 d4@3 ~@3 g4@3 [c4,e4]@2 a3@3 ~@3 d4@3 [g3,b3]@3 d3@3 [e3,g3]@11 g3@8 g3@11 ~@3 [c2,g2]@21 ~@5 a4@2 f4@3 d4@3 ~@3 e4@3 c4@3 a3@2 ~@3 b3@3 g3@3 d3@3 ~@2, ~@21 [c2,g2]@21 ~ [c2,g2]@21 ~@2 [c2,g2]@21 ~ [c2,g2]@21 ~@2 [c2,g2]@21 ~@24 [c2,g2]@21 ~ [c2,g2]@14]/8", // F C G Em C5
U: "[~@5 c4 ~@3 e4 ~@3 [f#4,a4] ~@5 g4@2 e4@2 [a3,e4]@2 d4@2 [g3,d4]@2 [b3,d4]@2 ~@2 d3@2 ~@5, ~@9 g3@51 ~@33 d4@11 ~@16]/5", // F#m A5 G5 Bm
V: "~ a2@2 ~@2 d2@2 d4, ~@9 [d3,f#3]@11 ~@4", // D
W: "[c4 b3 a3 ~@2 c4 ~@3 e4 ~@3 [f#4,a4] ~@5 g4@2 e4@2 [a3,e4]@2 d4@2 [g3,d4]@2 [b3,d4]@2 ~@2 d3@2 ~@5, ~@9 g3@51 ~@33 d4@11 ~@16]/5", // F#m A5 G5 Bm
X: "~@21 d4 [d4,e4] ~", Y: "[c4@3 b3@6 e4@3 f#4@3 ~@6 d4@11 ~@13 f#4 [f#4,g4] ~, ~@15 g4@17 ~@16]/2",
Z: "d4@3 f#4@6 e4 [e4,f#4] ~ c4@3 e4@6 [b3,d4]@3", AA: "c4 d4 ~@6",
AB: "[~@5 c4 ~ c4 ~ e4 ~@3 [f#4,a4] ~@5 g4@2 ~@2 a3@2 d4@2 [g3,d4]@2 [b3,d4]@2 ~@2 d3@2 ~@5, ~@9 g3@51 ~@3 e4@11 ~@19 d4@11 ~@16]/5", // F#m G5 Bm
})).s("gm_piano").gain(0.15)
stack(piano, piano_soft, piano_2, piano_soft_2)
More by
Not in the database
That song isn't here.
Nothing in the database matches this link. It may have been renamed, or the address was mistyped. The closest songs to :
Real transcriptions · Editable patterns · Instrumental
Type a song.
Get Strudel code.
Chords, structure, melody, bass and drums compiled from open transcriptions into Strudel live-coding patterns. Play it here, scrub through the bars, then open it in strudel.cc and start hacking.
Smells Like Teen SpiritNirvana
The JokerSteve Miller Band · 1973
Love Me DoThe Beatles · 1964
I Don't MindJames Brown · 1961
- Real transcriptionsMcGill chord charts, Lakh MIDI and quality-filtered PDMX scores. The library includes alternate transcriptions of some songs.
- One bar, one cycleEvery layer follows the same bar timeline, keeping the code, playback and song structure aligned.
- Instrumental by designDetected vocal parts are removed. Guitar riffs, harmonica and other instrumental leads stay.