0:00/0:00
// I Made It Through The Rain — Barry Manilow
// 70 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 67 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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.
// bass · fretless bass · "fretbass"
const bass = note(`<
A@6 B C D E F G H I J K L M N O P O Q R S T G U V W X C Y Z AA AB AC AD AE K AF AE AG AH AI O AJ AK AL AM AN AO AP AQ
AP AR AS AT AU AV AW AX AY AZ BA ~@2
>`.pickRestart({
A: "[~@31 c2@23 ~@3 f1@16 ~@4 f1@6 a1@23 ~@3 f1@16 ~@4 f1@6 c2@50 ~ d2@39 d2@6 ~ d2@2 ~@4 g1@23 ~@3 g1@21 ~@3]/6",
B: "c2@7 ~ c2@5 ~ c2@2", C: "c2@40 ~@2 c2@3 ~@3", D: "~ d2@11 ~ c2@11 c2@12 ~ c2@11", E: "c2@7 ~ c1@8",
F: "c2@5 ~ c2@2 c2@5 ~ c2@2", G: "c2@36 c2@5 ~ c2@2 ~@4", H: "d2@12 c2@12 ~ c2@11 c2@12", I: "g2@21 g1@2 ~",
J: "~ c2@23 c2@15 ~@3 c2@6", K: "g1@40 ~@2 g1@3 ~@3", L: "a#1@5 ~ a#1@2 c2@7 ~", M: "~ c2@23 c2@21 ~@3",
N: "f1@21 ~@4 f1@23", O: "e1@21 ~@4 a1@11 ~ g1@11", P: "f1@7 ~ f1@8", Q: "~ f1@23 f1@21 ~@3", R: "e1@24 ~ a1@23",
S: "~ d2@23 ~ d2@23", T: "g2", U: "f2", V: "~ e1@41 ~ e1@5", W: "g1@23 ~", X: "c1@8 c2@5 ~ c2@2",
Y: "d2@12 ~ c2@11 ~ c2@11 c2@12", Z: "~ c2@23 ~ c2@23", AA: "~ d2@23 a1@15 ~@3 a1@6", AB: "f1@5 ~ f1@2 g1@8",
AC: "d2@5 ~ d2@2 c2@5 ~ c2@2", AD: "g1@41 ~ g1@5 ~", AE: "c2@7 ~ c2@7 ~", AF: "c2@15 ~@3 c2@6 ~ c2@23",
AG: "f1@7 ~ f1@5 ~ f1@2", AH: "e1@21 ~@4 a1@11 g1@12", AI: "f1@8 f1@7 ~", AJ: "f1!2", AK: "e1@7 ~ a1@5 ~ a1@2",
AL: "d2@5 ~ d2@2 d2@7 ~", AM: "~ g1@41 ~ g1@5", AN: "~ b1@11 ~ a1@11 a1@12 ~ a1@11",
AO: "~ c2@11 ~ g1@11 c2@15 ~@3 c2@6", AP: "a#1@7 ~ a#1@7 ~", AQ: "a1@21 ~@4 d2@11 ~ c2@11", AR: "~ a1@23 d2@12 f1@12",
AS: "a#1@21 ~@4 a#1@23", AT: "~ a1@23 d2@21 ~@3", AU: "g1@8 g1@7 ~", AV: "c2@41 ~ c2@5 ~", AW: "f1@41 ~ f1@5 ~",
AX: "f1@35 ~ f1@12", AY: "f1@23 ~", AZ: "f1", BA: "f1@39 ~@3 f1@4 ~@2",
})).s("gm_fretless_bass").gain(0.35)
// chords · piano · "piano2"
const piano = note(`<
~ A@5 B C D E F G@2 H I@2 J K L M N O P Q R S T U T V F C W@2 X Y Z H AA AB AC@2 AD AE@2 AF@2 AG@2 C AH AI AJ AK AL AM
AJ AN@2 AO@3 AP@4 ~
>`.pickRestart({
A: "[~@9 g#3@10 ~@10 d4@6 ~@13 a3@13 [g#3,d4]@26 c4@35 ~@4 c4@12 a3@32 ~@7 a3@13 [b3,f4]@26 [b3,f4]@24, ~@9 [b3,f4]@26 ~@103 [c4,d4,f4]@52 ~@50, ~@9 d4@2 ~@11 g#3@13 [g3,c4,e4]@26 ~@26 [g3,e4,g4]@52 ~@101]/5", // G#dim Bdim Dm7 C
B: "~ d4 ~ c4, [b3,g4,b4] [g3,e4,g4]", C: "c4@11 ~ c4@4, [a3,f4,a4]", D: "[g3,e4]!2 [b3,e4] [g3,e4]",
E: "[a3,f4] [g#3,f4]", F: "[b3,g4]@2 ~ c4, ~ [g3,e4,g4]",
G: "[a3@29 ~@7 a3@5 ~ [g3,e4]@18 ~@6 e4@6 [b3,e4]@12 [g3,e4]@12, [c4,f4,a4]@41 ~@19 g3@12 ~@24]/2", // C E5 C F
H: "d4@11 ~ d4@4, [a#3,f4,a4]", // A#maj7
I: "[f3@10 ~@8 d4@6 [g3,e4]@17 ~ d4@39 ~@3 d4@12, [a#3,f4]@4 ~@3 [a#3,f4,a4]@9, d4 ~@5 f3@6 ~@36]/2", // C A#5 A#maj7
J: "~@12 a#3@5 ~ [g3,e4]@30, [f3,d4,f4]@17 ~@31", K: "[f3,d4] [a#3,e4]",
L: "[a3,f4]@12 b3@5 ~@4 g4@3, ~ [d4,b4], ~@12 g4 ~@5 b3@6", M: "~@2 b3@2 [g3,c4]@2 ~ c4, [g3,d4,e4]@2 ~ e3",
N: "[a3,f4] [b3,g4]", O: "~ b3 [g3,c4] [e3,c4], [g3,d4,e4] ~",
P: "a3@5 ~@4 f4@3 b3@5 ~@4 g4@3, [c4,a4] [d4,b4], f4 ~@5 a3@6 g4 ~@5 b3@6", // F G
Q: "[g3,d4]@12 e3@5 ~@4 c4@3, ~ [a3,e4], ~@12 c4 ~@5 e3@6", R: "[g3,e4] [c4,f#4]", S: "a3@29 ~@7 a3@12, [c4,f4,a4]",
T: "g3@29 ~@7 g3@12, [c4,e4,g4]", U: "f3@29 ~@7 f3@12, [a3,c4,e4]", V: "d4@11 ~ d4@4, [c4,f4,a4]",
W: "[[g3,e4]@12 [g3,e4]@12 [b3,e4]@12 g3@5 ~@19 c4@12 g#3@10 ~@8 f4@6, ~@7 [a3,f4,a4]@5 [c4,g#4]@4, ~@36 f4 ~@5 g#3@6]/2", // C E5 Dm Fm
X: "[g3,e4]@17 ~@19 a3@12, ~@3 [g3,c4,e4]@5", Y: "~ c4 [a3,f4]@2, [a3,e4,g4] ~", Z: "~ c4 [g3,e4]@2, [g3,e4,g4] ~",
AA: "[f3,d4]@12 g3@5 ~@4 e4@3, ~ [c4,g4], ~@12 e4 ~@5 g3@6", AB: "a3@29 ~@7 a3@12, [a#3,d4,f4]",
AC: "[~@12 a#3@12 [g3,e4]@17 ~@19 a#3@12 [a#3,e4]@24, [f3,d4,f4]@4 ~@3 [f3,d4,f4]@5 ~@4]/2", // C A#dim Dm
AD: "~ c4 ~ d4, [a3,f4,a4] [b3,g4,b4]", // Dm Em
AE: "[~@12 b3@12 [g3,c4]@5 ~ [e3,c4]@11 ~ [a3,f4]@30 ~@12 d4@12, [g3,d4,e4] ~@2 [b3,g4,b4]]/2", // C5 C Dm Em7 Em
AF: "[~@12 b3@12 [g3,c4]@12 e3@5 ~ [a3,f4]@30 [b3,g4]@24, [g3,d4,e4] ~@3]/2", // C5 Dm Em Em7
AG: "[~@12 b3@12 [e3,c4]@17 ~ [g3,e4]@30 [c4,f#4]@24, [g3,d4,e4] ~@3]/2", AH: "[e3,c4]!2 [g#3,c4] [g3,c4]",
AI: "[a#3,e4] [a#3,f4] [a#3,e4]@2", AJ: "~ a#3 [g3,e4]@2, [f3,d4,f4] ~",
AK: "~@2 a3@2 [c4,f4]@2 ~ f4, [g3,c4,e4]@2 ~ a3", AL: "[f3,d4]@2 ~ c4, ~ [g3,e4,g4]",
AM: "[g3,c4]@17 ~ [c4,f4]@18 [a#3,d#4]@12", // C5 F5 D#5
AN: "[[g3,c4]@24 [c4,f4]@17 ~@19 c4@12 ~@12 d4@12, ~@7 [a3,f4,a4]@5 [b3,f4,g4]@4]/2", // C5 F5 Dm G7
AO: "[a#3@30 ~@6 a#3@5 ~ a3@36 ~@54 a4@12, f4@41 ~ a4@90 ~@12, d4@17 ~@4 f4@39 f4@12, f3@26 ~@4 f3@11 ~@37 a3@36 a3@30, ~@5 c5@3]/3",
AP: "[[a3,c4,f4]@89 ~ [a3,c4,f4,a4]@96 ~@6]/4", // F
})).s("gm_piano").gain(0.38).pan(0.6)
// chords · string ensemble 2 · "slostring"
const string_ensemble_2 = note("<~@42 A B A B A C D E F G H I H J H K L M N@6 ~>".pickRestart({
A: "[a5,f6] [b5,g6]", B: "[g5,d6]@2 [g5,c6] [e5,c6]", C: "[g5,d6] [e5,c6]", D: "[g5,e6] [c6,f#6]", E: "[a5,f6]",
F: "[e5,c6]!2 [g#5,c6] [g5,c6]", G: "[a#5,e6] [a#5,f6] [a#5,e6]@2", H: "[f5,d6] [g5,e6]",
I: "[g5,c6]@2 [c6,f6] [a5,f6]", J: "[g5,c6]@2 [c6,f6] [a#5,d#6]", K: "[g5,c6] [c6,f6]", L: "[a5,f6] [b5,f6]",
M: "[f5,d6]", N: "[a5,f6]/2",
})).s("gm_string_ensemble_2").gain(0.31).pan(0.3)
// chords · acoustic guitar steel · "acguit"
const acoustic_guitar_steel = note(`<
A@2 B@4 C D E F G D H I J K@2 L M N O P Q R S T U@2 V W@2 D X Y Z AA AB I AC AD@2 AE@2 AF AG AH AI R AJ D AK AL@2 AM
AN AO AP@2 AQ AR AS@2 AT@2 AU@3
>`.pickRestart({
A: "[~@45 g3@6 g3@6 ~ f3@12 ~ [d3,f3,b3]@12 c3@8 c3@5, ~@44 [c4,e4]@13 [g#3,b3]@13 g#3@13 ~@13, ~@44 e3@7 ~@32 [e3,g3,a3]@13]/2", // Bdim C G#m A7
B: "[[g3,a3]@13 [d3,f3]@13 [d3,f3]@7 f3@6 g3@11 ~@34 [e3,e4]@6 ~@27 c4@6 c4@13 [f3,g#3]@19 [f3,g#3]@7 ~@7 [f3,g3]@11 [f3,g3]@6 g3@6, [c3,e3]@6 ~@20 [g#3,b3]@13 e3@32 e3@13 ~@7 f3@20 f3@25 ~@56, ~@50 g3@27 g3@13 ~ a3@26 a3@19 ~@26 g#3@30, ~@50 c4@20 ~ c4@19 c4@13 ~ c4@13 ~@38 [b3,d4]@13 ~@12 [b3,d4]@12, ~@13 e4@8 ~@27]/4", // Gsus2 Dm E Fm Fsus2 C G#m Bm
C: "[b3,d4,g4]@12 [g3,b3,d4,g4]@12 ~@19 e3@5, ~@4 g3@3 g3, ~@25 e3@18 ~@5, ~@5 [c4,e4]@3", // G C
D: "~ [f3,a3,c4,f4]@12 [f3,a3]@6 f3@5 ~ a3@5 [f3,a3]@13 [f3,a3]@5, ~@13 [c4,f4]@11 [f3,c4,f4]@6 [c4,f4]@18", // F F5
E: "e3@7 e3@5 e3@7 e3@5 [e3,b3]@7 ~@5 [e3,c4]@7 ~@5, [g3,c4,e4]!2 ~@2", // E5 C
F: "~@19 f3@5 ~ [f3,g#3]@11 [f3,g#3]@6 g#3@6, a3@3 a3 ~@4, ~ f3@18 ~@29, ~ [c4,f4]@3 ~@2 [c4,f4]@2", // Fm F5
G: "~@19 g3@5 [g3,c4,e4]@12 [e3,g3,c4,e4]@12, b3@3 b3 ~@4, ~ g3@18 ~@29, ~ [d4,g4]@3 ~@4", // C G5
H: "[e3,c4]@7 ~@5 e3@7 e3@5 e3@7 e3@5 e3@7 e3@5, ~ [g3,c4,e4] [g3,b3,c4] [g3,c4,e4]", // C Cmaj7 C
I: "~ [f3,a3,a#3,d4]@12 [f3,a3]@6 f3@5 ~ a3@5 [f3,a3]@13 [f3,a3]@5, ~@13 [a#3,d4]@11 [f3,a#3,d4]@6 [a#3,d4]@18", // A#maj7 F A#
J: "~ [d3,f3]@11 [d3,f3]@6 f3@6 e3@7 e3@5 [c4,e4]@12, ~@2 [a#3,d4]@2 [g3,c4,e4]@2 [e3,g3] ~", // Dm C A# C Em
K: "[a3@10 ~@26 a3@6 ~ [d3,f3]@17 [d3,f3]@6 f3@6 ~@18 c4@6, f3@5 [f3,a#3]@2 ~@7 [e3,g3]@2, ~@10 a3@25 ~@61, ~@11 a#3@19 ~@30 [a#3,d4]@12 c4@18 ~@6, ~@2 d4@5 ~@9]/2", // Dm A#5 Em A#
L: "[f3,a#3,d4] [d3,f3,a#3,d4] [g3,a#3,c4] [e3,g3,a#3,c4]", // A# C7
M: "f3@7 f3@5 [f3,a3,c4,f4]@6 [b3,d4,g4]@18 [g3,b3,d4,g4]@12, [a3,c4,f4] ~@3", // F G F
N: "~@19 d3@5 [c3,g3]@7 ~@5 c3@7 c3@5, e3@3 e3 ~@2 [e3,a3,c4]@2, ~ d3@18 ~@29, ~ [g3,b3]@3 ~@4", // C5 Am G
O: "~ [f3,a3]@11 [f3,a3]@6 ~@7 [g3,b3]@11 [g3,b3]@6 b3@6, ~ [c4,f4] ~ [d4,g4], ~@3 a3@5", // F G F5 G5
P: "d3@7 d3@5 [d3,e3,g3,b3]@6 [c3,g3]@13 ~@5 c3@7 c3@5, [e3,g3,b3] ~@2 [e3,a3,c4]", // Em7 C5 Em Am
Q: "[a3,c4,f4]@12 [f3,a3,c4,f4]@6 g3@13 g3@5 [d4,g4]@12, ~@3 [b3,d4,g4]@3 [g3,b3] ~", // F G5 G
R: "[e3,b3] [d3,e3,g3,b3] [e3,a3,c4] [c3,e3,a3,c4], g3 ~@47", // E5 Em7 Am
S: "e3@7 e3@5 [c4,e4]@12 [a3,c4,d4]@12 [f#3,a3,c4,d4]@12, [g3,c4,e4]@2 [e3,g3] ~@5", // C D7 C Em
T: "a3@5 ~@16 [f3,f4]@3, f3@5 f3@2 ~, ~@10 a3@25 ~ a3@12, ~@11 c4@19 c4@18, ~@12 f4@29 ~@7", // F
U: "[c4@2 ~@3 c4@2 a3@3 ~@3 a3@3, g3@24 ~ g3@17 e3@24 ~ e3@29, e3@18 ~ e3@23 f3@30 ~ f3@23, ~@2 c4@2 c4 ~@5 a3@2 a3 ~@3]/2",
V: "~@13 e4@6 g3@5 ~@6 g3@6 g3@6 ~ e3@5, [g3,c4,e4]@12 [g3,c4]@6 ~ [c4,e4]@17 [c4,e4]@12, ~ e3@23 g3@6 ~@12 g3@6, ~@25 e3@18 ~@5", // C C5 C
W: "[a3@10 ~@26 a3@6 ~@25 g3@5 ~@18 c4@6, f3@30 [f3,c4]@12 ~ g3@24 ~@17 [e3,g3]@12, ~@10 a3@25 ~@61, ~@11 c4@19 ~@12 b3@24 b3@6 c4@18 ~@6, ~@2 d4@5 ~@2 [d4,g4]@3 ~@4]/2", // F5 Em G5
X: "[e3,c4]@7 ~@5 e3@7 e3@5 e3@7 e3@5 [e3,c4]@7 ~@5, ~ [g3,c4,e4] [g3,b3,c4] ~", // C Cmaj7
Y: "f3@7 f3@5 [c4,f4]@12 ~@19 f3@5, [a3,c4,f4]@2 [f3,a3] ~ g#3@3 g#3, ~@25 f3@18 ~@5, ~@5 [c4,f4]@3", // F5 F F5
Z: "e3@7 e3@5 [c4,e4]@12 c3@7 c3@5 [g3,a3]@12, [g3,c4,e4]@2 [e3,g3] ~ [e3,g3,a3]@2 [c3,e3] ~", // C Gsus2 C Em A7 C
AA: "~@19 e3@5 ~@18 c4@6, f3@3 f3 ~@2 [f3,a3]@2, ~ e3@18 ~@29, ~ [a3,c4]@3 c4@3 ~", // F Am
AB: "~@19 e3@5 ~ [e3,g3]@11 [e3,g3]@6 g3@6, g3@3 g3 ~@4, ~ e3@18 ~@29, ~ [c4,e4]@3 ~@2 [c4,e4]@2", // Em C
AC: "~@19 d3@5 [g3,c4,e4]@12 [e3,g3,c4,e4]@12, f3@3 f3 ~@4, ~ d3@18 ~@29, ~ [a#3,d4]@3 ~@4", // C A#
AD: "[a3@7 ~@5 [a3,a#3]@6 ~@18 a3@6 ~@25 d3@5 [g3,c4,e4]@12 [e3,g3,c4,e4]@12, f3@4 f3@3 f3@4 f3 ~@4, ~@2 d4@3 ~@4 [a#3,d4]@3 ~@4, ~@18 a#3@12 [a#3,d4]@12 ~ d3@24 ~@29]/2", // A#maj7 C A#
AE: "[~ [d3,f3]@11 [d3,f3,a#3,d4]@6 ~@18 [e3,g3]@6 ~@25 f3@5 g3@7 g3@5 [d4,g4]@12, ~@3 a#3@4 a3@4 a3 ~@2 [g3,b3] ~, ~@43 f3@24 ~@29, ~@9 [c4,f4]@3 [b3,d4,g4]@2 ~@2]/2", // Dm A# Em G5 G F5 G
AF: "~ [d3,e3]@11 [d3,e3]@6 e3@6 c3@7 c3@5 c3@7 c3@5, ~ [g3,b3] [e3,g3,a3] [e3,a3,c4]", // Dsus2 G A7 Am
AG: "[a3,c4,f4]@12 [f3,a3,c4,f4]@12 ~@19 g3@5, ~@4 b3@3 b3, ~@25 g3@18 ~@5, ~@5 [d4,g4]@3", // F G5
AH: "[e3,b3]@12 [d3,e3,g3,b3]@12 [c3,g3]@7 ~@5 [c3,a3]@7 ~@5, g3 ~@47", // E5 Em7 C5 F
AI: "~ [f3,a3]@11 [f3,a3]@6 a3@6 ~@18 d4@6, ~@2 [c4,f4]@2 d4@3 ~, ~@3 [g3,b3]", // F F5 G
AJ: "~@19 e3@5 ~@19 f#3@5, g3@3 g3 a3@3 a3, ~ e3@18 ~@6 f#3@18 ~@5, ~ [c4,e4]@3 ~ [c4,d4]@3", // C Csus2
AK: "[c3,a3]@7 ~@5 c3@7 c3@5 c3@7 c3@5 [c3,g3]@7 ~@5, ~ [e3,a3,c4] [e3,g#3,a3] ~", // F C5 Am Amaj7
AL: "[e3@7 e3@5 f3@7 f3@5 ~ [e3,g3]@11 [e3,g3,a#3,c4]@6 ~@25 d3@5 [g3,c4,e4]@12 [e3,g3,c4,e4]@12, [g3,a#3,c4]@2 [g3,a#3,d4]@2 ~@3 f3@4 f3 ~@4, ~@43 d3@24 ~@29, ~@9 [a#3,d4]@3 ~@4]/2", // Em C7 C C7 Gm A#
AM: "~ [c3,e3]@11 [c3,e3]@6 e3@6 [f3,c4]@7 ~@5 f3@7 f3@5, ~ [g3,a3] ~ [a3,d4,f4]", // C F5 Gsus2 Dm
AN: "~ [d3,f3]@11 [d3,f3]@6 f3@6 [g3,c4,e4]@12 [e3,g3,c4,e4]@12, ~ [a#3,d4] ~@2", // Dm C A#
AO: "c3@7 c3@5 [g3,a3]@12 f3@7 f3@5 [d#3,a#3]@7 ~@5, [e3,g3,a3]@2 [c3,e3] ~ [a3,c4,d4]@2 ~@2", // Gsus2 D#5 A7 C D7
AP: "[~ [d3,f3]@11 [d3,f3,a#3,d4]@6 e3@13 e3@5 [e3,g3,c4,e4]@6 ~ [c3,e3]@17 [c3,e3]@6 e3@6 ~@19 f3@5, ~@3 [g3,c4,e4]@3 ~@4 [g3,a3]@2 a3@3 a3, ~@73 f3@18 ~@5, ~@13 [c4,d4]@3]/2", // Dm A# C Gsus2 Csus2
AQ: "[a3,c4,f4]@12 [f3,a3,c4,f4]@12 ~@19 f3@5, ~@4 g3@3 g3, ~@25 f3@18 ~@5, ~@5 [b3,d4]@3", // F Bm
AR: "~ [d3,f3,a#3,d4]@12 [d3,f3]@6 d3@5 ~ f3@5 [d3,f3]@13 [d3,f3]@5, ~@13 [a#3,d4]@11 [d3,a#3,d4]@6 [a#3,d4]@18", // A# Dm A# Gm A#
AS: "[[a3,c4]@11 ~ [a3,c4]@6 a3@6 a3@6 a3@6 a3@6 ~@18 [a3,c4]@6 a3@6 ~@6 a3@7 a3@5 [a3,c4]@6, f2 f2, f3@24 f3@13 ~@35 a3@5 ~@19, ~@3 c4@2 c4@2 [a3,c4]@3 ~ c4@2 c4@2 ~, ~@73 f3@12 f3@11]/2", // Am
AT: "[a3@7 ~@5 [a3,c4]@6 ~@18 a3@6 a3@6 ~@36 f3@12, f3@2 f3@2 f3@2 f3 ~, ~@2 f4@3 ~@5 f4@3 f4@3, ~@18 c4@12 [c4,f4]@30 a3@6 a3@13 [a3,c4]@17, ~@61 c4@18 ~@17]/2", // Am F5 Am
AU: "[[f3,a3,c4,f4]@12 ~ a3@6 f3@5 [f3,a3,c4,f4]@6 [f3,a3,c4,f4]@12 [a3,c4,f4]@96 ~@6, ~ [c4,f4] ~@10, ~@2 f3 ~@21]/3", // F F5
})).s("gm_acoustic_guitar_steel").gain(0.25).pan(0.3)
// chords · acoustic guitar steel · "acguit" · soft notes
const acoustic_guitar_steel_2 = note(`<
~ A B ~@2 C ~ D ~ E ~ D ~ D F ~ G ~@3 H ~ I ~ J ~@6 D ~ K L ~ M D ~ N ~@2 I G ~@2 O ~@2 D ~@3 P G Q ~ P ~ R S@2 N T
U@3
>`.pickRestart({
A: "~ e3@2 ~@13", B: "~@2 [c3,e3]@2 ~@7 d3@2 ~@3", C: "~@18 f3@6 ~@19 f3@5", D: "~@20 a3@5 ~@23", E: "~@43 f3@5",
F: "~@19 d3@5 ~@18 [e3,g3]@6", G: "~@19 d3@5 ~@24", H: "~@43 g3@5, ~@19 f3@29", I: "~@7 [g3,b3]",
J: "~@3 [e3,g3] ~@4", K: "~@3 [f3,a3] ~@4", L: "~@3 [e3,g3] ~@3 [c3,e3]", M: "~@43 e3@5", N: "~@19 a3@17 ~@12",
O: "~@19 f3@5 ~@24", P: "~@19 c3@5 ~@24", Q: "~@3 [c3,e3] ~@4", R: "~@20 f3@5 ~@23", S: "[~@37 f3@36 ~@23]/2",
T: "a3!2 ~@6", U: "[~@10 a3@2 ~@9 f3@48 ~@3]/3",
})).s("gm_acoustic_guitar_steel").gain(0.15).pan(0.3)
// chords · string ensemble 1 · "accomp"
const string_ensemble_1 = note(`<
A B@5 C D E F G H E I J K L M N O P Q R S T U V W X Y Z AA E AB AC AD AE AF AG AH AI AJ R AK R AL R AM AN AO AP AQ AR
AS AR AT AR AU AV AW AX AY AZ AY BA BB ~
>`.pickRestart({
A: "~@31 e4@6 ~ g4@6 a4@4",
B: "[~@3 c5@6 e5@19 ~ d5@6 c5@6 ~ e5@6 d#5@6 e5@6 ~ d5@6 f5@6 ~ e5@6 f5@6 ~ g5@6 f5@6 ~ [a4,e5]@6 [b4,d5]@6 ~ c5@6 b4@6 ~ a4@6 g4@6 f4@13 c5@13 ~@7 c5@6 a4@6 ~ f4@6 d4@13 g#4@11 ~@2 f4@9 ~@3 d4@9 ~@3, ~@9 [f4,g#4,b4]@26 g4@26 g#4@26 g4@13 ~@140]/5", // A5 Bm Fdim
C: "b3 d4 b3@2 ~ a4 b4 a4, ~ e4", D: "a3 c4 ~ f4 f4@2 d4@2, f4@3 ~@5, ~ a3 ~@2", E: "d4 c4 b3 c4, e4",
F: "~ d4 f4 ~ f4@4", G: "~ b3 ~ g4 e4@4, ~ d4 ~@2", H: "~ c4 f4@2, f4@3 ~@5", I: "d4@3 f4 a#4 ~ a#4 a4", J: "c5",
K: "d4@3 f4 a#4 c5 a#4 a4", L: "d5@2 c5 c5@5", M: "a#4 g4@2 f4 [a#3,e4]@2 ~@2",
N: "a4@6 ~ g4@5 f4@12 b4@6 g4@6 ~@7 g4@5, ~@3 d4",
O: "~ d4@11 ~ [d4,g4]@8 ~ [e4,g4]@14 c4@5 a4@3 [e4,b4]@4, g4@11 ~@25 a4@4 ~@8", // G5 Em E5
P: "a4@6 g4@6 f4 f4@11 b4@6 g4@6 ~@7 g4@5, ~@36 d4@11 ~",
Q: "~ d4@11 ~ [d4,g4]@7 [d4,g4]@16 a4@4 a4@4 [e4,b4]@4, g4@12 ~@24 c4@7 ~@5", R: "a4 g4 f4@2 b4 g4 ~ g4, ~@3 d4",
S: "~ [d4,g4]@11 ~ g4@12 g4@5 e4@6 c4@6 a4@3 b4@3, ~@2 d4@2 ~@3 e4", // G5
T: "[e4,g4]@18 ~ e4@5 f#4@18 [c4,f#4,a4]@6, c5 ~@2 g4 ~@4", U: "[f4,a4]@18 ~ [f4,a4]@29",
V: "[g4,b4] [g4,c5]@2 ~@2 e4 [g4,c5]@2, ~@18 g4@11 ~@19, ~@19 c5@17 ~@12", // G C5
W: "~ g4@5 [a4,c5,e5]@6 ~ c5@5 ~ [c5,e5]@6 [a4,c5,e5]@17 g4@5 ~, [b4,d5]@6 ~@6 [a4,e5]@6 a4@5 ~@25", // Am C Am Bm A5
X: "[g4,b4,d5]@6 ~ g4@5 ~ [g4,e5]@5 [g4,c5,e5]@6 [g4,c5,e5]@18 g4@6, ~ [c5,e5] c5 ~@5", Y: "[f4,a4,e5]@3 c5 ~@4",
Z: "~@2 b3 c4 d4@2 [b3,g4]@2 e4@8", AA: "~@2 a3 b3 c4@2 a4@2 f4@4 f4@4, f4@3 ~@5", AB: "~ f4 a4 ~ f4 ~ f4 ~",
AC: "[d4,e4]@2 ~ g4 [g4,c5]@2 [g4,c5]@2, g4@3 ~@5, ~ [d4,e4] ~@2", AD: "[e4,a4]!2 [f4,a4]!2",
AE: "d4!2 c4!2, [e4,g4]", AF: "[f4,a4]@4 f4@2 a#4 a4, ~@3 d4", AG: "[d4,f4]!2 [e4,g4]!2",
AH: "[f4,a4]@4 [f4,a4]@2 a#4 g4, ~@3 [d4,f4]", AI: "[d4,f4]@3 [e4,g4]@2 e4 f4 g4",
AJ: "[a#3,d4]@9 [a#3,e4]@9 ~@4 b4@2", AK: "[d4,g4]@12 [d4,g4]@9 [d4,g4]@15 a4@4 a4@4 [e4,b4]@4, ~@9 c4@2 ~",
AL: "[d4,g4]@12 [d4,g4]@9 [e4,g4]@15 a4@4 a4@4 [e4,b4]@4, ~@9 c4@2 ~", // G5 Em E5
AM: "[d4,g4]@4 [d4,g4]@4 g4@2 e4@2 c4@2 a4 b4, ~@7 e4", AN: "[e4,g4]@3 [e4,g4] f#4@3 [f#4,a4]",
AO: "[f4,a4]@3 ~@4 c5, ~@3 [f4,a4]@5", AP: "~@2 g#4 g4, b4 a4 ~@2, ~ c5@2 c5@5",
AQ: "[g4,a#4,e5]@2 [f4,a#4,d5]@2 [e4,a#4,c5] ~@3", AR: "[f4,a#4,d5]@3 g4 [g4,c5,e5]@3 c5",
AS: "[g4,c5,e5]@6 g4@6 [g4,c5,e5]@9 [a4,c5,e5]@15 d5@4 d5@4 e5@4, ~@3 [f4,a4]", // C Am F
AT: "[g4,c5,e5]@2 [g4,c5,e5]@2 [a4,c5,f5] g5 [a#4,g5] a4, ~@3 d#5", // C F D#
AU: "g4@2 g4@2 g4@2 a4@2 ~@6 d5 e5, [c5,e5]!2 [f4,c5]!2, ~@5 f5@2 ~", AV: "[a4,c5]!2 [g4,b4]!2",
AW: "[f4,a#4,d5] g4@2 [g4,a#4,d5]@4 [f4,f5]", AX: "[g4,c5,e5] [a4,c5,f5]@2 [a4,c5,f5]@5",
AY: "e5 f5 e5 [f4,a4]@3 ~ f5, [f4,a4]@3 d5@4 ~, ~@3 [f4,a4]", AZ: "[g4,c5,e5,g5] [a4,c5,f5,a5]@2 [a4,c5,f5,a5]@5",
BA: "[g4,c5,e5,g5] [a4,c5,f5,a5]@3 [a4,c5,f5,a5]@2 [f4,c5,f5]@2", BB: "[c5,f5,a5,c6]",
})).s("gm_string_ensemble_1").gain(0.25).pan(0.7)
// drums · kick
const kick = s("bd").struct(`<
A B C D E F G@11 H G H G@3 H G@3 H G@3 H G@7 H G@3 H G H G H G@3 I G H G@3 H G H G H G@3 ~@2
>`.pickRestart({
A: "~@31 x ~@16", B: "~@3 x ~@5 x ~@19 x ~@5 x ~@12", C: "~@6 x ~@6 x ~@5 x ~@12 x ~@6 x ~@8",
D: "~@10 x ~@6 x ~@18 x ~@5 x ~@5", E: "~ x ~@12 x ~@5 x ~@19 x ~@5 x ~", F: "~@3 x!2 ~@2 x", G: "x ~@2 x!2 ~@2 x",
H: "x ~@2 x!3 ~ x", I: "x ~@6 x ~@3 x ~@4",
})).gain(0.22)
// drums · rim
const rim = s("rim").struct("<A B C D E F G@23 H G@11 H ~@25>".pickRestart({
A: "~@11 x", B: "~@11 x ~@12", C: "x ~@12 x ~@10", D: "~@2 x ~@12 x ~@8", E: "~@7 x ~@25 x ~@14", F: "~@11 x ~@36",
G: "~ x ~ x", H: "~ x ~@2",
})).gain(0.29)
// drums · snare
const snare = s("sd").struct("<~@5 A ~@23 A ~@11 A B@9 C B@13 ~@2>".pickRestart({
A: "~@10 x ~ x!2 ~@2", B: "~ x ~ x", C: "~@4 x ~@3 x!2 ~@2 x!2 ~@2",
})).gain(0.29)
// drums · low tom
const low_tom = s("lt").struct("<~@51 [~@7 x] ~@15>").gain(0.32)
// drums · hihat
const hihat = s("hh").struct("<A B C D E F G@11 H G H G I G@3 J G@3 K G H G@9 K G@6 L G@2 M G@12 L ~@2>".pickRestart({
A: "~@31 x ~@6 x ~@5 x ~@3", B: "~@3 x ~@5 x ~@6 x ~@5 x ~@6 x ~@5 x ~@6 x ~@5",
// … 23 more lines
More by Barry Manilow
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.