0:00/0:00
// As Time Goes By — Greger
// 97 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 71 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(97/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.
// other · piano
const piano = note(`<
~ A ~ B C D E F ~ G@2 H I J@2 K ~ L M N O ~ P ~ Q R ~@2 S T U V W ~@3 X@2 ~@3 Y Z AA AB AC AD@2 ~ AE@2 ~ AF AG AH AI@2
AJ AK@2 AL AM ~@6 AN@2 ~
>`.pickRestart({
A: "~@13 d#6 e6@12 ~@6", B: "~@13 g5@3 c6@13 ~@3", C: "~@13 g5@3 ~ c6@14 ~",
D: "~@13 g5@2 ~ c6@3 ~@2 d6@3 ~@5 a#5@2 ~", E: "~@16 a#5@5 ~@11", F: "~@8 d6@5 ~@3 d6@5 ~@4 d6@5 ~@2",
G: "[~@8 g5@4 ~@2 f5@2 ~@2 a5@6 ~ a#5@6 a5@11 ~@19 f6@2 ~]/2", H: "~@5 c6@2 ~ a#5@4 ~ a5@2 ~@17",
I: "~@21 g5@2 ~ c6@8", J: "[~@21 g5@2 ~ c6@11 ~@18 a6@3 ~@8]/2", K: "~@4 d6@2 ~ c6@4 ~@5",
L: "~@5 a#5@3 ~@5 a#5@3 ~ c6@5 ~@10", M: "~@14 f6@2 ~@2 d6@2 ~@4 g5@4 ~ g#5@2 ~, ~@17 c#6@2 ~@13",
N: "~ a5@3 ~@2 a#5@2 ~ b5@3 ~ c6@2 ~ g#5@2 a5@3 ~@3 f#5@3 ~@2 e5@3", O: "f5@10 ~@11 d6@2 ~@2 g#5@2 ~@5",
P: "~@21 g6@3 ~@3 d6@2 ~@3", Q: "~@25 c6@3 ~@4", R: "~@22 d6 ~@9", S: "~@25 c6@7", T: "~@21 g5@3 ~ c6@7",
U: "~ a5@11 ~@4 d6@4 ~@12", V: "~@5 f6 ~@4 d6@2 ~@20", W: "~@9 b5@5 ~@11 b5@6 ~",
X: "[~@21 a5@3 ~ d6@11 ~@14 g5 ~ g#5 a5@3 ~ d6@4 ~@3]/2",
Y: "~@5 e6@4 ~ d#6 ~ c#6 ~ c6@2 ~ b5@5 ~@10, ~@11 d6@2 ~@19", Z: "~@5 f5@2 ~@2 g5@4 f5@2 ~@2 d6 d#6 e6@5 b5@4 ~@4",
AA: "~@5 a5@3 ~@7 a5@5 ~@12", AB: "~@22 d6@7 ~@3", AC: "~@21 a5@3 d6@7 ~",
AD: "[~@16 c6@5 ~@3 c#6@4 ~ d6@6 ~@3 f#6@4 ~@6 g#6@8 e6@6 ~@2]/2",
AE: "[~@5 g6 ~@4 e6@3 ~ c6@3 d6@4 ~@4 a5@3 ~@2 g5@7 ~@27, ~@4 d6 ~@27, ~@9 d#6@2 ~@53]/2",
AF: "[e4,g4,c5]@5 [e4,a4]@2 ~ [e4,g4]@5 [g4,c5,e5]@3 ~@5 [g4,c5,e5]@9 ~@2", // C A5 Em C
AG: "[a4,b4,e5]@5 [a4,b4]@5 ~@3 d#5@3 [g#4,b4,e5]@12 ~@4, ~@5 f5@10 ~@17, ~@10 e5@5 ~@17, ~@11 [a4,b4]@5 ~@16", // Asus2 E Asus2
AH: "[c4,e4,a4]@5 [e4,b4]@2 ~ [e4,a4]@5 [a4,c5,e5]@3 ~@5 [a4,c5,e5]@9 ~@2", // Am E5 A5 Am
AI: "[[g4,a#4,e5]@5 a#4@5 ~@3 d#5@3 [g4,a#4,c#5,e5]@12 ~@4 d4@4 ~ d4@2 [d4,f#4,b4]@4 ~@18 f#5@3, ~@5 [g4,f#5]@10 ~@16 f#4@5 ~@28, ~@10 e5@5 ~@21 c5@7 ~@21, ~@11 [a#4,c#5]@5 ~@15 b4@8 ~@6 [b4,e5,g5]@19]/2", // Edim Gdim Bm Gmaj7 A#m Em
AJ: "~ g5@5 f#5@5 f5 ~ f#5@3 a5@8 f#5@8, [a4,c#5]@11 ~@5 [a4,c#5]@15 ~", // A
AK: "[[a4,c5,e5]@5 [a4,c5,e5]@3 [a4,c5,e5]@4 [a4,c5,e5]@3 ~ [f4,g#4,b4]@5 g#4@2 ~ [f4,g#4,b4,e5]@5 [e4,g4,a4,d5]@30 ~@5]/2", // Am Fdim E Em7
AL: "~@23 c#6@2 d6@7", AM: "~@23 c#6 d6@7 ~", AN: "[~@25 f#5@6 a5@11 ~ d7@7 d7 ~@2 c7 b6@10, ~@17 g4@25 ~@22]/2",
})).s("gm_piano").gain(0.29)
// other · piano · soft notes
const piano_soft = note(`<
~@5 A B C ~ D ~ E ~@2 F G H I@2 J K L M N O P@2 ~ Q ~@2 R S ~@13 T ~@9 U ~@11 V@2 ~
>`.pickRestart({
A: "~@25 c6@4 ~@3", B: "g#5 ~ a5@5 ~ a5@5 ~@19", C: "~@5 c6 ~@26", D: "~@5 f5@2 ~@10 g#5 ~@14, ~@8 g5 ~@7",
E: "c#6@2 d6@3 ~@11 g5@5 ~@11", F: "~@25 f6@3 ~ c6@3", G: "d6@5 ~@27", H: "b5@9 ~@23",
I: "[~@9 a5@3 ~@12 f5@3 ~@3 f5@7 ~@12 c6 ~@3 f5@2 ~@9]/2", J: "~@21 d#5@3 ~@8", K: "~@27 a5@2 f5@3", L: "f#5@5 ~@27",
M: "~@24 f6@2 ~@3 c6@2 ~", N: "b5@6 ~@15 f5 ~@2 g5@4 ~ f5@2 ~", O: "~@9 c6@3 ~@5 c6@4 ~@11",
P: "[~@6 f5@2 g5@4 ~@2 f5 ~ g#5@2 a5@3 ~@3 g5 ~ g#5@2 ~ f5 ~ e5@7 ~@26]/2", Q: "~@21 g5 ~@10",
R: "~@9 c#6@2 ~@2 g#5 ~@3 a5@5 ~@10, ~@4 c6 ~@11", S: "~@16 b5@5 ~@11", T: "~@14 b5 ~@17", U: "~@5 f#4@2 ~@25",
V: "[~@21 d5@21 ~@10 c#7 ~@11]/2",
})).s("gm_piano").gain(0.19)
// bass · fretless bass
const bass = note(`<
A B C D E F G H I J K L M F G H I J N O P Q R S T U V W M F G H I J X Y Z@2 AA AB AC AD AE AF Z@2 AA AB AG AH AI AJ AK
AL AM AN AO AP AQ AR AS AT AA AB AU AV AW AX@2 ~@2
>`.pickRestart({
A: "f1@7 ~ f1@8 f#1@7 ~ f#1@8", B: "g1@7 ~ g1@7 ~ g#1@7 ~ g#1@7 ~", C: "a1@7 ~ a1@7 ~ g#1@7 ~ g#1@7 ~",
D: "g1@8 d2@8 c2@8 f#1@7 ~", E: "g1@11 a#1@2 d2@3 c2@13 d2@3", F: "g2@13 d2@3 c2@8 c3@8",
G: "f2@5 c2@3 f1@8 g1@8 g#1@8", H: "a1 e2 d2 a1", I: "g1@11 ~@2 g1@3 a1@11 ~@2 a1@3",
J: "g1@11 a#1@2 d2@3 c2@5 c3@2 ~ g2@2 c2@2 g1@3 ~", K: "f2@5 c2@2 ~ f1@8 f#1@13 f#1@2 ~",
L: "g1@8 d2@8 c2@5 c2@3 f#1@8", M: "g1@10 ~ a#1@2 d2@3 c2@13 d2@3", N: "f1@16 g1@15 ~", O: "a1 c#2 c2 f1",
P: "a#1 f2 d2 a#1", Q: "a1 d#2 d2 a1", R: "g1 d2 a#1 g1", S: "g#1 f2 d2 a#1", T: "a1@5 a1@3 e2@8 d2@8 a1@8",
U: "g1!2 d2 g1", V: "c2@5 a1@3 g1@8 f#1@8 a1@8", W: "g1 d2 c2 f#1", X: "f1@8 f1@8 g1@7 ~ g1@7 ~",
Y: "a1@8 e2@5 d2@10 ~ g#1@8", Z: "a1@8 e2@8 d2@8 a2@4 ~ e2@3", AA: "g2@5 d2@3 g1@8 a1@8 a#1@8", AB: "b1 f#2 e2 b1",
AC: "a1@11 ~@2 a1@3 a#1@8 a#1@8", AD: "a1@8 e2@8 d2@5 d2@3 a1@8", AE: "f1@8 f1@5 f1@3 e1@13 e1@2 ~",
AF: "a1@8 e2@8 d2@5 c2@3 g#1@8", AG: "a1@11 ~@2 a1@3 a#1@8 a#1@7 ~",
AH: "a1@11 c2@2 e2@3 d2@5 d3@2 ~ a2@2 d2@2 a1@3 ~", AI: "g1@13 g1@3 a1@13 a1@3", AJ: "b1@12 ~ b1@3 d2@8 g1@8",
AK: "c2 g2 e2 c2", AL: "b1 f2 e2 b1", AM: "a1 e2 c2 a1", AN: "a#1 g2 e2 c2", AO: "b1@5 b1@3 f#2@8 e2@8 b1@8",
AP: "a1!2 e2 a1", AQ: "d2@5 b1@3 a1@8 g#1@8 b1@8", AR: "a1 e2 d2 g#1", AS: "a1@8 e2@8 d2@8 d2@3 e2@2 d2@3",
AT: "c2@8 g1@8 f1@8 f1@5 d2@3", AU: "a1!2 a#1!2", AV: "a1 e2 d2!2", AW: "a1 g#1", AX: "[g1@5 e2@3 d2@5 g1@32 ~@19]/2",
})).s("gm_fretless_bass").gain(0.28)
// chords · trombone
const trombone = note(`<
A B C@2 D E F G H@2 I J D E F G H@2 K L M N O P Q ~@2 R D E F G S@3 T@2 U@3 V W@2 X@2 U@3 V Y@2 Z AA ~@6 AB@2 AC@3 AD
AE AF AG ~@3
>`.pickRestart({
A: "~@5 f3@2 ~ f3@4 ~ f3@2 ~ a3@2 ~@6 a3@4 ~@4", B: "g3@5 c4@3 a#3@5 b3@8 ~@8 [g3,b3]@3",
C: "[[a3,c4]@5 [a3,c4]@3 [a3,c4]@5 [a3,c4]@3 [g#3,b3]@8 [b3,d4]@5 [a#3,d4]@19 [g3,c4]@16]/2", // Am G#m Bm A# C5
D: "~ [d3,g3]@15 [c3,g3]@16", E: "~ [d3,g3]@19 ~@4 [e3,g#3]@8", F: "[f3,a3]@16 [g3,a#3]@7 [g#3,b3]@5 [a3,c4]@2 ~@2",
G: "~@5 [a3,c4]@3 [a3,c4]@5 [a3,c4]@3 [d2,c4]@7 ~@9", // Am D7
H: "[[g3,b3]@16 [g3,b3]@8 [e3,g#3]@5 [f3,a3]@19 d3@8 c#3@3 ~@5, ~@48 a3@11 ~@5]/2", // G E F
I: "~@5 [f2,a3]@3 [f2,a3]@5 [f2,a3]@3 [a2,c4]@8 [a2,c4]@8", J: "[g2,d4]!3 ~",
K: "~@5 [a2,c4]@3 [a2,c4]@5 [a2,c4]@3 [a#2,d4]@8 [a#2,d4]@8", L: "[c3,e4] [b2,d#4] [a#2,d#4] [g#2,c#4]",
M: "[a#1,a#2]@9 ~@7", N: "~@21 a2@6 f#2@5", O: "g2 ~", P: "~@21 b2@6 g#2@5", Q: "a2 ~",
R: "~@5 g2@3 a#2@5 d2@3 c2@5 ~@11",
S: "[[g3,b3]@16 [g3,b3]@8 [e3,g#3]@5 [f3,a3]@19 d3@8 c#3@3 ~@13 a2@5 c3@2 ~ d3@5 a#2@3 c3@5 d3@3, ~@48 a3@11 ~ [c3,f3]@19 ~@17]/3", // G E F F5
T: "[e3@5 c3@3 e3@5 c3@8 ~@3 g#4@7 ~ a4@5 g4@3 f#4@5 e4@2 ~ f#4@12 g4@3 ~, ~@31 [a2,c4]@16 [d2,a3]@16 ~]/2", // Am D5
U: "[b4@5 a4@3 g4@5 f#4@2 ~ a4@8 b4@5 [d2,a3]@2 ~@6 d5@3 c5@5 b4@2 ~ c5@7 ~ c#5@5 ~ d5@17 ~@17, [a2,c4]@15 [d2,a3]@10 ~@6 e5@5 ~@11 [a2,c4]@8 [a#2,c#4]@5 ~ [b2,d4]@18 ~@17, ~@2 [g2,b3] ~@3]/3", // D5 Am D5 Am A#m Bm G
V: "f#5@5 e5@3 d5@5 c#5@3 d5@8 e5@8, c#4, a2 a#2",
W: "[[a2,d4,b4]@7 ~@6 b4@3 ~ e4@7 [d3,f#4]@5 [f2,g4]@19 [e2,e4]@16, ~@13 a2@11 ~@40]/2", // Bm7 D Fsus2 E
X: "[[a2,e4]@16 [d2,d4]@10 ~@3 g#4@2 ~ a4@5 g4@3 f#4@5 e4@2 ~ f#4@12 g4@3 ~, ~@31 [a2,c4]@16 [d2,a3]@16 ~]/2", // A5 D Am D5
Y: "[[a2,d4,b4]@7 ~@6 b4@3 ~ e4@7 [d2,f#4]@5 [g2,g4]@35, ~@13 a2@11 ~@40]/2", Z: "~@15 d2@9 c#2@8", AA: "c2@11 ~@21",
AB: "[~@24 g#4@7 ~ a4@5 g4@3 f#4@5 e4@2 ~ f#4@12 g4@3 ~, ~@31 [a2,c4]@16 [d2,a3]@16 ~]/2", // Am D5
AC: "[b4@5 a4@3 g4@5 f#4@2 ~ a4@8 b4@5 a3@2 ~@6 d5@3 c5@5 b4@2 ~ c5@7 ~ c#5@5 ~ d5@17 ~@17, [c2,d#4]@15 a3@10 ~@6 e5@5 ~@11 [a2,c4]@8 [a#2,c#4]@5 ~ [b2,d4]@18 ~@17, ~@2 [g2,b3] ~@3]/3", // Cm Am A#m Bm G
AD: "f#5@5 e5@3 d5@5 c#5@3 d5@8 e5@8, [a2,c#4] a#2", AE: "[a2,d4,b4]@7 ~@25", AF: "[g3,b4] [f3,a#4]",
AG: "[f#3,a4]@5 ~@11", // F#m
})).s("gm_trombone").gain(0.41).pan(0.3)
// chords · brass section
const brass_section = note(`<
A B C@2 D E F G H@2 I J D E F G H@2 K L M N O P Q ~@2 R D E F G S@3 T@2 U@3 V W@4 U@3 V X@2 ~@8 Y@2 Z@3 AA AB AC AD
~@3
>`.pickRestart({
A: "~@5 [f3,a3,a4]@2 ~ [f3,a3,a4]@4 ~ [f3,a3,a4]@2 ~ [a3,d4,d5]@3 ~@5 [a3,d4,d5]@4 ~@4", // F D5
B: "[g3,a#3,a#4]@5 [a3,c4,c5]@3 [a#3,d4,d5]@5 [b3,e4,e5]@10 ~@6 [g3,b3,e5]@3", // Gm Am A# E5 Em
C: "[[a3,c4,g5]@5 [a3,c4,f5]@3 [a3,c4,e5]@5 [a3,c4,d5]@3 [g#3,b3,e5]@8 [b3,d4,f5]@5 [a#3,d4]@19 [g3,c4]@16, ~@29 c5@16 ~@19]/2", // Am7 F Am D7 E Bdim A# C5
D: "~ [d3,g3]@15 [c3,g3]@16", E: "~ [d3,g3]@19 ~@4 [e3,g#3]@8", F: "[f3,a3]@16 [g3,a#3]@7 [g#3,b3]@5 [a3,c4]@2 ~@2",
G: "~@8 [a3,c4]@5 [a3,c4,d5]@3 [d2,c4,d5]@7 ~@9, ~@5 [a3,c4]@3 ~@24, ~@6 d5@7 ~@19", // Am D7 Am
H: "[[g3,b3]@16 [g3,b3]@8 [e3,g#3]@5 [f3,a3]@19 d3@8 c#3@3 ~@5, ~@48 a3@11 ~@5]/2", // G E F
I: "~@5 [f3,a3,c5]@3 [f3,a3,c5]@5 [f3,a3,c5]@3 [a3,c4,a4]@8 [a3,c4,a4]@8", // F Am
J: "a#4@5 c5@3 a4@5 a#4@3 [g3,d4,g4]@9 ~@7, [g3,d4]!2 ~@2", // G5
K: "~@5 [a3,c4]@3 [a3,c4]@5 [a3,c4]@3 [a#3,d4]@8 [a#3,d4]@8", L: "[c4,e4] [b3,d#4] [a#3,d#4] [g#3,c#4]",
M: "c4@5 ~@3", N: "~@21 [a3,a4]@6 [f#3,f#4]@5", O: "[g3,f4] ~", P: "~@21 [b3,b4]@6 [g#3,g#4]@5", Q: "[a3,g4] ~",
R: "~@5 [a#2,g4]@3 [d3,a#4]@5 [d3,d5]@3 [c3,c5]@3 ~@13", // D# Gm D C
S: "[[g3,b3]@16 [g3,b3]@8 [e3,g#3]@5 [f3,a3]@19 d3@8 c#3@3 ~@13 a3@5 c4@3 d4@5 a#3@3 c4@5 d4@3, ~@48 a3@11 ~ [c3,f3]@19 ~@17]/3", // G E F F5
T: "[e4@5 c4@3 e4@5 c4@8 ~@3 [g#4,b4]@7 ~ [a4,c5]@5 [g4,b4]@3 [f#4,a4]@5 [e4,g4]@2 ~ [f#4,a4]@12 [g4,b4]@3 ~, ~@31 [a3,c4]@16 [d3,a3]@16 ~]/2", // G#m Am G F#m Em F#m G Am …
U: "[[b4,d5]@5 [a4,c5]@3 [g4,b4]@5 [f#4,a4]@2 ~ [a4,c5]@8 [b4,d5]@5 [d3,a3]@2 ~@6 [d5,f#5]@3 [c5,e5]@5 [b4,d5]@2 ~ [c5,e5]@7 ~ [c#5,e5]@5 ~ [d5,e5]@17 ~@14 f#5@3, [a3,c4]@15 [d3,a3]@10 ~@6 [e5,g5]@5 ~@11 [a3,c4]@8 [a#3,c#4]@5 ~ [b3,d4]@18 ~@17, ~@2 [g3,b3] ~@3]/3", // Bm Am G F#m Am Bm D5 D …
V: "[f#5,a5]@5 [e5,g5]@3 [d5,f#5]@5 [c#5,e5]@3 [d5,f#5]@8 [e5,g5]@8, c#4, a3 a#3", // F#m Em D C#m D Em
W: "[[a3,d4,b4,d5]@7 ~@6 [b4,d5]@3 ~ [e4,g4]@7 [d4,f#4,a4]@5 [f3,g4]@19 [e3,g#4]@16 e4@16 d4@10 ~@3 [g#4,b4]@2 ~ [a4,c5]@5 [g4,b4]@3 [f#4,a4]@5 [e4,g4]@2 ~ [f#4,a4]@12 [g4,b4]@3 ~, ~@13 a3@11 ~@5 b4@61 ~@38, ~@64 a3@26 ~@5 [a3,c4]@16 [d3,a3]@16 ~]/4", // Bm7 Bm Em D Fsus2 E G#m Am …
X: "[[a3,d4,b4,d5]@7 ~@6 [b4,d5]@3 ~ [e4,g4]@7 [d4,f#4,a4]@5 [g3,g4,b4]@35, ~@13 a3@11 ~@40]/2", // Bm7 Bm Em D G
Y: "[~@24 [g#4,b4]@7 ~ [a4,c5]@5 [g4,b4]@3 [f#4,a4]@5 [e4,g4]@2 ~ [f#4,a4]@12 [g4,b4]@3 ~, ~@31 [a3,c4]@16 [d3,a3]@16 ~]/2", // G#m Am G F#m Em F#m G Am …
Z: "[[b4,d5]@5 [a4,c5]@3 [g4,b4]@5 [f#4,a4]@3 [a4,c5]@8 [b4,d5]@7 ~@6 [d5,f#5]@3 [c5,e5]@5 [b4,d5]@2 ~ [c5,e5]@7 ~ [c#5,e5]@5 ~ [d5,e5]@17 ~@14 f#5@3, [c3,d#4]@16 ~@15 [e5,g5]@5 ~@11 [a3,c4]@8 [a#3,c#4]@5 ~ [b3,d4]@18 ~@17, ~@2 [g3,b3] ~@3]/3", // Bm Am G F#m Am Bm D C …
AA: "[f#5,a5]@5 [e5,g5]@3 [d5,f#5]@5 [c#5,e5]@3 [d5,f#5]@8 [e5,g5]@8, [a3,c#4] a#3", AB: "[a3,d4,b4,d5]@7 ~@17 b4@8",
AC: "[g3,d4,b4,d5] [f3,d4,a#4,d5]", AD: "[f#3,d4,a4,d5]@3 ~@5",
})).s("gm_brass_section").gain(0.28)
// chords · alto sax
const alto_sax = note("<~@3 A B C D@8 E@7 F@5 G@4 H@2 I@2 J@5 K@8 L@8 M N ~@6 O ~ P@2 Q R@3>".pickRestart({
A: "~@3 [a3,a4]", B: "[a#3,a#4]@5 [a3,a4]@3 [g3,g4]@5 [f3,f4]@3 [g3,g4]@10 ~@3 [a3,a4]@3",
C: "[c4,c5]@5 [a#3,a#4]@3 [a3,a4]@5 [g3,g4]@3 [a#3,a#4]@8 [c4,c5]@8", // C A# A G A# C
D: "[[f4,f5]@5 [e4,e5]@3 d5@5 [c4,c5]@3 [d4,d5]@7 [d4,d5]@6 d5@14 ~@13 [e4,e5]@8 [g4,g5]@5 [f4,f5]@3 [e4,e5]@5 d5@3 [e4,e5]@8 [f4,f5]@5 [c4,c5]@14 ~@2 d5@3 [f3,f4]@8 [g3,g4]@5 [a3,a4]@17 ~@42 [a3,a4]@8 [a#3,a#4]@5 [a3,a4]@3 [g3,g4]@5 [f3,f4]@3 [g3,g4]@10 ~@3 [a3,a4]@3 [c4,c5]@5 [a#3,a#4]@3 [a3,a4]@5 [g3,g4]@3 [a#3,a#4]@8 [c4,c5]@8, ~@8 d4@8 ~@13 d4@48 d4@32 d4@147]/8", // F E C D E G F E …
E: "[[f4,f5]@5 [e4,e5]@3 d5@5 [c4,c5]@3 [d4,d5]@7 [d4,d5]@6 d5@14 ~@13 [e4,e5]@8 [g4,g5]@5 [f4,f5]@3 [e4,e5]@5 d5@3 [e4,e5]@8 [f4,f5]@5 [c4,c5]@14 ~@2 [c4,c5]@3 [f3,f4]@8 [g3,g4]@5 [f3,f4]@17 ~@50 f3@5 g3@3 f3@5 d4@8 d4@10 d4, ~@8 d4@8 ~@13 d4@48 d4@128 ~@19]/7", // F E C D E G F E …
F: "[~@5 d#4@5 ~@3 c#4@3 ~@16 g3@5 a3@3 g3@5 d4@8 d4@10 ~@6 e4@5 ~@3 c#4@3 ~@16 a3@5 a#3@3 a3@5 f4@16 e4@13 ~ d#4@2 e4@3 g4@12 f4 e4 ~ d4, ~@11 d4@5 d4@29 ~@18 d4@12 d4@5 d4@78 d#4@2]/5",
G: "[~@5 d4@3 d4@5 ~@3 a3@5 d4@7 c4@2 ~@2 c4@13 ~@11 [a3,a4]@8 [a#3,a#4]@5 [a3,a4]@3 [g3,g4]@5 [f3,f4]@3 [g3,g4]@10 ~@3 [a3,a4]@3 [c4,c5]@5 [a#3,a#4]@3 [a3,a4]@5 [g3,g4]@3 [a#3,a#4]@8 [c4,c5]@8, ~@13 d4@8 ~@9 d4@98]/4", // A A# A G F G A C …
H: "[[f4,f5]@5 [e4,e5]@3 d5@5 [c4,c5]@3 [d4,d5]@7 [d4,d5]@6 d5@14 ~@13 [e4,e5]@8, ~@8 d4@8 ~@13 d4@35]/2", // F E C D E
I: "[[g4,g5]@5 [f4,f5]@3 [e4,e5]@5 d5@3 [e4,e5]@8 [f4,f5]@5 [c4,c5]@14 ~@2 [c4,c5]@3 [f3,f4]@8 [g3,g4]@5 [f3,f4]@3, ~@13 d4@51]/2", // G F E F C F G F
J: "[~@8 [a3,a4]@5 [c4,c5]@3 [f4,f5]@5 d5@3 [e4,e5]@5 [f4,f5]@3 [g4,g5]@5 [e4,e5]@3 [g4,g5]@5 [e4,f#5]@12 ~@103, ~@21 d4@139]/5", // A C F E F G E G …
K: "[~@5 a4@3 a4@5 a4@3 [b3,g#4]@8 ~@88 [b2,e4]@5 [e3,a4]@3 [a3,c5]@4 [g#3,b4]@8 [a3,c5]@3 [c4,e5]@5 [e4,g5]@3 [g4,b5]@8 ~@105, ~@5 c#4@8 c#4@243]/8", // E E5 A5 Am G#m Am C Em …
L: "[~@5 a4@3 a4@5 a4@3 [b3,g#4]@8 ~@76 [g3,b4]@3 ~ [a3,c5]@4 [b3,d5]@3 ~ [c4,e5]@4 f#5@3 ~ [e4,g5]@4 [f#4,a5]@3 [g4,b5]@5 g5@3 ~ [b3,d5]@5 [g3,b4]@3 [a3,f4]@8 [g#3,f4]@7 [g3,e4]@10 ~@43 [g#3,g#4,b4]@3 ~ [e3,e4,g#4]@5 [b2,b3,e4]@3 [a2,a3,a4]@22 ~@10, ~@5 c#4@8 c#4@243, ~@29 d4@4 d4@31]/8", // E G Am Bm C Em F#m G …
M: "~@20 [g3,g4,c#5]@3 ~ [f#3,f#4,a#4]@5 [e3,e4,g4]@3", N: "[b2,b3] ~",
O: "~@5 a4@3 a4@5 a4@3 [b3,g#4]@8 ~@8, ~@5 c#4@11 ~@16", P: "[~@31 b3@16 ~ a#3@16]/2",
Q: "a3@12 ~@3 [f#4,a4,d5]@4 ~ [f#4,b4]@4 [b3,g4]@4 [c4,e4,a4]@4", R: "[~ [f#4,b4]@3 [e4,g4,c5]@3 [f#4,b4]@64 ~@25]/3",
})).s("gm_alto_sax").gain(0.34).pan(0.3)
// other · baritone sax
const baritone_sax = note(`<
~@3 A B C D@2 E@3 A B C F@2 G@3 ~@8 A B C F@2 H@3 I ~@3 J ~@2 K@2 ~@3 J ~@2 L@3 M N O P ~@6 J ~ Q@2 R S@3
>`.pickRestart({
A: "~@3 a2", B: "a#2@5 a2@3 g2@5 f2@3 g2@10 ~@3 a2@3", C: "c3@5 a#2@3 a2@5 g2@3 a#2@8 c3@8",
D: "[f3@5 e3@3 d3@5 c3@3 d3@7 d3@6 d3@14 ~@13 e3@8]/2",
E: "[g3@5 f3@3 e3@5 d3@3 e3@8 f3@5 c3@15 ~ d3@3 f2@8 g2@5 a2@17 ~@18]/3",
F: "[f3@5 e3@3 d3@5 c3@3 d3@7 d3@5 ~ d3@14 ~@13 e3@8]/2",
G: "[g3@5 f3@3 e3@5 d3@3 e3@8 f3@5 c3@15 ~ c3@3 f2@8 g2@5 f2@17 ~@18]/3",
H: "[g3@5 f3@3 e3@5 d3@3 e3@8 f3@5 c3@15 ~ c3@3 f2@8 g2@5 ~@11 a2@5 c3@3 d3@5 a#2@3 c3@5 d3@3, ~@61 f2@17 ~@18]/3",
I: "e3@5 c3@3 e3@5 c3@12 ~@7", J: "~@5 f#2@3 f#2@5 f#2@3 g#2@8 ~@8",
K: "[~@16 e2@5 a2@3 c3@4 b2@8 c3@3 e3@5 g3@3 b3@7 ~@10]/2",
L: "[~@4 g2@3 ~ a2@4 b2@3 ~ c3@4 d3@3 ~ e3@4 f#3@3 g3@5 d3@3 ~ b2@5 g2@3 a2@8 g#2@7 g2@10 ~@23]/3",
M: "~@20 g#2@3 ~ e2@5 b1@3", N: "a1@11 ~@5", O: "~@20 g2@3 ~ f#2@5 e2@3", P: "d2 ~", Q: "[~@31 g2@16 ~ f2@16]/2",
R: "f#2@12 ~@3 d3@4 ~ b2@4 g2@4 a2@4", S: "[~ b2@3 c3@3 b2@64 ~@25]/3",
})).s("gm_baritone_sax").gain(0.28).pan(0.1)
// chords · clarinet
const clarinet = note("<~@3 A B@8 C@5 D@8 ~@2 A E@8 ~@3 F@8 G@8 H I ~@6 J ~@3 K L@3>".pickRestart({
A: "~@3 f4",
B: "[g4@5 f4@3 ~@21 g4@3 a4@5 g4@3 f4@5 ~@3 g4@8 g4@8 a4@5 a4@3 a4@5 a4@3 a#4@7 b4@6 c5@14 ~@13 c5@8 b4@24 g#4@5 a4@14 ~@2 a4@3 ~@8 c#4@5 ~@59 f4@8, ~@8 d4@8 d4@29 d4@131 d4@80, ~@13 c4@243]/8",
C: "[g4@5 f4@3 ~@21 g4@3 a4@5 g4@3 f4@5 ~@3 g4@8 g4@8 a4@5 a4@3 a4@5 a4@3 a#4@7 b4@5 ~ c5@14 ~@13 c5@8 b4@24 g#4@5 a4@3, ~@8 d4@8 d4@29 d4@115, ~@13 c4@147]/5",
D: "[~@13 a4@3 ~@8 c#4@5 ~@227, ~ d4@15]/8",
E: "[g4@5 f4@3 ~@21 g4@3 a4@5 g4@3 f4@5 ~@3 g4@8 g4@8 a4@5 a4@3 a4@5 a4@3 a#4@7 b4@5 ~ c5@14 ~@13 c5@8 b4@24 g#4@5 a4@14 ~@2 a4@3 ~@8 c#4@5 ~@11 a4@5 c5@3 f5@5 d5@3 e5@5 f5@3 g5@5 e5@3 g5@5 f#5@14 ~@5, ~@8 d4@175 ~@73, ~@13 c4@243]/8",
F: "[~@5 [a3,f#4,a4]@8 [a3,f#4,a4]@3 [g#4,b4]@8 ~@88 e3@5 [a3,e4]@3 a4@4 g#4@8 a4@3 [e4,c5]@5 [g4,e5]@3 [b4,g5]@8 ~@105, ~@4 b3@24 b3@3 b3@33, ~@120 c4@15 ~@121]/8", // D G#m A5 C Em
G: "[~@5 [a3,f#4,a4]@8 [a3,f#4,a4]@3 [g#4,b4]@8 ~@76 g4@3 ~ a4@4 b4@3 ~ c5@4 d5@3 ~ e5@4 f#5@3 g5@5 d5@3 ~ b4@5 g4@3 a4@8 g#4@7 g4@10 ~@43 e5@3 ~ d5@5 b4@3 c5@30 ~@2, ~ b3@15]/8", // D G#m
H: "~@20 g5@3 ~ f#5@5 e5@3", I: "d5 ~", J: "~@5 [a3,f#4,a4]@8 [a3,f#4,a4]@3 [g#4,b4]@8 ~@8",
K: "~@15 [d5,a5]@4 ~ [b4,f#5]@4 [g4,d5]@4 [a4,e5]@4", L: "[~ [b4,f#5]@3 [c5,g5]@3 [b4,f#5]@64 ~@25]/3",
})).s("gm_clarinet").gain(0.28).pan(0.4)
// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
A B C D E F G H@3 I@4 G J@3 K@6 L@2 M@4 G H@3 N@8 O@2 P Q R S T U V W X@8 P Y R S T Z AA AB ~@3
>`.pickRestart({
A: "[c4,f4,a4]@5 ~@3 [c4,f4,a4]@5 ~@3 [d#4,f#4,a4]@4 ~@4 [d#4,f#4,a4]@4 ~@4", // F D#dim
B: "[d4,g4,a#4]@4 ~@4 [g3,d4,g4,a#4]@4 ~@4 [d4,g#4,b4]@5 ~@3 [b3,d4,g#4,b4]@3 ~@5", // Gm G#dim
C: "[c4,e4,a4]@5 ~@3 [a3,c4,e4,a4]@3 ~@5 [d4,g#4,b4]@7 ~ [b3,d4,g#4,b4]@3 ~@5", // Am G#dim
D: "[f4,a#4]@6 ~@2 [d4,f4,a#4]@3 ~@5 [c4,e4,a#4]@7 ~ [c4,e4,a#4]@7 ~", // A#5 A# C7
E: "[d4,g4,a#4]@6 ~@2 [d4,g4,a#4]@5 ~@3 [e4,a#4]@5 ~@3 [c4,e4,a#4]@5 ~@3", // Gm Edim C7
F: "[d4,f4]@5 ~@4 a#4@5 ~@2 [e4,a#4]@5 ~@3 [c4,e4,a#4]@8, ~@4 [d4,f4]@3 ~@9", // Dm Edim C7 Dm
G: "[c4,f4,a4]@8 [f4,a4]@5 ~@3 [d4,g4,a#4]@6 ~@2 [d4,g#4,b4]@6 ~@2, ~ c4@3", // F Gm G#dim
H: "[~ a4@6 ~ [e4,a4]@4 ~@4 [c4,f#4,a4]@8 [f#4,a4]@5 f#4@3 [d4,g4,b4]@6 ~@3 b4@4 b4@2 ~ [d4,g4,b4]@7 ~ [d4,g4,b4]@6 ~@2 [d4,g4,a#4]@5 ~@3 [d4,g4,a#4]@5 a#4 ~@2 [d4,g4,a#4]@4 ~@4 [e4,a#4]@4 ~@4, [c4,e4] c4 ~ c4@8 c4, ~@40 [d4,g4]@5 ~@51]/3", // A5 F#dim F#m G Gm Edim C G5
I: "[[f4,a4]@5 ~@3 [f4,a4]@4 ~ [f4,a4] ~@2 [d#4,f#4,a4]@6 ~@2 [f#4,a4]@4 ~ f#4 ~@2 a#4@4 ~@3 [g4,a#4]@4 ~@2 [c4,e4,a#4]@8 ~@3 [e4,a#4]@3 ~ a#4@2 ~@2 [g4,a#4]@6 ~@2 [d4,g4,a#4]@5 ~@3 [e4,a#4]@5 ~@3 [e4,a#4]@5 ~@3 [d4,f4]@5 ~@4 a#4@5 ~@2 [e4,a#4]@5 ~@3 [c4,e4,a#4]@8, c4@8 c4@37 ~@10 c4@33 c4@32 ~@8, ~@23 d#4@6 ~@2 [d4,g4]@8 ~@65 [d4,f4]@6 ~@18]/4", // F D#dim F#m Gm C7 Edim Gm Edim …
J: "[~ a4@6 ~ [e4,a4]@4 ~@4 [c4,f#4,a4]@8 [f#4,a4]@5 f#4@3 [d4,g4,b4]@6 ~@3 b4@4 b4@2 ~ [d4,g4,b4]@7 ~ [d4,g4,b4]@6 ~@2 [d4,g4,a#4]@6 ~@2 [d4,g4,a#4]@5 a#4 ~@2 [d4,g4,a#4]@4 ~@4 [e4,a#4]@4 ~@4, [c4,e4] c4 ~ c4@8 c4, ~@40 [d4,g4]@5 ~@51]/3", // A5 F#dim F#m G Gm Edim C G5
K: "[[f4,a4]@5 ~@3 [f4,a4]@4 ~ [f4,a4] ~@2 [d4,g4,a#4]@6 ~@2 [g4,a#4]@4 ~ g4 ~@2 [e4,a4,c5]@5 ~@3 [d#4,g#4,b4]@4 ~ [d#4,g#4] ~@2 [d4,g4,a#4]@6 ~@2 [a4,c5]@4 ~ d#4 ~@2 [a#3,d4,f4]@4 ~@4 [a#3,d4,f4]@4 ~@4 [a#3,d4,f4]@4 ~@4 [a#3,d4,f4]@4 ~@4 [d#4,f#4]@4 ~@4 [a3,d#4,f#4]@4 ~@4 [a3,d4,f#4]@4 ~@4 [a3,d4,f#4]@4 ~@4 [g3,d4]@4 ~@4 [g3,a#3,d4]@4 ~@4 [g3,a#3,d4]@4 ~@4 [g3,a#3,d4]@4 ~@4 [g#3,d4,f4]@4 ~@4 [g#3,d4,f4]@4 ~@4 [g#3,d4,f4]@4 ~@4 [g#3,d4,f4]@4 ~@4, c4 c4@23, ~@23 d4@6 ~@26 d#4@5 ~@132]/6", // F Gm Am G#m G#5 Gm Am A# …
L: "[[a3,e4]@3 ~@5 [a3,e4]@3 ~@5 [a3,f4]@3 ~@5 [a3,f4]@3 ~@5 [g3,b3,f4]@3 ~@5 [g3,b3,f4]@3 ~@5 [g3,b3,f4]@3 ~@5 [g3,b3,f4]@3 ~@5, c4!3 c4@5]/2", // A5 Dm G7
M: "[[a#3,e4]@3 ~@5 [a#3,e4]@3 ~@5 [a3,d#4]@3 ~@5 [a3,d#4]@3 ~@5 [g3,a#3,d4]@3 ~@5 [g3,a#3,d4]@3 ~@5 [a#3,e4]@3 ~@5 [a#3,e4]@3 ~@5 [g4,a#4]@6 ~@2 [d4,g4,a#4]@5 ~@3 [e4,a#4]@5 ~@3 [e4,a#4]@5 ~@3 [d4,f4]@5 ~@4 a#4@5 ~@2 [e4,a#4]@6 ~@2 [c4,e4,a#4]@8, c4!3 c4@3 c4 c4@4 c4@4 ~, ~@52 [d4,f4]@3 ~@9]/4", // A#dim Adim Gm A#dim Gm Edim Dm Edim …
N: "[[f4,a4]@5 ~@3 [f4,a4]@4 ~ [f4,a4] ~@2 [d4,g4,a#4]@6 ~@2 [g4,a#4]@4 ~ g4 ~@2 [e4,a4,c5]@5 ~@3 [e4,a4,c5]@4 ~ [d4,f#4,c5]@6 ~@2 [d4,f#4] ~@2 [f#4,c5]@4 ~ d4 ~@2 [a4,c5]@6 ~@2 [e4,a4,c5]@5 ~@3 [f#4,c5]@5 ~@3 [d4,f#4,c5]@5 ~@3 [e4,g4]@5 ~@4 c5@5 ~@2 [f#4,c5]@5 ~@3 [d4,f#4,c5]@6 ~@2 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@5 ~@3 [e4,a4,c5]@6 ~@2 [e4,a#4,c#5]@6 ~@3 b4@6 ~ [d4,f#4,b4]@4 ~@4 [d4,g#4,b4]@6 ~@2 [d4,g#4,b4]@5 g#4@3 [e4,a4,c#5]@6 ~@3 c#5@4 c#5@2 ~ [e4,a#4,c#5]@7 ~ [e4,a#4,c#5]@6 ~@2 [e4,a4,c5]@5 ~@3 [e4,a4,c5]@5 c5 ~@2 [e4,a4,c5]@4 ~@4 [d4,f#4,c5]@4 ~@4, c4 c4@31, ~@23 d4@6 ~@26 d4@5 ~@44 [e4,g4]@6 ~@50 [d4,f#4]@6 ~@34 [e4,a4]@5 ~@51]/8", // F Gm Am D7 D F#dim Am F#dim …
O: "[[d4,f4,b4]@5 ~@3 [d4,f4,b4]@4 ~ [f4,b4] ~@2 [e4,g#4,b4]@6 ~@2 [g#4,b4]@4 ~ g#4 ~@2 c5@4 ~@3 [a4,c5]@4 ~@2 [d4,f#4,c5]@8 ~@3 [f#4,c5]@3 ~ c5@2 ~@2, ~@23 e4@6 ~@2 [e4,a4]@8 ~@16 d4@7 ~@2]/2", // Bdim Fdim E G#m Am D7 F#dim A5
P: "[a4,c5]@6 ~@2 [e4,a4,c5]@5 ~@3 [f#4,c5]@5 ~@3 [d4,f#4,c5]@5 ~@3", // Am F#dim D7
Q: "[e4,g4]@5 ~@4 c5@5 ~@2 [f#4,c5]@5 ~@3 [d4,f#4,c5]@6 ~@2, ~@4 [e4,g4]@3 ~@9", // Em F#dim D7 Em
R: "[d4,g4,b4]@6 ~@2 [d4,g4,b4]@5 ~@3 [e4,a4,c5]@6 ~@2 [e4,a#4,c#5]@6 ~@2", // G Am A#dim
S: "~ b4@6 ~ [d4,f#4,b4]@4 ~@4 [d4,g#4,b4]@6 ~@2 [d4,g#4,b4]@5 g#4@3, [d4,f#4]@3 ~@13", // Bm G#dim D
T: "[e4,a4,c#5]@6 ~@3 c#5@4 c#5@2 ~ [e4,a4,c#5]@7 ~ [e4,a4,c#5]@6 ~@2, ~@8 [e4,a4]@5 ~@19", // A A5
U: "[e4,a4,c5]@6 ~@2 [e4,a4,c5]@5 c5 ~@2 [e4,a4,c5]@4 ~@4 [d4,f#4,c5]@4 ~@4", // Am D7
// … 93 more lines
More by Greger
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.