0:00/0:00
// Lambada — Kaoma
// 120 bpm, 4/4, key D minor. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 120 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 D E G H I J K H I J L M E N D E O P I J Q H I J L R E F M E G H S T Q H I U V W X W Y P Z J Q P I J L M E
F M E G P I J Q H I J V W AA AB Y AC I J Q AD I J AE ~@7 AF W AA W Y H Z U Q H I J AE AG AH AI AH AI AH AI AH AJ AK AI
AL AI AH AI AM AN
>`.pickRestart({
A: "~@8 d2@3 ~ f2@2 a2@2", B: "d2@3 ~ f2@2 a2@2 d2@4 f2@2 a2@2", C: "d2@3 ~ f2@2 a2@2 d2@3 ~ f2@2 a2@2",
D: "d2@3 ~ f2@2 a2@2 bb1@4 d2@2 f2@2", E: "c2@3 ~ e2@2 g2@2 f1@3 ~ a1@2 c2@2", F: "f1@3 ~ a1@2 c2@2 d2@3 ~ f2@2 a2@2",
G: "f1@3 ~ a1@2 c2@2 g1@3 ~ bb1@2 d2@2", H: "g1@3 ~ bb1@2 d2@2 g1@3 ~ bb1@2 d2@2",
I: "g1@3 ~ bb1@2 d2@2 c2@3 ~ e2@2 g2@2", J: "c2@3 ~ e2@2 g2@2 d2@3 ~ f2@2 a2@2",
K: "~ f2 ~ d2 e2@2 c2@2 g1@4 bb1@2 d2@2", L: "~ d2 ~ d2 f2@2 a2@2 d2@3 ~ f2@2 a2@2",
M: "d2@3 ~ f2@2 a2@2 bb1@3 ~ d2@2 f2@2", N: "f1@3 ~ a1@2 c2@2 d2@4 f2@2 a2@2", O: "f1@3 ~ a1@2 c2@2 g1@4 bb1@2 d2@2",
P: "g1@3 ~ bb1@2 d2@2 g1@4 bb1@2 d2@2", Q: "~ f2 ~ d2 e2@2 c2@2 g1@3 ~ bb1@2 d2@2",
R: "d2@4 f2@2 a2@2 bb1@3 ~ d2@2 f2@2", S: "g1@3 ~ bb1@2 d2@2 c2@4 e2@2 g2@2", T: "c2@4 e2@2 g2@2 d2@3 ~ f2@2 a2@2",
U: "c2@3 ~ e2@2 g2@2 d2@4 f2@2 a2@2", V: "~ d2 ~ d2 f2@2 a2@2 d2@2 ~ f2@3 a2@2",
W: "d2@2 ~ f2@3 a2@2 f2@2 ~ a2@3 c3@2", X: "f2@2 ~ a2@3 c3@2 d2@3 f2@3 a2@2", Y: "f2@2 ~ a2@3 c3@2 g1@3 ~ bb1@2 d2@2",
Z: "g1@4 bb1@2 d2@2 c2@3 ~ e2@2 g2@2", AA: "f2@3 a2@3 c3@2 d2@2 ~ f2@3 a2@2", AB: "d2@2 ~ f2@3 a2@2 f2@3 a2@3 c3@2",
AC: "g1@4 bb1@2 d2@2 g1@3 ~ bb1@2 d2@2", AD: "g1@2 bb1 d2 g1@2 bb1 d2", AE: "~ d2 ~ d2 f2@2 a2@2 d1@2 ~@6",
AF: "~@8 d2@2 ~ f2@3 a2@2", AG: "~@8 f1@2 ~ a1@3 c2@2", AH: "f1@2 ~ a1@3 c2@2 d1@2 ~ f1@3 a1@2",
AI: "d1@2 ~ f1@3 a1@2 f1@2 ~ a1@3 c2@2", AJ: "d1@2 ~ f1@3 a1@2 f1@3 a1@3 c2@2", AK: "f1@3 a1@3 c2@2 d1@2 ~ f1@3 a1@2",
AL: "f1@2 ~ a1@3 c2@2 d1@3 f1@3 a1@2", AM: "f1@2 ~ a1@3 c2@2 d1 ~@7", AN: "d2!2 ~ d2 d1 ~@11",
})).s("gm_acoustic_bass").gain(0.72)
// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
A@4 B@3 C@4 D@7 B@3 C@4 D@7 B@3 C@4 E@5 F@7 D@7 B@3 C@4 G@5 F@7 H@6 ~@7 F@7 I@6 J@8 K@8 ~
>`.pickRestart({
A: "[~ [f4,a4,d5]@4 a4@2 bb4, ~@5 [f4,d5]@3]/4", B: "[[e4,g4]@8 ~@32 bb4@7 ~, c5 d5, ~ f4@5, ~@8 a4@31 ~@9]/3",
C: "[[e4,g4] [f4,a4]@2 [bb4,d5]@4 [e4,c5], c5@3 g4@5]/4", // Em F Bb C
D: "[~ [f4,a4]@2 bb4@4 [e4,c5]@2 [f4,a4,d5]@2 a4@2 bb4, ~ d5@6 ~@7, ~@3 g4@6 ~@2 [f4,d5]@3]/7", // F C Dm
E: "[~ [f4,a4]@2 bb4@4 [e4,c5]@2 [f4,a4,d5], ~ d5@6 ~@3, ~@3 g4@6 ~]/5", // F C Dm
F: "[~ d5@2 c5@2 d5@2 c5@2 [bb4,d5]@4 [e4,c5], ~ [f4,a4]@8 g4@5]/7", // Bb C F
G: "[~ [f4,a4]@2 bb4@4 [e4,c5]@2 [f4,a4,d5], ~@8 d5@49 ~@23, ~@3 g4@6 ~]/5", // F C Dm
H: "[~@8 [f4,a4]@16 bb4@32 [e4,c5]@16 [f4,a4,d5]@16 [f4,a4,d5]@3 ~@5, ~ d5@6 ~@5, ~ g4@2 ~]/6", // F C Dm
I: "[~@4 [f4,a4]@8 bb4@16 [e4,c5]@8 [f4,a4,d5]@8 [f4,a4,d5] ~@3, ~@8 d5@49 ~@39, ~ g4@2 ~]/6", // F C Dm
J: "[~ c5@2 d5@2 c5@2 d5@2 c5@2 d5@2 c5@2 d5, ~ [f4,a4]@15]/8", K: "[~ c5@2 d5@2 c5@2 d5@2 c5@2 d5@2 c5@2 ~]/8",
})).s("gm_drawbar_organ").gain(0.16)
// chords · drawbar organ · "ORGAN 1" · soft notes · Dm F Dm
const drawbar_organ_soft = note("<~@118 [~@4 [f4,a4,d5] ~@3] [[f4,a4]!2 ~ [f4,a4,d5]!2 ~@11, d5 ~@7]>")
.s("gm_drawbar_organ").gain(0.12)
// chords · accordion · "ACCORDEON"
const accordion = note(`<
A B C D E F D G@2 H I@3 H J K@2 L M N L O P Q R S T U R S V L M N L O P W R S X Y@2 S Z AA AB AC AD H AE@3 H AF AG@2 L
M N L O P AH R S AI AH R S Z AJ AB AC AD H AE@3 H AF AK@2 ~@7 AL AA AB AC AM AN R S AO AP@2 S AQ AR AB AC AS AA AB AC
AS AA AB AC AS AA AB AC AT AU
>`.pickRestart({
A: "~@10 [a3,d4,f4] ~@3 [a3,d4,f4] ~", B: "~@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~",
C: "~@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~ [g5,ab5] ~ [a3,d4,f4] ~@3 [a3,d4,f4] ~, ~@2 a4@2 a5@3 g5", // Dm Abmaj7 Dm
D: "f5@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~ d5@2 [bb3,d4,f4] ~ e5@2 [bb3,d4,f4] ~, ~ e5 d5@2 ~ f5 ~ d5", // Dm Bb
E: "c5@2 [g3,c4,e4] ~ a4@2 [g3,c4,e4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~, ~ d5 ~ g4 a4@4", // C F
F: "~@2 [a3,c4,f4] ~@3 [a3,c4,f4] ~ [g5,ab5] ~ [a3,d4,f4] ~@3 [a3,d4,f4] ~, ~@2 a4@2 a5@3 g5", // F Abmaj7 Dm
G: "[c5@2 [g3,c4,e4] ~ a4@2 [g3,c4,e4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~ g5@2 [bb3,d4,g4] ~ g5@2 [bb3,d4,g4] ~, ~@2 d5@2 ~@2 g4@2 a4@12 ~@4 a5 ~@5 f5@2]/2", // C F Gm
H: "~@2 [bb3,d4,g4] ~ bb4@2 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~ g5@2 [bb3,d4,g4] ~, bb4@2 ~ d5 a5@2 ~ f5", // Gm
I: "[~@2 [bb3,d4,g4] ~ d5@2 [bb3,d4,g4] ~ e5@2 [g3,c4,e4] d5 c5@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~ d5@2 [g3,c4,e4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~ g5 ~ [bb3,d4,g4,g5] ~ g5@2 [bb3,d4,g4] ~, bb4@4 ~@2 f5@2 ~@6 c5@4 c5@2 db5 ~ c5@2 d5@13 ~@9 f5@2]/3", // Gm C Dm Gm
J: "~@2 [bb3,d4,g4] ~ d5@2 [bb3,d4,g4] ~ e5@2 [g3,c4,e4] d5 ~@2 [g3,c4,e4] ~, bb4@2 ~ f5 ~@2 c5@2", // Gm C
K: "[c5@2 [g3,c4,e4] ~ d5@2 [g3,c4,e4] ~ f5 e5 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~, ~@2 c5@2 db5 ~ c5@2 ~@2 d5@12 ~@10]/2", // C Dm
L: "~@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [bb3,d4,f4] ~@3 [bb3,d4,f4] ~", // Dm Bb
M: "~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4,a4] [g4,bb4]", // C F Gm
N: "[a4,c5]!2 [a3,c4,f4] [g4,bb4] ~ [f4,a4] [a3,c4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~, ~@3 [a4,c5]@3 ~@2", // Am F Gm F Dm Am
O: "~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [a3,c4,f4,a4] [g4,a4,bb4] [a4,c5]@2 [a3,c4,f4] [f4,a4]", // C F Gm Am F
P: "~ [g4,bb4] [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~, ~ [a4,c5]@3 ~@4", // Gm F Gm Am
Q: "g5@2 [bb3,d4,g4] ~ g5@2 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~, a5 ~@5 f5@2 bb4@6 ~@2", // Gm
R: "~@2 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~", // Gm C
S: "~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~", // C Dm
T: "~ [db6,d6] [a3,d4,f4,d5] d5 [db6,d6] d5 [a3,d4,f4,d5] ~@3 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~", // Dmaj7 Dm Dmaj7 Dm Gm
U: "~@2 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~", // Gm
V: "~ [a4,d5] [a3,d4,f4] c5 ~@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~, ~ [a4,d5] ~@2", // D5 Dm D5
W: "a5 ~ [bb3,d4,g4] ~ g5@2 [bb3,d4,g4] ~ [g5,ab5] ~ [bb3,d4,g4] ~@3 [bb3,d4,g4] ~, g5@4 ~@2 f5@2 a5@5 ~@3", // Gm Abmaj7 Gm
X: "f6 e6 [a3,d4,f4,d6] c6 ab5 a5 [a3,d4,f4,e6] c6 d6 ~ [bb3,d4,g4] ~@3 [bb3,d4,g4] ~", // Dm Gm
Y: "[~@2 [bb3,d4,g4] ~@2 d5 [bb3,d4,g4,g5] ab5 a5 f5 [bb3,d4,g4,d5] a4 [g4,c5] ~ [g4,c5]@4 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~, ~@6 g3@6 ~@2 [bb3,d4] ~@3 [f4,bb4]@4 ~@10]/2", // Gm C5 Gm C Bb Bb5
Z: "~@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~ [a3,a4] [d4,f4,d5,f5] [a3,d4,f4] [d4,f4,d5,f5] [d4,f4,d5,f5]@2 [a3,d4,f4] ~", // Dm A Dm
AA: "[a3,a4] [d4,f4,d5,f5] [a3,d4,f4] [d4,f4,d5,f5] [d4,f4]@2 [a3,d4,f4] ~ [c4,c5] [f4,a4,e5,f5,a5] [a3,c4,f4] [f4,a4,f5,a5] f4@2 [a3,c4,f4] ~, ~ [d5,f5] ~ [a4,f5,a5]", // A Dm C Fmaj7 F Dm
AB: "[c4,c5] [f4,a4,f5,a5] [a3,c4,f4] [a4,f5,a5] [f4,a4,f5,a5]@2 [a3,c4,f4] ~ [a3,a4] [d4,f4,d5,f5] [a3,d4,f4,d5,f5] [d4,f4,d5,f5] [d4,f4,d5,f5]@2 [a3,d4,f4] [a3,a4]", // C F Dm F A Dm A
AC: "[d4,f4,d5,f5]!2 [a3,d4,f4] [d4,f4,d5,f5] [d4,f4]@2 [a3,d4,f4] ~ [c4,c5] [f4,a4,e5,f5,a5] [a3,c4,f4,a4,f5,a5] [f4,a4,f5,a5] [f4,a4,f5,a5]@2 [a3,c4,f4] [c4,c5], ~ [d5,f5] ~@2", // Dm C Fmaj7 F C Dm
AD: "[f4,a4,f5,a5]!2 [a3,c4,f4] [f4,a4,f5,a5] f4@2 [a3,c4] ~ g5@2 [bb3,d4,g4] ~ g5@2 [bb3,d4,g4] ~, ~@4 [a4,f5,a5]@4 a5 ~@5 f5@2, ~@3 f4 ~@4", // F Am Gm Dm
AE: "[~@2 [bb3,d4,g4] ~ d5@2 [bb3,d4,g4] ~ e5@2 [g3,c4,e4] d5 c5@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~ d5@2 [g3,c4,e4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~ g5 ~ [bb3,d4,g4] ~ g5@2 [bb3,d4,g4] ~, bb4@4 ~@2 f5@2 ~@6 c5@4 c5@2 db5 ~ c5@2 d5@13 ~@5 g5@2 ~@2 f5@2]/3", // Gm C Dm Gm
AF: "~@2 [bb3,d4,g4] ~ d5@2 [bb3,d4,g4] ~ e5@2 [g3,c4,e4] d5 ~@2 [g3,c4,e4] ~, bb4@5 ~ f5@2 ~@4 c5@4", // Gm C
AG: "[c5@2 [g3,c4,e4] ~ d5@2 [g3,c4,e4] ~ f5 e5 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~, ~@2 c5@2 db5 ~ c5@2 ~@2 d5@8 ~@14]/2", // C Dm
AH: "a5 ~ [bb3,d4,g4] ~ g5@2 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~, g5@2 ~ f5 bb4@2 ~@2", // Gm
AI: "~ d6 [a3,d4,f4,d5] d5 [db6,d6] d5 [a3,d4,f4,d5] ~@3 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~", // Dm Dmaj7 Dm Gm
AJ: "[a3,a4] [d4,f4,d5,f5] [a3,d4,f4] [d4,f4,d5,f5] [d4,f4]@2 [a3,d4,f4] ~ [c4,c5] [f4,a4,f5,a5] [a3,c4,f4] [f4,a4,f5,a5] f4@2 [a3,c4,f4] ~, ~ [d5,f5] ~ [a4,f5,a5]", // A Dm C F Dm
AK: "[c5@2 [g3,c4,e4] ~ d5@2 [g3,c4,e4] ~ f5 e5 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~ [a3,d4,f4] ~@7, ~@2 c5@2 db5 ~ c5@2 ~@2 d5@14 ~@8]/2", // C Dm
AL: "~@8 [a3,a4] [d4,f4,d5,f5] [a3,d4,f4] [d4,f4,d5,f5] [d4,f4,d5,f5]@2 [a3,d4,f4] ~", // A Dm
AM: "[f4,a4,f5,a5]!2 [a3,c4,f4] [f4,a4,f5,a5] f4@2 [a3,c4] ~@3 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~, ~ [a4,f5,a5] ~@2, ~@3 f4 ~@4", // F Am Gm Dm
AN: "a5 ~ [bb3,d4,g4] ~ g5@2 [bb3,d4,g4] ~ [g5,ab5] ~ [bb3,d4,g4] ~@3 [bb3,d4,g4] ~, g5@2 ~ f5 a5@2 ~@2", // Gm Abmaj7 Gm
AO: "f6 e6 [a3,d4,f4,d6] c6 ab5 a5 [a3,d4,f4,e6] d6@2 ~ [bb3,d4,g4] ~@3 [bb3,d4,g4] ~, ~@7 c6 ~@8", // Dm Gm
AP: "[~@2 [bb3,d4,g4] ~@2 d5 [bb3,d4,g4,g5] ab5 a5 f5 [bb3,d4,g4,d5] a4 [g4,c5] ~ [g4,c5]@4 [bb3,d4,g4] ~@3 [bb3,d4,g4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~, ~@14 [bb3,d4] ~@3 [f4,bb4]@4 ~@10]/2", // Gm C5 Gm C Bb Bb5
AQ: "~@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~ [d4,f4,a4] [d4,f4]@2 [d4,f4,d5,f5] [d4,f4,d5]@4, ~ a3, ~@9 [d5,f5] ~@2 f5@2 ~@2", // Dm
AR: "a4 [d4,f4]@2 [d4,f4,d5,f5] [f4,d5]@4 [c4,c5] [f4,a4,e5,f5,a5] [c4,f4] [f4,a4,f5,a5] f4@2 [a3,c4,f4] ~, a3@10 a3@3 ~@3, ~ [d5,f5] ~@2 d4@9 ~@3, ~@4 f5@3 ~@5 [a4,f5,a5]@4", // Dm C Fmaj7 F5 F Dm
AS: "[f4,a4,f5,a5]!2 [a3,c4,f4] [f4,a4,f5,a5] f4@2 [a3,c4] ~ [a3,a4] [d4,f4,d5,f5] [a3,d4,f4] [d4,f4,d5,f5] [d4,f4,d5,f5]@2 [a3,d4,f4] ~, ~ [a4,f5,a5] ~@2, ~@3 f4 ~@4", // F Am A Dm
AT: "[f4,a4,f5,a5]!2 [a3,c4,f4] [f4,a4,f5,a5] f4@2 [a3,c4] ~ [a3,d4,f4,a4] [d4,f4,d5,f5] ~ [d4,f4,d5,f5] [d4,f4,d5,f5]@3 ~, ~ [a4,f5,a5] ~@2, ~@3 f4 ~@4", // F Am Dm
AU: "[g3,c4,e4,g4,e5,g5,c6] [a3,d4,f4,a4,f5,a5,d6] ~ [a3,d4,f4,a4,f5,a5,d6]!2 ~@11", // C Dm
})).s("gm_accordion").gain(0.72)
// drums · kick
const kick = s("bd").struct(`<
[~@8 x ~@2 x!2 ~@3]
[x ~@2 x!2 ~@3 x ~@2 x!2 ~@3]!101
[x ~@2 x!2 ~@3 x ~@7]
[~@8 x ~@2 x!2 ~@3]
[x ~@2 x!2 ~@3 x ~@2 x!2 ~@3]!14
[x ~@2 x!2 ~@3 x ~@7]
[x!2 ~ x!2 ~@11]
>`).gain(0.71)
// drums · low tom
const low_tom = s("lt").struct("<~@54 [x!5 ~@11] ~@25 [x!5 ~@11] ~@39>").gain(0.71)
// drums · crash
const crash = s("cr").struct(`<
A ~ B ~@13 C ~@13 B ~@13 A ~@3 B ~@3 A ~@3 A ~@5 A ~@7 B ~@3 A ~@7 A ~@7 B ~@3 A ~@7 A ~@7 A ~@3 A ~@4 D
>`.pickRestart({
A: "~ x", B: "~@7 x ~@8", C: "~@3 x ~@4", D: "~ x ~@2",
})).gain(0.71)
// drums · cowbell
const cowbell = s("cb").struct("<A B@43 C D@3 E B@21 C D@3 E B@7 C D@5 F D@5 E B@7 G H D@14 I J>".pickRestart({
A: "~@2 x!2", B: "x!4", C: "x ~@3 x ~@3 x ~@2 x!2 ~@3", D: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@3",
E: "x ~@2 x!2 ~@3 x ~@3 x ~@3", F: "x ~@2 x!2 ~@3 x!2 ~ x!2 ~@3", G: "x!3 ~", H: "~@8 x ~@2 x!2 ~@3",
I: "x ~@2 x!2 ~@3 x ~@7", J: "x!2 ~ x!2 ~@11",
})).gain(0.71)
// drums · bongos
const bongos = s("bongo:4").struct(`<
A B C D E F D G D G D@2 F H D@2 F I D F D@2 J D@2 K F D@3 F D@2 F D E F D@3 F D@2 K F@2 D@2 L D@3 M D@3 N O D@8 P D@3
Q D R D@4 K F D@3 S T@2 U S T S V F D@3 W D@3 F D@3 X A D@6 Y D@3 P D@3 Z AA
>`.pickRestart({
A: "~@8 x ~@2 x!2 ~@3", B: "x ~@2 x!3 ~ x!2 ~@2 x!2 ~@3", C: "x ~@10 x!2 ~@3", D: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@3",
E: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@2 x", F: "x!2 ~ x!2 ~@3 x ~@2 x!2 ~@3", G: "x ~@2 x!2 ~@3 x ~@2 x!3 ~@2",
H: "x ~@2 x ~@4 x ~@2 x!2 ~@3", I: "x!2 ~ x ~@4 x ~@2 x!2 ~@3", J: "x ~@2 x!3 ~@2 x ~@2 x!2 ~@3",
K: "x ~@2 x!2 ~@3 x ~@2 x!3 ~ x", L: "x!5 ~@2 x!2 ~@2 x!2 ~@3", M: "x ~@2 x!2 ~@3 x ~@2 x ~@4",
N: "x!2 ~ x!3 ~ x!2 ~@2 x!2 ~@3", O: "x ~@2 x!2 ~@3 x ~@2 x!2 ~ x ~", P: "x ~@2 x!4 ~ x ~@2 x!2 ~@3",
Q: "x!5 ~ x ~ x ~@2 x!2 ~@3", R: "x ~@2 x!2 ~@3 x!5 ~@2 x", S: "x!2 ~ x!2 ~@3 x ~@2 x!3 ~@2",
T: "x ~@2 x!3 ~@2 x ~@2 x!3 ~@2", U: "x ~@2 x!4 ~ x ~@2 x!3 ~@2", V: "x ~@2 x!3 ~@2 x ~@2 x!3 ~ x",
W: "x ~@2 x!4 ~ x ~@3 x ~@3", X: "x ~@2 x!2 ~@3 x ~@7", Y: "x ~@2 x!6 ~@2 x!2 ~@3", Z: "x!2 ~@2 x!2 ~@2 x ~@7",
AA: "x!2 ~ x!2 ~@11",
})).gain(1.88)
// drums · bongos
const bongos_2 = s("bongo:18").struct(`<
A B C D E F B G E H F E F@2 B E F@2 E F@3 B G F I F J F@8 B F@3 B F@2 K E H@3 L F@2 E B F G F A F@4 M F@3 N A F@3 E H
O E B F@2 I F@2 A F E H@2 P Q H E R E H@3 S F@4 G F@2 I T H@6 C B U H C V L E W X
>`.pickRestart({
A: "~@7 x", B: "~@6 x!2 ~@6 x ~", C: "~@14 x!2", D: "x ~@5 x!2 ~@6 x!2", E: "~@6 x ~@7 x!2", F: "~@3 x ~@3 x",
G: "~@6 x ~@4 x ~@2 x ~", H: "~@6 x!2 ~@6 x!2", I: "~@3 x ~@4", J: "~@3 x ~@2 x ~@7 x ~", K: "~@6 x ~@8 x",
L: "~@5 x!2 ~@7 x ~", M: "~@6 x ~@4 x ~@3 x", N: "~@3 x!2 ~@2 x", O: "~@6 x!2 ~ x ~@4 x!2", P: "~@7 x ~@6 x!2",
Q: "~@6 x ~@4 x ~@2 x!2", R: "~@6 x!2 ~@8", S: "~@11 x ~@2 x ~", T: "~@8 x ~@5 x!2", U: "~@3 x ~ x!2 ~@7 x!2",
V: "~@3 x ~@2 x ~@7 x!2", W: "~@3 x ~@3 x!2 ~@7", X: "x!2 ~ x!2 ~@11",
})).gain(1.88)
// drums · congas
const congas = s("conga:18").struct("<A B@43 C D@3 E B@21 C D@3 E B@7 C D@11 E B@7 F G D@14 H I>".pickRestart({
A: "~@4 x!3 ~", B: "x!3 ~ x!3 ~", C: "x ~ x ~ x ~@3 x ~@2 x!2 ~@3", D: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@3",
E: "x ~@2 x!2 ~@3 x ~ x ~ x ~@3", F: "x!3 ~ x ~@3", G: "~@8 x ~@2 x!2 ~@3", H: "x ~@2 x!2 ~@3 x ~@7",
I: "x!2 ~ x!2 ~@11",
})).gain(2.29)
// drums · congas
const congas_2 = s("conga:33").struct("<A B@43 C@4 D B@21 C@4 D B@7 E C@11 D B@7 F E C@14 G H>".pickRestart({
A: "~@7 x", B: "~@3 x ~@3 x", C: "~@6 x!2 ~@6 x!2", D: "~@6 x!2 ~@6 x ~", E: "~@6 x ~@7 x!2", F: "~@3 x!2 ~@3",
G: "~@6 x!3 ~@7", H: "x!2 ~ x!2 ~@11",
})).gain(2.29)
// drums · ht
const ht = s("ht").struct(`<
A ~ B ~@5 C ~@6 D E ~@13 F ~@13 G ~@2 D H ~@7 I ~@5 J ~@6 K L ~@2 K M ~@7 N ~ O P Q R S T H ~@3 U ~@7 V ~@7 W ~@3 X
~@3 U Y
>`.pickRestart({
A: "~@3 x!2 ~@3 x ~@7", B: "x!2 ~@2 x ~@2 x ~@8", C: "~@3 x ~@4", D: "~@15 x", E: "~ x ~ x ~ x!2 ~@9",
F: "~@4 x!2 ~ x ~@8", G: "~@5 x!3 ~@8", H: "x!2 ~ x!3 ~ x ~@8", I: "x!3 ~", J: "~@3 x!2 ~@3", K: "~@14 x!2",
L: "x ~@6 x ~@8", M: "~@2 x!2 ~@2 x!3 ~@7", N: "x!2 ~ x ~ x ~ x!2 ~@7", O: "~@2 x ~@6 x ~ x ~@2 x ~",
P: "~@9 x ~ x!2 ~@2 x", Q: "~ x!2 ~@2 x ~ x ~ x ~ x!3 ~@2", R: "~@10 x!3 ~@3", S: "~@9 x ~@2 x!2 ~@2",
T: "~ x ~@7 x ~ x!3 ~ x", U: "~ x", V: "~ x ~ x!2 ~ x ~ x ~@7", W: "~@5 x!4 ~@7", X: "~ x ~ x ~ x ~@2 x ~@7",
Y: "x!2 ~ x!2 ~@11",
})).gain(0.71)
// drums · mt
const mt = s("mt").struct(`<
A ~ B ~@5 C ~@21 A ~@25 D ~@5 E ~@7 F ~@2 G H ~@8 I J K L G M N O ~@3 P ~@7 Q R ~@6 S ~@3 A ~@3 T U
>`.pickRestart({
A: "~@3 x ~@4", B: "~@3 x ~@12", C: "~ x ~ x ~ x ~@10", D: "~ x ~ x ~@4", E: "~@4 x!2 ~ x ~@8", F: "~@2 x!3 ~@11",
G: "~@14 x!2", H: "~@2 x!2 ~@2 x!2 ~@8", I: "~@9 x ~ x ~ x ~ x", J: "~ x ~@11 x ~@2", K: "~@9 x ~ x!2 ~@2 x",
L: "~ x!2 ~@2 x ~ x ~ x ~ x!3 ~@2", M: "x ~@10 x ~ x ~ x", N: "~@9 x ~ x!3 ~ x", O: "x!2 ~ x!3 ~@10",
P: "~@7 x!2 ~@7", Q: "~ x ~ x!2 ~ x ~@9", R: "~@5 x!2 ~@9", S: "~@5 x!3 ~@8", T: "~@5 x!4 ~@7", U: "x!2 ~ x ~@12",
})).gain(0.71)
// drums · shaker
const shaker = s("sh").struct("<A B@43 C D@3 E B@21 C D@3 E B@7 C D@11 E B@7 F G D@14 H I>".pickRestart({
A: "~@8 x ~ x!3 ~ x!2", B: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", C: "x ~ x!3 ~ x!10", D: "x!16", E: "x!9 ~ x!3 ~ x!2",
// … 10 more lines
More by Kaoma
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.