0:00/0:00
// Stupid Cupid — Francis Connie
// 128 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 77 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(128/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 · electric bass finger · "FINGERDBAS"
const bass = note(`<
A B C D E F G H I J K B C D L M N O P M Q R S B T U V M N V W X Y D Z H N AA AB AC AD AE P B AF U AB AG AH AI@3 AJ B C
AK AL AM AN AG AD AE P AO ~ AP AQ B C AR AG AS AG@2 AC AG AT
>`.pickRestart({
A: "a1 ~ a1 ~ a1 ~ a1@2 a1 ~ a1@2 b1@2 c#2 ~", B: "d2@3 ~@13", C: "~@5 a1 b1 c#2",
D: "d2 ~ d2 ~ f#2 ~ f#2 ~ a2 ~ a2 ~ b2 ~ b2 ~", E: "c3 ~ c3 ~ b2 ~ b2 ~ a2 ~ d1@2 e1@2 f#1 ~",
F: "[f#1,g1] ~ g1 ~ b1 ~ b1 ~ d2 ~ d2 ~ e2 ~ d2 ~", G: "g1 ~ g1 ~ b1 ~ b1 ~ d2 ~ d2 ~ g1 ~ b1@2",
H: "d2 ~ d2 ~ f#2 ~ f#2 ~ a2 ~ a2 ~ b2 ~ a2@2", I: "[f#1,d2] ~ d2 ~ f#2 ~ f#2 ~ a2 ~ e1@2 f#1 ~ g1 ~",
J: "a1 ~ a1@2 c#2 ~ c#2 ~ e2 ~ [e2,f2] ~ f#2@2 e2 ~", K: "g1 ~ g1@2 b1 ~ b1 ~ d2 ~ a1@2 b1@2 c#2 ~",
L: "c3 ~ c3 ~ b2 ~ b2 ~ a2 ~ a1@2 b1@2 c#2@2", M: "d2 ~ d2 ~ f#2 ~ f#2 ~ a2 ~ a2 ~ b2 ~ a2 ~",
N: "d2 ~ d2 ~ f#2 ~ f#2 ~ a2 ~ d1@2 e1@2 f#1@2", O: "g1 ~ g1@2 b1 ~ b1 ~ d2 ~ d2 ~ e2@2 d2 ~",
P: "g1 ~ g1 ~ b1 ~ b1 ~ d2 ~ a1@2 b1@2 c#2@2", Q: "c3 ~ c3 ~ b2 ~ b2 ~ a2 ~ e1@2 f#1@2 g1@2",
R: "a1 ~ a1 ~ c#2 ~ c#2 ~ e2 ~ e2 ~ f#2@2 e2 ~", S: "g1 ~ g1 ~ b1 ~ b1 ~ d2 ~ a1@2 b1@2 c#2 ~", T: "~@5 d2 e2 f#2",
U: "g1 ~ g1@2 b1 ~ b1 ~ d2 ~ d2@2 e2@2 d2 ~", V: "g1 ~ g1 ~ b1 ~ b1 ~ d2 ~ d2 ~ e2@2 d2 ~",
W: "g1 ~ g1 ~ b1 ~ b1 ~ d2 ~ d2 ~ b1@2 g1@2", X: "e2@2 ~@6 e1@3 ~@5", Y: "a1@2 ~@2 e1@4 a1 ~ a1@2 b1@2 c#2@2",
Z: "c3 ~ c3 ~ b2 ~ b2 ~ a2 ~ a1@2 b1@2 c#2 ~", AA: "g1 ~ g1@2 b1 ~ b1@2 d2 ~ d2 ~ e2@2 d2 ~",
AB: "g1 ~ g1 ~ b1 ~ b1 ~ d2@2 a1@2 b1@2 c#2@2", AC: "d2 ~ d2 ~ f#2 ~ f#2 ~ a2 ~ a2 ~ b2@2 a2@2",
AD: "d2 ~ d2 ~ f#2 ~ f#2 ~ a2 ~ e1@2 f#1@2 g1@2", AE: "a1 ~ a1 ~ c#2 ~ c#2 ~ e2 ~ e2@2 f#2@2 e2 ~",
AF: "~@5 d1 e1 f#1", AG: "d2 ~ d2 ~ f#2 ~ f#2 ~ a2 ~ a2@2 b2@2 a2@2",
AH: "d2 ~ d2 ~ f#2 ~ f#2 ~ a2@2 d1@2 e1@2 f#1@2",
AI: "[g1 ~ g1@2 b1 ~ b1 ~ d2 ~ d2 ~ e2 ~ d2@2 g1 ~ g1 ~ b1 ~ b1 ~ d2 ~ d2@2 b1@2 g1@2 e2@2 ~@6 e1@3 ~@5, a1]/3",
AJ: "a1@2 ~@2 e2@4 a1@2 a1 ~ b1 ~ c#2@2", AK: "d2 ~ d2 ~ f#2 ~ f#2@2 a2 ~ a2 ~ b2 ~ b2 ~",
AL: "c3 ~ c3 ~ b2 ~ b2 ~ a2@2 d1@2 e1 ~ f#1@2", AM: "g1 ~ g1@2 b1 ~ b1 ~ d2 ~ d2 ~ e2@2 d2@2",
AN: "g1 ~ g1@2 b1 ~ b1 ~ d2 ~ a1@2 b1 ~ c#2@2", AO: "d2 ~@7", AP: "a1@2 a1@2 c#2 ~ c#2@2 e2 ~ e2@2 f#2@2 e2 ~",
AQ: "g1 ~ g1 ~ b1 ~ b1 ~ d2@2 a1@2 b1 ~ c#2 ~", AR: "d2 ~ d2 ~ f#2 ~ f#2@2 a2 ~ a2@2 b2@2 a2@2",
AS: "d2 ~ d2@2 f#2 ~ f#2@2 a2 ~ a2 ~ b2@2 a2@2", AT: "d2 b1 a1 d2 ~@4",
})).s("gm_electric_bass_finger").gain(0.5)
// chords · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
A B ~ C@2 D E C@2 F G H I J K@3 L M K@2 N O H P Q R S T Q U V W X K@3 Y L Z K AA AB AC ~ Q U S T Q U AD AE AF ~ AG AH
AI AJ AK K AL AM ~@2 F AN H I AO AP K AP K AQ K AR
>`.pickRestart({
A: "[a4,a5] ~ [a4,a5] ~ [a4,a5] ~ [a4,a5] ~ [a4,a5] ~ [a4,a5]@2 [b4,b5]@2 [c#5,c#6]@2", B: "[d5,d6]@3 ~@13",
C: "~@4 [a4,d5,f#5] ~ [a4,d5,f#5] ~@5 [a4,d5,f#5] ~@3", D: "~@4 [b4,d5,g5] ~ [b4,d5,g5] ~@5 [b4,d5,g5] ~@3",
E: "~@4 [b4,d5,g5] ~ [b4,d5,g5] ~@5 [d5,g5]@2 ~@2", F: "~@4 [c#5,e5,a5] ~ [c#5,e5,a5] ~@5 [c#5,e5,a5] ~@3",
G: "~@4 [b4,f5,g5] ~ [b4,f5,g5] ~@5 [b4,d5,g5] ~@3", H: "[a4,d5,f#5] ~@7", I: "~@5 a4 b4 c#5",
J: "d5 ~@3 [a4,d5,f#5] ~ [a4,d5,f#5] ~@5 [a4,d5,f#5] ~@3", K: "~@4 [a4,d5,f#5] ~@7 [a4,d5,f#5] ~ [a4,d5,f#5] ~",
L: "~@4 [b4,d5,g5] ~@7 [b4,d5,g5] ~ [b4,d5,g5] ~", M: "~@4 [b4,d5] ~@7 [b4,d5,g5] ~ [b4,d5] ~, ~@2 g5 ~@4 g5",
N: "~@4 [c#5,e5] ~@7 [c#5,e5,a5] ~ [c#5,e5,a5] ~, ~@2 a5 ~@5", // C#m A
O: "~@4 [b4,f5] ~@7 [b4,d5,g5] ~ [b4,d5,g5] ~, ~@2 g5 ~@5", P: "~@10 d5@2 e5@2 f#5 ~",
Q: "~@2 [b5,d6]!3 ~ [b5,d6] ~ [b5,e6] ~ [b5,e6] ~ [b5,d6] ~@3", // Bm E5 Bm
R: "~@2 e6@2 ~@2 d6@2 [b5,e6] ~ [b5,e6] ~ [b5,d6] ~@3, ~@2 b5 ~@3 b5 ~@9", // E5 Bm
S: "~@2 [f#5,a5]!3 ~ [f#5,a5] ~ [f#5,b5] ~ [f#5,b5] ~ [f#5,a5] ~@3", // F#m B5 F#m
T: "~@2 [f#5,b5] ~@3 [f#5,a5] ~ [f#5,b5] ~ [f#5,b5] ~ [f#5,a5] ~@3", // B5 F#m B5 F#m
U: "~@2 [b5,e6] ~@3 [b5,d6] ~ [b5,e6] ~ [b5,e6] ~ [b5,d6] ~@3", V: "[g#5,e6]@2 ~@6 [g#5,e6]@3 ~@5",
W: "[c#5,a5]@4 [b4,g5]@4 [a4,f#5]@4 [g4,e5]@3 ~", X: "[f#4,d5]@2 ~@2 [d5,f#5] ~ [d5,f#5] ~@5 [a4,d5,f#5] ~@3",
Y: "~@4 [b4,d5] ~@7 [b4,f5,g5] ~ [b4,f5,g5] ~, ~@2 g5 ~@5", // Bm G7
Z: "~@4 [a4,f#5]@2 ~@6 [a4,d5,f#5] ~ [a4,d5,f#5] ~, ~@4 d5 ~@11", // D
AA: "~@4 [c#5,a5]@2 ~@6 [c#5,e5,a5] ~ [c#5,e5,a5] ~, ~@4 e5 ~@11", AB: "~@4 [b4,f5,g5] ~@7 [b4,f5,g5] ~ [b4,f5,g5] ~",
AC: "[d5,f#5] ~@7", AD: "e6 ~@3 [g#5,e6] ~@3", AE: "[c#5,a5] [b4,g5] [a4,f#5] [g4,e5]", AF: "[f#4,d5]@3 ~@13",
AG: "~@4 [a4,d5,f#5] ~ [a4,d5,f#5] ~@5 [a4,d5,f#5] ~ [a4,d5,f#5] ~", // D
AH: "~@4 [d5,f#5,a5] ~@7 [d5,f#5,a5] ~ [d5,f#5,a5] ~", AI: "~@4 [b4,d5,f5,g5] ~@7 [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~",
AJ: "~@4 [b4,f5,g5] ~@7 [b4,d5,g5] ~ [b4,d5,g5] ~", AK: "~@4 [d5,f#5,a5] ~@7 [a4,d5,f#5] ~ [a4,d5,f#5] ~",
AL: "~@4 [c#5,e5,a5] ~@7 [c#5,e5,a5] ~ [c#5,e5,a5] ~", AM: "~@4 [b4,d5,g5,a5] ~@7 [b4,d5,g5] ~ [b4,f5,g5] ~",
AN: "~@4 [b4,f5,g5] ~ [b4,f5,g5] ~@5 [b4,f5,g5] ~@3", AO: "d5 ~@3 [a4,d5,f#5] ~@7 [a4,d5,f#5] ~ [a4,d5,f#5] ~",
AP: "~@4 [a4,d5,f#5] ~@7 [d5,f#5,a5] ~ [d5,f#5,a5] ~", // D
AQ: "~@4 [a4,d5,f#5] ~@5 [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~", AR: "~@6 [a4,d5,f#5]@3 ~@7",
})).s("gm_percussive_organ").gain(0.35)
// other · tenor sax
const tenor_sax = note(`<
A B C D E F C D G H I B I J C D K F C D G H I J L M ~@6 N B I J E F C D G H N B O P Q R@2 S T U V J W J X Y Z AA AB AC
AD J G AC AE B AE B AE B W B AE B AF
>`.pickRestart({
A: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ b2 ~ c#3 ~", B: "d3 ~@7", C: "~@10 a3 ~ b3 ~ c#4 ~", D: "d4 ~@15",
E: "~@10 d3@2 e3 ~ f#3 ~", F: "g3 ~@15", G: "~@10 e3 ~ f#3 ~ g3 ~", H: "a3 ~@15", I: "~@10 a2 ~ b2 ~ c#3 ~",
J: "d3 ~@15", K: "~@10 d3 ~ e3 ~ f#3 ~", L: "~@10 d2@2 e2 ~ f#2 ~", M: "g2 ~@15", N: "~@10 a2@2 b2 ~ c#3 ~",
O: "~@10 b3 ~ b3 a3 d4@2", P: "g4@2 e4 g4 ~@4", Q: "~@2 e4@2 g4 ~ a#4@4 a4@2 g4 e4 d4@2",
R: "[~@2 d4@2 b3@2 a3@2 f4@2 f#4@2 a4@2 f#4@4 e4@2 d4@2 b3@2 d4 ~ d4@2 ~@4]/2",
S: "~ a3 b3 ~ d4 ~ e4 ~ f4@2 e4@2 d4@2 b3 ~", T: "~ a3 b3 ~ d4@2 e4@2 f4@2 e4@2 d4@2 b3@2", U: "e4 ~@3 e4 ~@3",
V: "a4@2 ~@3 a2 b2 c#3, ~@10 b2 ~@5", W: "~@10 a2 ~ b2@2 c#3 ~", X: "~@10 d3@2 e3@2 f#3 ~", Y: "g3 ~@7",
Z: "~@5 a3 b3 c#4", AA: "d4 ~@7", AB: "~@5 e3 f#3 g3", AC: "a3 ~@7", AD: "~@10 a2@2 b2 ~ c#3@2, ~@10 a#2 ~@5",
AE: "~@5 a2 b2 c#3", AF: "~@2 a2 ~ b2 ~ d3 ~@9",
})).s("gm_tenor_sax").gain(0.5).pan(0.4)
// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
A B C D@2 E F G H I J K L M N D O P Q R S T P K U V W X Y V W Z AA AB AC G AD P Q G H AE AF K ~ V W X AG V W AH AI AJ
AK AL AM AN Q G H AO AP K AQ I AF K AR G AS AT AU AT AV AT AW
>`.pickRestart({
A: "a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ b3 ~ c#4 ~", B: "[d3,a3,d4] ~@7", C: "~@5 a3 b3 c#4",
D: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~", // D5
E: "[g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~", // G5
F: "[g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ a3 ~ b3 ~ c#4 ~", // G5
G: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~", // D5
H: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ e3 ~ f#3 ~ g3 ~", // D5
I: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~", // A5
J: "[d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3]@2", K: "[d3,a3] ~@7",
L: "~@10 a3 ~ b3@2 c#4@2", M: "[d3,a3] ~ [d3,a3] ~ [d3,b3] ~ [d3,b3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~",
N: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,b3] ~ [d3,b3] ~", // D5 G
O: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ d3 ~ e3 ~ f#3 ~", // D5
P: "[d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~", // G5
Q: "[d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ a3 ~ b3 ~ c#4 ~", // G5
R: "[d3,d4] ~ [d3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~", // D D5
S: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ d3 ~ d3 ~ d3 ~", // D5
T: "[e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~", U: "~@10 d3@2 e3@2 f#3 ~",
V: "~@2 [b4,d5]!3 ~ [b4,d5] ~ [b4,e5] ~ [b4,e5] ~ [b4,d5] ~@3", // Bm E5 Bm
W: "~@2 [b4,e5] ~@3 [b4,d5] ~ [b4,e5] ~ [b4,e5] ~ [b4,d5] ~@3", // E5 Bm E5 Bm
X: "~@2 [f#4,a4]!3 ~ [f#4,a4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,a4] ~@3", // F#m B5 F#m
Y: "~@2 [f#4,b4]@2 ~@2 [f#4,a4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,a4]@2 ~@2", Z: "[g#4,e5]@4 ~@4 [g#4,e5]@3 ~@5",
AA: "c#4@2 a4@2 b3@2 g4@2 a3@2 f#4@2 g3@2 e4 ~",
AB: "[f#3,d4]@2 ~@2 d3 ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~", // D D5
AC: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ a3 ~ b3 ~ c#4 ~", // D5
AD: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ d3 ~ d3@2 e3 ~ f#3 ~", // D5
AE: "[e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~", // A5
AF: "[g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~", // G5
AG: "~@2 [f#4,b4] ~@3 [f#4,a4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,a4] ~@3", AH: "[g#4,e5] ~@7 [g#4,e5] ~@7",
AI: "c#4 ~ a4@2 b3@2 g4@2 a3@2 f#4 ~ g3@2 e4 ~", AJ: "[d3,a3]@3 ~@13", AK: "~@10 a3 ~ b3 ~ c#4 ~",
AL: "[d3,d4] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3,d4] ~ [d3,a3,d4] ~", // D D5
AM: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ a3 ~ b3 ~ a3 ~", // D5
AN: "g3 ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~", // G5
AO: "[a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~", // A5
AP: "[g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~@3", // G5
AQ: "~@10 e3 ~ f#3 ~ g3 ~", AR: "~@10 [a2,a3]@2 [b2,b3] ~ [c#3,c#4] ~",
AS: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,b3,d4] ~ [d3,b3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~", // D5 G D5
AT: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,b3,d4] ~ [d3,b3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,b3,d4] ~ [d3,b3,d4] ~", // D5 G D5 G
AU: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ a3 ~ b3 ~ c#4 ~", // D5
AV: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,b3,d4] ~ [d3,b3,d4] ~", // D5 G
AW: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4]@6 ~@4", // D5
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.7)
// chords · piano · "A.PIANO 1"
const piano = note(`<
A B ~ C@2 D@2 E F G H I ~ J K@2 L M N O L P Q R S T U V W T U X Y C Z E C AA@2 AB AC AD AE@3 T U V AF T U AG AH AI AJ
J L AK AL AM L P M AN AO AP AQ AR AS AT AU AV L AT AW AT AX
>`.pickRestart({
A: "[a3,a4] ~ [a3,a4] ~ [a3,a4] ~ [a3,a4] ~ [a3,a4] ~ [a3,a4] ~ [b3,b4] ~ [c#4,c#5] ~", B: "[d4,f#4,d5]@3 ~@13",
C: "[a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~", // D
D: "[g4,b4,d5,f5] ~ [g4,b4,d5,f5] ~ [g4,b4,d5,f5] ~ [g4,b4,d5,f5] ~ [g4,b4,d5,f5] ~ [g4,b4,d5,f5] ~ [g4,b4,d5,f5] ~ [g4,b4,d5,f5] ~", // G7
E: "[a4,d5,f#5] ~ [a4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~", // D Bm D Bm
F: "[a4,d5,f#5] ~ [a4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~", // D Bm D
G: "[a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5] ~ [a4,c#5,f#5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~", // A F#m A
H: "[g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,e5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // G Em G
I: "[d5,f#5] ~@7, [f#4,a4] ~@15", // D F#m
J: "[d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~", // D5
K: "[d5,a5,d6] ~ [d5,a5,d6] ~ [d5,b5,c6,d6] ~ [d5,b5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~", // D5 G D5
L: "[d5,a5,d6] ~ [d5,a5,d6] ~ [d5,b5,d6] ~ [d5,b5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~", // D5 G D5
M: "[d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~", // G7
N: "[d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~", // G7 G
O: "[d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,b5,d6] ~ [d5,b5,d6] ~", // D5 Bm7 G
P: "[e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~", // A
Q: "[d5,f5,g5,a#5,b5] ~ [d5,f5,g5,b5,c6] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~", // G7
R: "[d5,a5,d6] ~@7, e6 ~@15", S: "~@10 [d4,d5]@2 [e4,e5] ~ [f#4,f#5] ~",
T: "~@2 [b4,d5]!3 ~ [b4,d5] ~ [b4,e5] ~ [b4,e5] ~ [b4,d5] ~@3", // Bm E5 Bm
U: "~@2 [b4,e5] ~@3 [b4,d5] ~ [b4,e5] ~ [b4,e5] ~ [b4,d5] ~@3", // E5 Bm E5 Bm
V: "~@2 [f#4,a4]!3 ~ [f#4,a4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,a4] ~@3", // F#m B5 F#m
W: "~@2 [f#4,b4] ~@3 a4@2 [f#4,b4] ~ [f#4,b4] ~ [f#4,a4] ~@3, ~@6 f#4 ~@9", X: "[g#4,e5] ~ [g#4,e5] ~",
Y: "[c#4,a4]@4 [b3,g4]@4 [a3,f#4]@3 ~ [g3,e4]@3 ~", // F#m Em D C
Z: "[a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~", // D Bm
AA: "[g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~", // G7
AB: "[f#4,a4,d5,f#5] ~ [f#4,a4,d5,f#5] ~ [f#4,b4,d5,f#5] ~ [f#4,b4,d5,f#5] ~ [f#4,a4,b4,d5,f#5] ~ [f#4,a4,d5,f#5] ~ [f#4,b4,d5,f#5] ~ [f#4,b4,d5,f#5] ~", // D Bm Bm7 D Bm
AC: "[f#4,a4,d5,f#5] ~ [f#4,a4,d5,f#5] ~ [f#4,b4,d5,f#5] ~ [f#4,b4,d5,f#5] ~ [f#4,a4,d5,f#5] ~ [f#4,a4,d5,f#5] ~ [f#4,a4,d5,f#5] ~ [f#4,a4,d5,f#5] ~", // D Bm D
AD: "[e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~", // A
AE: "[[g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [g4,b4,d5,f5,g5] ~ [f#4,a4,d5,f#5] ~@25 [d4,d5]@2 e5@2 f#4@2, e5@44 e4 ~ f#5 ~]/3", // G7 D
AF: "~@2 [f#4,b4] ~@3 [f#4,a4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,a4] ~@3", AG: "[g#4,e5] ~@7 [g#4,e5]@2 ~@6",
AH: "[c#4,a4]@3 ~ [b3,g4]@3 ~ [a3,f#4]@3 ~ [g3,e4]@2 ~@2", AI: "[f#5,a5,d6] ~@15", AJ: "~@10 a5 ~ b5 ~ c#6 ~",
AK: "[d5,g5,b5] ~ [d5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~", // G G7
AL: "[d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,a5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~ [d5,f5,g5,b5] ~", // G7
AM: "[d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,b5,d6] ~ [d5,b5,d6] ~", // D5 G
AN: "[a5,d6] ~@7, d5 ~@15", AO: "~@10 [e5,e6] ~ [f#5,f#6] ~ [g5,g6] ~",
AP: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~", // A5
AQ: "[g5,d6,f6,g6] ~ [g5,d6,f6,g6] ~ [g5,d6,f6,g6] ~ [g5,d6,f6,g6] ~ [g5,d6,f6,g6] ~ [g5,d6,f6,g6] ~ [g5,d6,f6,g6] ~ [g5,d6,f6,g6] ~", // G7
AR: "[d5,f#5,a5,d6] ~@15", AS: "~@10 [a4,a5] ~ [b4,b5] ~ [c#5,c#6] ~",
AT: "[d5,a5,d6] ~ [d5,a5,d6] ~ [d5,b5,d6] ~ [d5,b5,d6] ~ [d5,b5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~", // D5 G D5
AU: "[d5,b5,d6] ~ [d5,b5,d6] ~ [d5,b5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,b5,c6,d6] ~ [d5,b5,d6] ~", // G D5 G
AV: "[d5,b5,c6,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,b5,d6] ~ [d5,b5,d6] ~ [d5,b5,d6] ~ [d5,a5,d6] ~", // G D5 G D5
AW: "[d5,b5,d6] ~ [d5,b5,d6] ~ [d5,a5,d6] ~ [d5,b5,d6] ~ d5 ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~", // G D5 G D5
AX: "[d5,a5,d6] ~ [b4,b5] ~ [a4,a5] ~ [d5,a5,d6]@7 ~@3", // D5 B A D5
})).s("gm_piano").gain(0.45)
// drums · kick
const kick = s("bd").struct(`<
~ A ~ B@8 A ~ B@10 A ~ B@9 C B@3 C B@2 C@2 A D C@2 E C@2 F B@2 A ~ B@3 C B@3 C A ~ B G A ~ B C B E B C B H
>`.pickRestart({
A: "x", B: "x!2", C: "x ~@3 x!2 ~@2", D: "~@7 x", E: "x ~@3 x!2 ~ x", F: "x!2 ~@2 x!2 ~ x", G: "x!2 ~@2 x ~@3",
H: "x ~@2 x ~@4",
})).gain(0.5)
// drums · snare
const snare = s("sd").struct(`<
A B ~ C@8 ~ D E@10 ~ D F@6 G D E@10 ~ D F@6 G D ~ D E@8 ~ D E@2 ~ D E@3 H E@3 I
>`.pickRestart({
A: "x!8", B: "x", C: "~ x ~ x", D: "~@5 x!3", E: "~@2 x ~@3 x!2", F: "~@2 x!2 ~@2 x ~", G: "x!2", H: "~@2 x ~@2 x!3",
I: "~ x ~@2",
})).gain(0.5)
// drums · clap
const clap = s("cp").struct("<~@13 A@10 ~@10 A@10 ~@12 A@8 ~@2 A@2 ~@2 A@7 B>".pickRestart({
A: "~@2 x ~@3 x!2", B: "~ x ~@2",
// … 18 more lines
More by Francis Connie
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.