0:00/0:00
// Closer to Home — Grand Funk Railroad
// 92 bpm, 4/4, key D 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: duplicate parts dropped: ch 7 "bass" acoustic bass (copy of ch 6 "ac bass" acoustic bass)
// note: Full arrangement: all 200 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(92/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 · string ensemble 1 · "strings"
const string_ensemble_1 = note(`<
A@5 B@4 C@5 D@2 ~@74 E@8 F@2 G H@8 I@7 J@4 K@8 L@7 ~@12 M@2 N@7 O@6 ~@2 P Q@4 R@4 S@3 T U@3 V@4 W@4 X@4 Y@3 Z@3 ~@2
>`.pickRestart({
A: "[~@46 a3@12 d4@12 f#4@10 g4@11 f#4@12 d4@12 b3@13 a3@92 ~@8 a3@12]/5",
B: "[~ d4@11 f#4@11 g4@11 f#4@12 d4@11 b3@12 a3@94 ~@9 a3@11 d4@9]/4",
C: "[~@2 f#4@11 g4@11 f#4@11 d4@12 b3@12 a3@92 ~@9 a3@13 d4@11 f#4@11 g4@12 f#4@11 ~ d4@11 b3@10]/5",
D: "[~ d4@31, ~ a3@39 ~@8]/2",
E: "[~@86 a4@12 d5@38 a4@10 ~@36 a4@12 d5@48 a#4@37 c5@11 d5@49 a#4@45, ~@13 d4@371, ~@17 f4@111]/8",
F: "[~@3 d5@47 a#4@46, ~ c5 ~@46]/2", G: "~ a4@47",
H: "[~@4 a3@48 ~@49 a#3@46 a3@48 ~ a#3@47 ~ a3@48 [a#3,a#4]@46 ~@24 a4@22, ~@3 a4@96 a#4@47 ~ a4@44 ~@4 a#4@48 a4@44 ~@51 f3@46, ~@3 c#5@49 [d5,f5]@288 ~@10 f4@34]/8", // A# Dm
I: "[~@26 c#5@24 ~ d3@95 ~@48 g5@49 ~@24 d3@69, ~@3 a3@47 [d4,d5]@97 [c4,c5]@96 [d4,d5]@93, ~@7 a4@19 ~@47 e5@49 ~@46]/7", // D C D
J: "[~@27 c3@64 ~@8 d3@87 ~@6, ~@2 c5@96 d4@87 ~@7, ~@3 c4@90 ~@5 d5@94]/4",
K: "[~@3 c3@95 ~ [d3,d5]@96 ~ c3@94 ~ [d3,d5]@93, ~@2 [c4,c5]@98 ~@95 [c4,c5]@97 ~@92]/8", // D C
L: "[~@3 [c3,c4,c5]@95 ~ d5@94 ~ [c4,c5]@97 ~@45, ~@98 d3@95 c3@97 ~@46]/7", M: "[~@3 c3@29, ~ c5@11]/2",
N: "[~@4 d3@90 [c3,c5]@89 ~ d3@90 [c3,c5]@62, ~@3 d5@91 ~@89 d5@90 ~@63]/7", // C
O: "[~@14 d3@45 [c3,c5]@44 ~ d3@40, ~@27 d5@92 ~@87 d5@80 ~@2]/6", P: "~@15 a4@10 d5@11 f#5@12",
Q: "[~ g5@11 f#5@11 d5@12 b4@11 a4@100 ~ a4@11 d5@12 f#5@12 g5@10]/4",
R: "[~ f#5@11 d5@11 b4@11 a4@101 ~ a4@10 d5@13 f#5@10 g5@12 f#5@11]/4", S: "[d5@12 b4@11 a4@112 d5@9]/3",
T: "~@2 f#5@11 g5@11 f#5@12 d5@12", U: "[b4@11 a4@100 a4@11 d5@12 f#5@10]/3",
V: "[~@2 g5@11 f#5@12 d5@11 b4@10 a4@101 a4@12 d5@11 f#5@12 g5@10]/4",
W: "[~ f#5@11 d5@13 b4@10 a4@99 ~ a4@13 d5@12 f#5@11 g5@11 f#5@10]/4",
X: "[~ d5@12 b4@10 a4@114 d5@11 f#5@11 g5@11 f#5@12 d5@10]/4", Y: "[~ b4@10 a4@99 ~@3 a4@12 d5@11 f#5@8]/3",
Z: "[~@3 g5@11 f#5@11 d5@12 b4@10 a4@63 ~@34]/3",
})).s("gm_string_ensemble_1").gain(0.25).pan(0)
// other · cello
const cello = note(`<
A@4 B@6 C@2 D@2 E@2 ~@74 F@3 G@2 H I@6 J@7 K@7 L@8 M@8 N@3 ~@12 O@2 P@7 Q@7 ~ R@3 S@8 T@4 U@7 V@8 W@6
>`.pickRestart({
A: "[~@47 d3@34 g3@31 ~@4 b3@8 ~@2 a3@47 ~@19]/4", B: "[~@37 d3@34 g3@34 b3@11 ~ a3@81 ~@22 d3@34 g3@34]/6",
C: "[b3@11 a3@81 ~@4]/2", D: "[~@3 d3@23 g3@18 b3@4]/2", E: "[~@13 d3@30 ~@5, ~ a3@68 ~@27]/2",
F: "[~@3 d3@17 ~ d3@4 ~@3 d3@52 e3@11 f3@8 d3@45]/3", G: "[~@3 d3@35 e3@6 f3@7 d3@23 ~ d3@11 c3@10]/2",
H: "~ a#2@11 ~ a#2@6 c3@5",
I: "[~@3 d3@17 ~ d3@3 ~@3 d3@11 ~ c3@11 a#2@16 ~@3 a#2@3 ~@2 a#2@13 c3@12 d3@16 ~@2 d3@3 ~@2 d3@13 c3@12 a#2@16 ~ a#2@4 ~@2 a#2@11 ~@2 a#2@6 c3@6 f2@17 ~ f2@4 ~@2 f2@11 ~ f2@5 ~@2 f2@3 ~ a2@16 ~@2 a2@3 ~@3 a2@22, ~@241 g2@2 ~@45]/6",
J: "[c3@2 d3@37 c3@12 a#2@17 ~ a#2@4 ~@2 a#2@11 ~ a#2@6 c3@6 d3@23 ~ d3@12 c3@13 a#2@16 ~ a#2@4 ~@2 a#2@18 c3@6 d3@17 ~ d3@4 ~ d3@12 ~ c3@12 a#2@16 ~ a#2@4 ~@2 a#2@11 ~ a#2@7 c3@6 f2@41 ~ f2@3]/7",
K: "[g2@2 a2@49 d3@95 e3@96 f#3@94]/7", L: "[~@2 e3@96 d3@97 [c3,e3]@94 d3@95]/8",
M: "[~@2 [c3,e3]@96 d3@97 [c3,e3]@96 d3@93]/8", N: "[~@2 [c3,e3]@97 ~@45]/3", O: "[~ c3@11]/2",
P: "[~@3 [d3,f#3]@90 [c3,e3]@90 [d3,f#3]@91 [c3,e3]@62]/7", Q: "[~@28 d3@89 c3@91 d3@86 ~@42]/7",
R: "[~@5 d3@90 e3@49]/3", S: "[~@40 [d3,f#3]@91 [e3,g3]@90 [d3,f#3]@90 [e3,g3]@73]/8", T: "[~@8 d3@45 e3@43]/4",
U: "[~@5 [d3,f#3]@90 [e3,g3]@91 [d3,f#3]@89 [e3,g3]@61]/7", // D Em D Em
V: "[~@30 [d3,f#3]@90 [e3,g3]@90 [d3,f#3]@90 ~ e3@83, ~@25 g3@7]/8", // D Em D
W: "[~@7 [d3,f#3]@89 [e3,g3]@90 [d3,f#3]@58 ~@44]/6", // D Em D
})).s("gm_cello").gain(0.2)
// other · string ensemble 2 · "string2"
const string_ensemble_2 = note(`<
A@5 B@4 C D@3 E F@2 ~@74 G@2 H@8 I@2 J@2 K@2 L@3 M N@8 ~@2 O P Q@2 R S T@2 U@2 V@2 W X@2 ~@32 Y@4 Z@8 AA@7 AB@8 AC@5 ~
>`.pickRestart({
A: "[~@47 a4@10 d5@12 f#5@11 g5@12 f#5@12 d5@12 b4@12 a4@89 ~@12 a4@11]/5",
B: "[~ d5@11 f#5@12 g5@10 f#5@12 d5@12 b4@12 a4@83 ~@19 a4@11 d5@9]/4", C: "~@2 f#5@12 g5@11 f#5@11 d5@12",
D: "[b4@6 a4@46 ~@5 a4@5 d5@6 f#5@4]/3", E: "~@3 g5@12 f#5@11 g5@13 b5@9", F: "[~@2 a5@55 ~@39]/2",
G: "[~@3 d3@25 d4@46 d5@12 d4@10]/2",
H: "[~@2 d3@42 d4@7 ~@11 d4@12 ~@13 d4@12 ~@6 d4@6 ~@5 d4@6 d5@7 d4@6 d3@6 d4@5 ~@7 d4@6 f4@6 d4@6 ~@6 d4@5 f4@6 d4@6 d5@12 d4@12 d3@13 ~@6 d5@6 ~@6 d4@6 f4@6 d4@6 ~@6 d4@6 ~@5 d4@6 ~@2 d5@11 d4@12 ~@18 d4@6 ~@6 f4@6 d4@6 ~@6 f4@7 d4@5 ~@5 d4@4, ~@51 d5@23 d3@31 ~@6 d3@20 ~@15 a#3@19 ~@6 a#3@13 ~@47 d4@12 a#3@20 ~@4 a#3@13 ~@10 d3@4 ~@21 d3@12 d5@12 ~@36 f4@8 ~, ~@99 d5@11 ~@169 f4@13 c5 ~@28 d4@10 ~@8 a#3@13 ~@5 a#3@20 ~@7]/8",
I: "[~@8 a3@6 c4@7 ~@6 a3@6 c4@6 ~@2 a3@5 c4@6 ~@5 c#4@5 e4@11 a4@13 e4@10, ~@3 f3@14 ~@4 f3@14 ~@4 f3@7 ~@6 a3@44]/2",
J: "[~@15 f4@11 a4@13 f4@6 d4@5 ~@13 d4@12 f4@12 d4@9, ~@2 d4@12 ~@11 a#3@13 ~@10]/2",
K: "[~@3 d4@11 f4@12 ~ a4@12 f4@6 d4@7 ~@11 d4@11 f4@13 ~@5 f4@4, ~@52 a#3@23 ~@12 d4@8 ~]/2",
L: "[~@2 a#3@7 d4@6 f4@6 ~@5 a4@7 f4@6 ~@6 f4@6 ~@6 d4@6 f4@6 d4@6 f4@5 d4@7 ~@6 d4@6 ~@24 c4@21, ~@21 d4@8 ~@10 d4@11 ~ a#3@43 ~@5 f3@40 ~@5, ~@87 f4@12 ~@11 a3@34]/3",
M: "~@15 c#4@11 e4@22, ~ a3@11", N: "[~@2 d4@96 e4@96 f#4@101 g4@82 ~@7]/8", O: "~@14 a3@11 d4@13 f#4@10",
P: "~ g4@6 f#4@6 d4@6 b3@5", Q: "[~ a3@25 ~@22]/2", R: "~@15 a4@11 d5@12 f#5@10", S: "~@2 g5@12 f#5@11 d5@13 b4@10",
T: "[~ a4@64 ~@31]/2", U: "[~@15 a4@11 d5@12 f#5@13 g5@11 f#5@11 d5@14 b4@9]/2", V: "[~ a4@39 ~@8]/2",
W: "~@14 a4@12 d5@11 f#5@11", X: "[~@2 g5@12 f#5@12 d5@13 b4@11 a4@46]/2",
Y: "[~@29 b5@11 a5@91 g5@44 ~ g5@5 f#5@4 ~@2 f#5@3 ~@2]/4", Z: "[~ f#5@3 ~@2 f#5@6 e5@16 d5@113 c5@67 d5@91 c5@85]/8",
AA: "[~@5 d5@79 b5@10 a5@46 g5@39 b5@7 a5@84 b5@6 a5@45 ~ a5@9 g5@5]/7",
AB: "[~@6 f#5@12 g5@12 d5@79 b5@11 a5@90 d5@89 c5@85]/8", AC: "[~@2 d5@30 c5@30 [d4,d5]@17 ~]/5",
})).s("gm_string_ensemble_2").gain(0.25).pan(1)
// bass · acoustic bass · "ac bass"
const bass = note(`<
~@17 A@2 B C@2 D E F G H@3 I@4 J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF@3 AG AH AI AJ AK AL AM AN AO AP AQ
AN AO AP AQ AN AR AP AQ AN AR AP AQ AN AS AP AQ AN AT AP AQ AN AU AV@2 AW AX@3 AY@2 AZ@2 BA BB BC@2 BD@2 BE BF@2 BG@2
BH BI BJ@2 BK BL BM@2 BK BN@3 BO BP BQ@2 BR BS BT BU BH BV BW BX BY BZ@3 CA@2 CB@2 CC CD@3 CE CF CG CH CI@6 CJ CK@5 CL
CM CN CO@4 CP@2 CQ CR CS@2 CT CU CV CW CX@5 CY@2 CZ DA DB@2 DC@2 DD@2 DE DF DG@2
>`.pickRestart({
A: "[~@43 d3@9 ~@2 d3@6 ~@3 c3@3 ~@2 c3@8 ~ b2@2 ~@2 b2@4 a2@3 d3 d3@7, ~@79 c3@4 ~@13]/2",
B: "~@3 d3 d3@7 ~ c3@3 ~@3 c3@8 b2 ~ c3 c3@2 b2@4 a2@3 d3@9 ~, ~@27 b2@2 ~@19",
C: "[~@2 d3@7 ~ c3@3 ~@2 c3@9 b2@2 ~ c3@2 b2@3 a2@3 d3@9 ~@3 d3@7 ~ c3@3 ~@3 c3@9 b2@2 ~@2 b2@4 a2@2 d3 d3@10 ~ d3@4, ~@18 c3 ~@5]/2",
D: "~@5 c3@3 ~@2 c3@9 b2@2 c3@3 b2@3 a2@3 d3@10 ~@2 d3@6",
E: "~@2 c3@3 ~@3 c3@8 b2@3 ~@2 b2@3 a2@3 d3@10 ~@2 d3@6 ~@3, ~@19 c3@4 ~@25",
F: "c3@3 ~@3 c3@8 b2@3 ~@2 b2@3 a2@3 d3@10 ~@2 d3@6 ~@2 c3@3, ~@17 c3@4 ~@27",
G: "~@3 c3@9 b2@2 c3@3 b2@3 a2@3 d3@10 ~ d3@6 ~@3 c3@4 ~",
H: "[c3@9 b2@2 c3@3 b2@3 a2@3 d3@11 ~ d3@6 ~@2 c3@4 ~@2 c3@8 b2@3 c3@3 b2@3 a2@2 d3@11 ~ d3@6 ~@3 c3@3 ~@2 c3@9 b2@2 c3@2 b2@4 a2@3 d3@10 ~@2 d3@6 ~@3 c3@3 ~@2 c3@7]/3",
I: "[~@2 b2@2 ~@2 b2@4 a2@2 ~ d3@9 ~@2 d3@6 ~@3 c3@3 ~@2 c3@9 b2@2 ~ c3@3 b2@3 a2@2 d3@9 ~@2 d3@7 ~@2 c3@3 ~@3 c3@8 b2@3 ~@2 b2@3 a2@2 ~ d3@10 ~ d3@7 ~@2 c3@3 ~@3 c3@9 ~ b2@2 c3@2 b2@2 a2@2 ~ d3@10 ~@2 d3@6 ~@3 c3@3 ~@3 c3@9 b2@2 ~@2 b2@2 a2@2, ~@5 c3@3 ~@87 c3@4 ~@88 c3@2 ~@3]/4",
J: "~ d3@23", K: "~@3 [d2,d3]@43 ~@2", L: "~@3 [d2,d3]@44 ~", M: "~@3 d2@44 ~, ~ d3@18 ~@5",
N: "~@4 d2@3 d3@5 d2@3 c3@6 d2@3 b2@6 d2@3 a2@4 ~@2 f#2@3 g2@2 a2@4",
O: "~@3 c2@3 c3@6 c2@2 ~ b2@6 c2@2 ~ a2@6 c2@2 g2@4 ~@3 f#2@2 g2@3 a2@4",
P: "~@3 d2@3 d3@6 d2@3 c3@5 d2@3 ~ b2@5 d2@3 a2@5 ~@2 f#2@3 [g2,a2]@2 a2@4", // Gsus2
Q: "~@3 c2@3 c3@5 c2@2 ~ b2@6 c2@2 ~ a2@6 c2@2 ~ g2@4 ~@2 f#2@3 g2@3 a2@4",
R: "~@3 d2@3 d3@6 d2@2 c3@6 d2@3 b2@6 d2@3 a2@4 ~@3 f#2@2 g2@3 a2@4, ~@3 e3 ~@20",
S: "~@3 c2@3 c3@5 ~ c2@2 ~ b2@5 c2@2 ~@2 a2@5 c2@3 g2@4 ~@3 f#2@2 g2@3 a2@4",
T: "~@3 d2@3 d3@6 d2@3 c3@5 d2@3 ~ b2@6 d2@2 a2@4 ~@3 f#2@3 g2@2 a2@4",
U: "~@3 c2@3 c3@5 c2@3 ~ b2@6 c2@3 a2@6 c2@2 g2@4 ~@3 f#2@2 g2@2 a2@5", V: "~@3 d2@9 ~@3 d2@4 ~@29",
W: "~@3 [d2,d3]@10 ~ d3 d3@4 ~@29, ~@7 d2@2 ~@15", X: "~@2 [d2,d3] [d2,d3]@11 ~ [d2,d3]@4 ~@29",
Y: "~@3 [d2,d3]@9 d2@3 [d2,d3]@4 ~@29, ~ c3 ~@14", Z: "~@3 [d2,d3]@9 ~ d2 d3 d3@4 ~@29, ~@7 d2@2 ~@15",
AA: "~@3 [d2,d3]@10 d2 d3 d3@4 ~@29, ~@7 d2@2 ~@15", AB: "~@3 [d2,d3]@10 ~ d2 [d2,d3]@4 ~@29",
AC: "~@3 [d2,d3]@10 ~@2 d3@5 ~@28, ~@13 d2@7 ~@28", AD: "~@3 [d2,d3]@10 ~@2 d3@4 ~@29, ~@13 d2@6 ~@29",
AE: "~@3 [d2,d3]@9 ~@2 d3@5 ~@29, ~@13 d2@6 ~@29", // D
AF: "[~@2 [d2,d3]@10 ~@3 d3@6 d2@2 ~ c3@3 ~@2 c3@9 b2@3 c3@3 b2@3 a2@4 d3@11 ~ d3@7 ~@2 c3@3 ~@2 c3@10 b2@2 c3@3 b2@3 a2@3 ~ d3@11 ~ d3@7 ~@2 c3@3 ~@2 c3@10 b2@3 ~@3 b2@3, ~@13 d2@7 ~@31 c3@4 ~@83 c3@5 ~]/3", // D
AG: "a2@3 d3@10 ~@2 d3@7 ~@2 c3@4 ~ c3@10 b2@3 ~@3 b2@3, ~@42 c3@5 ~",
AH: "a2@3 d3@10 ~ d3@8 ~@2 c3@4 ~@2 c3@9 b2@3 c3@3 b2@3",
AI: "a2@3 d3@11 d3@8 ~@2 c3@4 ~@2 c3@8 b2@3 ~@3 b2@4, ~@41 c3@5 ~@2",
AJ: "a2@3 d3@11 d3@8 ~@2 c3@4 ~ c3@10 b2@2 ~@3 b2@4, ~@41 c3@5 ~@2",
AK: "a2@3 d3@10 ~@2 d3@8 ~ c3@3 ~@2 c3@10 b2@3 ~@3 b2@3, ~@42 c3@5 ~",
AL: "a2@2 ~ d3@10 ~@2 d3@8 ~ c3@3 ~@3 c3@8 b2@3 ~@3 b2@4, ~@41 c3@5 ~@2",
AM: "a2@3 d3@11 d3@8 ~ c3@4 ~@2 c3@10 b2@3 ~@3 b2@3, ~@42 c3@5 ~",
AN: "a2@2 ~ d3@11 ~ d3@8 ~ c3@4 ~@2 c3@9 b2@3 ~@3 b2@3, ~@42 c3@5 ~",
AO: "a2@2 d3@12 ~ d3@7 ~ c3@4 ~@2 c3@9 b2@3 ~@3 b2@4, ~@42 c3@5 ~",
AP: "a2@3 d3@10 ~@2 d3@8 c3@4 ~@2 c3@10 b2@3 ~@3 b2@3, ~@42 c3@5 ~",
AQ: "a2@3 d3@11 ~ d3@7 ~@2 c3@3 ~@2 c3@9 b2@3 ~@3 b2@3 a2, ~@41 c3@5 ~@2",
AR: "a2@2 d3@12 ~ d3@7 ~ c3@4 ~@2 c3@9 b2@3 ~@3 b2@4, ~@7 c3",
AS: "a2@2 d3@11 ~@2 d3@7 ~ c3@4 ~@2 c3@9 b2@3 ~@3 b2@4, ~@7 c3",
AT: "a2@2 d3@11 ~@2 d3@7 ~ c3@4 ~@2 c3@9 b2@3 ~@3 b2@4, ~@42 c3@5 ~", AU: "a2@2 ~ d3@15 ~@3 d3@3 ~@3 d3@13 d2@8",
AV: "[~@2 d3@16 ~@3 d3@2 ~@4 d3@12 d2@12 d3@15 ~@3 d3@2 ~@4 d3@12 d2@9]/2", AW: "~ d3@5 ~ d3 ~ d3@4 d2@3",
AX: "[~@3 d3@6 ~ d2@6 d3@5 d2@6 d3@6 d2@6 d3@6 c3@6 a#2@12 ~ a#2@4 ~@2 a#2@3 ~@2 a#2@10 ~@2 a#2@6 c3@6 d3@7 d2@5 d3@6 d2@6 d3@6 d2@6 c3@9]/3",
AY: "[~@3 a#2@16 ~ a#2@3 ~@3 a#2@11 ~@2 a#2@6 c3@6 d3@6 d2@5 d3@7 d2@6 d3@6 d2@5 c3@10]/2",
AZ: "[~@3 a#2@16 ~ a#2@4 ~@3 a#2@4 ~@2 a#2@3 ~@3 a#2@6 c3@6 f2@15 ~@3 f2@3 ~@2 f2@12 ~ f2@4 ~@2 f2@3]/2",
BA: "g2@2 a2@15 ~@2 a2@3 ~@4 a2@22", BB: "~ d3@2 d2@2 d3@2 d2@2 d3@2 d2@2 c3@3",
BC: "[~@2 a#2@17 ~@2 a#2@3 ~@3 a#2@12 c3@12 d3@6 d2@6 d3@6 d2@6 d3@6 d2@5 c3@10]/2",
BD: "[~@3 a#2@16 ~@2 a#2@3 ~@2 a#2@12 ~ c3@12 d3@6 d2@5 d3@6 ~ d2@5 d3@7 d2@5 c3@10]/2",
BE: "~@2 a#2@16 ~@3 a#2@3 ~@2 a#2@10 ~@2 a#2@6 c3@4",
BF: "[~@2 f2@16 ~@2 f2@4 ~@2 f2@15 ~@3 f2@3 g2@3 a2@17 ~ a2@3 ~@3 a2@22]/2",
BG: "[~@38 a3@13 d4@12 a3@12 ~@12 a3@9, ~ d3@24 d3@7]/2", BH: "~ c3@15",
BI: "~@3 c3@6 c2@5 d2@6 e2@7 f2@6 g2@6 a2@7 ~@2", BJ: "[~@5 d3@34 a3@12 d4@12 a3@12 d3@11 a3@10, ~@2 c3 ~@45]/2",
BK: "~ c3@23", BL: "~@2 c3@7 c2@5 d2@6 e2@7 f2@6 g2@6 a2@7 ~@2", BM: "[~@2 d3@37 a3@12 d4@11 ~ a3@12 d3@11 a3@10]/2",
BN: "[~@2 c3@6 c2@6 d2@7 e2@6 f2@5 g2@7 a2@6 c3@5 d3@37 a3@12 d4@12 a3@11 d3@12 a3@10]/3", BO: "~@3 c3@43 ~@2",
BP: "~@2 c3@7 c2@6 d2@6 e2@6 f2@6 g2@3 ~@2 a2@3 ~@7", BQ: "[~@2 d3@37 a3@12 d4@12 a3@12 d3@12 a3@9]/2",
BR: "~ c3@14 ~", BS: "~@3 c3@6 c2@6 d2@6 e2@6 f2@6 g2@3 ~@2 a2@2 ~@4 c3@2 ~@2", BT: "~@3 d3@35 a3@10",
BU: "~ d4@4 a3@4 d3@4 a3@3", BV: "~@2 c3@6 ~@2 c2@5 d2@6 e2@7 f2@5 g2@3 ~@3 a2@2 ~@7",
BW: "~@3 d3@2 ~@3 d3@11 ~ d2@4 ~ d3@3 ~@3 d3@11 d2@6", BX: "d3@3 ~@3 d3@11 d2@6 d3@5 d2@6 d3@6 d2@5 c3@3",
BY: "~@2 c3@11 ~ c2@5 c3@3 ~@3 c3@14 ~@3 c3@6",
BZ: "[c2@5 d2@6 e2@5 f2@6 g2@3 ~@2 a2@2 ~@4 c3@2 ~@4 d3@2 ~@3 d3@12 d2@5 d3@3 ~@3 d3@11 d2@4 ~@2 d3@2 ~@4 d3@11 d2@6 d3@5 d2@6 d3@6 d2@4 ~ c3@3 ~@3 c3@9]/3",
CA: "[~@2 c2@4 ~ c3@3 ~@3 c3@11 ~ c2@4 ~ c3@2 ~@4 c2@5 d2@6 e2@6 f2@5 g2@3 ~@3 a2@2 ~@4 c3 ~@4 d3@2 ~@4 d3@11 d2@4]/2",
CB: "[~ d3@2 ~@4 d3@11 d2@4 ~@2 d3@3 ~@3 d3@11 d2@5 ~ d3@5 d2@6 d3@6 d2@3 ~@2 c3@3 ~@3 c3@11 c2@4 ~@2 c3@3 ~]/2",
CC: "~@2 c3@13 ~@3 c3@6 c2@5 d2@5 e2@6 f2@5 ~ g2@2",
CD: "[~@4 a2@2 ~@9 d3@2 ~@4 d3@12 d2@5 d3@2 ~@4 d3@11 d2@3 ~@2 d3@3 ~@3 d3@12 d2@5 d3@6 d2@5 d3@6 d2@4 ~ c3@2 ~@4 c3@12 c2@4 ~ c3@2 ~@4 c3@10]/3",
CE: "~@7 c3@5 c2@5 d2@6 e2@6 f2@3 ~@2 g2@2 ~@4 a2@2 ~@3 b2 ~@2", CF: "~@3 d3@2 ~@4 d3@12 ~@5 d3@2 ~@4 d3@11 d2@5",
CG: "d3@2 ~@4 d3@11 ~ d2@4 ~ d3@5 ~ d2@5 ~ d3@5 d2@5 c3@3", CH: "~@3 c3@11 ~ d2 ~@4 c3@2 ~@4 c3@12 c2@3 ~ c3@3 ~@3",
CI: "[c3@11 ~ c2@5 c3@6 c2@6 c3@5 c2@2 ~@4 d3@2 ~@3 d3@12 d2@4 ~ d3@3 ~@3 d3@11 d2@4 ~ d3@3 ~@3 d3@12 d2@5 d3@6 d2@5 ~ d3@6 d2@5 c3@3 ~@3 c3@11 c2@4 ~ c3@3 ~@3 c3@14 ~@3 c3@5 c2@6 d2@5 e2@6 f2@6 g2@3 ~@2 a2@2 ~@4 c3 ~@5 d3@2 ~@3 d3@11 ~ d2@5 d3@3 ~@3 d3@12 d2@3 ~@2 d3@3 ~@3 d3@11 d2@5 ~]/6",
CJ: "d3@6 d2@5 d3@6 d2@4 ~ c3@2 ~@4 c3@12 c2@4 c3@3 ~",
CK: "[~@2 c3@14 ~@3 c3@5 ~ c2@5 d2@6 e2@5 f2@6 g2@2 ~@4 a2@2 ~@9 d3@2 ~@4 d3@11 d2@5 ~ d3@3 ~@2 d3@12 d2@4 ~ d3@3 ~@3 d3@12 d2@5 d3@6 d2@5 d3@6 d2@4 ~ c3@2 ~@4 c3@11 c2@4 ~@2 c3@2 ~@4 c3@13 ~@4 c3@5 c2@5 d2@6 e2@6 f2@5 g2@3 ~@3 a2@2 ~@4 c3]/5",
CL: "~@4 d3@2 ~@4 d3@11 d2@4 ~@2 d3@2 ~@3 d3@11 ~ d2@4, ~@4 c3 ~@43",
CM: "~ d3@3 ~@3 d3@12 d2@5 d3@6 d2@5 d3@6 d2@5 c3@2", CN: "~@4 c3@12 c2@5 c3@3 ~@3 c3@14 ~@3 c3@4",
CO: "[~ c2@5 d2@7 e2@5 f2@3 ~@3 g2@2 ~@4 a2 ~@10 d3@2 ~@3 d3@11 ~ d2@5 d3@2 ~@4 d3@11 d2@5 ~ d3@2 ~@4 d3@11 d2@5 d3@6 d2@6 d3@6 d2@5 c3@2 ~@4 c3@11 c2@5 c3@3 ~@3 c3@13 ~@4 c3@6 c2@5 d2@5]/4",
CP: "[~ e2@5 f2@6 g2@3 ~@3 a2@2 ~@9 d3@2 ~@3 d3@11 ~ d2@5 d3@2 ~@4 d3@12 d2@4 ~ d3@2 ~@4 d3@12 d2@3 ~]/2",
CQ: "~ d3@5 d2@6 d3@5 d2@6 c3@3 ~@3 c3@11 c2@5 c3@3", CR: "~@3 c3@14 ~@3 c3@6 c2@5 d2@6 e2@6 f2@5",
CS: "[g2@3 ~@3 a2 ~@10 d3@2 ~@4 d3@11 d2@5 ~ d3@2 ~@3 d3@12 d2@4 ~ d3@3 ~@3 d3@12 d2@5 d3@6 d2@5]/2",
CT: "d3@6 d2@5 c3@3 ~@3 c3@12 c2@5 c3@2 ~@4 c3@8", CU: "~@3 c2@5 c3@3 ~@3 c3@12 c2@5 c3@6 c2@6 c3@5",
CV: "~@5 d3@3 ~@3 d3@11 d2@5 ~ d3@2 ~@4 d3@11 d2@3", CW: "~@2 d3@3 ~@3 d3@12 d2@5 d3@6 d2@5 d3@6 d2@6",
CX: "[c3@3 ~@2 c3@12 c2@5 c3@2 ~@4 c3@13 ~@4 c3@5 c2@5 d2@6 e2@6 f2@6 g2@2 ~@3 a2@2 ~@3 c3 ~@5 d3@2 ~@4 d3@11 d2@6 d3@2 ~@3 d3@12 d2@3 ~@2 d3@3 ~@3 d3@12 d2@6 d3@5 d2@6 d3@6 d2@5 c3@2 ~@3 c3@12 c2@5 c3@3 ~@3 c3@12 c2@5 c3@3 ~@2 c3@10]/5",
CY: "[~@2 c2@6 c3@5 c2@6 c3@6 c2@2 ~@3 d3@2 ~@3 d3@12 d2@5 ~ d3@2 ~@3 d3@11 d2@6 d3@3 ~@2 d3@12 d2@4]/2",
CZ: "~ d3@6 d2@6 d3@6 d2@4 ~ c3@2 ~@4 c3@11 c2@5 c3@2", DA: "~@4 c3@12 c2@5 c3@3 ~@3 c3@12 c2@5 c3@4",
DB: "[~@2 c2@5 c3@6 c2@3 ~@2 d3@3 ~@3 d3@11 d2@5 d3@3 ~@3 d3@12 d2@5 d3@3 ~@3 d3@11 d2@5 d3@6 d2@5]/2",
DC: "[~ d3@6 d2@5 c3@3 ~@3 c3@11 c2@5 c3@3 ~@3 c3@12 c2@5 c3@2 ~@4 c3@12 c2@5 c3@5 c2@6 c3@5]/2",
DD: "[~ c2@4 ~ d3@2 ~@4 d3@11 d2@5 ~ d3@3 ~@2 d3@11 ~ d2@5 d3@3 ~@3 d3@12 d2@5 d3@6 d2@5 d3@6 d2@5]/2",
DE: "~ c3@3 ~@3 c3@11 c2@2 ~@3 c3@2 ~@4 c3@11 c2@5 c3@3", DF: "~@3 c3@12 c2@5 c3@6 c2@6 c3@5 c2@3 ~@3 d3@2 ~@3",
DG: "[~ d3@11 d2@4 ~ d3@3 ~@3 d3@37 ~@36]/2",
})).s("gm_acoustic_bass").gain(0.4).pan(0)
// chords · rock organ · "organ"
const rock_organ = note("<~@19 A@4 B C D E@7 F G H I ~@55 J K L@4 M@2 N@3 O@2 P@2 Q@3 ~@90>".pickRestart({
A: "[~@49 d5@3 e5@2 f#5@3 [c4,g4,a4,g5]@3 ~@15 a5@2 g5@6 f#5@11 ~ d5@2 e5@2 f#5@2 ~@2 [c4,g4,a4]@2 ~@4 g5@11 ~ a5@2 g5@5 ~ f#4 ~@10 d5@3 ~ f#5@2 ~ g5@2 [c4,g4,a4]@2 ~@15 a5@2 g5@6 f#5@12 d5@2 e5@2 f#5@2, ~@37 f#5@11 ~@13 g5@13 ~@54 f#5@12 ~@3 e5@2 ~@8 g5@12 ~@27, ~@38 [d4,f#4,a4]@17 ~@8 [c4,g4,a4]@19 ~ [d4,f#4,a4]@19 ~@7 [c4,g4,a4]@18 ~@2 [d4,a4]@20 ~@6 [c4,g4,a4]@18 ~ [d4,f#4,a4]@18, ~@131 f#4@17 ~@44]/4", // Am7 D Am7 D Am7 D5 Am7 D
B: "g5@2 [c4,g4,a4]@4 ~@13 a5@2 ~@2 f#5@2 ~@3 f#5@12 d5@3 ~ f#5@2 g5@2, ~@6 g5@12 ~@3 g5@4 ~@2 g5@2 ~@14 e5@2 ~@3, ~@8 [c4,g4,a4]@18 ~ [f#4,a4]@20 ~, ~@28 d4@19 ~", // Am7 F#m
C: "[c4,g4,a4]@4 ~@13 a5@2 g5@6 f#5@11 ~ d5@2 e5@2 f#5@2 g5@2 [c4,g4,a4]@3, ~@5 g5@12 ~@31, ~@6 [c4,g4,a4]@18 ~ [d4,f#4,a4]@20 ~@3", // Am7 D
D: "~@14 a5@2 g5@6 ~@13 d5@2 e5@2 f#5@3 [c4,g4]@4 g5@2, ~ g5@6 ~@4 f#5@6 ~@7, ~@3 [c4,g4,a4]@18 ~@2 a4@24 ~, ~@23 [d4,f#4]@19 ~@6", // C5 Am7 D
E: "[~@3 g5@8 ~ a5@2 g5@6 f#5@12 d5@2 e5@2 f#5@2 ~@2 [c4,g4]@4 ~@13 a5@2 g5@6 f#5@11 ~ d5@3 [e5,f#5]@3 g5@2 ~ [g4,a4]@2 ~@5 g5@9 a5@2 g5@7 f#5@11 d5@3 e5@2 f#5@4 [c4,g4,a4]@2 g5@2 ~@3 g5@10 ~ a5@2 g5@5 ~@13 d5@2 e5@2 f#5@3 ~ [c4,g4]@3 ~@15 g5@6 ~@13 d5@3 e5 f#5@3 g5@2 [c4,g4]@3 ~@2 [c4,g4,a4]@17 ~@2 [d4,f#4,a4]@20 ~@2 [c4,g4,a4]@3 ~@3 [c4,g4,a4]@17 ~ [d4,f#4,a4]@20 [c4,g4,a4]@4 ~@2 [c4,g4,a4]@16 ~, ~ [c4,g4,a4]@18 ~ a4@24 ~@2 [c4,g4,a4]@17 ~@2 [d4,f#4,a4]@20 c4@2 ~@5 [c4,g4,a4]@18 ~ [d4,f#4,a4]@20 ~@6 [c4,g4,a4]@19 ~ a4@23 ~@22 [f#4,a4]@24 ~@110, ~@20 [d4,f#4]@19 g5@2 ~@4 g5@12 ~@99 f#5@12 ~@8 g5@3 ~@3 g5@10 ~@2 a5@3 ~@4 f#5@12 ~@14 g5@15 ~@5 [d5,f#5]@7 ~@39 [d5,f#5]@12 ~@31, ~@157 [d4,f#4]@19 ~@7 [c4,g4,a4]@18 ~ d4@20 ~@114]/7", // C5 Esus2 Gsus2 Am7 C5 Am7 D Am7 …
F: "~@3 [d4,f#4,a4]@4 ~@41, ~@3 [d5,f#5]@11 ~@34", G: "~@3 [d4,f#4,a4]@5 ~@40, ~ [d5,f#5]@3 ~@12",
H: "~@3 [d5,f#5]@8 ~@37, ~@2 [d4,f#4,a4]@9 ~@37, ~@3 c5 ~@44", I: "~ [f#4,d5,f#5]@3 ~@12, ~@2 [d4,a4]@9 ~@37",
J: "~ [d3,d4,f4]@15, ~ a4@23", K: "~@3 [d3,d4,f4,a4]@16 ~ [d3,d4,f4,a4]@4 ~@3 [d3,d4,f4,a4]@21",
L: "[~@3 [d3,d4,f4,a4]@17 ~ [d3,d4,f4,a4]@3 ~@3 [d4,f4]@8 ~@4 [c4,e4]@6 ~@6 [a#2,a#3,d4,f4]@17 ~ [a#2,a#3,d4,f4]@5 ~ d4@6 a#3@4 ~@8 c4@4 ~@2 [f4,a4]@17 ~@4 f4@3 ~@6 f4@8 ~@4 [c4,e4,g4]@3 ~@5 a#3@20 ~@2 a#3@5 a#3@4 ~@3 c4@5 c4@4, ~@26 [d3,a4]@13 c3@12 ~@24 [a#2,f4]@12 c4@5 ~@7 [d3,d4]@16 ~ d3@24 ~ c3@6 ~ [a#2,f4]@22 ~ a#2@12 [c3,e4,g4]@9, ~@75 a#3@4 ~@8 [e4,g4]@9 ~@22 d4@11 ~@18 d4@22 ~@2 [d4,f4]@8 ~@13, ~@88 c3@12 ~@23 a4@15 ~@54]/4", // Dm C A# F C D5 A#5 D …
M: "[~@3 [d3,f4]@17 ~@7 f4@5 d4@2 ~@5 [c4,e4]@6 ~@7 [a#3,d4,f4]@17 [a#3,d4,f4]@5 ~ [a#3,d4]@14 ~@7, ~@2 [d4,a4]@18 d4@12 ~@43 f4@21, ~@26 a4@17 ~@53, ~@26 d3@13 c3@12 a#2@45]/2", // Dm C A# D5
N: "[~@27 f4@22 ~@26 a4@19 ~@5 [d3,d4,f4]@22 ~ [d3,d4,f4]@12 ~ e4@9, ~@3 a3@118 ~ a3@8 ~@14, ~@3 [f2,f3]@48 a2@49 ~@34 c3@10, ~@3 c4@40 ~@8 [c#4,e4]@43 ~@40 c4@5 ~@5]/3", // Dm F C#m
O: "[~@3 f4@20 ~@10 d4@6 a#3@6 d4@2 ~@4 d3@19 ~@5 f4@11 ~ e4@9, ~@2 [a#2,a#3,d4]@20 ~ a#2@27 a3@18 ~@2 a3@12 ~@4 c3@10, ~@23 a#3@11 ~@15 d4@22 d3@16 ~@9, ~@27 f4@44 ~@3 d4@12 c4@5 ~@5]/2", // A#
P: "[~@39 [d4,f4]@9 ~@3 [d3,d4,f4]@20 ~@3 [d3,d4,f4]@12 ~ e4@7 ~@2, ~ [a#2,d4,f4]@11 a#2@14 ~@17 c3@5, ~@3 a#3@29 a#3@14 ~@4 a3@18 ~@3 a3@11 ~@14, ~@25 d4@10 ~@51 c4@5 ~@5, ~@26 f4@11 ~@59]/2", // Dm A#
Q: "[~@3 [a#2,f4]@48 ~@24 f4@23 ~@24 a4@22, ~@2 a#3@40 ~@9 a3@93, ~ d4@13 ~@3 [f2,f3]@16 [a2,c#4]@15, ~@51 c4@39 ~@8 e4@46]/3", // A#5 F A
})).s("gm_rock_organ").gain(0.12).pan(1)
// chords · piano
const piano = note(`<
~@17 A@6 B C D E@7 F G@3 H I J K L M@5 N@6 O@6 P@12 Q@3 R@2 S@2 T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM
AN AO AP AQ AR AS AT@2 AU@3 AV@3 AW@2 AX@2 AY@2 AZ@2 BA@2 BB@2 BC@2 BD@2 BE@2 BF@2 BG@2 BH BI@2 BJ@8 BK@4 BL@3 BM@8
BN@4 BO@5 BP@8 BQ@4 BR@7 BS@8 BT@3 ~
>`.pickRestart({
A: "[~@42 a4@21 [c3,c4,g4,a4]@5 ~ [c3,c4,g4,a4]@18 ~ [d3,d4,f#4,a4]@18 ~@2 [c3,c4,g4,a4]@3 ~@3 [c3,c4,g4,a4]@17 ~@2 [d3,d4,f#4,a4]@20 ~ [c3,c4,a4]@3 ~@2 [c3,c4,g4,a4]@17 ~@24 [c4,g4,a4]@5 [c3,c4,g4,a4]@18 ~ [f#4,a4]@11 ~@5 d3@4 [c3,c4,g4,a4]@3 ~@2 [c3,c4,g4,a4]@20 [d4,f#4,a4]@12 [d4,f#4,a4]@7, ~@42 [d3,d4,f#4]@26 ~@85 g4@3 ~@22 [d4,f#4]@43 ~@2 d4@11 ~@2 [d4,f#4,a4]@10 ~@42, ~@178 a4@21 c3@6 ~@83, ~@179 d3@43 ~@2 d3@16 ~@29 d3@19]/6", // Am7 D Am7 D F Am7 F#m Am7 …
B: "~@2 [c3,c4,g4,a4]@3 ~@3 a4@19 [d4,f#4,a4]@12 [d4,f#4,a4]@7 ~@2, ~@8 [c3,c4,g4]@39 ~, ~@27 d3@20 ~", // Am7 D C5
C: "[c3,c4,g4,a4]@3 ~@3 [c3,c4,g4,a4]@19 [d4,f#4,a4]@12 [d4,f#4,a4]@8 [c3,c4,g4,a4]@3, ~@25 d3@20 ~@3", // Am7 D Am7
D: "~@4 c3@17 ~ [d4,f#4,a4]@12 [d4,f#4,a4]@8 ~ c3@3 ~@2, ~@3 [c4,g4,a4]@16 ~@3 d3@20 [c4,g4,a4]@3 ~@3", // D Am7
E: "[~ [c3,c4,g4,a4]@19 [d4,f#4,a4]@12 [d4,f#4,a4]@7 ~ [c3,c4,g4,a4]@3 ~@4 [c4,a4]@17 ~@2 f#4@11 [d4,f#4,a4]@8 ~ [c3,c4,g4,a4]@3 ~@3 a4@19 [d4,f#4,a4]@12 [d4,f#4,a4]@8 [c3,c4,g4,a4]@3 ~@3 a4@19 ~ [d4,f#4,a4]@11 a4@8 ~ [c3,c4]@6 a4@19 [d4,f#4,a4]@12 a4@8 [c3,c4,g4,a4]@6 a4@20 [d4,f#4,a4]@11 ~@9 [c3,g4,a4]@5 ~@20 f#4@11 a4@8 ~ [c3,c4,g4,a4]@6 [c3,c4,g4,a4]@17, ~@20 d3@19 ~@7 g4@17 ~@2 [d4,a4]@12 ~@91 [d4,f#4]@34 ~@12 [d4,f#4]@34 ~@11 d4@14 a4 c3@39 ~@23, ~@47 c3@38 ~@7 [c3,c4,g4]@39 ~@6 [c3,c4,g4]@39 [g4,a4]@6 ~ [c3,c4,g4]@39 ~@6 [c3,c4,g4]@39 c4@6 [c4,g4]@39 ~@24, ~@66 d3@19 ~@26 d3@22 ~@24 d3@45 d3@46 d3@44 [d4,a4]@12 [d4,f#4]@32, ~@259 a4 f#4@33 d3@43]/7", // Am7 D Am7 F D Am7 D Am7 …
F: "~@3 d4@3 ~@9 c4@6 d3@3 b3@6 d3@3 a3@2 b3@2 ~ c4@7 ~@3, ~@3 [f#4,a4]@17 ~@28, ~@3 d3@9 d3@7 ~@29, ~@6 d4@13 ~@29", // F#m
// … 286 more lines
More by Grand Funk Railroad
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.