0:00/0:00
// Do You Love Me — The Contours
// 148 bpm, 4/4, key F major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 101, 4/4 at bar 102) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 154 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(148/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
~ A B C D E F G H I B I J K L M N O@2 P Q R S T S T U V ~ A S W S T S V X I Y Z AA I S I AB AC AD AE AF I B I J K L M
N O@2 P Q A S W S T S V X I Y Z AA I S I AB AC AD AE AF I B I J K L M N O@2 P Q ~@2 AG AH AI AJ AF ~@5 AK AL AM AN AO
AP AQ AP AR AP AS AT AU AV@2 AW AX AY AZ AY AZ BA BB BC BD BA BE@2 BF BA BG BA BH BI BJ BK BL AP AQ AP AR AP AS AT AU
AV@2 AW ~
>`.pickRestart({
A: "f1@3 ~ c1@2 f1@3 ~ f1@2 c1@2 f1 ~", B: "bb1@3 ~ bb1 ~ c2@3 ~ c2@2 bb1@2 a1 ~",
C: "f1@4 c1@2 f1@3 ~ f1@2 c1@2 f1 ~", D: "bb1@3 ~ bb1 ~ c2@3 ~@3 bb1 ~ a1 ~, ~@5 c2@2 ~",
E: "c2@3 ~ c2@4 c2@3 ~ c2@2 g1 ~", F: "c2@3 ~ c2@3 ~ c2@3 ~ c2@2 g1@2", G: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~",
H: "c1@13 ~@3", I: "f1@4 c1@2 f1@3 ~ f1@2 c1 ~ f1 ~", J: "bb1@3 ~ bb1 ~ c2@3 ~ c2@2 bb1 ~ a1 ~",
K: "f1@4 c1 ~ f1@3 ~ f1@2 c1 ~ f1 ~", L: "bb1@3 ~ bb1 ~ c2@3 ~ c2 ~ c2 ~ c2 ~",
M: "bb1@4 ~@2 bb1@3 ~ bb1@2 f1@2 bb1 ~", N: "bb1@5 ~ bb1@3 ~ bb1@3 ~ bb1 ~", O: "c2@5 ~ c2@3 ~ c2@2 g1 ~ g1 ~",
P: "c2@5 ~ c2@2 ~@2 c2 ~ c2 ~ g1 ~", Q: "c1 ~@7", R: "f1@2 ~@2 c1@2 f1@3 ~ f1@2 c1 ~ f1 ~",
S: "bb1@3 ~ bb1@3 ~ c2@3 ~ c2@3 ~", T: "f1@2 ~@2 c1@2 f1@2 ~@2 f1@2 c1 ~ f1 ~", U: "bb1@5 ~ bb1 ~ c2@3 ~ c2@3 ~",
V: "f1 ~@7", W: "f1@2 ~@2 c1@2 f1@2 ~@2 f1@2 c1@2 f1 ~", X: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 c1@2 c2@2",
Y: "bb1@3 ~ bb1@3 ~ c2@3 ~ c2@2 bb1 ~", Z: "f1@3 ~ c1@2 f1@4 c1@2 f1@2 c1 ~", AA: "bb1@3 ~ bb1@3 ~ c2@3 ~ bb1@2 a1 ~",
AB: "bb1@3 ~ bb1@3 ~ c2@4 bb1@2 b1 ~", AC: "c2@5 ~ c2@3 ~ c2@2 g1@2 c2 ~", AD: "c2@5 ~ c2@3 ~ c2@2 g1@2 c1 ~",
AE: "c2@5 ~ c2@3 ~ c2@2 c1 ~ g1 ~", AF: "c2 ~@7", AG: "c2@3 ~@3 c2@3 ~ c2@2 g1 ~ g1@2",
AH: "c2@2 ~@2 c2 ~ c2@3 ~ c2@2 g1 ~ g1 ~", AI: "c2@2 ~@4 c2@3 ~ c2@2 g1 ~ g1@2",
AJ: "c2@3 ~@3 c2@2 ~@2 c2@2 g1 ~ g1 ~", AK: "~@4 c2 ~@2 c2", AL: "~@2 c2@2 g1 ~ g1@2 c2@3 ~@3 c2@2",
AM: "~@2 c2@2 g1 ~ g1 ~ c2@2 ~@4 c2@2", AN: "~@2 c2@2 g1 ~ g1 ~ c2@3 ~ c2 ~ c2 ~",
AO: "c2 ~ c2 ~ c2 ~ c2 ~ f1@4 c1@2 f1@2", AP: "~@2 f1@2 c1 ~ f1 ~ bb1@3 ~ bb1 ~ c2@2",
AQ: "~@2 c2@2 bb1@2 a1 ~ f1@4 c1@2 f1@2", AR: "~@2 c2@2 bb1 ~ a1 ~ f1@4 c1 ~ f1@2",
AS: "~@2 c2 ~ c2 ~ c2 ~ bb1@4 ~@2 bb1@2", AT: "~@2 bb1@2 f1@2 bb1 ~ bb1@5 ~ bb1@2",
AU: "~@2 bb1@3 ~ bb1 ~ c2@5 ~ c2@2", AV: "~@2 c2@2 g1 ~ g1 ~ c2@5 ~ c2@2", AW: "~@2 c2 ~ c2 ~ g1 ~ c1@2 ~@6",
AX: "~@8 f1@3 ~ c1@2 f1@2", AY: "~@2 f1@2 c1@2 f1 ~ bb1@3 ~ bb1@3 ~", AZ: "c2@3 ~ c2@3 ~ f1@2 ~@2 c1@2 f1@2",
BA: "~@2 f1@2 c1 ~ f1 ~ bb1@3 ~ bb1@3 ~", BB: "c2@3 ~ c2@3 ~ f1@2 ~@6", BC: "~@8 c2 ~ c2 ~ c2 ~ c2 ~",
BD: "c2 ~ c2@2 c1@2 c2@2 f1@4 c1@2 f1@2", BE: "[c2@3 ~ c2@2 bb1 ~ f1@3 ~ c1@2 f1@4 c1@2 f1@2 c1 ~ bb1@3 ~ bb1@3 ~]/2",
BF: "c2@3 ~ bb1@2 a1 ~ f1@4 c1@2 f1@2", BG: "c2@3 ~ c2@3 ~ f1@4 c1@2 f1@2", BH: "c2@4 bb1@2 b1 ~ c2@5 ~ c2@2",
BI: "~@2 c2@2 g1@2 c2 ~ c2@5 ~ c2@2", BJ: "~@2 c2@2 g1@2 c1 ~ c2@5 ~ c2@2", BK: "~@2 c2@2 c1 ~ g1 ~ c2@2 ~@6",
BL: "~@4 f1@2 c1 f1",
})).s("gm_acoustic_bass").gain(0.56)
// chords · piano · "A.PIANO 1"
const piano = note(`<
~ A B C D@3 E F G H I J K L M N O P Q R S T U V W X Y Z S AA AB AC AD AE AF AG AH@2 AI AJ AK AL AM AN AO AP@2 AQ G H I
J K L M N AR P Q R S AA AB AC AD AE AF AG AH@2 AI AJ AK AL AM AN AO AP@2 AQ G H I J K L M N AR P Q R ~@2 AS AT AU AV
AW ~@5 AX@4 AY AZ BA BB BC BD BE BF BG@2 BH@2 BI@2 BJ BK BL BM BN BO BP@2 BQ BR BS BT BU BV BW BX@3 BY AZ BA BB BC BD
BE BF BG@2 BH@2 ~
>`.pickRestart({
A: "~@4 [f4,a4,c5] ~ [f4,a4,c5] ~ c4 ~ [f4,a4,c5] ~ c4 ~@3, f3@7 ~", // F
B: "[d4,f4]@3 ~ [bb3,d4] ~@3 [c4,e4,g4]@2 g3 ~ [c4,e4] ~@3, bb3 ~@3 f4@2 c3@6 g4@2 ~@2", // Dm Bb C
C: "~@4 [f4,a4,c5] ~ [f4,a4,c5] ~ c4 ~ [f4,a4,c5] ~ [f4,a4,c5] ~ c4 ~, f3@15 ~", // F
D: "[[bb3,d4,f4]@3 ~ [bb3,d4] ~@3 [c4,e4,g4]@3 ~ [c4,e4,g4]@2 ~@2 [c4,e4,g4]@14 ~@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@10 g3 ~, ~@2 f4 c3@20 ~, ~@14 g3@13 ~@3 g3@14 ~@4]/3", // Bb C
E: "[c4,e4,g4]@3 ~ [c4,e4,g4]@11 ~, c3@15 ~", F: "[c4,e4,g4] ~@15, [c3,g3] ~@7",
G: "~@4 [f3,f4,a4,c5] ~ [f3,f4,a4,c5] ~@5 [f4,a4,c5] ~@3, ~@6 f3 ~", // F
H: "~@4 [bb3,d4,f4] ~ [bb3,d4,f4] ~ c3@2 [c4,e4,g4] ~ [c4,e4] ~ c3 ~, ~@6 g4 ~", // Bb C
I: "f3 ~@3 [f4,a4,c5] ~ [f4,a4,c5] ~@3 f3 ~ [f4,c5]@2 ~@2, ~@12 a4 ~@3", // F F5
J: "~@4 [bb3,d4,f4] ~ [bb3,d4,f4] ~ c3@2 [c4,e4,g4] ~ [e4,g4]@2 c3 ~, ~@12 c4 ~@3", // Bb C Em
K: "f3@2 ~@2 [f4,a4,c5] ~ [f4,a4,c5] ~@3 f3 ~ [f4,a4,c5] ~@3", // F
L: "~@4 [bb3,d4,f4] ~ [bb3,d4,f4] ~ c3 ~ [c4,e4,g4] ~ [c4,e4,g4] ~@3", // Bb C
M: "~@4 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 bb2 ~ [bb3,d4,f4]@2 ~@2", // Bb
N: "~@4 [bb3,db4,f4] ~ [bb3,db4,f4] ~@3 bb2 ~ [bb3,db4,f4] ~@3", // Bbm
O: "~@4 [c4,e4,g4] ~ [c4,e4,g4] ~@3 g3 ~ [c4,e4,g4] ~ g3 ~, c3@15 ~", // C
P: "~@4 [c4,e4,g4] ~ [c4,e4,g4] ~@5 [c4,e4,g4] ~ g3 ~", // C
Q: "~@4 [c4,e4,g4] ~ [c4,e4,g4] ~@5 [c4,e4,g4] ~ g3 ~, c3@13 ~@3", R: "[c4,e4,g4] ~@15, c3 ~@7",
S: "~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@3 c4 ~ [f4,a4,c5] ~@3, f3@3 ~", // F
T: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 g3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]@2 ~@2", // Bb C
U: "~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@3 c4 ~ [f4,a4,c5] ~ bb2@2, f3@3 ~", // F
V: "[bb3,d4,f4]@3 ~ [bb3,d4] ~ g3 ~ [c4,e4,g4]@3 ~ c4!2 ~@2, ~@4 f4@2 ~@2 c3 ~@3 [e4,g4]@2 ~@2", // Bb C Em
W: "~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@3 c4 ~ [f4,a4,c5] ~ bb2 ~, f3@3 ~", // F
X: "[bb3,d4,f4]@3 ~ [bb3,d4] ~ g3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4] ~@3, ~@2 f4 ~@5", // Bb C
Y: "[f3,f4,a4,c5] ~ a1@2 bb1@2 b1@2, c4 ~@15", // F
Z: "~@2 [c3,c4,e4,g4] ~ [c3,c4,e4,g4] ~ [c3,c4,e4,g4] ~ [c3,c4,e4,g4] ~ [c3,c4,e4,g4] ~ [c3,c4,e4,g4] ~ [c3,c4,e4,g4] ~, c2@2 d2@2 eb2@2 e2 ~", // C
AA: "[bb3,d4,f4]@3 ~ [bb3,d4] ~ c3@2 [c4,e4,g4]@3 ~ [c4,e4] ~@3, ~@2 f4 ~@3 g4 ~", // Bb C
AB: "f3@2 ~@2 [f4,a4,c5] ~ [f4,c5]@2 ~@2 bb2 ~ [f4,a4,c5] ~@3, ~@6 a4 ~@9", // F F5 F
AC: "[d4,f4]@3 ~ [d4,f4]@2 g3 ~ [c4,e4,g4]@3 ~ [e4,g4]@2 ~@2, bb2@4 bb3 ~@7 c4 ~@3", // Dm C Em
AD: "f3@3 ~ [f4,a4,c5] ~ [f4,a4,c5] ~@3 f3 ~ [f4,a4,c5] ~ bb2 ~", // F
AE: "[bb3,d4,f4]@3 ~ [bb3,d4] ~ g3 ~ [c4,e4,g4]@3 ~ [c4,e4] ~@3, ~@2 f4 ~@3 g4 ~", AF: "[f3,f4,a4,c5] ~@15",
AG: "~@2 [c3,g3,c4,e4,g4] ~ [c3,g3,c4,e4,g4] ~ [c3,g3,c4,e4,g4] ~ [c3,g3,c4,e4,g4] ~ [c3,g3,c4,e4,g4] ~ [c3,g3,c4,e4,g4] ~ [c3,g3,c4,e4,g4] ~", // C
AH: "[~@4 [f3,a3,c4] ~ [f3,a3,c4] ~@3 c3 ~ [a3,c4]@2 ~@2 bb3 ~@3 [bb3,d4,f4] ~ [bb3,d4,f4] ~ g3 ~ c3 ~ [c4,e4,g4] ~ [c4,e4,g4] ~, f2@12 f3 ~ bb2@7 ~@11]/2", // F Am Bb C
AI: "c3 ~@3 [f3,a3,c4] ~ [f3,a3,c4] ~@3 f2 ~ [f3,a3,c4] ~ bb2@2", // F
AJ: "bb3@2 ~@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~ g3 ~ c3 ~ [c4,e4,g4] ~ [c4,e4,g4] ~", // Bb C
AK: "c3 ~ f2 ~ [f3,a3,c4] ~ [f3,a3,c4] ~@3 f2 ~ [f3,a3,c4] ~ [f3,a3,c4] ~", // F
AL: "bb2 ~@3 [bb3,d4,f4] ~ [bb3,d4,f4] ~ g3 ~ c3@2 [c4,e4,g4] ~ [c4,e4,g4] ~", // Bb C
AM: "c3 ~ f2 ~ [f3,a3,c4] ~ [f3,a3,c4] ~@3 f2 ~ [f3,a3,c4] ~ bb2@2", // F
AN: "bb3@2 d4 ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ g3 ~ c3 ~ [c4,e4,g4] ~ [c4,e4,g4] ~", // Bb C
AO: "[c4,e4,g4]@3 ~ [c4,e4,g4] ~ [c4,e4,g4] ~@3 g3 ~ [c4,e4,g4]@2 g3 ~", // C
AP: "[~@4 [c4,e4,g4] ~ [c4,e4,g4] ~@5 [c4,e4,g4] ~ [c4,e4,g4] ~ g3 ~@3 [c4,e4,g4] ~ [c4,e4,g4] ~@3 g3 ~ [c4,e4] ~ g3 ~, c3@15 ~, ~@14 g4 ~]/2", // C
AQ: "[c3,c4,e4] ~@15, g4 ~@7", AR: "~@4 [c4,e4,g4] ~ [c4,e4,g4] ~@5 [c4,e4,g4] ~ g3 ~, c3@15 ~",
AS: "c3@2 ~@2 [g3,bb3,e4] ~ [g3,bb3,e4]@2 ~@2 [g3,bb3,e4]@2 c3 ~ [g3,bb3,e4] ~", // Edim
AT: "[g3,bb3] ~ c3 ~ [g3,bb3,e4] ~ [g3,bb3,e4]@3 ~ [bb3,e4]@2 c3 ~ [g3,bb3,e4] ~, e4@2 ~@8 g3 ~@5", // Gm Edim Bbdim Edim
AU: "[g3,bb3] ~@3 c3 ~ [g3,bb3,e4]@3 ~ [g3,bb3,e4]@2 c3 ~ [g3,bb3,e4] ~, e4 ~@7", // Gm Edim
AV: "[bb3,e4]@2 c3 ~@3 [g3,bb3,e4]@2 ~@2 [g3,bb3,e4]@2 c3 ~ [g3,bb3,e4] ~, g3 ~@15", AW: "[g3,bb3,e4] ~@15",
AX: "[~@8 [c4,e4,g4]@4 g3 ~ [c4,e4,g4]@4 g3@2 [c4,e4,g4]@2 g3 ~ [c3,c4,e4,g4]@4 ~@2 [c4,e4,g4]@4 c3@2 [c4,e4,g4]@2 c4@2 [c3,c4,e4,g4]@5 ~ [c3,c4,e4,g4]@4 g3 ~ [c4,e4,g4]@2 c3 ~ [c3,e4,g4]@2 ~@2 [bb3,e4,g4] ~ [bb3,e4,g4] ~, ~@8 c3@12 ~@10 c3 ~@7 g3 ~@17 c4 ~@7]/4", // C Edim
AY: "[bb3,e4,g4] ~ [bb3,e4,g4] ~ [bb3,e4,g4] ~ [bb3,e4,g4] ~@5 [f3,f4,a4,c5] ~ [f3,f4,a4,c5] ~", // Edim F
AZ: "~@4 [f4,a4,c5] ~@7 [bb3,d4,f4] ~ [bb3,d4,f4] ~, ~@2 f3 ~@5", // F Bb
BA: "c3@2 [c4,e4,g4] ~ [c4,e4] ~ c3 ~ f3 ~@3 [f4,a4,c5] ~ [f4,a4,c5] ~, ~@2 g4 ~@5", // C F
BB: "~@2 f3 ~ [f4,c5]@2 ~@6 [bb3,d4,f4] ~ [bb3,d4,f4] ~, ~@4 a4 ~@11", // F5 Bb
BC: "c3@2 [c4,e4,g4] ~ [e4,g4]@2 c3 ~ f3@2 ~@2 [f4,a4,c5] ~ [f4,a4,c5] ~, ~@4 c4 ~@11", // C Em F
BD: "~@2 f3 ~ [f4,a4,c5] ~@7 [bb3,d4,f4] ~ [bb3,d4,f4] ~", // F Bb
BE: "c3 ~ [c4,e4,g4] ~ [c4,e4,g4] ~@7 [bb3,d4,f4] ~ [bb3,d4,f4] ~", // C Bb
BF: "~@2 bb2 ~ [bb3,d4,f4]@2 ~@6 [bb3,db4,f4] ~ [bb3,db4,f4] ~", // Bb Bbm
BG: "[~@2 bb2 ~ [bb3,db4,f4] ~@7 [c4,e4,g4] ~ [c4,e4,g4] ~@5 [c4,e4,g4] ~ g3 ~@5 [c4,e4,g4] ~ [c4,e4,g4] ~, ~@8 c3@15 ~@9]/2", // Bbm C
BH: "[~@4 [c4,e4,g4] ~ g3 ~@5 [c4,e4,g4] ~ [c4,e4,g4] ~@5 [c4,e4,g4] ~ g3 ~ [c4,e4,g4] ~@7, ~@8 c3@13 ~@3 c3@2 ~@6]/2", // C
BI: "[~@12 [f4,a4,c5] ~ [f4,a4,c5] ~@3 c4 ~ [f4,a4,c5] ~@3 [bb3,d4,f4]@3 ~ [bb3,d4] ~ c3@2, ~@4 f3@6 ~@4 f4 ~]/2", // F Bb
BJ: "[c4,e4,g4]@3 ~ [c4,e4] ~@3 f3@2 ~@2 [f4,a4,c5] ~ [f4,c5]@2, ~@4 g4@2 ~@8 a4 ~", // C F F5
BK: "~@2 bb2 ~ [f4,a4,c5] ~@3 [d4,f4]@3 ~ [d4,f4]@2 g3 ~, ~@8 bb2@4 bb3 ~@3", // F Dm
BL: "[c4,e4,g4]@3 ~ [e4,g4]@2 ~@2 f3@3 ~ [f4,a4,c5] ~ [f4,a4,c5] ~, ~@4 c4 ~@11", // C Em F
BM: "~@2 f3 ~ [f4,a4,c5] ~ bb2 ~ [bb3,d4,f4]@3 ~ [bb3,d4] ~ g3 ~, ~@6 f4 ~", // F Bb
BN: "[c4,e4,g4]@3 ~ [c4,e4] ~@3 [f3,f4,a4,c5] ~@7, ~@2 g4 ~@5", // C F
BO: "~@10 [c3,g3,c4,e4,g4] ~ [c3,g3,c4,e4,g4] ~ [c3,g3,c4,e4,g4] ~", // C
BP: "[[c3,g3,c4,e4,g4] ~ [c3,g3,c4,e4,g4] ~ [c3,g3,c4,e4,g4] ~ [c3,g3,c4,e4,g4] ~@5 [f3,a3,c4] ~ [f3,a3,c4] ~@3 c3 ~ [a3,c4]@2 ~@2 bb3 ~@3 [bb3,d4,f4] ~ [bb3,d4,f4] ~, ~@8 f2@12 f3 ~ bb2@7 ~@3]/2", // C F Am Bb
BQ: "g3 ~ c3 ~ [c4,e4,g4] ~ [c4,e4,g4] ~ c3 ~@3 [f3,a3,c4] ~ [f3,a3,c4] ~", // C F
BR: "~@2 f2 ~ [f3,a3,c4] ~ bb2@2 bb3@2 ~@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~", // F Bb
BS: "g3 ~ c3 ~ [c4,e4,g4] ~ [c4,e4,g4] ~ c3 ~ f2 ~ [f3,a3,c4] ~ [f3,a3,c4] ~", // C F
BT: "~@2 f2 ~ [f3,a3,c4] ~ [f3,a3,c4] ~ bb2 ~@3 [bb3,d4,f4] ~ [bb3,d4,f4] ~", // F Bb
BU: "g3 ~ c3@2 [c4,e4,g4] ~ [c4,e4,g4] ~ c3 ~ f2 ~ [f3,a3,c4] ~ [f3,a3,c4] ~", // C F
BV: "~@2 f2 ~ [f3,a3,c4] ~ bb2@2 bb3@2 d4 ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // F Bb
BW: "g3 ~ c3 ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4]@3 ~ [c4,e4,g4] ~ [c4,e4,g4] ~", // C
BX: "[~@2 g3 ~ [c4,e4,g4]@2 g3 ~@5 [c4,e4,g4] ~ [c4,e4,g4] ~@5 [c4,e4,g4] ~ [c4,e4,g4] ~ g3 ~@3 [c4,e4,g4] ~ [c4,e4,g4] ~@3 g3 ~ [c4,e4] ~ g3 ~ [c3,c4,e4] ~@7, ~@4 c3@15 ~@5, ~@18 g4 ~ g4 ~@3]/3", // C
BY: "~@12 [f3,f4,a4,c5] ~ [f3,f4,a4,c5] ~", // F
})).s("gm_piano").gain(0.64)
// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
~@45 A@4 B@2 C D C E F@2 G@3 H ~@20 B@2 C D C E I@2 G@3 H ~@2 J K L M N@2 O@2 P@2 Q@4 R@6 S@6 ~@20 T@6 U@6 ~
>`.pickRestart({
A: "[~@24 [bb5,bb6] ~@7, [c5,c6]@25 ~@7, ~@8 [e5,e6]@17 ~@7, ~@16 [g5,g6]@9 ~@7]/4", // Bb C E G
B: "[[a4,c5,a5,c6]@15 ~ [bb4,d5,bb5,d6]@5 ~ [g4,c5,e5,g5,c6,e6]@9 ~, [f4,f5]@21 ~@11]/2", // Am Bb C F
C: "[f4,a4,c5,f5,a5,c6]@15 ~", D: "[f4,bb4,d5,f5,bb5,d6]@5 ~ [g4,c5,e5,g5,c6,e6]@9 ~",
E: "[f4,bb4,d5,f5,bb5,d6]@5 ~ [g4,c5,e5,g5,c6,e6]@8 ~@2", // Bb C
F: "[[d5,d6]@15 ~ [db5,db6]@15 ~, [bb4,f5,bb5,f6]@31 ~, [gb5,gb6] ~@31]/2", G: "[[g4,c5,e5,g5,c6,e6]@47 ~]/3",
H: "[g4,c5,e5,g5,c6,e6] ~@7", I: "[[bb4,d5,f5,d6]@16 [db5,db6]@15 ~, [bb5,f6]@31 ~, [gb5,gb6] ~@31]/2",
J: "c4@2 ~@2 [g4,bb4,e5] ~ [g4,bb4,e5]@2 ~@2 [g4,bb4,e5]@2 c4 ~ [g4,bb4,e5] ~", // Edim
K: "[g4,bb4] ~ c4 ~ [g4,bb4,e5] ~ [g4,bb4,e5]@3 ~ [bb4,e5]@2 c4 ~ [g4,bb4,e5] ~, e5@2 ~@8 g4 ~@5", // Gm Edim Bbdim Edim
L: "[g4,bb4] ~@3 c4 ~ [g4,bb4,e5]@3 ~ [g4,bb4,e5]@2 c4 ~ [g4,bb4,e5] ~, e5 ~@7", // Gm Edim
M: "[bb4,e5]@2 ~ c4 ~@2 [g4,bb4,e5]@2 ~@2 [g4,bb4,e5]@2 c4 ~ [g4,bb4,e5] ~, g4 ~@15", // Bbdim Edim
N: "[[g4,bb4,e5] ~@3 c6 ~ c6 ~ c6@4 ~@2 f5@6 ~@12]/2", O: "[~@4 c6 ~ c6 ~ c6@5 ~ f5@6 ~@12]/2",
P: "[~@4 c6 ~ c6 ~ c6@6 f5@7 ~@11]/2",
Q: "[~@8 [c4,g4]@28 ~@4 c6@15 ~ [c5,g5,c6]@2 ~@2 [c5,e5,g5,c6]@2 ~@2, ~@8 [c5,e5,g5]@47 ~ e5 ~@7]/4", // C5 C
R: "[[c5,e5,g5,c6]@2 ~@2 [c5,e5,g5,c6]@2 ~@2 [a4,c5,a5,c6]@15 ~ [bb4,d5,bb5,d6]@5 ~ [g4,c5,e5,g5,c6,e6]@9 ~ [f4,a4,c5,f5,a5,c6]@15 ~ [f4,bb4,d5,f5,bb5,d6]@5 ~ [g4,c5,e5,g5,c6,e6]@9 ~ [f4,a4,c5,f5,a5,c6]@15 ~ [f4,bb4,d5,f5,bb5,d6]@5 ~ [g4,c5,e5,g5,c6,e6]@2, ~@8 [f4,f5]@21 ~@67]/6", // C Am Bb C F Bb C F …
S: "[~@8 [d5,d6]@15 ~ [db5,db6]@15 ~ [g4,c5,e5,g5,c6,e6]@47 ~ [g4,c5,e5,g5,c6,e6]@2 ~@6, ~@8 [bb4,f5,bb5,f6]@31 ~@57, ~@8 [gb5,gb6] ~@87]/6", // D Db C Bb5 Gb
T: "[~@8 [a4,c5,a5,c6]@15 ~ [bb4,d5,bb5,d6]@5 ~ [g4,c5,e5,g5,c6,e6]@9 ~ [f4,a4,c5,f5,a5,c6]@15 ~ [f4,bb4,d5,f5,bb5,d6]@5 ~ [g4,c5,e5,g5,c6,e6]@9 ~ [f4,a4,c5,f5,a5,c6]@15 ~ [f4,bb4,d5,f5,bb5,d6]@5 ~ [g4,c5,e5,g5,c6,e6]@2, ~@8 [f4,f5]@21 ~@67]/6", // Am Bb C F Bb C F Bb …
U: "[~@8 [d5,d6]@15 ~ [db5,db6]@15 ~ [g4,c5,e5,g5,c6,e6]@47 ~@9, ~@8 [bb4,f5,bb5,f6]@31 ~@57, ~@8 [gb5,gb6] ~@87]/6", // D Db C Bb5 Gb
})).s("gm_rock_organ").gain(0.56)
// drums · kick
const kick = s("bd").struct(`<
A B@7 C B@11 C B@27 C B@11 C B@19 C B@2 D B@8 C B@6 E ~@3 F G H@4 I H@11 I H@19 I H@11 ~
>`.pickRestart({
A: "x ~@2 x ~ x!2 ~", B: "x ~@3 x!2 ~@2", C: "x ~@4 x ~@2", D: "x!2", E: "x", F: "~@4 x!2 ~@2", G: "x!2 ~@2 x!2 ~@2",
H: "x!2 ~@2 x ~@3", I: "~ x ~@2 x ~@3",
})).gain(0.74)
// drums · snare
const snare = s("sd").struct(`<
A B@3 C B@3 D B@11 E B@6 ~ E B@7 F B@11 E B@11 E B@6 ~ E B@11 E B@11 E B@6 G B@8 H B@11 H B@6 C I B@7 J K B@2 H B@11 L
M
>`.pickRestart({
A: "x ~ x ~ x ~ x ~ x ~@3 x!3 ~", B: "~ x ~ x", C: "~ x ~@2", D: "x ~@4 x!3", E: "x ~@2 x", F: "x!2 ~@2 x!4",
G: "~@2 x!2 ~@2 x ~", H: "~ x!2 ~", I: "~ x", J: "~@2 x ~ x!2 ~@2", K: "x!4 ~@2 x ~", L: "~@2 x ~ x ~ x!2", M: "x",
})).gain(0.74)
// drums · clap
const clap = s("cp").struct(`<
~@9 A@10 B ~ A@26 B ~ A@10 B ~ A@18 B ~ A@10 B ~ A@6 C B@7 D E C B@9 D E C B@17 D E C B@9 D E ~
>`.pickRestart({
A: "~@2 x ~@3 x!2", B: "~@2 x!2 ~@2 x ~", C: "~@3 x", D: "~@2 x!2 ~@2 x!2", E: "~ x ~@2",
})).gain(0.74)
// drums · hihat
const hihat = s("hh").struct("<~ [x!8]!98 [~ x ~@2 x!4] [x!8]!53 x>").gain(0.74)
// drums · crash
const crash = s("cr").struct(`<
~@9 A ~@7 A ~@3 A ~@7 A ~@7 A ~@7 A ~@3 A ~@7 A ~@3 A ~@7 A ~@7 A ~@3 A ~@7 A ~@3 A ~@5 B ~@5 B ~@3 B ~@7 B ~@3 B ~@7
B ~@7 B ~@3 B ~@7 B ~@4
>`.pickRestart({
A: "x", B: "~ x",
})).gain(0.74)
// drums · cowbell
const cowbell = s("cb").struct("<~@27 A@2 ~@6 A@2 ~@30 A@2 ~@58 B A C ~@5 B A C ~@16>".pickRestart({
A: "~@2 x!2 ~@2 x!2", B: "~@6 x!2", C: "~@2 x!2 ~@4",
})).gain(0.74)
// drums · congas
const congas = s("conga:18").struct("<~@99 [~@5 x ~ x] [~ x ~@3 x ~ x]!5 [~ x ~@6] ~@48>").gain(2.36)
// drums · congas
const congas_2 = s("conga:33").struct(`<
~@99
[~ x]
[~@2 x!2 ~@4]
[~@2 x!3 ~@3]
[~@2 x!2 ~@4]
[~@2 x!3 ~@3]
[~@2 x!2 ~@4]!2
// … 4 more lines
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.