0:00/0:00
// Only Yesterday — Carpenters
// 123 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 104 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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 · "FRETLESS"
const bass = note(`<
A@2 B C D E F G H I F J K L M N O P Q R S 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 AU
AV AS AW AX AY AZ BA BB BC BD BE BF BG F E F BH H BI BJ BK BL BM BN BO BP BM BQ BR BS BT BU BV AM BW AG BX BY BZ CA CB
CC CD CE AW CF CG CH CI CJ CK CL CM CN CO
>`.pickRestart({
A: "[d2@10 f2@2 d3 ~ d3@12 f2@2 a2@2 f2@2]/2", B: "d#2@6 b2 d#2", C: "f2@5 ~ f2@2 g2@4 g1@4", D: "c2@7 g1",
E: "c2@15 ~", F: "c2@13 ~ g1@2", G: "c2@6 a2 c2", H: "d2@11 ~ a1@4", I: "g1@6 d2 g1", J: "c2@5 g2 c2@2",
K: "a1@6 a2 g2", L: "f#2@3 d2", M: "g2@11 ~ g2@2 f2@2", N: "e2@7 e1", O: "f1", P: "d2", Q: "g1@7 ~ g1@7 ~",
R: "g1 ~ g1@2 ~@2 g1 ~ g1@7 ~", S: "c2@5 ~ c2 ~ c2@5 ~ g1@2", T: "c2@5 ~ c2@2 g2@3 ~ c2@4", U: "d2@5 ~ d2@8 a1@2",
V: "d2 ~ d2@2 ~@2 d2 ~ d2@8", W: "d2@4 ~@2 d2 ~ d2@5 ~ a1@2", X: "d2@3 d1", Y: "c2@6 ~ g1",
Z: "c2@6 c3 ~ c3@2 a2@2 g2@2 e2@2", AA: "a1@5 ~ a1@2 a2@4 g2@4", AB: "f#2@3 f#2@3 d2@2", AC: "g2@7 ~ g2@4 f2@4",
AD: "e2@5 ~ e2@8 c2@2", AE: "f2@5 ~ f2 ~ f2@4 e2@4", AF: "d2@5 ~ d2@6 ~@2 d2@2", AG: "g1@5 ~ g1 ~ g1@5 ~ g1 ~",
AH: "g1 ~ g1@3 ~ g1 ~ g1@3 ~ g1@4", AI: "a#1@5 ~ a#1@2 a#1@6 f1@2", AJ: "a#1@5 ~ a#1@2 f2@4 a#1@2 c2@2",
AK: "d2@5 ~ d2@2 a1@7 ~", AL: "d2@5 ~ d2 ~ d2@6 c2@2", AM: "a#1@5 ~ a#1@2 f1@5 ~ f1@2",
AN: "a#1@5 ~ a#1@2 f1@4 a#1@4", AO: "g1@5 ~ g1 ~ g1@4 d2@4", AP: "g2@4 g1 ~ g1@2 a1 ~ a1@2 b1 ~ b1@2",
AQ: "c2@3 ~ c2@4 c2@2 a1@2 g1@4", AR: "c2@5 ~ c2@2 g1@4 c2@4", AS: "d2@5 ~ d2@2 a1@4 d2@4", AT: "g1@3 g2@3 e2 d2",
AU: "c2@5 ~ c2@2 g1@5 ~ g1@2", AV: "c2@5 ~ c2@2 g2@2 g1@2 c2@4", AW: "g1@4 g2 ~ g2@2 a2@2 g2@2 e2@2 d2@2",
AX: "e2@5 ~ e2@2 b1@4 ~@2 b1@2", AY: "e1@5 ~ e1@2 f#1@4 g#1@4", AZ: "a1@3 b1@3 a1@2", BA: "a1@5 ~ a1@2 e2@4 a1@4",
BB: "d2@5 ~ d2@4 a2@2 f2@2 d2@2", BC: "g1@5 ~ g1@2 d2@4 g1@4", BD: "d2@5 ~ d2@4 d3 ~ d3@2 c3@2", BE: "g2@15 ~",
BF: "c2@5 ~ c2@8 g1@2", BG: "c2@5 g2@2 e2", BH: "c2 ~ c2 ~@3 c2 ~ c2@8", BI: "g1@2 g2 g1", BJ: "c2@14 g2 ~",
BK: "c3 d3 e3@3 d3 c3 g2", BL: "a1@10 a1@2 g1@3 ~", BM: "f#1@6 d2 f#1", BN: "g1@6 g2 f2", BO: "e2@11 ~ e2@4",
BP: "f2@5 c2 f1@2", BQ: "g1@5 ~ g1 ~ g1 ~ g1@3 ~ g1 ~", BR: "g1 ~ g1@3 ~ g1@3 ~ g1 ~ g1@2 a1@2",
BS: "a#1@5 ~ a#1 ~ a#1@5 ~ f1@2", BT: "a#1@2 ~ a#1@2 f2 a#1 c2", BU: "d2@5 ~ d2@2 a1@5 ~ a1@2",
BV: "d2@6 d3 ~ d3@2 c3@2 a2@2 f2@2", BW: "a#1@6 f2@3 ~ f1@2 a#1@4", BX: "g1 ~ g1@3 ~ g1@3 ~ g1@2 a1@2 b1@2",
BY: "c2@5 ~ c2 ~ c2@2 g1@2 a1@2 g1@2", BZ: "c2@5 ~ c2@2 g2@4 c2@2 g1@2", CA: "d2@2 ~ d2 a1@2 d2@2",
CB: "g1@5 ~ g1@2 d2@2 g1@2 g2@2 g1@2", CC: "c2@5 ~ c2@2 g2@4 g1@4", CD: "c2@5 ~ c2@2 g2@2 g1@2 c2@2 c#2@2",
CE: "d2@4 ~@2 d2@2 a1@4 d2@3 ~", CF: "e2@5 ~ e2@2 b1@4 e2@3 ~", CG: "e1@5 ~ e1@2 b1@2 e1@2 e2@2 e1@2",
CH: "a1@5 ~ a1@2 e2@5 ~ e2@2", CI: "a1@5 ~ a1@2 a2@2 e2@4 a1@2", CJ: "d2@6 a2 ~ a2@2 g2@2 d2@2 b1@2",
CK: "g1@2 ~ g1 d2@2 g1@2", CL: "d2@4 ~@2 d2@4 a1@2 d2@3 ~", CM: "g1@6 g2@6 g1@3 ~", CN: "c2@5 ~ g2 ~ g2@4 e2@2 d2@2",
CO: "c2@3 ~",
})).s("gm_fretless_bass").gain(0.23)
// chords · piano · "A.PIANO 1"
const piano = note(`<
A B C D E@2 F G H I J K L M N O P Q R S E@2 T U V W X Y L Z N AA P AB AC AD AE AF AG AH AE AI AJ@2 AK AL AG AM AK AL
AG AN AO AP AQ AR AS AT AU AV AW AX E@2 F G H I J K L M N O P AY AZ BA AE AF AG AH AE AI AJ@2 AK AL AG AM AK AL AG AN
AO AP AQ AR AS AT AU AV AW AX
>`.pickRestart({
A: "e4@6 d4@2 d4@6 c4 ~", B: "c4@6 b3 ~ b3@7 ~", C: "c4@6 b3 ~ b3@6 a3 ~", D: "a3@6 g3@2 g3@7 ~",
E: "[c3,e3,g3]@15 ~", F: "c3@3 g3 f3@3 e3", G: "d3@3 e3 f3@4", H: "[d3,f3,a3]@15 ~", I: "g3@15 ~", J: "[c3,g3]",
K: "c3@3 a3 g3@4", L: "[a2,e3]", M: "~@8 c4@7 ~, d3 ~, ~ f#3@3", N: "g3@6 d3@2 g3@7 ~", O: "[e3,g3]",
P: "f3@6 c3@2 f3@7 ~", Q: "[d3,f3]", R: "~ g3@2 a3", S: "g3@2 f3@4 e3@2 d3@7 ~", T: "f#3@3 e3 d3@3 e3",
U: "f#3@6 e3@2 d3@7 ~", V: "[f3,g#3]@15 ~", W: "b3 d4", X: "c4", Y: "a3@3 g3 e3@2 c3@2", Z: "d3 ~ c4@2, ~ f#3@3",
AA: "[e3,g3]@15 ~", AB: "[d3,a3]@15 ~", AC: "[g3,b3]@3 a3", AD: "[g3,d4]@15 ~", AE: "[a#3,f4]@15 ~", AF: "[a#3,f4]",
AG: "[d4,f4]@15 ~", AH: "d4@5 ~ d4@2 a3@7 ~", AI: "[a#3,f4]@3 g#3", AJ: "[[g3,d4,f4]@12 ~@4 f4@15 ~, ~@12 g3@19 ~]/2",
AK: "[c4,g4]", AL: "[c4,g4]@15 ~", AM: "[d4,f4]@2 b3 g3", AN: "[g3,d4]", AO: "[e3,g#3,b3]@15 ~", AP: "e3 d4",
AQ: "[a3,c4]", AR: "~@4 g3@4 a3@7 ~", AS: "d4@15 ~", AT: "[g3,f4]", AU: "~@2 d4@2 c4 a3@2 g3",
AV: "f3@2 f3 e3@2 d3 e3@2", AW: "c3@2 g3@2 a3 g3@2 a3", AX: "g3 a3@2 g3 c3@2 ~@2", AY: "[d3,c4]", AZ: "[g3,b3]@3 d3",
BA: "g3",
})).s("gm_piano").gain(0.36)
// chords · piano · "A.PIANO 1"
const piano_2 = note(`<
A B C D E F G@2 H I J@2 K L M N O P Q@2 E R S@2 T U V@2 K W X Y Z AA AB AC AD AE AF AG AH AE AI AJ AK AL@2 AM AK AL@2
AN AO AP AQ AR AS AT AU AV@3 E R AW@2 H AX AY@2 K AZ BA BB BC BD AB BE AD AE BF BG AD AE BH BI BJ AL@2 AM AK AL@2 AN
AO BK BL AR BM AT BN BO BP@2
>`.pickRestart({
A: "~@6 d5 ~@5 [f4,a4]@2 c5 ~, e5@3 ~ d5@3 ~, ~@2 [f4,a4]@3 ~@3", // F
B: "~@6 b4 ~@5 [d4,f4]@3 ~, c5@6 ~@2 b4@7 ~, ~@4 [d4,f4]@7 ~@5", // Dm
C: "~@6 b4 ~@5 [d#4,f#4]@2 a4 ~, c5@3 ~ b4@3 ~, ~@4 [d#4,f#4]@7 ~@5", // D#m
D: "~@6 g4 ~@5 [d4,f4]@3 ~, a4@6 ~@2 g4@7 ~, ~@2 [d4,f4]@3 ~@3", E: "c4@3 ~ c4 ~ c4@6 e4@4",
F: "g4@3 ~ g4 ~ g4@4 f4@2 e4@4", G: "[~@4 [a3,c4]@6 ~@2 [a3,c4] ~@7 [a3,c4]@7 ~ [a3,c4]@2 ~@2, d4@15 ~]/2",
H: "d4@3 ~ d4 ~ d4@6 f4@4", I: "~@8 b4@3 a4@3 g4@2, b4@7 ~@9, ~ [d4,f4]@3",
J: "[~@6 g4@2 ~@4 c4@4 ~@4 c4@7 ~ c4@4, f4@3 ~ e4@12, ~@4 c4@7 ~@21]/2", K: "~@2 c4@2 e4 g4@3",
L: "a4@4 c5 b4 a4@2, c5@3 ~@5", M: "~@4 [d4,g4]@9 ~ d4@2, b4@7 ~", N: "b4 ~ b4 ~ b4@2 c5@6 g4@4, e4@15 ~",
O: "~@2 [c4,f4]@5 c4, a4@7 ~", P: "a4 ~ a4 ~ a4@2 g4@6 f4@4, c4@7 ~", Q: "[e4@3 f4 d4@11 ~, c4@2 b3@5 ~]/2",
R: "g4@5 ~ g4@2 f4@4 e4@4", S: "[~@4 [a3,c4]@7 ~ [a3,c4]@3 ~@5 [a3,c4]@6 ~@2 [a3,c4]@4, d4@31 ~]/2",
T: "d4@3 ~ d4 ~ d4@6 f4@4, b3@7 ~", U: "~@6 d5@2 c5@4 b4@3 ~, b4@3 ~@5, ~@4 [f4,g#4]@11 ~",
V: "[~@3 c5 ~@2 e4@2 ~@2 [c4,e4]@6, b4@3 ~ g4@12, ~@4 [e4,g4]@5 ~@23]/2", W: "a4@4 c5 b4 a4@2, c5@7 ~@9",
X: "~@2 [d4,g4]@5 d4, b4@7 ~", Y: "b4 ~ b4 ~ b4@2 c5@6 g4@4, e4", Z: "~@4 [c4,f4]@6 ~@2 [c4,f4]@3 ~, a4@7 ~",
AA: "a4 ~ a4 ~ a4 ~ b4@5 ~ c5@3 ~, f#4@13 ~@3", AB: "d5@4 g4 ~ g4@9 ~, f4@15 ~",
AC: "[g4,b4] ~ [g4,b4]@6 [f4,a4,c5]@4 [g4,b4,d5]@4", AD: "[d5,f5]@3 ~ [d5,f5]@2 [c5,e5]@4 [a#4,d5]@6",
AE: "[d5,f5]@3 ~ [d5,f5]@2 [c5,e5]@4 [a#4,d5]@5 ~", AF: "d5@3 ~ d5@4 e5 ~ f5@6, a4",
AG: "~@4 [f4,a4]@6 ~@2 [f4,a4]@3 ~, d5@15 ~", AH: "[d5,f5]@3 ~ f5@2 [c5,e5]@4 [a#4,d5]@6, ~@4 d5 ~@11",
AI: "[c5,d5] ~ [c5,d5] ~ [c5,d5] ~ [c5,d5]@9 ~", AJ: "[g4,b4] ~ [g4,b4] ~ [g4,b4]@2 [a4,c5]@4 [b4,d5]@6",
AK: "[c5,e5]@3 ~ [c5,e5]@3 ~ [c5,e5] ~ [c5,e5]@5 ~", // C
AL: "[[d5,f5]@2 [c5,e5]@2 d5 c5@2 a4@3 [c5,e5]@2 [b4,d5] [a4,c5]@3]/2", AM: "[g4,b4]@4 g4@11 ~",
AN: "[g4,b4]@3 ~ [g4,b4]@2 [a4,c5]@4 [b4,d5]@6", AO: "~@2 e4@2 g#4 b4@3",
AP: "[c5,e5]@4 [b4,d5]@4 [a4,c5]@2 [g#4,b4]@5 ~", AQ: "[a4,c5]@3 ~ [a4,c5]@2 [b4,d5]@6 [a4,c5]@4",
AR: "[b4,d5]@2 [a4,c#5] a4, e5@3 ~", AS: "[e5,g5]@3 [d5,f5]@3 [c5,e5]@2", AT: "[b4,d5]@3 [a4,c5]@3 [g4,b4]@2",
AU: "[f4,a4,d5]@7 ~", AV: "[[a4,d5]@3 ~ [a4,d5] ~ [g4,c5]@4 [f4,b4]@2 g4@4 [e4,g4]@27 ~@5, ~@3 c5@8 ~]/3",
AW: "[~@4 [a3,c4]@7 ~ [a3,c4]@4 ~@4 [a3,c4]@7 ~ [a3,c4]@3 ~, d4@31 ~]/2", // Am
AX: "~@8 b4@2 ~ a4@3 g4@2, b4@7 ~@9, ~@4 [d4,f4]@11 ~", // Dm
AY: "[~@6 g4@2 ~@4 c4@3 ~@5 c4@7 ~ c4@4, f4@3 ~ e4@12, ~@4 c4@7 ~@21]/2", AZ: "[a4,c5]@4 c5 b4 a4@2",
BA: "~@2 [d4,g4]@4 ~ d4, b4@7 ~", BB: "b4 ~ b4 ~ b4 ~ c5@6 g4@4, e4@15 ~", BC: "~@2 [c4,f4]@5 c4, a4@13 ~@3",
BD: "a4 ~ a4 ~ a4 ~ b4@5 ~ c5@4, f#4@13 ~@3", BE: "[g4,b4] ~ [g4,b4]@4 [a4,c5]@4 [b4,d5]@6",
BF: "d5@3 ~ d5@4 e5@2 f5@6, a4", BG: "~@4 [f4,a4]@7 ~ [f4,a4]@3 ~, d5",
BH: "[c5,d5] ~ [c5,d5] ~ [c5,d5] ~ [c5,d5]@10", BI: "[g4,b4] ~ [g4,b4] ~ [g4,b4]@2 [a4,c5]@4 [b4,d5]@5 ~",
BJ: "[c5,e5]@3 ~ [c5,e5]@3 ~ [c5,e5] ~ [c5,e5]@6", BK: "[c5,e5]@2 [b4,d5]@2 [a4,c5] [g#4,b4]@3",
BL: "[a4,c5]@3 ~ a4@2 [b4,d5]@6 [a4,c5]@4, ~@4 c5 ~@11", BM: "[e5,g5]@6 [d5,f5]@5 ~ [c5,e5]@3 ~",
BN: "[f4,a4,d5]@15 ~", BO: "[a4,d5]@3 ~ [a4,d5] ~ [g4,c5]@4 [f4,b4]@2 g4@3 ~", BP: "[[e4,g4]@7 ~]/2",
})).s("gm_piano").gain(0.46).pan(0.6)
// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
~@20 A@2 B@2 C@2 A@2 D E F@2 G H I@2 J@2 K@2 J@2 G L M@2 N O P@2 Q R S@2 D T N U N V@3 A@2 W@2 N O X@2 D E Y@2 Q E U R
Z@2 AA@2 J@2 G AB AC@2 N O P@2 Q R AD@2 D T N U N V@3
>`.pickRestart({
A: "[g3,c4,e4]/2", B: "[a3,c4,f#4]/2", C: "[g#3,b3,d4]/2", D: "[a3,c4,e4]@15 ~", E: "[a3,c4,f#4]",
F: "[[b3,d4] [b3,e4], g4]/2", G: "[a3,c4,f4]", H: "[a3,c4,f#4]@15 ~", I: "[f4@15 ~ g4@16, [b3,d4]]/2",
J: "[[a#3,d4,f4]@31 ~]/2", K: "[a3,d4,f4]/2", L: "f4@7 ~ g4@7 ~, [b3,d4]@15 ~",
M: "[e4@15 ~ f4@3 e4@12 ~, [g3,c4]@31 ~]/2", N: "[a3,d4,f4]@15 ~", O: "[b3,d4,f4]",
P: "[e4@15 ~ f4@4 e4@11 ~, [g3,c4]@31 ~]/2", Q: "[a3,c4,f4]@15 ~", R: "[b3,d4,g4]", S: "[e4@16 d4@15 ~, [g#3,b3]]/2",
T: "d4@8 c#4@7 ~, [a3,e4]@15 ~", U: "[b3,d4,f4]@15 ~",
V: "[[a3,d4,f4]@3 [c4,e4]@2 [b3,d4] [c4,e4]@16 ~@2, ~@3 g3@19 ~@2]/3", W: "[[a3,c4,f4]@31 ~]/2",
X: "[[g3,c4,e4]@31 ~]/2", Y: "[[b3,d4] [b3,e4], g4@31 ~]/2", Z: "[a#3,d4,f4]/2", AA: "[[a3,d4,f4]@31 ~]/2",
AB: "f4@7 ~ g4@8, [b3,d4]@15 ~", AC: "[e4@15 ~ f4@4 e4@11 ~, [g3,c4]]/2", AD: "[e4@3 d4, [g#3,b3]]/2",
})).s("gm_string_ensemble_2").gain(0.19).pan(0.3)
// other · oboe
const oboe = note("<A B@2 C@3 ~@6 D E F G H I J@2 ~@3 K L@2 M@2 ~@11 N O@2 ~@39 P Q@2 ~@20>".pickRestart({
A: "~@3 a4", B: "[e5@3 f5 d5@6 ~@4 f#4@2]/2", C: "[a4@6 b4@2 g4@25 ~@15]/3", D: "~@2 c4@2 e4 g4@3",
E: "c5@7 ~ c5@2 b4@2 a4@4", F: "b4@7 d4", G: "b4 ~ b4 ~ b4@2 c5@6 g4@4", H: "a4@13 ~ c4@2",
I: "a4 ~ a4 ~ a4@2 g4@6 f4@4", J: "[e4@3 f4 d4@10 ~@2]/2", K: "~@2 d5 a4", L: "[g#4@7 b4]/2", M: "c5/2",
N: "~ d4 e4 f4 e4 d4 a3 f3", O: "[d3@21 ~@11]/2", P: "~ d5 e5 f5 e5 d5 a4 f4", Q: "[d4@3 ~]/2",
})).s("gm_oboe").gain(0.16).pan(0.2)
// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
~@4 A B C D E F A B G H I J K L M N O P Q R S T A U V W X J Y H Z AA AB AC AD AE AB AC AF AG AH AI AJ AK AL AM AN AK
AO AP AQ AR AS AT AU AV@2 ~ A B AW AX AY AZ A BA BB BC BD BE BF BG BH BI BJ BK AD AN AB BL BM BN AH BO BP AK AL BQ BR
AK BS BT BU BV@2 BW BX BY@2 ~
>`.pickRestart({
A: "~@3 e4@5, c3@7 ~, ~ g3@7, ~ c4@3", B: "~@3 e4@5, c3@15 ~, ~ g3@7, ~ c4@3", C: "~@3 f4@5, c3@15 ~, ~ a3@7, ~ c4@3",
D: "~@3 f4@5, c3, ~ a3@7, ~ c4@3", E: "~@3 f4@5, d3@15 ~, ~@2 a3@13 ~, ~@4 d4@11 ~",
F: "~@6 b3@9 ~, g2@15 ~, ~@2 d3@13 ~, ~@4 g3@11 ~", G: "~@6 c4@9 ~, a2@15 ~, ~ e3@7, ~@4 a3@11 ~",
H: "~@3 c4@4 ~, d3@15 ~, ~ f#3@6 ~, ~@2 a3@5 ~", I: "~@6 b3@9 ~, g2@15 ~, ~ d3@7, ~ g3@3",
J: "~@3 e4@5, e3@7 ~, ~ g3@7, ~ b3@3", K: "~@3 a3@5, f2@7 ~, ~@2 c3@13 ~, ~ f3@3",
L: "~@6 c4@9 ~, d3@7 ~, ~@2 f3@13 ~, ~@4 a3@11 ~", M: "~ [c4,e4] [g2,b3,d4]@2, c3@5 ~@11, ~ g3@7",
N: "~@6 d4@9 ~, g2@13 ~@3, ~@2 g3@13 ~, ~@4 b3@11 ~", O: "~@6 e4@9 ~, c3@7 ~, ~ g3@7, ~ c4@3",
P: "~@3 e4@4 ~, c3, ~@2 g3@13 ~, ~@4 c4@11 ~", Q: "~@3 f#4@5, d3@15 ~, ~ a3@7, ~ c4@3",
R: "~@6 f#4@9 ~, d3@7 ~, ~@2 a3@13 ~, ~@4 c4@11 ~", S: "~@3 d4@5, d3@7 ~, ~ f3@7, ~ g#3@3",
T: "~@6 d4@9 ~, d3@15 ~, ~ f3@7, ~ g#3@3", U: "~@2 c3 b2, c3@3 e4@5, ~ g3@7, ~ c4@3",
V: "~@3 c4@5, a2@15 ~, ~@2 e3@13 ~, ~@4 g3@11 ~", W: "~@6 c4@9 ~, d3@7 ~, ~ f#3@6 ~, ~@4 a3@11 ~",
X: "~@3 b3@5, g2@3 ~, ~@2 d3@13 ~, ~ g3@3", Y: "~@6 a3@9 ~, f2@15 ~, ~@2 c3@13 ~, ~@4 f3@11 ~",
Z: "~@6 b3@9 ~, g2@7 ~, ~ d3@6 ~, ~@4 g3@11 ~", AA: "~@3 b3@4 ~, ~ d3@6 ~, ~@2 g3@5 ~",
AB: "a#2@4 [f3,a#3,d4] ~ a#2 ~@3 [f3,a#3,d4]@6, ~@4 a#2@3 ~", // A#
AC: "a#2@4 [f3,a#3,d4] ~ a#2 ~@3 [f3,a#3,d4]@6, ~@8 a#2@7 ~", AD: "d3@4 [f3,a3,d4] ~ d3 ~@3 [f3,a3,d4]@6, ~@4 d3@3 ~",
AE: "d3@4 [f3,a3,d4] ~ d3 ~@3 [f3,a3,d4]@6, ~@8 d3@7 ~", // Dm
AF: "g2@4 [f3,a3,d4] ~ g2 ~@3 f3@3 ~ f3@2, ~@8 g2@7 ~, ~@5 [a3,d4]@3", // Dm D5
AG: "g2@4 [g3,b3]@2 g3@2 ~ b3 ~@4 g2 ~, ~@2 d4@3 g3@3, ~@6 g2 ~ g2@4 [b3,d4]@4", // G Bm
AH: "c3@4 [g3,c4,e4] ~ c3 ~ c3@2 ~@2 c3@2 g3 ~, ~@5 [g3,c4,e4]@2 ~", // C
AI: "[a3,c4,f4]@3 ~ [g3,c4,e4]@2 c3 ~ c3@2 g3@2 c3@2 g3@2, c3@2 ~@3 [c4,e4]@3", // F C
AJ: "d3@4 [f3,a3,d4] ~ d3 ~ d3@2 f3@2 d3@3 ~, ~@5 [a3,d4]@3", // Dm D5
AK: "g2@4 [g3,b3,d4] ~ g2 ~ g2@2 g3@2 g2@2 g3@2, ~@5 [b3,d4]@3", // G Bm
AL: "c3@4 [g3,c4,e4] ~ c3 ~ c3@2 g3@2 c3@2 g3 ~, ~@10 [c4,e4]@5 ~", // C
AM: "[a3,c4,f4]@3 ~@3 c3 ~ c3@2 g3@2 ~@2 g3@2, c3@2 [g3,c4,e4]@2 ~ [c4,e4]@3, ~@3 c3", // F C
AN: "d3@4 [f3,a3,d4] ~ d3 ~ d3@2 f3@2 d3@2 f3@2, ~@5 [a3,d4]@3", // Dm D5
AO: "e3@4 [g#3,b3,e4] ~ e3 ~ e3@2 g#3@2 e3@2 g#3@2, ~@5 [b3,e4]@3", // E E5
AP: "e3@4 [g#3,b3,e4] ~ e3 ~ e3@2 g#3@2 ~@2 g#3@2, ~@5 [b3,e4]@3, ~@3 e3", // E E5
AQ: "a2@4 [a3,c4,e4] ~ a2 ~ a2@2 a3@2 a2@2 a3 ~, ~@5 [c4,e4]@3", // Am C
AR: "~ d4 ~ d4 c#4 ~ e4 a2, a3@9 ~ a3@6, a2@4 e4@7 ~@5, ~@6 a2 ~ a2@5 ~@3",
AS: "d3@4 [a3,d4,f4] ~ d3 ~ d3@2 a3@2 ~@2 a3@2, d4 ~@9 [d4,f4]@6, ~@3 d3", // Dm
AT: "g2@4 [g3,b3,d4] ~ g2 ~ g2@2 g3@2 g2@3 ~, ~@5 [b3,d4]@3", // G Bm
AU: "~@12 d4@2 d3 ~, d3@6 f4@9 ~, ~@2 a3@6 d3@5 ~@3, ~@4 d4@6 a3@5 ~",
AV: "[[a3,d4,f4]@3 ~ [a3,d4,f4] ~ [g3,c4,e4]@2 ~@2 [g3,b3,d4]@2 [g3,c4,e4]@12 ~@8]/2", // Dm C G C
AW: "~@3 f4@5, c3@7 ~, ~ a3@7, ~ c4@3", AX: "~@6 f4@9 ~, c3@15 ~, ~@2 a3@13 ~, ~@4 c4@11 ~",
AY: "~@6 f4@9 ~, d3@7 ~, ~@2 a3@13 ~, ~@4 d4@11 ~", AZ: "~@6 b3@9 ~, g2@7 ~, ~@2 d3@13 ~, ~@4 g3@11 ~",
BA: "~@2 c3 b2, c3 ~, ~ g3@7, ~ c4@3, ~@3 e4@5", BB: "~@3 c4@4 ~, a2, ~@2 e3@13 ~, ~@2 a3@5 ~",
BC: "~@6 c4@9 ~, d3@15 ~, ~@2 f#3@13 ~, ~@4 a3@11 ~", BD: "~@3 b3@4 ~, g2@15 ~, ~@2 d3@13 ~, ~ g3@3",
BE: "~@3 e4@4 ~, e3@3 ~, ~@2 g3@13 ~, ~@4 b3@11 ~", BF: "~@6 a3@9 ~, f2@7 ~, ~ c3@6 ~, ~@4 f3@11 ~",
BG: "~@3 c4@4 ~, d3, ~ f#3@6 ~, ~@2 a3@5 ~", BH: "~@3 b3@5, g2@7 ~, ~@2 d3@13 ~, ~ g3@3",
BI: "~@10 g3@2 g3@2 d3 ~, g2@15 ~, ~@2 d3@4 b3@5 ~@5, ~@4 g3@4 d3@5 ~@3",
BJ: "[f3,a#3,d4]@2 ~@2 [f3,a#3,d4] ~ a#2 ~ a#2@2 f3@2 a#2@2 f3@2, a#2@2 ~@3 [a#3,d4]@3", // A#
BK: "a#2@4 [f3,a#3,d4] ~ a#2 ~ a#2@2 f3@2 a#2@2 f3@2, ~@5 [a#3,d4]@3", // A#
BL: "a#2@4 [f3,a#3,d4] ~ a#2 ~ a#2@4 [f3,a#3,d4]@2 a#2 ~", // A#
BM: "~@6 d3 ~@7 [d3,f4]@2, d3@2 d4@3 a3@3, ~@2 a3@6 d3@5 ~@3, ~@3 f4@3 c4@2", // Dm
BN: "~@12 b3@2 g2 ~, g2@6 d4@9 ~, ~@2 g3@6 g2@5 ~@3, ~@4 b3@6 g3@5 ~",
BO: "[c3,a3,c4,f4]@3 ~ [g3,c4,e4]@2 c3 ~ c3@2 g3@2 ~@2 g3@2, ~@5 [c4,e4]@3, ~@3 c3", // F C
BP: "d3@4 [a3,d4,f4] ~ d3 ~ d3@2 a3@2 d3@2 a3@2, ~@5 [d4,f4]@3", // Dm
BQ: "[c3,a3,c4,f4]@3 ~ [g3,c4,e4] ~ c3 ~ c3@2 g3@2 c3@2 g3@2, ~@5 [c4,e4]@3", // F C
BR: "d3@4 [a3,d4,f4] ~ d3 ~ d3@2 a3@2 d3@2 a3@2, ~@10 [d4,f4]@5 ~", // Dm
BS: "e3@4 [g#3,b3,e4] ~ e3 ~@3 g#3@3 ~ g#3@2, ~@8 e3@5 ~@3, ~@5 [b3,e4]@3", // E E5
BT: "e3@4 [g#3,b3,e4] ~ e3 ~ e3@2 g#3@2 e3@2 g#3 ~, ~@10 [b3,d4]@5 ~", // E Bm
BU: "a2@4 [a3,c4,e4] ~ a2 ~@3 [c4,e4]@5 ~, ~@4 a2@3 ~, ~@10 a3@3 ~@3", // Am C
BV: "[~@2 d4@2 ~@2 [a2,d4]@2 ~@6 a2@2 [d4,f4] ~ a3 ~ [a3,d4,f4] ~ d3 ~ d3@2 a3@2 ~@2 a3 ~, a3@8 [a2,a3]@4 e4@4 ~@10 [d4,f4]@5 ~, a2@4 e4@5 ~ c#4@6 d3@4 ~@8 d3@4, ~@7 a3@2 ~@7]/2", // D5 Dm A Dm
BW: "~@6 g2 ~@5 [b3,d4]@2 g2 ~, g2@4 b3@6 g3@5 ~, ~@2 g3@6 g2@5 ~@3, ~@6 d4@5 ~@5", // Bm
BX: "~@6 d3 ~@5 d4@2 d3 ~, d3@2 d4@3 a3@2 ~, ~@2 a3@6 d3@5 ~@3, ~@3 f4@4 ~",
BY: "[[a3,d4,f4]@3 ~ [a3,d4,f4] ~ [g3,c4,e4] ~@3 [g3,b3,d4]@2 [g3,c4,e4]@12 ~@8]/2", // Dm C G C
})).s("gm_electric_guitar_clean").gain(0.14).pan(0.9)
// drums · kick
const kick = s("bd").struct("<A@35 B A@7 B A@7 C A C A C A@2 C A@24 D A@13 C A@5 E>".pickRestart({
A: "x ~@2 x!2 ~@3", B: "x", C: "x ~@2 x!2 ~@2 x", D: "x ~@3 x!2 ~@2", E: "x!2",
})).gain(0.28)
// drums · rim
const rim = s("rim").struct("<[~@3 x]!34 ~@70>").gain(0.28)
// … 86 more lines
More by Carpenters
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.