Strudelify
Beauty Is Only Skin Deep cover art

Beauty Is Only Skin Deep

The Temptations

KeyC majorTempo118 bpm
0:00/0:00
// Beauty Is Only Skin Deep — The Temptations
// 118 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 68 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano · "BEAUTY IS ONLY SKIN DEEP        ;Edward Holland / Norman Whitfield"
const piano = note(`<
  ~@12 A B C D@2 E F G H ~@8 I J K@2 L M N O ~ P@2 Q@2 R S R T ~@8 U@2 V@2 W X Y Z AA AB AC AD AA AE
>`.pickRestart({
  A: "~@6 [f2,a3,c4,f4]@5 ~ [f2,a3,c4,f4]@5 ~ [f2,a3,c4,f4]@4 ~@2", // F
  B: "[e4,g4]@6 c4 ~@9 c5 ~ [d2,d4,f4,a4]@3 ~ g2@2, c2@9 ~ [d2,d4,f4,a4]@8 ~@6, c4@5 ~@19", // Em Dm
  C: "[c2,c4,e4,g4]@6 [c3,e4,g4,c5]@3 ~@3 [f3,a3,d4]@4 c4 ~@5 g2@2, ~@10 d2@5 ~@9", // C Dm
  D: "[e4@5 ~ e4@2 ~@2 [f4,a4,d5]@10 ~@2 [g4,b4,e5]@10 ~@2 [f2,a4,c5,f5]@3 ~@3 [f2,a4,c5,f5]@3 ~@5, c2@5 d2@6 e2@6 ~@7, [g4,c5] ~@5]/2", // Dm Em F C5
  E: "[g4,c5,e5]@3 ~ [g4,e5]@2 ~@4 e2@2 [f2,f4,a4]@4 c5@2 ~@6, c2 ~@3, ~@4 c5 ~@7 d5@3 ~@9", // C F
  F: "[g2,b3,d4,g4]@4 [a2,c4,f4,a4]@3 ~@3 [c3,e4,g4,c5]@8 ~@6", // G F C
  G: "[c4,e4,g4]@3 ~ [c4,e4,g4] ~@7 [a3,f4]@4 g4@2 [a3,f4]@2 ~@4, c3@3 ~@3 [f2,c4]@4 ~@2", // C Dm F5
  H: "[g2,b3,d4,g4]@2 [a2,b3] ~@2 [c3,g3,c4,e4]@4 ~@3, ~@4 [d4,g4] ~@19", // G Asus2 C G5
  I: "[c3,c5]@9 ~ [d3,f4,a4,d5]@10 ~@4, [e4,g4]@7 ~@17", J: "[c3,c5]@9 ~ [d3,f4,a4,d5]@12 ~@2, [e4,g4]@7 ~@17",
  K: "[[c3,g4,c5]@8 ~@2 [d3,a4,d5]@11 ~ [e3,b4,e5]@11 ~ [f3,a4,c5,f5]@4 ~@2 [f3,a4,c5,f5]@4 ~@4, e4@6 ~@4 f4@9 ~@3 g4@9 ~@17]/2", // C5 D5 E5 F
  L: "[c3,g3,c4,e4]@8 ~@2 [g3,c4] ~ [f2,f3,a3]@4 c4 ~@7, ~@10 c3@2 d4@3 ~@9", // C C5 F
  M: "[g2,b3,d4,g4]@4 [a2,c4,a4]@3 ~@3 [c3,g3,c4,e4]@9 ~@5, ~@4 f4 ~@19", // G Am C
  N: "[c3,g3,c4,e4]@9 ~ [c3,g3,c4] ~ [f3,a3,d4]@4 c4 ~@7, ~@2 f2 ~", // C C5 Dm
  O: "[g2,b3,d4,g4]@3 ~ [g2,b3,d4,g4]@2 ~@4 [c3,g3,c4,e4]@9 ~@5", // G C
  P: "[[f2,a3,c4,f4]@3 ~ [f2,a3,c4,f4]@3 ~ [f2,a3,c4,f4]@4 [c3,c4,e4]@32 ~@4, ~@2 g3@5 ~]/2", // F C
  Q: "[[f2,a3,c4,f4]@3 ~ [f2,a3,c4,f4]@3 ~ [f2,a3,c4,f4]@4 [c3,g3,c4,e4]@30 ~@4 g2@2]/2", // F C
  R: "[g3,c4,e4]@5 c3 [f2,f3,a3,d4]@2 c4 ~@3, c3@7 ~@17", // C Dm
  S: "[g2,b3,d4,g4]@4 [a2,c4,f4,a4]@3 ~@3 [c3,g3,c4,e4]@8 ~@4 g2@2", // G F C
  T: "[g2,g3,b3,d4]@3 ~ [g2,g3,b3,d4]@3 ~@3 [c3,g3,c4,e4]@8 ~@6", // G C
  U: "[[c2,g3,c4]@9 ~ [d2,a3]@11 ~ [c2,g3,c4]@10 ~@2 d4@6 c4 ~ [f3,a3,d4]@2 ~@4, e3@7 ~@3 [f3,d4]@9 ~@3 e3@8 ~@4 d2@11 ~@3, ~@17 [f3,a3]@4 ~@3]/2", // C5 D5 C5 Dm F
  V: "[[c2,e4,g4,c5]@8 ~@2 [d2,a4,d5]@11 ~ [e2,e5]@12 [f2,a4,c5,f5]@3 ~@3 [f2,a4,c5,f5]@3 ~@5, ~@10 f4@9 ~@3 [g4,b4]@10 ~@16]/2", // C D5 E F G
  W: "[c2,g3,c4,e4]@8 ~@2 [g3,c4,e4] ~ [f2,f3,a3,d4]@4 c4 ~@7, ~@5 c2 ~@6", // C Dm
  X: "[g2,b3,d4,g4]@2 [a2,a4] ~@2 [e4,g4,c5]@4 ~@3, ~@4 [c4,f4] ~@5 c3@10 ~@4", // G A C F5
  Y: "[c2,c4,e4,c5]@8 ~@2 [c4,e4,c5] ~ [f2,f3,a3,d4]@4 c4 ~@7, ~@5 c2 ~@6", // C Dm
  Z: "[g2,b3,d4,g4]@3 ~ [g2,b3,d4,g4]@3 ~@3 [c3,c4,e4,c5]@9 ~@5", AA: "[e4,g4,c5]@8 ~@4 [f2,c4,f4,a4]@9 ~@3, c3@5 ~@7",
  AB: "[g2,d4,g4]@4 [a2,c4,f4,a4]@3 ~@3 [c3,e4,g4,c5]@10 ~@4, b3 ~@11", // G5 F C
  AC: "[e4,g4,c5]@5 ~ [c4,f4,a4]@4 ~@2, c3@6 f2@5 ~", // C F
  AD: "[g2,b3,d4,g4]@3 ~ [g2,d4,g4]@3 ~@3 [c3,e4,g4,c5]@10 ~@4, ~@4 b3 ~@19", // G G5 C
  AE: "[g2,d4,g4]@4 [a2,c4,f4,a4]@3 ~@3 [e4,g4,c5]@10 ~@4, b3@2 ~@8 c3@7 ~@7", // G5 F C
})).s("gm_piano").gain(0.28).pan(0.4)

// bass · fretless bass
const bass = note(`<
  A B@2 C@2 D@2 E@2 D@2 F@2 G H I J K L M N O@2 P@4 Q@2 H R I S T U M V ~ W@4 X Y Z AA AB@2 AC@2 AD@2 AE@2 AF AG AH@2 AI
  AJ AK AL AI AM T AL AN AO
>`.pickRestart({
  A: "g1@3 ~ g1 ~ g1@3 ~ g1 ~ g1@3 ~ g1 ~ g1@3 ~ g1@2", B: "[c2@45 ~ g1@2]/2", C: "[c2@16 ~ c2 f1@2 ~ f1@2 ~]/2",
  D: "[c2@8 ~@2 c2@2 e1@3 ~ g1@3 ~@3 f1@9 ~@3 a1@2 g1@3 ~ a1@2 c2@3 ~@3]/2",
  E: "[c2@7 ~@3 c2@2 e1@3 ~ e1@3 ~@3 f1@10 ~@2 a1@2 g1@3 ~ a1@2 c2@3 ~ a1@2]/2",
  F: "[c2@8 ~@2 c2@2 e1@3 ~ g1@3 ~@3 f1@9 ~@3 f1 ~ f1@6 f1@4 f1@2]/2", G: "c2@7 ~@3 c2@2 d2@7 ~@3 c2@2",
  H: "c2@6 ~@4 d2 ~ d2@7 ~@3 c2 ~", I: "c2@7 ~@3 d2 ~ d2@7 ~@3 e2 ~", J: "e2@6 ~@4 f2@2 f2@3 ~ f2@2 f2@3 ~ g1@2",
  K: "c2@7 ~@3 e1@2 f1@6 ~@4 f1@2", L: "g1@3 ~ a1@3 ~@3 c2@2 e1@2 g1@2 a1@2 g1@3 ~ g1@2", M: "c2@7 ~@3 c2@2 f1@6 ~@6",
  N: "g1@3 ~ a1@3 ~@3 c2@9 ~ a1 ~ g1@2", O: "[c2@8 ~@2 c2@2 e1@3 ~ g1@3 ~@3 f1@9 ~@3 a1@2 g1@5 ~ b1@4 ~@2]/2",
  P: "[c2@8 ~@2 c2@2 e1@3 ~ g1@3 ~@3 f1@9 ~@3 a1@2 g1@3 ~ a1 ~ b1@3 ~ a1@2]/2",
  Q: "[c2@8 ~@2 c2@2 e1@3 ~ g1@3 ~@3 f1@9 ~@3 e1@2 f1@4 ~@2 f1@4 ~@2]/2", R: "c2@7 ~@3 d2@2 d2@7 ~@3 c2 ~",
  S: "e2@3 ~@2 f2@2 ~ f2@2 ~ d2", T: "c2@8 ~@2 c2 ~ f1@6 ~@4 a1@2", U: "g1@4 a1@2 ~@4 c2 ~ c2@4 g1@2 a1@4 c2@2",
  V: "g1@4 g1@3 ~@3 c2@5 ~@9", W: "[f1@3 ~ f1@3 ~ f1@4 c2@36]/2", X: "c2@9 ~ f1@11 ~ a1@2",
  Y: "g1@4 a1@3 ~@3 c2@5 ~ g1@2 a1@4 g1@2", Z: "c2@10 ~@2 f1@9 ~@3", AA: "g1@3 ~ g1@3 ~@3 c2@9 ~@3 g2 ~",
  AB: "[c2@7 ~@3 c2@2 e1@4 g1@3 ~@3 f1@9 ~@3 a1@2 g1@6 a1@3 ~@3]/2",
  AC: "[c2@8 ~@2 c2@2 e1@3 ~ g1@3 ~@3 f1@9 ~@3 a1@2 g1@3 ~ a1@2 c2@3 ~ a1@2]/2",
  AD: "[c2@8 ~@2 c2@2 e1@3 ~ g1@3 ~@3 f1@9 ~@3 a1@2 g1@4 ~@2 a1@5 ~]/2",
  AE: "[c2@7 ~@3 c2@2 e1@4 g1@3 ~@3 f1@10 ~@4 f1@5 ~ f1@4 ~@2]/2", AF: "c2@8 ~@2 d2@10 ~@2 c2 ~",
  AG: "c2@8 ~@2 d2 ~ d2@9 ~ c2@2", AH: "[c2@8 ~@2 d2 ~ d2@7 ~@3 e1@11 ~ f1@4 ~@2 f1@4 g1@2 a1@2]/2",
  AI: "c2@3 ~@2 e1 f1@3 ~@2 a1", AJ: "g1@4 a1@3 ~@3 g1@2 e1@3 ~ g1@2 a1@3 ~ b1@2", AK: "c2@7 ~@3 f1 ~ f1@6 ~@4 a1@2",
  AL: "g1@3 ~ g1@3 ~@3 c2@7 ~@3 a1 ~ g1 ~", AM: "g1@3 ~ a1@3 ~@3 c2@8 ~@6", AN: "c2@7 ~@3 c2 ~ f1@6 ~@4 a1@2",
  AO: "g1@3 ~ a1@3 ~@3 c2@6 ~@8",
})).s("gm_fretless_bass").gain(0.44)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@5 A B A B A B A B C@2 D E F G C H A B I B A B A B C@3 J C H C H ~ K@2 L@2 C H C G A B A B A B A B C@2 D M C H C G C
  H C G C N
>`.pickRestart({
  A: "~@3 [e4,g4,c5] ~@5 [e4,g4,c5] ~@2", B: "~@3 [c4,f4,a4] ~@5 [c4,f4,a4] ~@2",
  C: "~@3 [e4,g4,c5] ~@5 [c4,f4,a4] ~@2", D: "~@3 [e4,g4,c5] ~@5 [f4,a4,d5] ~@2", E: "~@2 [g4,b4,e5] ~@3 [a4,c5,f5] ~",
  F: "~@6 [e4,g4,c5]@2 ~@10 [c4,f4,a4]@3 ~@3", G: "~@3 [d4,g4,b4] ~@5 [e4,g4,c5] ~@2",
  H: "~@3 [c4,f4,a4] ~@5 [e4,g4,c5] ~@2", I: "~@6 [e4,g4,c5]@2 ~@10 [e4,g4,c5] ~@5",
  J: "~@6 [d4,g4,b4]@2 ~@10 [f4,a4,c5]@3 ~@3", K: "[f4@4 ~@4 [c4,c5]@4 [c4,e4,g4]@33 ~@3, [c4,a4] ~@5, ~ f4@2 ~@9]/2",
  L: "[[f4,a4]@2 a4@2 c5@2 [c4,e4,g4]@15 ~@3, c4 ~@3, ~@4 f4@7 ~@37]/2", M: "~@3 [g4,b4,e5] ~@5 [a4,c5,f5] ~@2",
  N: "~@3 [d4,g4,b4] ~@8", // G
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.6)

// chords · lead 3 calliope
const lead_3_calliope = note("<~@17 A B C D ~@12 A B C E ~ F ~ F ~ A B C E ~@12 A B C D ~ G ~ G ~ H>".pickRestart({
  A: "[c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [a3,d4,f4]@2 [a3,c4,f4] ~@3", // C Dm F
  B: "[g3,b3,d4]@2 [a3,c4,f4]@3 [c4,e4,g4]@3 ~@4", // G F C
  C: "[g3,c4,e4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,f4,a4]@2 [f4,a4,c5] ~@3", // C F
  D: "[e4,g4]@2 [f4,a4]@2 [e4,g4] [d4,f4] [c4,e4]@2 ~@4", E: "[e4,g4]@2 [f4,a4]@2 [e4,g4] [d4,f4] [c4,e4]@3 ~@3",
  F: "[c4,f4,a4]@5 [c4,e4,g4]@7", G: "[e4,g4]@2 [f4,a4]@3 [c4,e4,g4]@3 ~@4", H: "[e4,g4]@2 [f4,a4]@3 [c4,e4,g4]@4 ~@3",
})).s("gm_lead_3_calliope").gain(0.14)

// chords · lead 3 calliope
const lead_3_calliope_2 = note(`<
  ~@13 A B A C ~@4 D@2 E@2 D@2 F@2 A B A C ~@13 D@2 E@2 D@2 F@2 A B A C ~@10
>`.pickRestart({
  A: "[e4,g4]@5 [f4,a4]@4 ~@3", B: "~@3 e5@3 d5@2 c5 ~@3", C: "~@3 e5@2 d5@3 c5 a4@2 ~",
  D: "[~@8 [g3,g4] [c4,c5]@2 [a3,a4]@7 [g3,g4]@3 ~@3]/2", // G C A G
  E: "[~@8 [c4,e4,g4] [e4,g4,c5]@2 [c4,f4,a4]@7 [b3,d4,g4]@3 ~@3]/2", // C F G
  F: "[~@8 [c4,e4,g4] [e4,g4,c5]@2 [c4,f4,a4]@7 ~@6]/2", // C F
})).s("gm_lead_3_calliope").gain(0.17).pan(0.3)

// other · glockenspiel
const glockenspiel = note("<~ A@2 B@2 C@2 D@4 E@2 F ~@7 G@2 H@2 D@2 I@2 J ~@16 D@6 K@2 L ~@13>".pickRestart({
  A: "[c6@7 ~@3 c6@2 g6@2 ~@2 c7@5 ~ a6@6 ~@8 g6@3 ~ f6@2 e6@4 d6@2]/2",
  B: "[c6@7 ~@3 c6@2 g6@2 ~@2 c7@3 ~@3 a6@6 ~@8 f6@3 ~@3 f6@3 ~@3]/2",
  C: "[e6@6 ~@4 e6@2 g6@4 c7@5 ~ a6@7 ~@7 g6@4 f6@2 e6@4 d6@2]/2",
  D: "[c6@7 ~@3 c6@2 g6@4 c7@4 ~@2 a6@9 ~@5 g6@4 f6@2 e6@4 d6@2]/2",
  E: "[c6@7 ~@3 c6@2 g6@3 ~ c7@4 ~@2 a6@10 ~@4 f6@3 ~@3 f6@3 ~@3]/2", F: "e6@3 ~@5",
  G: "[~@10 c6@2 g6@4 c7@3 ~@3 a6@10 ~@4 g6@4 f6@2 e6@4 d6@2]/2",
  H: "[c6@7 ~@3 c6@2 g6@3 ~ c7@4 ~@2 a6@10 ~@4 g6@4 f6@2 e6@4 d6@2]/2",
  I: "[c6@7 ~@3 c6@2 g6@4 c7@4 ~@2 a6@9 ~@5 f6@3 ~@3 f6@3 ~@3]/2", J: "e6 ~@5",
  K: "[c6@6 ~@4 c6@2 g6@4 c7@5 ~ a6@9 ~@5 f6@3 ~@3 f6@3 ~@3]/2", L: "e6@5 ~@19",
})).s("gm_glockenspiel").gain(0.38).pan(0.7)

// other · trumpet
const trumpet = note(`<
  A ~@3 B C ~@9 D@2 E F ~ G H ~@9 D@2 E F ~ I J K J K L M F N O P ~@9 D@2 E F ~ Q ~@6
>`.pickRestart({
  A: "[c5,a5]@23 ~", B: "~@4 c6 ~ c6 ~", C: "c6 ~", D: "[c5@8 ~@2 d5@11 ~ e5@12 f5@3 ~@3 f5@4 ~@4]/2",
  E: "e5@4 e5@2 e5@3 ~@3 d5@4 c5 ~@7", F: "g5@2 ~@2 a5@2 ~@4 c6@3 ~@11", G: "g5@2 ~@2 g5@2 ~@4 c6@3 ~@5 g5 ~@5",
  H: "c6@17 ~@7", I: "g5@2 ~@2 g5@2 ~@4 c6@3 ~@3 [a4,a5] ~ [c5,c6] ~ [c5,c6] ~ [a4,a5] ~",
  J: "[c5,c6] ~ [c5,c6] ~ [a4,a5] ~ [c5,c6] ~ [c5,c6] ~ [a4,a5] ~ [c5,c6] ~@11", // C A C A C
  K: "~@16 [a4,a5] ~ [c5,c6] ~ [c5,c6] ~ [a4,a5] ~", // A C A
  L: "[c5,c6] ~ [c5,c6] ~ [a4,a5] ~ [c5,c6] ~ [c5,c6] ~ [a4,a5] ~@13", M: "~@6 e5@3 ~ c5@2 d5@4 c5@2 ~@6",
  N: "e5@3 ~ e5@2 e5@2 ~@4 d5@4 c5@2 ~@6", O: "g5@3 ~ g5@3 ~@3 c6@3 ~@11", P: "c6@17 ~@7, b5 ~@23",
  Q: "g5@2 ~@2 g5@2 ~@4 c6@3 ~@11",
})).s("gm_trumpet").gain(0.44).pan(0.3)

// chords · alto sax
const alto_sax = note(`<
  ~@4 A B ~@7 C@2 D@2 E F ~ G H ~@7 C@2 D@2 E F ~ I ~@5 J K L M N ~@7 C@2 D@2 E F ~ I ~@6
>`.pickRestart({
  A: "~@4 [f3,a3,f4] ~ [f3,a3,f4] ~", B: "[g3,c4,e4] ~", C: "[c3,g3,e4]@4 ~ [d3,a3,f4]@5 ~@2",
  D: "[[c3,g3,e4]@8 ~@2 [d3,a3,f4]@10 ~@2 [e3,b3,g4]@10 ~@2 [f3,c4,a4]@4 ~@2 [f3,c4,a4]@3 ~@5]/2", // C Dm Em F
  E: "[g3,c4,e4]@4 [g3,e4]@2 [g3,c4,e4]@3 ~@3 [f3,a3,d4]@4 [f3,a3,c4]@2 ~@6, ~@4 c4 ~@19", // C Dm F
  F: "[b3,g4]@3 ~ [c4,a4]@2 ~@4 [e4,c5]@2 ~@12", G: "[b3,g4]@2 ~@2 [b3,g4]@3 ~@3 [e4,c5]@3 ~@5 [g3,g4] ~@5",
  H: "[c4,e4]@3 ~", I: "[b3,g4]@2 ~@2 [b3,g4]@3 ~@3 [e4,c5]@3 ~@11", J: "~@6 [g3,c4,e4]@4 c4 ~ [f3,a3,d4]@4 c4 ~@7",
  K: "[b3,g4] ~ [c4,a4] ~@2 [e4,c5] ~@6", // Em F C
  L: "[g3,c4,e4]@3 ~ [g3,c4,e4]@2 [g3,c4,e4]@3 ~@3 [f3,a3,d4]@3 ~ [f3,a3,c4]@3 ~@5", // C Dm F
  M: "[g3,g4]@3 ~ [g3,g4]@3 ~@3 [c4,c5]@3 ~@11", N: "[c4,e4,c5]@3 ~",
})).s("gm_alto_sax").gain(0.28).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@12 A B@7 C ~@7 A C@2 B C B D E D@6 E@3 C ~@7 A E D@3 C E B F C D@5>".pickRestart({
  A: "x!4", B: "x ~@4 x!2 ~@4 x", C: "x ~@4 x!2 ~@5", D: "x!2", E: "x ~@5 x ~@4 x", F: "x ~@5 x ~ x ~@2 x",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct("<A B ~@10 C D@8 ~@7 E D@17 ~@7 E D@9 F D F D G>".pickRestart({
  A: "x!2 ~@10 x!10 ~@2", B: "x", C: "x!12", D: "~ x ~ x", E: "~@3 x!9", F: "~@3 x ~@3 x!5", G: "~ x ~@2",
})).gain(0.49)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<[~@2 x!10 ~@10 x!2] ~@27 [x!3 ~@9] ~@24 [x!3 ~@9] ~@14>").gain(0.27)

// drums · hihat
const hihat = s("hh").struct("<~@13 A@7 B ~@8 A@16 C ~@8 A@9 C A C A D>".pickRestart({
  A: "x ~ x!2 ~ x!2 ~ x!2 ~ x", B: "x ~ x!2 ~ x!2 ~ x ~@3", C: "x ~ x!2 ~ x!2 ~@5", D: "x ~ x!2 ~ x ~@6",
})).gain(0.27)

// drums · congas
const congas = s("conga:13").struct("<~ A@21 B A C A B A@2 ~@13 A@5 B A C A B A@16>".pickRestart({
  A: "~ x ~@2", B: "~ x!3", C: "~ x ~ x",
})).gain(0.7)

// drums · congas
const congas_2 = s("conga:18").struct("<~ A@19 B A C D E F G F H ~@13 A@5 C D E F G F H A@13 ~>".pickRestart({
  A: "~@9 x ~ x", B: "~@3 x", C: "~@4 x ~@5 x ~@11 x!2", D: "x ~@7 x ~@2 x", E: "~@4 x ~@11 x ~@5 x!2", F: "x ~ x",
  G: "~@22 x!2", H: "~@2 x!2",
})).gain(0.7)

// drums · congas
const congas_3 = s("conga:33").struct(`<
  ~ A B C B A B C B A B C B A B C B A B C D C E F G H I H J ~@13 B@2 C B C E F G H I H J A B C B A B C B A B C B A K
>`.pickRestart({
  A: "~@5 x!2 ~ x ~@3", B: "~@2 x ~@2 x!2 ~ x ~@3", C: "x ~ x ~@2 x!2 ~ x ~@3", D: "~@2 x ~@2 x!2 ~ x ~ x!2",
  E: "~@2 x", F: "~@2 x ~@2 x ~@3 x ~@2", G: "~@5 x!2 ~@5", H: "~@2 x ~@2 x!2 ~@4 x", I: "x ~ x ~@2 x ~@2 x ~@3",
  J: "~@2 x ~@2 x ~@5 x", K: "~@2 x ~@2 x!2 ~@5",
})).gain(0.7)

stack(
  piano, bass, electric_guitar_clean, lead_3_calliope, lead_3_calliope_2, glockenspiel, trumpet, alto_sax, kick, snare,
  snare_soft, hihat, congas, congas_2, congas_3
)

More by The Temptations