0:00/0:00
// The Hustle — Van McCoy
// 108 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 101 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(108/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@3 B A@3 B A@2 C D@7 E@8 F@2 G@8 H I@4 J@8 K@8 L@8 M@6 N@2 O@8 P@8 Q@8 R@4>".pickRestart({
A: "c2@3 c2!2 ~ c2 ~@9", B: "c2@3 c2!2 ~ c2 ~@3 eb2@2 d2@2 db2 ~", C: "c2@6 c2@2 c2@2 ~@2 c2@2 ~@17 c2",
D: "[~@31 f1@6 f1@6 f1@2 ~@18 g1@6 g1@6 g1@2 ~@18 f1@6 f1@6 f1@2 ~@10 f1@2 f1@2 gb1@2 gb1@2 g1@6 g1@6 g1@2 ~@14 g1@4 bb1@6 bb1@6 bb1@2 ~@10 bb1@2 bb1@2 d2@2 bb1@2 a1@6 a1@6 a1@2 ~@10 a1@2 a1@2 c2@2 a1@2 g1]/7",
E: "[~@5 g1@6 g1@2 ~@10 g1@2 bb1@2 d2@2 bb1@2 c2@32 f1@6 f1@6 f1@2 ~@18 g1@6 g1@6 g1@2 ~@18 f1@6 f1@6 f1@2 ~@10 f1@2 f1@2 gb1@2 gb1@2 g1@6 g1@6 g1@2 ~@14 g1@4 bb1@6 bb1@6 bb1@2 ~@10 bb1@2 bb1@2 d2@2 bb1@2 a1@6 a1@6 a1@2 ~@10 a1@2 a1@2 c2@2 a1@2 g1]/8",
F: "[~@5 g1@6 g1@2 ~@10 g1@2 bb1@2 d2@2 bb1@2 c2@32 db2]/2",
G: "[~@5 db2@5 ~ db2@2 ~@14 db2@4 bb1@6 bb1@5 ~ bb1@2 ~@18 ab1@6 ab1@6 ab1@2 ~@18 c2@6 c2@6 c2@2 ~@6 g2@4 eb2@4 c2@4 db2@6 db2@6 db2@2 ~@14 db2@4 bb1@6 bb1@6 bb1@2 ~@14 bb1@4 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2]/8",
H: "~@7 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2",
I: "[~@31 f1@6 f1@6 f1@2 ~@18 g1@6 g1@6 g1@2 ~@18 f1@6 f1@6 f1@2 ~@10 f1@2 f1@2 gb1@2 gb1@2 g1]/4",
J: "[~@5 g1@6 g1@2 ~@14 g1@4 bb1@6 bb1@6 bb1@2 ~@10 bb1@2 bb1@2 d2@2 bb1@2 a1@6 a1@6 a1@2 ~@10 a1@2 a1@2 c2@2 a1@2 g1@6 g1@6 g1@2 ~@10 g1@2 bb1@2 d2@2 bb1@2 eb2@50 ~@2 eb2@4 d2@4 db2@4 c2@6 c2@2 c2@2 ~@2 c2@2 ~@18 c2@6 c2@2 c2@2 ~@2 c2@2 ~@18 c2]/8",
K: "[~@5 c2@2 c2@2 ~@2 c2@2 ~@18 c2@6 c2@2 c2@2 ~@2 c2@2 ~@6 eb2@4 d2@4 db2@2 ~@2 c2@6 c2@2 c2@2 ~@2 c2@2 ~@18 c2@6 c2@2 c2@2 ~@2 c2@2 ~@18 c2@6 c2@2 c2@2 ~@2 c2@2 ~@18 c2@6 c2@2 c2@2 ~@2 c2@2 ~@6 eb2@4 d2@4 db2@2 ~@2 c2@6 c2@2 c2@2 ~@2 c2@2 ~@18 c2@6 c2@2 c2@2 ~@2 c2@2 ~@18 c2]/8",
L: "[~@5 c2@2 c2@2 ~@2 c2@2 ~@18 c2@2 ~@30 f1@2 ~@12 f1@2 f1@2 ~@12 f1@2 g1@2 ~@12 g1@2 g1@2 ~@8 g1@2 bb1@2 g1@2 f1@8 f1@6 f1@2 ~@16 g1@6 g1@6 g1@2 ~@18 bb1@3 ~@11 bb1@2 bb1@2 ~@12 bb1@2 a1@3 ~@11 a1@2 a1@2 ~@12 a1@2 g1]/8",
M: "[~@13 g1@2 g1@2 ~@6 g1@2 a1@2 bb1@2 b1@2 c2@20 g1@4 c2@4 g1@4 f1@4 ~@10 f1@2 f1@2 ~@6 f1@2 f1@2 g1@2 a1@2 g1@2 ~@12 g1@2 g1@2 ~@6 g1@2 g1@2 a1@2 bb1@2 f1@2 ~@12 f1@2 f1@2 ~@6 f1@2 f1@2 g1@2 a1@2 g1@4 ~@10 g1@2 g1@2 ~@6 g1@2 g1@2 a1@2 bb1@2 bb1]/6",
N: "[~@13 bb1@2 bb1@2 ~@8 bb1@2 d2@2 bb1@2 a1@3 ~@11 a1@2 a1@2 ~@8 a1@2 c2@2 a1@2 g1]/2",
O: "[~@13 g1@2 g1@2 ~@8 g1@2 a1@2 bb1@2 c2@16 c2@2 ~@2 c2@12 db2@6 db2@6 db2@2 ~@14 db2@4 bb1@6 bb1@6 bb1@2 ~@18 ab1@6 ab1@6 ab1@2 ~@18 c2@6 c2@6 c2@2 ~@6 g2@4 eb2@4 c2@4 db2@6 db2@6 db2@2 ~@14 db2@4 bb1@6 bb1@5 ~ bb1@2 ~@14 bb1@4 c2]/8",
P: "[~@7 c2@4 ~@4 c2@4 ~@4 c2@4 ~@4 c2@4 ~@4 c2@4 ~@4 c2@4 ~@4 c2@4 ~@4 c2@4 ~@4 c2@4 ~@4 c2@4 ~@4 c2@4 ~@4 c2@2 ~@30 f1@2 ~@12 f1@2 f1@2 ~@12 f1@2 g1@2 ~@12 g1@2 g1@2 ~@8 g1@2 bb1@2 g1@2 f1@8 f1@6 f1@2 ~@16 g1@6 g1@6 g1@2 ~@18 bb1]/8",
Q: "[~@13 bb1@2 bb1@2 ~@12 bb1@2 a1@2 ~@12 a1@2 a1@2 ~@12 a1@2 g1@2 ~@12 g1@2 g1@2 ~@6 g1@2 a1@2 bb1@2 b1@2 c2@20 g1@4 c2@4 g1@4 f1@4 ~@10 f1@2 f1@2 ~@6 f1@2 f1@2 g1@2 a1@2 g1@2 ~@12 g1@2 g1@2 ~@6 g1@2 g1@2 a1@2 bb1@2 f1@2 ~@12 f1@2 f1@2 ~@6 f1@2 f1@2 g1@2 a1@2 g1@4 ~@10 g1@2 g1@2 ~@6 g1@2 g1@2 a1@2 bb1@2 bb1]/8",
R: "[~@13 bb1@2 bb1@2 ~@8 bb1@2 d2@2 bb1@2 a1@2 ~@12 a1@2 a1@2 ~@8 a1@2 c2@2 a1@2 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 f2@2 ~@31]/4",
})).s("gm_acoustic_bass").gain(0.36)
// other · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
A@2 B@2 A@2 C@2 D E@2 F ~@15 G@3 H@6 I@2 ~@9 J@8 K@2 L@5 M@5 ~@7 N@3 O@6 P@5 M@5 ~@6 Q@2
>`.pickRestart({
A: "[g4@13 a4 g4 d4]/2", B: "[f4@15 ~]/2", C: "f4/2", D: "~@14 [g4,c5] ~, ~@28 bb4 ~@3", E: "~@14 [g4,bb4,c5] ~",
F: "[c4,g4,bb4,c5]", G: "[~@31 c5@20 eb5@6 db5@6 c5@20 ~@2 ab4@5 bb4@5 c5]/3",
H: "[~@11 eb5@2 f5@2 eb5@46 ~@2 c5@20 ~ eb5@5 db5@6 c5@22 ab4@6 bb4@4 c5@28 [g4,bb4]@2 ~@30 [g4,bb4,c5]@2 ~@3, ~@155 c5@22 ~@15]/6", // Gm C7
I: "[~@27 [g4,bb4,c5]@2 ~@2 [g4,bb4,c5]@32 ~]/2", // C7
J: "[~@7 g4@44 a4@4 g4@4 d4@4 f4@59 ~@5 g4@51 ~ a4@4 g4@3 ~ d4@4 f4@64 ~]/8", K: "~@27 [g4,bb4,c5]@2 ~@3",
L: "[~@27 [g4,bb4,c5]@2 ~@2 [g4,bb4,c5]@32 c5@16 f5@24 ~@4 f5@4 e5@4 d5@4 c5@4 d5@4 c5@32 ~]/5", // C7
M: "[~@11 f5@4 e5@3 ~ d5@4 c5@4 d5@4 c5@24 d5@8 f4@20 d4@4 f4@4 a4@4 c5@24 d5@8 c5@31 ~@2]/5",
N: "[~@31 c5@20 eb5@5 ~ db5@6 c5@21 ab4@5 bb4@5 ~ c5]/3",
O: "[~@11 eb5@2 f5@2 eb5@45 ~@3 c5@20 eb5@6 db5@6 c5@22 ab4@5 ~ bb4@4 c5@28 c5@22 ~@10 [g4,bb4,c5]@2 ~@3, ~@155 g4@2 ~@35, ~@155 bb4 ~@36]/6", // C7
P: "[~@27 [g4,bb4]@2 ~@2 [c4,g4,bb4,c5]@32 c5@16 f5@24 ~@4 f5@4 e5@4 d5@4 c5@4 d5@4 c5@32 ~, ~@27 c5 ~@132]/5", // Gm C7
Q: "[~@3 d5 ~@3 c5 ~@3 d5 ~ c5 ~@3 c5 ~ d5 ~@3 c5 ~@3 d5 ~@2 [d5,e5] [f4,f5]@4 ~@29]/2", // Dsus2 F
})).s("gm_synth_brass_1").gain(0.25)
// other · synth brass 1 · "SYNBRASS 1" · soft notes
const synth_brass_1_soft = note("<~@66 A@4 B@5 ~@17 C@8 ~>".pickRestart({
A: "[~@31 a4@4 a4@4 ~@4 a4@8 ~@4 [a4,c5]@8 f4@4 f4@8 f4@8 ~@4 [d4,g4]@8 a4@4 a4@8 a4@12 [a4,c5]@8 f4]/4", // Am G5 Am
B: "[~@3 f4@8 f4@12 g4@7 ~ a4@30 ~@2 a4@30 ~@2 f4@29 ~@3 g4@32 ~]/5",
C: "[~@31 a4@4 a4@3 ~@5 a4@8 ~@4 [a4,c5]@8 f4@4 f4@8 f4@8 ~@4 [d4,g4]@8 a4@4 a4@8 a4@12 [a4,c5]@8 f4@4 f4@8 f4@12 [d4,g4]@8 a4@30 ~@2 a4@30 ~@2 f4@16 g4@16 ~, ~@223 c5 ~@32]/8", // Am G5 Am G5
})).s("gm_synth_brass_1").gain(0.1)
// other · flute
const flute = note(`<
~@11 A B C B D E@2 F@2 B C B D E@3 ~@10 A B C B D E@2 G ~@13 A B C B D E@3 A B C B D E@2 H@2 ~@9 I J K L M N@3 I L K L
M N@2 O@2
>`.pickRestart({
A: "~@31 a5", B: "~@3 g5 ~@3 a5 ~@3 g5 ~ a5 ~@3 a5 ~ g5 ~@3 a5 ~@3 c6 ~@3 f5",
C: "~@3 e5 ~@3 f5 ~@3 e5 ~ f5 ~@3 f5 ~ e5 ~@3 f5 ~@3 g5 ~@3 a5",
D: "~@3 e5 ~@3 f5 ~@3 e5 ~ f5 ~@3 f5 ~ e5 ~@3 f5 ~@3 g5 ~@3 c6",
E: "~@3 d6 ~@3 c6 ~@3 d6 ~ c6 ~@3 c6 ~ d6 ~@3 c6 ~@3 d6 ~@3 c6",
F: "[~@3 d6 ~@3 c6 ~@3 d6 ~ c6 ~@3 c6 ~ d6 ~@3 c6 ~@3 d6 ~@3 c6@3 ~@29 a5]/2",
G: "~@3 d6 ~@3 c6 ~@3 d6 ~ c6 ~@3 c6 ~ d6 ~@3 c6 ~@3 d6 ~@3 db6",
H: "[~@3 d6 ~@3 c6 ~@3 d6 ~ c6 ~@3 c6 ~ d6 ~@3 c6 ~@3 d6 ~@3 c6@2 ~@31]/2", I: "~@31 a6",
J: "~@3 g6 ~@3 a6 ~@3 g6 ~ a6 ~@3 a6 ~ g6 ~@2 a6 ~@4 c7 ~@3 f6",
K: "~@3 e6 ~@3 f6 ~@3 e6 ~ f6 ~@3 f6 ~ e6 ~@3 f6 ~@3 g6 ~@3 a6",
L: "~@3 g6 ~@3 a6 ~@3 g6 ~ a6 ~@3 a6 ~ g6 ~@3 a6 ~@3 c7 ~@3 f6",
M: "~@3 e6 ~@3 f6 ~@3 e6 ~ f6 ~@3 f6 ~ e6 ~@3 f6 ~@3 g6 ~@3 c7",
N: "~@3 d7 ~@3 c7 ~@3 d7 ~ c7 ~@3 c7 ~ d7 ~@3 c7 ~@3 d7 ~@3 c7",
O: "[~@3 d7 ~@3 c7 ~@3 d7 ~ c7 ~@3 c7 ~ d7 ~@3 c7 ~@3 d7 ~@3 f7@2 ~@31]/2",
})).s("gm_flute").gain(0.35)
// other · tubular bells · "TUBULARBEL"
const tubular_bells = note(`<
~@2 A B ~@2 A B ~@3 C D E ~ E F G H C D E ~ E F G H ~ I J K ~ I L ~@3 C D E ~ E F G M ~@13 C D E ~ E F G H C D E ~ E F
G H ~ I N K ~ I L ~@3 C D E ~ E F G H C D E ~ E F G H ~
>`.pickRestart({
A: "~@8 [c4,c5] ~@7 [f4,f5] ~@7 [a4,a5] ~@7", B: "[d5,d6] ~@7 [c5,c6] ~@7 [g4,g5] ~@7 [f4,f5] ~@7", C: "~@31 c6",
D: "~@15 f6 ~@16", E: "~@11 f6 ~@3 e6 ~@3 d6 ~@3 c6 ~@3 d6 ~@3 c6", F: "~@23 d6 ~@7 f5",
G: "~@19 d5 ~@3 f5 ~@3 a5 ~@3 c6", H: "~@23 d6 ~@7 c6", I: "~@19 eb6 ~@5 db6 ~@5 c6", J: "~@21 ab5 ~@4 bb5 ~@4 c6",
K: "~@15 eb6 ~@16", L: "~@21 ab5 ~@5 bb5 ~@3 c6", M: "~@23 d6 ~@7 ab6", N: "~@20 ab5 ~@4 bb5 ~@5 c6",
})).s("gm_tubular_bells").gain(0.15)
// chords · epiano2 · "E.PIANO 2"
const epiano2 = note("<~@5 A B C D@3 ~@7 E@2 ~@7 F@4 G@7 ~@8 H@8 I@5 ~@15 J@8 K@3 ~@16>".pickRestart({
A: "~@9 [bb3,d4,f4]!4 [bb3,d4,g4]!2 [bb3,d4,f4]", // Bb Gm Bb
B: "[a3,c4,f4]!5 [a3,d4,f4] [a3,c4,f4]!2 ~ [a3,c4,f4] [a3,d4,f4] [a3,c4,f4]!5", // F Dm F Dm F
C: "[a3,c4,f4]!2 [a3,d4,f4]!3 [a3,c4,f4]!3 ~ [a3,c4,f4]!3 [a3,d4,f4] [a3,c4,f4]!3", // F Dm F Dm F
D: "[bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~@3 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2", // Bb
E: "[~@31 [d4,f4,a4]@4 ~@5 [d4,f4]@8 [g3,bb3,d4]@8 [bb3,d4,f4]@4 ~@4, ~@39 a4@8 ~@17]/2", // Dm Gm Bb
F: "[~@8 d4@8 [g3,bb3,d4]@7 [bb3,d4,f4]@4 ~@5 ab4@30 ~ [bb3,f4,ab4,c5]@30 ~@2 [ab3,c4,eb4,g4]@30 ~@2 [c4,g4], ~@7 [f4,a4]@8 ~@16 [db4,f4,c5]@30 ~@67]/4", // Gm Bb Fm Abmaj7 C5 F Dbmaj7
G: "[[ab3,eb4]@30 ~@2 [f5,ab5]@30 ~ [bb3,db4,f4,ab4]@30 ~@2 [g3,bb3,d4,f4]@30 ~@2 [g3,bb3,d4,f4]@30 ~@2 [c3,bb3,d4,f4]@26 ~@2 [c3,bb3,d4,f4]@2 ~@2 [c3,bb3,d4,f4]@32 ~, ~@31 [db4,f4,ab4,c5]@30 ~@163]/7", // Ab5 Fm Bbm7 Gm7 Bb Dbmaj7
H: "[~@31 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,g4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,g4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,d4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,d4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,g4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,g4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,d4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]]/8", // Bb Gm Bb Gm Bb F Dm F …
I: "[~ [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,d4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [c3,bb3,d4,f4]@62 ~@2 [c3,bb3,d4,f4]@28 [c3,bb3,d4,f4]@2 ~@2 [c3,bb3,d4,f4]@32 ~]/5", // F Dm F Bb
J: "[~@7 [d4,f4,a4]@8 [g3,bb3,d4]@8 [bb3,d4,f4]@4 ~@4 [db4,f4,ab4,c5]@30 ~@2 [bb3,f4,ab4,c5]@30 ~@2 [ab3,c4,eb4,g4]@30 ~@2 [ab3,c4,eb4,g4]@30 ~@2 [db4,f4,ab4,c5,f5,ab5]@30 ~@2 [bb3,db4,f4,ab4]@30 ~@2 [g3,bb3,d4,f4]@30 ~@2 [g3,bb3,d4,f4]]/8", // Dm Gm Bb Dbmaj7 Fm Abmaj7 Dbmaj7 Bbm7 …
K: "[~@31 [c3,bb3,d4,f4]@26 ~@2 [c3,bb3,d4,f4]@2 ~@2 [c3,bb3,d4,f4]@32 ~]/3", // Bb
})).s("gm_epiano2").gain(0.07).pan(0.3)
// chords · epiano2 · "E.PIANO 2" · soft notes · Bb Gm Bb Gm Bb Gm Bb F …
const epiano2_soft = note(`<
[[bb3,d4,f4]!8 ~ [bb3,d4,f4] [bb3,d4,g4]!4 [bb3,d4,f4]!2]
[[bb3,d4,f4]!4 [bb3,d4,g4]!4 ~ [bb3,d4,f4]!4 [bb3,d4,g4]!2 [bb3,d4,f4]]
[[a3,c4,f4]!5 [a3,d4,f4] [a3,c4,f4]!2 ~ [a3,c4,f4] [a3,d4,f4] [a3,c4,f4]!5]
[[a3,c4,f4]!2 [a3,d4,f4]!3 [a3,c4,f4]!3 ~ [a3,c4,f4]!3 [a3,d4,f4] [a3,c4,f4]!3]
[[bb3,d4,f4]!8 ~ [bb3,d4,f4] [bb3,d4,g4]!4 [bb3,d4,f4]!2]
[[bb3,d4,f4]!4 [bb3,d4,g4]!4 ~@8]
~@95
>`).s("gm_epiano2").gain(0.04).pan(0.3)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
A@2 B@2 A@2 B@2 C@2 D@8 E F@4 G@8 H@8 I@5 J K L@6 M@5 N@8 O P@8 Q@8 R@2 S@8 T@8 ~
>`.pickRestart({
A: "[g3@13 a3 g3 d3]/2", B: "f3/2", C: "f3@5 g3@5 ~ f3@5 g3@5 f3@5 ~ g3@5",
D: "[f3@5 g3@5 ~ f3@5 g3@5 f3@5 g3@5 c4@32 [f3,a3,c4]@12 ~ a3 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [f4,a4,c5]@6 ~@3 bb3@11 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 g4@4 f4@2 ~@2 [a3,c4,f4]@10 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@3 f4@10 ~ [bb3,d4,f4]@2 ~ [bb3,f4] ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@6 f4@2 ~@2 [d4,f4,a4]@12 [d4,f4,a4]@2 ~@4 [d4,f4,a4]@2 ~@2 [d4,f4,a4]@2 ~ d4 [d4,f4,a4]@2 [d4,f4,a4]@2 ~@3 a3@10 ~ [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [bb3,d4], ~@75 [c4,f4]@2 ~@18 [d4,f4]@12 ~@12 [bb3,d4]@8 ~@32 [bb3,d4]@10 ~@4 d4@2 ~@8 [d4,g4]@6 ~@26 [f4,a4]@2 ~@39, ~@184 bb3@6 ~@33 [c4,f4]@10 ~@23]/8", // F Bb F Bb Bb5 Bb Dm F …
E: "f4@10 ~ [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@3 [bb3,f4] [bb3,d4,f4]@2 ~@3 bb3 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@3, ~@17 d4@2 ~@4 [d4,f4]@2 ~@7", // Bb Bb5 Bb Dm
F: "[~@3 [d4,f4,a4]@2 [d4,f4,a4]@2 ~@4 [g3,bb3,d4]@2 ~ g3@2 ~@2 bb3 [bb3,d4,f4]@2 ~@2 d4@4 c4@2 ~@2 [a3,c4,f4]@10 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 ~ [a3,f4] ~@3 f4@6 ~@2 bb3@10 ~ [bb3,d4,f4]@2 ~ bb3 ~@2 [bb3,d4,f4]@2 ~@4 [bb3,d4,g4]@6 ~@2 [c4,f4,a4]@10 ~@2 [c4,f4,a4]@2 ~@5 c4 ~@5 [a4,c5]@6 ~ [bb3,d4], ~@13 [bb3,d4]@2 ~@2 [d4,f4]@2 ~@32 c4@2 ~@2 [c4,a4]@6 ~@2 [d4,f4]@10 ~@4 [d4,f4]@2 ~@34 [f4,a4]@2 ~@4 f4@6 ~@3]/4", // Dm Gm Bb F Dm Bb Gm F …
G: "[f4@10 ~ [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~ [bb3,f4] ~@2 [d4,f4,a4]@10 ~@2 [f4,a4,d5]@2 [f4,a4,d5]@2 [f4,a4,d5]@2 ~@3 d4 [d4,f4,a4]@2 [d4,f4,a4]@2 ~@2 [a3,d4,f4]@2 ~@2 [a3,c4,f4]@10 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [f3,a3,c4]@2 ~@2 [bb3,d4,f4]@10 ~@2 [bb3,d4,f4]@2 ~ [bb3,f4] ~@3 bb3 ~@4 [bb3,d4,f4]@4 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@10 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [g3,d4]@2 ~@2 [g3,bb3,d4]@2 ~@2 eb3@5 ~ f3@5 ~ eb3@3 ~ f3@5 ~ eb3@5 ~ f3@3 ~ eb3@5 ~ f3@5 ~ eb3@3 ~ f3@5 ~ eb3@5 ~ f3@3 ~ eb3@5 ~ f3@5 ~ eb3@3 ~ f3@5 ~ eb3@5 ~ f3@3 ~ eb3, ~@27 d4@2 ~@22 [f4,a4]@2 ~@56 d4@2 ~@2 [d4,f4]@2 ~@36 bb3@4 ~@101]/8", // Bb Bb5 Dm F Bb Bb5 Bb G5 …
H: "[~@5 f3@5 ~ eb3@4 f3@5 ~ eb3@5 ~ f3@3 ~ eb3@5 ~ f3@5 ~ eb3@3 ~ f3@5 ~ eb3@5 ~ f3@4 eb3@5 ~ f3@5 ~ eb3@3 ~ f3@5 ~ eb3@5 ~ f3@3 ~ f3@5 ~ g3@5 ~ f3@3 ~ g3@5 ~ f3@5 ~ g3@3 ~ f3@5 ~ g3@5 ~ f3@4 g3@5 ~ f3@5 ~ g3@3 ~ f3@5 ~ g3@5 ~ f3@3 ~ g3@5 ~ f3@5 ~ g3@3 ~ c4@31 ~ [c4,f4,a4]@10 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@2 [c4,f4,a4]@2 ~ [f4,a4] ~@2 [f4,a4,c5]@6 ~@2 [d4,f4], ~@243 c4@2 ~@11]/8", // F Dm
I: "[bb3 ~ [bb3,d4] [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4] ~ [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 f4@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,g4]@4 f4@2 ~@2 [c4,f4,a4]@10 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@2 [f4,a4,c5]@6 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 f4@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,g4]@4 f4@2 ~@2 [d4,f4,a4]@10 ~@2 [f4,a4,d5]@2 [f4,a4,d5]@2 ~@2 [f4,a4,d5]@2 ~@4 [f4,a4,d5]@2 [f4,a4,d5]@2 [f4,a4,d5]@2 ~@2 [c4,f4,a4]@10 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@3, ~ f4@2 ~@157]/5", // Bb Gm F Bb Gm Dm F
J: "~@3 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,g4]@4 f4@2 ~@3", // Bb Gm
K: "~@3 [db4,f4,ab4]@2 [db4,f4,ab4]@2 [db4,f4,ab4] ~ [db4,f4,ab4] ~@5 [db4,f4,ab4]@2 [db4,f4,ab4]@2 [db4,f4,ab4]@2 [db4,f4,ab4] ~@5 [db4,f4,ab4]@2 [db4,f4,ab4] ~@2", // Db
L: "[~ [db4,f4,ab4]@2 [db4,f4,ab4]@2 ~@2 [db4,f4,ab4] ~ [db4,f4,ab4] ~@5 [db4,f4,ab4]@2 ~@2 [db4,f4,ab4]@2 [db4,f4,ab4]@2 [db4,f4,ab4]@2 [db4,f4,ab4]@2 [db4,f4,ab4] ~@3 g3@52 a3@4 g3@4 d3@4 f3@64 g3@33]/6", // Db
M: "[~@19 a3@4 g3@4 d3@4 f3@62 ~@2 f3@5 g3@5 f3@5 ~ g3@5 f3@5 g3@5 ~ f3@5 g3@5 f3@5 ~ g3@5 f3@5 g3@5 ~ f3]/5",
N: "[~@4 g3@5 f3@5 ~ g3@5 f3@5 g3@5 ~ c4@32 [f3,a3,c4]@12 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [f4,a4,c5]@6 ~@2 [bb3,d4,f4]@12 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 g4@4 f4@2 ~@2 [a3,c4,f4]@10 ~@2 [a3,c4,f4]@2 [a3,c4,f4] ~@3 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@2 [bb3,d4,f4]@10 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,g4]@4 f4@2 ~@2 [d4,f4,a4]@12 [d4,f4,a4]@2 ~@4 [d4,f4,a4] ~@3 [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2 ~@2 [a3,c4,f4]@10 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [bb3,d4,f4], ~@119 [bb3,d4]@8 ~@129]/8", // F Bb F Bb Gm Dm F Bb
O: "~@11 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@3", // Bb
P: "[~@3 [d4,f4,a4]@2 [d4,f4,a4]@2 ~@4 [g3,bb3,d4]@2 [g3,bb3,d4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 d4@4 c4@2 ~@2 [f3,a3,c4]@12 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [f4,a4,c5]@6 ~@2 [bb3,d4,f4]@12 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 g4@4 f4@2 ~@2 [a3,c4,f4]@10 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@2 [bb3,d4,f4]@10 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4] ~ [bb3,d4,f4]@2 ~@2 [bb3,d4,g4]@4 f4@2 ~@2 [d4,f4,a4]@12 [d4,f4,a4]@2 ~@4 [d4,f4,a4]@2 ~@2 [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2 ~@2 [a3,c4,f4]@10 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [bb3,d4,f4]@10 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@3, ~@87 [bb3,d4]@8 ~@161]/8", // Dm Gm Bb F Bb F Bb Gm …
Q: "[~@3 [d4,f4,a4]@2 [d4,f4,a4]@2 ~@4 [g3,bb3,d4]@2 [g3,bb3,d4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 d4@4 c4@2 ~@2 eb3@5 ~ f3@5 ~ eb3@3 ~ f3@5 ~ eb3@5 ~ f3@3 ~ eb3@5 ~ f3@5 ~ eb3@3 ~ f3@5 ~ eb3@5 ~ f3@3 ~ eb3@5 ~ f3@5 ~ eb3@3 ~ f3@5 ~ eb3@5 ~ f3@3 ~ eb3@5 ~ f3@5 ~ eb3@4 f3@5 ~ eb3@5 ~ f3@3 ~ eb3@5 ~ f3@5 ~ eb3@3 ~ f3@5 ~ eb3@5 ~ f3@4 eb3@5 ~ f3@5 ~ eb3@3 ~ f3@5 ~ eb3@5 ~ f3@3 ~ f3@5 g3@5 f3@5 ~ g3@5 f3@5 g3@5 ~ f3]/8", // Dm Gm Bb
R: "[~@4 g3@5 f3@5 ~ g3@5 f3@5 g3@5 ~ f3@5 g3@5 f3@5 ~ g3@5 f3@5 g3@5 ~ c4]/2",
S: "[~@31 [f3,a3,c4]@12 [a3,c4,f4] ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [f4,a4,c5]@6 ~@2 [bb3,d4,f4]@12 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 g4@4 f4@2 ~@2 [a3,c4,f4]@10 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@2 [bb3,d4,f4]@10 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,g4]@4 f4@2 ~@2 [d4,f4,a4]@12 [d4,f4,a4]@2 ~@4 [d4,f4,a4]@2 ~@2 [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2 ~@2 [a3,c4,f4]@10 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [bb3,d4,f4]@10 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@3, ~@87 [bb3,d4]@8 ~@161]/8", // F Bb F Bb Gm Dm F Bb
T: "[~@3 [d4,f4,a4]@2 [d4,f4,a4]@2 ~@4 [g3,bb3,d4]@2 [g3,bb3,d4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 d4@4 c4@2 ~@2 [f3,a3,c4]@12 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [f4,a4,c5]@6 ~@2 [bb3,d4,f4]@12 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 g4@4 f4@2 ~@2 [a3,c4,f4]@10 ~@2 [a3,c4,f4] ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [c4,f4,a4]@2 [c4,f4,a4]@2 [c4,f4,a4]@2 ~@2 [bb3,d4,f4]@10 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,d4,g4]@4 f4@2 ~@2 [d4,f4,a4]@12 [d4,f4,a4]@2 ~@4 [d4,f4,a4]@2 ~@2 [d4,f4,a4] ~ [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2 ~@2 [a3,c4,f4]@10 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [bb3,d4,f4]@10 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 ~@2 [bb3,e4,g4]@2 [bb3,e4,g4] ~@3 [bb3,e4,g4]@2 [bb3,e4,g4] ~ [bb3,e4,g4]@2 ~@2 [f4,a4,c5], ~@87 [bb3,d4]@8 ~@161]/8", // Dm Gm Bb F Bb F Bb Gm …
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.7)
// drums · kick
const kick = s("bd").struct(`<
A@10 B C D@15 E F@6 G@3 C H@7 ~ C I@8 E@3 C J@2 G@2 J@2 K L K@7 M F@6 E@3 C J@2 G@2 J N K L K@6 E ~
>`.pickRestart({
A: "x!4", B: "x ~@7 x ~@7 x ~@7 x ~@6 x", C: "~@31 x", D: "~@3 x ~@7 x ~@3 x ~@15 x", E: "~@7 x ~@7 x ~@7 x ~@7 x",
F: "~@3 x ~@11 x ~@3 x ~@11 x", G: "~@15 x ~@15 x", H: "~@5 x ~@5 x ~@3 x ~@15 x", I: "~@5 x ~@5 x ~@3 x ~@7 x ~@7 x",
J: "~@13 x ~ x ~@13 x ~ x", K: "~@13 x ~ x ~@15 x", L: "~@15 x ~@11 x ~@3 x", M: "~@13 x ~ x ~@7 x ~@7 x",
N: "~@13 x ~ x ~@13 x ~@2",
})).gain(0.21)
// drums · snare
const snare = s("sd").struct(`<
~@8 A@3 B C@15 D C@6 E F G ~ C@6 H ~ I ~@10 J ~ C@7 K C@7 D C@6 ~@2 J ~ C@7 K C@5 L M ~
>`.pickRestart({
A: "~ x ~@2", B: "x ~@24 x ~ x ~ x ~@2", C: "~@7 x ~@15 x ~@8", D: "~@7 x ~@7 x ~ x ~ x ~ x ~@10", E: "~ x ~ x",
F: "~@7 x ~@16 x ~@7", G: "~@8 x ~@14 x ~@7 x", H: "~@7 x ~@11 x ~@3 x ~ x ~ x ~ x ~ x", I: "~@19 x ~@12",
J: "~@31 x", K: "~@7 x ~@11 x ~ x ~ x ~@8", L: "~@7 x ~@15 x ~@7 x",
M: "~@3 x ~@3 x ~@3 x ~ x ~@3 x ~ x ~@3 x ~ x ~ x ~@3 x",
})).gain(0.43)
// drums · low tom
const low_tom = s("lt").struct("<A@11 ~@16 B ~@6 C D E F ~@8 G@12 F ~@15 G ~@6 H I J F ~@16>".pickRestart({
A: "~@7 x", B: "~@27 x ~ x ~@2", C: "~ x ~ x", D: "~@7 x ~@16 x ~@7", E: "~@8 x ~@14 x ~@8",
F: "~@23 x ~ x ~ x ~ x ~@2", G: "~@27 x ~@4", H: "~@15 x ~@7 x ~@8", I: "~@7 x ~@7 x ~@7 x ~@8",
J: "~@7 x ~@7 x ~@7 x ~@7 x",
})).gain(0.43)
// drums · mid tom
const mid_tom = s("mt").struct("<A@10 B ~@16 C ~@9 D ~@20 D ~@15 E ~@6 F@2 G D ~@16>".pickRestart({
A: "x ~@2 x!2 ~ x ~@9", B: "x ~@5 x ~ x ~@3 x ~@18 x", C: "~@23 x ~ x ~@6", D: "~@15 x ~ x ~ x ~ x ~@10",
E: "~@23 x ~ x ~@3 x ~@2", F: "~@7 x ~@7 x ~@7 x ~@8", G: "~@7 x ~@7 x ~@7 x ~@7 x",
})).gain(0.43)
// drums · crash
const crash = s("cr").struct("<~@11 x ~@34 [~@31 x] ~@10 [~@31 x] ~@43>").gain(0.43)
// drums · high tom
const high_tom = s("ht").struct("<~@37 A ~@8 B ~@11 A ~@25 A ~@16>".pickRestart({
A: "~@7 x ~ x ~ x ~ x ~@18", B: "~@23 x ~@8",
})).gain(0.43)
// drums · congas
const congas = s("conga:13").struct("<~@12 [~@15 x ~@16]!87 [~@15 x ~@15 x] ~>").gain(0.91)
// drums · congas
const congas_2 = s("conga:18").struct(`<
~@12 A B@9 C B@10 C B@30 C B@2 C B@8 C@2 B@2 C@2 B@4 D@2 B@10 C B ~
>`.pickRestart({
A: "~@7 x ~@3 x ~ x ~@18", B: "~@11 x ~ x ~@18", C: "~@13 x ~@18", D: "~@11 x!2 ~@19",
})).gain(0.91)
// drums · congas
const congas_3 = s("conga:33").struct("<~@12 [~@3 x ~@28]!87 [~@3 x ~@27 x] ~>").gain(0.91)
// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
[x!16]!10
[x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2]
[~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!9
[~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2 x!2 ~ x ~ x ~ x ~ x ~ x ~ x ~ x]
[~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!78
[~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2]
~
>`).gain(0.72)
// … 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.