0:00/0:00
// I Want You Back — Jackson 5
// 102 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 71 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(102/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.
// chords · piano
const piano = note(`<
A B C D E F C D E G@2 H I F C D E F C D E G@2 H I G@2 H I J K L@2 M N O P M N O Q R S T U R S V ~@6 W R S T X@2 G@2 H
I Y@2 R S T X@2
>`.pickRestart({
A: "~@12 [g6,a6,b6,c7] [a5,b5,c6,d6,e6,f6] [b4,c5,d5,e5,f5,g5] [d4,e4,f4,g4,a4]", // Cmaj7 Dm7 Cmaj7 Dm
B: "[ab2,a3,b3,c4] ~@10 b2 c3 eb3 f3 db3", C: "~@9 bb2 c3 db3 ~ d3 eb3 e3", D: "f3@4 c3@3 ~ db3@2 ~ ab2@5",
E: "bb2@3 ~ eb3@2 ~ ab2 ~@2 eb3 f3 ab3 f3 ab3 ~", F: "ab2 ~@10 b2 c3 eb3 f3 db3",
G: "[[ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [ab4,c5,eb5]@2 ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [c5,f5]@2 ab4 [ab4,c5,f5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [c5,f5]@2 ab4 [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ g4, ~@15 ab4 ~@8 ab4 ~@7]/2", // Ab Eb Ab Eb F5 Fm Eb F5 …
H: "[ab4,c5,f5] ~ [ab4,c5,f5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [c5,f5]@2 ab4 [g4,bb4,eb5] ~ [g4,bb4,eb5] ~@2, ~@8 ab4 ~@7", // Fm Eb F5 Eb
I: "[ab4,db5]@2 f4 ~ [f4,ab4,db5]@2 ~ [eb4,ab4,c5] ~@2 eb4 f4 ab4 f4 ab4 ~, f4 ~@15", // Db5 Db Ab
J: "[ab4,c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4 [c5,eb5]@2 ab4 [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4!2, ~@7 ab4 ~@8", // Ab Db Ab Cm Db Ab
K: "[ab4,c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4 [ab4,c5,eb5] ~ ab4 [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4!2", // Ab Db Ab Db Ab
L: "[[ab4,c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4 [ab4,c5] ~ ab4 [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4 ~ [c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4!2 ab2 ~@7, ~@7 eb5@2 ~@6 ab4@2 ~@15]/2", // Ab Db Ab Db Ab Cm Db Ab
M: "~@3 b2 c3 eb3 f3 db3 ~@8", N: "~ bb2 c3 db3 ~ d3 eb3 e3 f3@4 c3@3 ~", O: "db3@2 ~ ab2@5 bb2@3 ~ eb3@2 ~ ab2",
P: "~@2 eb3 f3 ab3 f3 ab3 ~ ab2 ~@7",
Q: "~@2 eb3 f3 ab3 f3 ab3 ~ [ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~", // Ab Eb
R: "[ab4,c5,eb5]@2 ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [c5,f5]@2 ab4 [ab4,c5,f5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~, ~@7 ab4 ~@8", // Ab Eb F5 Fm Eb
S: "[c5,f5]@2 ab4 [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ g4 [ab4,c5,f5] ~ [ab4,c5,f5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~, ab4 ~@15", // F5 Eb Fm Eb
T: "[c5,f5]@2 ab4 [g4,bb4,eb5] ~ [g4,bb4,eb5] ~@2 [ab4,db5]@2 f4 ~ [f4,ab4,db5]@2 ~ [eb4,ab4,c5], ab4 ~@7 f4 ~@7", // F5 Eb Db5 Db Ab
U: "~@2 eb4 f4 ab4 f4 ab4 ~ [ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~", // Ab Eb
V: "[c5,f5]@2 ab4 [g4,bb4,eb5] ~ [g4,bb4,eb5] ~@10, ab4 ~@15", // F5 Eb
W: "~@8 [ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~", // Ab Eb
X: "[~@2 eb4 f4 ab4 f4 ab4 ~ [ab4,c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4 [ab4,c5] ~ ab4 [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4 ~ [c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4!2, ~@15 eb5@2 ~@6 ab4@2 ~@7]/2", // Ab Db Ab Db Ab Cm Db Ab
Y: "[[ab4,c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4 [ab4,c5] ~ ab4 [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4 ~ [c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~ ab4!2 [ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~, ~@7 eb5@2 ~@6 ab4@2 ~@15]/2", // Ab Db Ab Db Ab Cm Db Ab …
})).s("gm_piano").gain(0.31).pan(0.2)
// bass · electric bass finger
const bass = note(`<
~ A B C D A B C D E F G H A B C D A B C D E F G H E F G I J@3 K L M N O L M N P@3 Q R@3 S ~ T@8 Q U V E F G W J X@3 Q
U V
>`.pickRestart({
A: "ab1 ~@10 b1 c2 eb2 f2 db2", B: "~@9 bb1 c2 db2 ~ d2 eb2 e2", C: "f2@4 c2@3 ~ db2@2 ~ ab1@5",
D: "bb1@3 ~ eb2@2 ~ ab1 ~@2 eb2 f2 ab2 f2 ab2 ~", E: "ab1 eb2 ab2 g1@2 eb2 g2 f1@2 c2 f2 eb2@2 c2 eb2 c2",
F: "db2 ab1 db2 c2@2 ab1 c2 bb1@2 c2 db2 eb2 ~ bb1 eb2 e2", G: "f2@3 ~ c2@3 ~ db2@2 ~ ab1@4 ~",
H: "bb1@4 eb2@2 ~ ab1 ~ ab1 eb2 f2 ab2 f2 ab2 ~", I: "bb1@4 eb2@2 ~ ab1 ~ ab1!4 ~@3", J: "~@9 ab1!4 ~@3",
K: "~@5 eb2 f2 ab2 ab1 ~@7", L: "~@3 b1 c2 eb2 f2 db2 ~@8", M: "~ bb1 c2 db2 ~ d2 eb2 e2 f2@4 c2@3 ~",
N: "db2@2 ~ ab1@5 bb1@3 ~ eb2@2 ~ ab1", O: "~@2 eb2 f2 ab2 f2 ab2 ~ ab1 ~@7",
P: "[~@2 eb2 f2 ab2 f2 ab2 ~ ab1 eb2 ab2 g1@2 eb2 g2 f1@2 c2 f2 eb2@2 c2 eb2 c2 db2 ab1 db2 c2@2 ab1 c2 bb1@2 c2 db2 eb2 ~ bb1 eb2 e2 f2@3 ~ c2@3 ~]/3",
Q: "db2@2 ~ ab1@4 ~ bb1@4 eb2@2 ~ ab1",
R: "[~ ab1 eb2 f2 ab2 f2 ab2 ~ ab1 eb2 ab2 g1@2 eb2 g2 f1@2 c2 f2 eb2@2 c2 eb2 c2 db2 ab1 db2 c2@2 ab1 c2 bb1@2 c2 db2 eb2 ~ bb1 eb2 e2 f2@3 ~ c2@3 ~]/3",
S: "db2@2 ~ ab1@4 ~@9",
T: "[~@5 ab2 c3 c2@6 db2 f2 ab1@6 ab2 c3 c2@6 db2 f2 ab1@6 ab2 c3 ~ ab1 c2 eb2 c2@2 eb2 g2 db2@2 f2 ab2 ab1@2 c2 eb2 ab1!2 c2 eb2 c2@2 eb2 g2 db2@2 f2 ab2 ab1@2 c2 eb2 ~ ab1 c2 eb2 c2@2 eb2 g2 db2@2 f2 ab2 ab1@2 eb2 f2 ab2 ab1 eb2 ab2 g1@2 eb2 g2 f1@2 c2 f2 eb2@2 c2 eb2 c2 db2 ab1 db2 c2@2 ab1 c2 bb1@2 c2 db2 eb2 ~ bb1 eb2 e2 f2@3 ~ c2@3 ~]/8",
U: "~ ab1 eb2 f2 ab2 f2 ab2 ~@9", V: "~ ab1!4 ~@8 eb2 f2 ab2", W: "bb1@3 ~ eb2@2 ~ ab1 ~ ab1 eb2 f2 ab2 f2 ab2 ~",
X: "[~@5 eb2 f2 ab2 ab1 eb2 ab2 g1@2 eb2 g2 f1@2 c2 f2 eb2@2 c2 eb2 c2 db2 ab1 db2 c2@2 ab1 c2 bb1@2 c2 db2 eb2 ~ bb1 eb2 e2 f2@3 ~ c2@3 ~]/3",
})).s("gm_electric_bass_finger").gain(0.46)
// chords · epiano2
const epiano2 = note(`<
~@4 A B C D A E@2 F G ~@3 A ~@2 D A E@2 F G E@2 F G ~@5 H I J K L I M N O P Q R@2 S T@6 U V@2 W X@2 E@2 F G Y Z V@2 W
X@2
>`.pickRestart({
A: "[bb3,ab4,db5,f5]@3 ~ [eb4,ab4,db5,f5]@3 [ab3,ab4,c5,eb5] ~@8", // Bbm7 Db Ab
B: "[eb4,ab4,c5]!2 ~ [eb4,ab4,c5] ~@2 [eb4,g4,bb4]!2 ~ [eb4,f4,ab4] ~@6", // Ab Eb Fm7
C: "[db4,f4] [db4,ab4] ~ [db4,ab4] ~ [db4,ab4] f4 [db4,ab4] ~ [db4,f4,ab4] ~@6", // Db Db5 Db
D: "[f4,ab4,c5]@3 ~ [eb4,g4,bb4]@3 ~ [db4,f4,ab4]@2 ~ [c4,eb4,ab4]@4 ~", // Fm Eb Db Ab
E: "[[c4,eb4,ab4]@3 ~ [bb3,eb4,g4]@3 ~ [c4,eb4,ab4]@2 ~ [bb3,g4]@2 eb4 ~ [ab3,db4,f4]@3 ab3 ~ [ab3,c4,eb4]@2 ~ [ab3,db4,f4]@3 ~ [ab3,db4,f4] ~ [bb3,eb4,g4]@2 ~, ~@11 eb4 ~@20]/2", // Ab Eb Ab Eb Db Ab Db Eb
F: "[c4,eb4,ab4]@3 ~ [bb3,eb4,g4]@3 ~ [ab3,db4,f4]@2 ~ [ab3,c4,eb4]@4 ~", // Ab Eb Db Ab
G: "[ab3,db4,f4]@3 ~ [ab3,db4,f4]@3 [ab3,c4,eb4] ~@8", H: "~@8 [f4,ab4,c5]@3 ~ [eb4,g4,bb4]@2 ~@2",
I: "[db4,f4,ab4]@2 ~ [c4,eb4,ab4]@4 ~ [bb3,ab4,db5,f5]@3 ~ [eb4,ab4,db5,f5]@3 [ab3,ab4,c5,eb5]", // Db Ab Bbm7 Db Ab
J: "~@8 [eb4,ab4,c5]!2 ~ [eb4,ab4,c5] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4]", // Ab Eb
K: "~ [eb4,f4,ab4] ~@6 f4 ab4 ~ [db4,ab4] ~ [db4,f4] ~ [db4,f4,ab4], ~@4 db4 ~@3", // Fm7 Db5 Db
L: "~ [db4,f4,ab4] ~@6 [f4,ab4,c5]@3 ~ [eb4,g4,bb4]@3 ~", // Db Fm Eb
M: "~@8 [c4,eb4,ab4]@2 c4 ~ [eb4,g4]@2 [bb3,eb4] ~, ~@12 bb3 ~@3", // Ab Eb Eb5
N: "[eb4,ab4]@2 c4 [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [db4,f4]@2 ab3 [ab3,db4,f4] ~ [c4,eb4]@2 ab3 ~, c4 ~@6 ab3 ~@4 ab3 ~@3", // Ab5 Eb Db Cm
O: "[db4,f4]@2 ab3 [ab3,db4,f4] ~ [bb3,eb4,g4] ~@2 [c4,eb4,ab4]@3 ~ [bb3,eb4,g4]@3 ~, ab3 ~@15", // Db Eb Ab Eb
P: "[ab3,db4,f4]@2 ~ [ab3,c4,eb4]@3 ab3 ~ [ab3,db4,f4]@3 ~ [ab3,db4,f4]@2 ~ [ab3,c4,eb4]", // Db Ab Db Ab
Q: "~@8 [c4,eb4,ab4]@3 ~ [bb3,eb4,g4]@3 ~", // Ab Eb
R: "[[c4,eb4,ab4]@2 ~ bb3@2 bb3 ~ [eb4,ab4] [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [bb3,eb4,g4]@2 ~ [db4,f4]@2 ab3 ~ [ab3,db4,f4] ~ [bb3,eb4,g4]@2 ~ [c4,eb4,ab4]@3 ~ [bb3,eb4,g4]@3 ~, ~@3 [eb4,g4]@4 ~@8 ab3 ~@16]/2", // Ab Ab5 Ab Eb Db Eb Ab Eb
S: "[ab3,db4,f4]@2 ~ [ab3,c4,eb4]@4 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] [c4,eb4,g4] ~ [c4,eb4,g4] ~ [bb3,db4,f4]", // Db Ab Cm Bbm
T: "~ [bb3,db4,f4] ~ [ab3,c4,eb4] ~@4 [ab3,c4,eb4] ~ [ab3,c4,eb4] [c4,eb4,g4] ~ [c4,eb4,g4] ~ [bb3,db4,f4]", // Bbm Ab Cm Bbm
U: "~ [bb3,db4,f4] ~ [ab3,c4,eb4] ~@4 [c4,eb4,ab4]@3 ~ [bb3,eb4,g4]@3 ~", // Bbm Ab Eb
V: "[[c4,eb4,ab4]@2 ~ [bb3,g4]@2 eb4 ~ [ab3,db4,f4]@3 ab3 ~ [ab3,c4,eb4]@2 ~ [ab3,db4,f4]@3 ~ [ab3,db4,f4] ~ [bb3,eb4,g4]@2 ~ [c4,eb4,ab4]@3 ~ [bb3,eb4,g4]@3 ~, ~@3 eb4 ~@28]/2", // Ab Eb Db Ab Db Eb Ab Eb
W: "[ab3,db4,f4]@2 ~ [ab3,c4,eb4]@4 ~ [ab3,db4,f4]@3 ~ [ab3,db4,f4]@3 [ab3,c4,eb4]", // Db Ab Db Ab
X: "[~@8 [ab4,c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~@2 [ab4,c5,eb5]@2 ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~@3 [ab4,c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~@3]/2", // Ab Db Ab Db Ab Db Ab
Y: "[ab4,c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~@2 [ab4,c5,eb5]@2 ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~@3", // Ab Db Ab Db Ab
Z: "[ab4,c5,eb5] ~ [ab4,db5,f5] ~ [ab4,c5,eb5] ~@3 [c4,eb4,ab4]@3 ~ [bb3,eb4,g4]@3 ~", // Ab Db Ab Eb
})).s("gm_epiano2").gain(0.32).pan(0.8)
// other · string ensemble 1
const string_ensemble_1 = note(`<
~ A ~@3 B C D E F G H@2 ~@6 D E F G H@2 F G I@2 ~@7 J@3 K L@3 M N@3 O ~@6 P@3 M Q ~ F G H@2 ~ P@3 M Q R
>`.pickRestart({
A: "[ab3,ab4] ~@15", B: "[ab4,ab5] ab5!4 ~ [ab4,ab5] ab5!4 ~ ab5!4",
C: "[ab4,ab5] ab5!3 ~ ab5 [ab4,ab5] ab5!4 ~ ab5!3 ~", // Ab
D: "[c5,c6] [eb5,eb6] [f5,f6] [ab5,ab6] ~ [ab5,ab6] ~ [ab5,ab6] ~ [ab5,ab6] ~ [f5,f6] [ab5,ab6]@2 [f5,f6] ~", // C Eb F Ab F Ab F
E: "[c5,c6] [eb5,eb6] [f5,f6] [ab5,ab6] ~ [ab5,ab6] ~ [f5,f6] [ab5,ab6] ~@7", // C Eb F Ab F Ab
F: "[eb4,eb6]@4 [c4,c6] [db4,db6] [eb4,eb6]@10", G: "[f4,f6] [g4,g6] [ab4,ab6]@13 ~",
H: "[[c4,c6]@4 [bb3,bb5]@3 ~ [ab3,ab5]@3 [ab3,ab5] ~ [f3,f5] [ab3,ab5]@8 ~@2 [f4,f6]@2 [ab4,ab6] ~ [c4,c6]@2 [eb4,eb6] ~]/2", // C Bb Ab F Ab F Ab C …
I: "[[c4,c6]@4 [bb3,bb5]@3 ~ [ab3,ab5]@3 [ab3,ab5] ~ [f3,f5] [ab3,ab5]@8 ~@3 [ab3,ab4]!4 ~@3]/2", // C Bb Ab F Ab
J: "[~@8 [ab2,eb3,ab3,c4] ~@4 c3 db3 eb3@4 ~@10 f3 ~ ab3@6 f3 ~@2 [c5,c6] [eb5,eb6] [f5,f6] [ab5,ab6] ~ [ab5,ab6] ~ [ab5,ab6]]/3", // Ab C Eb F Ab
K: "~ [ab5,ab6] ~ [f5,f6] [ab5,ab6]@2 [f5,f6] ~ [c5,c6] [eb5,eb6] [f5,f6] [ab5,ab6] ~ [ab5,ab6] ~ [f5,f6]", // Ab F Ab F C Eb F Ab …
L: "[[ab5,ab6] ~@7 [eb4,eb6]@4 [c4,c6] [db4,db6] [eb4,eb6]@10 [f4,f6] [g4,g6] [ab4,ab6]@13 ~ [c4,c6]@4 [bb3,bb5]@3 ~]/3", // Ab Eb C Db Eb F G Ab …
M: "[ab3,ab5]@3 [ab3,ab5] ~ [f3,f5] [ab3,ab5]@8 ~@2", // Ab F Ab
N: "[[f4,f6]@2 [ab4,ab6] ~ [c4,c6]@2 [eb4,eb6] ~ [eb4,eb6]@4 [c4,c6] [db4,db6] [eb4,eb6]@10 [f4,f6] [g4,g6] [ab4,ab6]@13 ~ [c4,c6]@4 [bb3,bb5]@3 ~]/3", // F Ab C Eb C Db Eb F …
O: "[ab3,ab5]@3 [ab3,ab5] ~ [f3,f5] [ab3,ab5]@2 ~@8", // Ab F Ab
P: "[~@8 [eb4,eb6]@4 [c4,c6] [db4,db6] [eb4,eb6]@10 [f4,f6] [g4,g6] [ab4,ab6]@13 ~ [c4,c6]@4 [bb3,bb5]@3 ~]/3", // Eb C Db Eb F G Ab C …
Q: "[f4,f6]@2 [ab4,ab6] ~ [c4,c6]@2 [eb4,eb6] ~@9", R: "~@13 [eb4,eb6] [f4,f6] [ab4,ab6]",
})).s("gm_string_ensemble_1").gain(0.28)
// other · brass section
const brass_section = note(`<
~ A ~@5 B C D E ~@8 B C ~ F ~@3 G ~ H ~ I J K ~@3 L ~ M N O P Q ~ R P S ~@7 T U V ~ W X ~ Y ~ Z ~ AA AB Q ~ W AC
>`.pickRestart({
A: "[ab3,ab4] ~@15", // Ab
B: "[c4,c5] [eb4,eb5] [f4,f5] [ab4,ab5] ~ [ab4,ab5] ~ [ab4,ab5] ~ [ab4,ab5] ~ [f4,f5] [ab4,ab5]@2 [f4,f5] ~", // C Eb F Ab F Ab F
C: "[c4,c5] [eb4,eb5] [f4,f5] [ab4,ab5] ~ [ab4,ab5] ~ [f4,f5] [ab4,ab5] ~@7", D: "[eb4,c5,ab5] ~@15",
E: "~@6 f3 [ab3,ab5] ~ [ab3,ab5] ~ [f3,f5] [ab3,ab5]@2 [f3,f5] ~", // Ab F Ab F
F: "~@7 [f4,db5] ~ [f4,db5] [eb4,c5]!2 bb4@2 [c4,ab4] ~, ~@12 db4 ~@3", // Db Cm Fm
G: "~@7 [ab3,ab5] ~ [ab3,ab5] ~ [f3,f5] [ab3,ab5]@2 [f3,f5] ~", H: "~@9 [ab3,ab5]!4 ~@3", I: "~@9 [ab2,ab4]!4 ~@3",
J: "~@9 [ab3,ab4]!4 ~@3", K: "~@5 eb4 ~ ab4 ~@8", L: "~@8 [eb4,ab4,c5] ~@7",
M: "~@8 [c4,c5] [eb4,eb5] [f4,f5] [ab4,ab5] ~ [ab4,ab5] ~ [ab4,ab5]", // C Eb F Ab
N: "~ [ab4,ab5] ~ [f4,f5] [ab4,ab5]@2 [f4,f5] ~ [c4,c5] [eb4,eb5] [f4,f5] [ab4,ab5] ~ [ab4,ab5] ~ [f4,f5]", // Ab F Ab F C Eb F Ab …
O: "[ab4,ab5] ~@15", P: "~@15 [ab3,ab5]", Q: "~ [ab3,ab5] ~ f3 [ab3,ab5]@2 f3 ~@9", R: "~ [ab3,ab5]!4 ~@11",
S: "~ [ab3,ab5] ~ f3 [ab3,ab5]@2 [f3,f5] ~@9", T: "~@8 [eb4,c5,ab5] ~@7", U: "~@14 f3 [ab3,ab4]",
V: "~ [ab3,ab4] ~ f3 [ab3,ab4]@2 [f3,f4] ~@9", W: "~ [ab3,ab4]!4 ~@11", X: "~ ab3!4 ~@8 eb4 f4 ab4",
Y: "~@7 [ab3,ab5] ~ [ab3,ab5] ~ f3 [ab3,ab5]@2 [f3,f5] ~", Z: "~@9 [ab3,ab5]!2 ab3 [ab3,ab5] ~@3",
AA: "~@8 [ab3,ab5] ~@7", AB: "~@13 [f3,f5] ~ [ab3,ab5]", AC: "~@13 [eb4,eb5] [f4,f5] [ab4,ab5]",
})).s("gm_brass_section").gain(0.28)
// other · brass section · soft notes
const brass_section_soft = note("<~@10 A ~@15 B ~@5 C ~@8 D E ~@3 F ~@8 G H ~@4 I ~ J ~@3 E ~@3>".pickRestart({
A: "~@6 f5 ~@9", B: "~@6 [f3,f5] ~@9", C: "~@6 f4 ~@9", D: "~@14 [f3,f5] ~", E: "~@3 f5 ~@2 f5 ~@9", F: "~@3 f5 ~@12",
G: "~@14 f4 ~", H: "~@3 f4 ~@12", I: "~@6 [f3,f5] ~@4 f5 ~@4", J: "~@11 ab5 ~@4",
})).s("gm_brass_section").gain(0.2)
// other · electric guitar muted
const electric_guitar_muted = note(`<
~ A B C D A B C D E F G H I J K L I J K L E F G H E F G H E F G M N O P Q N O P Q R S T Q R S U N O P Q N O V R S T W
T E F G H G M R S T W T
>`.pickRestart({
A: "~ ab3 ~ ab3 ~ eb3 f3 ab3 ~ ab3 ~ ab3 ~ ab3!2 eb3", B: "f3 ab3 ~ f3 ab3 ~ f3 ab3 ~ ab3!3 ~ ab3!2 eb3",
C: "f3 ab3 ~ f3 ab3 ~ f3 ab3 ~ ab3 ~ ab3 ~ ab3!2 eb3", D: "f3 ab3!2 f3 ab3!2 f3 ab3 ~ ab3 eb3 f3 ab3 f3 ab3 ~",
E: "ab3!2 ~ ab3 ~ ab3!3 ~ ab3 ~ ab3!4 eb3", F: "f3 ab3 ~ ab3 ~ f3 ab3!2 ~ ab3!3 ~ ab3!3",
G: "ab3!4 ~ ab3!3 ~ ab3!3 ~ ab3!2 eb3", H: "f3 ab3!3 ~ f3 ab3!2 ~ ab3 eb3 f3 ab3 f3 ab3 ~",
I: "ab3!2 ~ ab3 ~ ab3!3 ~ ab3 ~ ab3!5", J: "~ ab3!3 ~ ab3!3 ~ ab3 ~ ab3!3 ~ ab3",
K: "f3 ab3!3 ~ ab3 f3 ab3 ~ ab3 ~ ab3!3 ~ ab3", L: "ab3!4 ~ ab3!3 ~ ab3 eb3 f3 ab3 f3 ab3 ~",
M: "f3 ab3!3 ~ f3 ab3!4 ~ ab3 ~ ab3!3", N: "~ ab3 ~ ab3!5 ~ ab3!3 ~ ab3!3",
O: "~ ab3 ~ ab3!3 ~ ab3 f3 ab3!3 ~ ab3 f3 ab3", P: "~ ab3 ~ ab3!3 ~ ab3!5 ~ ab3!3",
Q: "~ ab3 eb3 f3 ab3 f3 ab3 ~ ab3!2 ~ ab3 ~ ab3!3", R: "~ ab3 ~ ab3!4 eb3 f3 ab3 ~ ab3 ~ f3 ab3!2",
S: "~ ab3!3 ~ ab3!7 ~ ab3!3", T: "~ ab3!3 ~ ab3!2 eb3 f3 ab3!3 ~ f3 ab3!2",
U: "~ ab3!3 ~ ab3!2 eb3 ab3!2 ~ ab3 ~ ab3!3", V: "~ ab3 ~ ab3!3 ~ ab3!3 ~ ab3 ~ ab3!3",
W: "~ ab3 eb3 f3 ab3 f3 ab3 ~ ab3!4 ~ ab3!3",
})).s("gm_electric_guitar_muted").gain(0.29)
// drums · kick
const kick = s("bd").struct(`<
~ A ~@3 B ~ A ~ C D@2 E ~@4 B ~ A ~ C D@2 E C D@2 E C D@2 F ~@3 G H G ~ I J@2 K L J@2 M ~@3 G@2 N I J@2 K ~@13
>`.pickRestart({
A: "x", B: "x ~@14 x", C: "x ~@6 x ~ x!2 ~@5", D: "x ~ x ~@4 x ~ x!2 ~@5", E: "x ~ x ~@6 x ~@6", F: "x!2 ~@6",
G: "~ x", H: "~@7 x ~@8", I: "~@8 x ~@6 x", J: "~ x!2 ~@5 x ~ x ~@4 x", K: "~ x!2 ~@5 x ~ x ~@5",
L: "~ x ~@6 x ~@6 x", M: "~ x!2 ~@13", N: "~@7 x!2 ~@7",
})).gain(0.42)
// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
~@6 A ~@2 B A@2 C ~@5 A ~@2 B A@2 C B A@2 C B A@2 C ~@5 C ~ D C@2 E D C@3 ~@4 C ~ D C@2 E ~@13
>`.pickRestart({
A: "~@15 x", B: "~@2 x ~@12 x", C: "~@7 x ~@8", D: "~@5 x ~@2", E: "~@7 x ~@7 x",
})).gain(0.24)
// drums · snare
const snare = s("sd").struct("<~@8 A B@3 C ~@7 A B@3 C B@3 C B@3 D ~@7 E B@3 F B@2 D ~@6 G B@3 ~@13>".pickRestart({
A: "~@9 x!6 ~", B: "~ x ~ x", C: "~@2 x ~@2 x!2 ~", D: "~ x ~@2", E: "~ x!6 ~@5 x ~@3", F: "~ x!2 ~@3 x ~",
G: "~ x!7 ~@4 x ~@3",
})).gain(0.48)
// drums · hihat
const hihat = s("hh").struct(`<
A B C@2 A D E F G H I E G C@4 J E F G K C E G B L@2 M K C E N C@3 O P Q E R C@2 S T C F U ~ B C F E V R C@2 S ~@13
>`.pickRestart({
A: "x!3 ~", B: "~@2 x!2", C: "x!4", D: "~@3 x!2 ~@3 x ~ x ~ x ~ x ~", E: "x ~ x ~ x ~ x!2", F: "x!3 ~ x ~ x ~",
G: "x ~ x!3 ~@3", H: "~ x!3", I: "x!3 ~ x!3 ~", J: "x ~@2 x!2 ~@3 x ~ x ~ x ~ x ~", K: "~@3 x!2 ~ x ~",
L: "x ~ x ~ x!3 ~", M: "x ~ x!2 ~@4", N: "x ~ x!3 ~ x ~", O: "x ~@3 x ~@3 x ~@2 x!2 ~@3", P: "x!5 ~ x ~",
Q: "x ~ x!5 ~", R: "x ~@6 x", S: "x ~ x!3 ~ x!2", T: "x", U: "x!3 ~@5", V: "x!3 ~ x!4",
})).gain(0.3)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
~ A B C D@2 E B F G H G ~@5 D E B F I E D F I J D F I E D F ~@3 I@2 K E ~ C L M ~ N I ~@2 I B I E ~@2 C L M ~@13
>`.pickRestart({
A: "~@2 x!2 ~ x ~ x", B: "~@3 x ~ x ~ x", C: "~ x ~ x ~ x ~ x", D: "~ x ~ x ~@4", E: "~ x ~ x ~ x ~@2", F: "~ x ~@6",
G: "~@3 x ~ x ~@2", H: "~@3 x ~@3 x", I: "~@5 x ~ x", J: "~@3 x ~@4", K: "~ x ~@5 x", L: "~ x ~@3 x ~ x",
M: "~@5 x ~@2", N: "~ x ~ x ~@3 x",
})).gain(0.18)
// drums · open hat
const open_hat = s("oh").struct(`<
~@2 A ~@6 B ~ A@2 ~@9 B C D ~ E B F ~ B C ~@10 G A H C G@2 ~@3 G ~ G ~@2 G A ~@13
>`.pickRestart({
// … 55 more lines
More by Jackson 5
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.