Strudelify
My Girl cover art

My Girl

The Temptations

KeyC majorTempo104 bpm
0:00/0:00
// My Girl — The Temptations
// 104 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(104/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@2 C B D E F E D G D G H I J K L M N O D G D G D G D G H I J K L M N P B@2 C B Q R S T U V W X Y Z Y Z Y Z Y Z AA
  AB AC AD AE AF AG AH AI AF AG AH AJ@8 ~
>`.pickRestart({
  A: "~@14 g2 ~", B: "c2 ~ c2 ~@3 g2 ~ c2 ~ c2 ~@3 g2 ~", C: "c2 ~ c2 ~@3 g2 ~ c2 ~ c2@2 ~@2 g2 ~",
  D: "c2@5 ~@3 c2@2 c2@2 ~@2 c2 ~", E: "f2@5 ~@3 f2@4 ~@2 f2 ~", F: "c2@5 ~@3 c2@4 ~@2 c2 ~",
  G: "f2@5 ~@3 f2@2 f2@2 ~@2 f2 ~", H: "c2@5 ~ c2@2 d2@4 ~@2 d2@2", I: "f1@4 f#1@4 g1@5 ~ d2@2",
  J: "c2@5 ~ c2@2 d2@4 ~@4", K: "f1@2 ~@2 g1@3 d2", L: "c3@4 ~@2 c3 ~ c3@4 ~@4", M: "c3@4 ~@2 c3@2 g2@4 c3@3 ~",
  N: "d2@5 ~ d2 ~ d2@4 ~@4", O: "f2 ~ g2 ~@5 d2 ~ d2@2 g1 ~ g1 ~", P: "f2 ~ g2 ~@5 d2 ~ d2@2 g1 ~ g2 ~",
  Q: "c3@5 ~ c3 ~ g2@5 ~ g2 ~", R: "f2@4 ~@2 f2 ~ f2@5 ~ d3 ~", S: "c3@4 ~@2 c3 ~ c3@5 ~ g2 ~",
  T: "f2@5 ~ f2 ~ f2@4 ~@2 c3 ~", U: "d2@5 ~ d2 ~ d2@5 ~ d2@2", V: "g2@4 ~@2 g2 ~ g2@4 f2@4",
  W: "e2@5 ~ e2 ~ e2@5 ~ e2 ~", X: "a2 ~ a2 ~ a2 ~@5 a2 ~ a2 ~ f#2 ~", Y: "d2@5 ~@3 d2@2 d2@2 ~@2 d2 ~",
  Z: "g2@5 ~@3 g2@2 g2@2 ~@2 g2 ~", AA: "d2@5 ~ d2@2 e2@4 ~@2 e2@2", AB: "g1@4 g#1@4 a1@5 ~ e2@2",
  AC: "d2@5 ~ d2@2 e2@4 ~@4", AD: "g1@2 ~@2 a1@3 e2", AE: "d2@4 ~@2 d2 ~ d2@4 ~@2 d2 ~",
  AF: "d2@4 ~@2 d2@2 a1@4 d2@3 ~", AG: "e2@3 ~ e2 e1 ~@2", AH: "a2 ~ a2 ~ g2 ~ g2 ~ f#2 ~ f#2 ~ e2 ~ e2 ~",
  AI: "d2@4 ~@2 d2 ~ d2@4 ~@4", AJ: "d2/8",
})).s("gm_acoustic_bass").gain(0.42)

// other · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@3 A@3 B A B A B A C ~@8 D E F G D E F C ~@10 A@2 H I H J ~@4 K L M N K L M O ~@21
>`.pickRestart({
  A: "c3@6 d3@2 e3 ~ g3@2 a3@2 c4@2", B: "f2@6 g2@2 a2 ~ c3@2 d3@2 f3@2", C: "f2@6 g2@2 a2 ~ c3@2 d3@2 e3@2",
  D: "c3@6 d3@2 e3 ~ [g3,c4]@2 ~@2 c4@2, c4 ~@3", E: "f2@4 f4@2 g2@2 a2 ~ c3@2 d3@2 [f3,f4]@2",
  F: "c3@6 d3@2 e3 ~ [g3,c4]@2 a3@2 c4@2, c4 ~@7", G: "~@4 f4@2 g2@2 a2 ~ c3@2 d3@2 [f3,f4]@2, f2@3 ~@5",
  H: "c3@3 d3 e3 g3 a3 c4", I: "f2@3 g2 a2 c3 d3 f3", J: "f2@3 g2 a2 c3 d3 e3",
  K: "d3@6 e3@2 f#3 ~ [a3,d4]@2 ~@2 d4@2, d4 ~@3", L: "g2@4 g4@2 a2@2 b2 ~ d3@2 e3@2 [g3,g4]@2",
  M: "d3@6 e3@2 f#3 ~ [a3,d4]@2 b3@2 d4@2, d4 ~@7", N: "~@4 g4@2 a2@2 b2 ~ d3@2 e3@2 [g3,g4]@2, g2@3 ~@5",
  O: "g2@6 a2@2 b2 ~ d3@2 e3@2 f#3@2",
})).s("gm_electric_guitar_clean").gain(0.26).pan(0.7)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@5 A B A B A B A B C D C D E F B ~ A B A B A B A B C D C D E F B ~@5 A B A B G H F I J K J K J K J K L M L M N O K ~
  N O K ~@10
>`.pickRestart({
  A: "~@4 [e4,g4,c5] ~@7 [e4,g4,c5] ~@3", B: "~@4 [f4,a4,c5] ~@7 [f4,a4,c5] ~@3",
  C: "~@4 [g3,c4,e4,c5] ~@7 [a3,d4,f4,d5] ~@3", D: "~@4 [c4,f4,a4] ~@7 [d4,g4,b4] ~@3",
  E: "~@4 [e4,g4,b4] ~@7 [e4,g4] ~@3", F: "~@4 [e4,g4,b4] ~@7 [e4,g4,b4] ~@3", G: "~@4 [d4,f4,a4] ~@7 [d4,f4,a4] ~@3",
  H: "~@4 [d4,g4,b4] ~@7 [e4,g4,b4] ~@3", I: "~@2 [e4,a4,c#5] ~ [e4,a4,c#5] ~@5 [e4,a4,c#5] ~ [e4,a4,c#5] ~@3",
  J: "~@4 [f#4,a4,d5] ~@7 [f#4,a4,d5] ~@3", K: "~@4 [g4,b4,d5] ~@7 [g4,b4,d5] ~@3",
  L: "~@4 [a3,d4,f#4,d5] ~@7 [b3,e4,g4,e5] ~@3", M: "~@4 [d4,g4,b4] ~@7 [e4,a4,c#5] ~@3",
  N: "~@4 [f#4,a4,c#5] ~@7 [f#4,a4] ~@3", O: "~@4 [f#4,a4,c#5] ~@7 [f#4,a4,c#5] ~@3",
})).s("gm_overdriven_guitar").gain(0.28)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@32 A B C D E ~@3 F G H G I J K L M ~@7 N O P Q P R S T U R S T V W@2 ~@7
>`.pickRestart({
  A: "~@14 g5 ~", B: "~@3 e5@6 ~ g5 ~@3 b5 ~", C: "[b5,d6]@7 ~ [g5,b5]@7 ~",
  D: "c6 d6 c6 a5 c6 a5 f5 ~ d5 e5 d5 e5 c5 ~ e5 f5", E: "g5 ~@15", F: "~@14 e5 f5", G: "g5 ~@3 c6@6 g5 ~@3 c6 ~",
  H: "a5 g5 f5 ~ f5@8 ~@2 e5 f5", I: "a5 g5 f5 ~ f5@5 ~@3 a5 g5 f5 e5",
  J: "[d5,f5] ~@9 e5 ~ f5 ~ g5 ~, a4@2 ~@2 [a4,d5]@9 ~@3", K: "[b4,d5,b5] ~@3 [b4,d5]@6 e5 f5 g5 a5!2 g5, ~ b5 ~@2",
  L: "[b4,e5] ~@3 [g4,b4,e5]@6 [b4,e5] ~ [b4,e5] ~ [b4,e5] ~, g4 ~@7", // E5 Em E5
  M: "[e5,a5] ~ [e5,a5] ~ a5@2 ~@2 a4 b4 c#5 d5 e5 f#5 [g5,a5] b5, ~@4 e5 ~@3 a3@8", N: "~@14 g5 a5",
  O: "d6@6 [g5,a5] f#5 e5@2 d5 ~ d5@2 e5 f#5", P: "g5@2 a5@2 b5@3 ~ a5@2 a5 b5 c#6@3 ~",
  Q: "d6@6 a5 [f#5,g5] e5@2 d5 ~ d5@2 e5 f#5", R: "~@4 f#5 ~ a5 ~ c#6 ~ [c#6,e6]@3 ~ c#6@2", S: "~@2 a5@4 [f#4,d5]@9 ~",
  T: "b5@2 ~@2 d5@2 ~@2 b4@4 d5 c#5 b4 a#4", U: "a4 b4 c#5 ~ b4 c#5 d5 ~ c#5 d5 e5 ~ a5@4",
  V: "a4 b4 c#5 ~ b4 c#5 d5 ~ c#5 d5 e5 ~ d5 e5 f#5 ~", W: "[[a4,c#5]@5 ~@3]/2",
})).s("gm_string_ensemble_1").gain(0.26)

// chords · trumpet
const trumpet = note(`<
  ~@13 A B C B ~ D E ~@3 F G ~@2 H I J B C B ~ K L ~@5 M@2 N@2 O P Q R S T U V W ~ X Y Z AA AB AA ~ AC AD AE ~ AC AD AE
  AF@2 ~@7
>`.pickRestart({
  A: "e5@3 c5 a4@2 g4@2 [c4,f4,a4]@8, [c4,e4]@7 ~@9, g4@5 ~@11", B: "[a3,f4,a4,c5]@8 [b3,g4,b4,d5]@5 ~@3",
  C: "[c4,e4,g4]@7 ~ [c4,f4,a4]@8", D: "~@10 e5 ~ g5 ~@3", E: "[a4,f5]@7 ~",
  F: "~@6 [c5,e5] [d5,f5] [e5,g5] ~ [c5,e5] [d5,f5] ~@2 e4 d4, ~@3 [c5,e5,g5]", G: "[c4,f4,a4]@9 ~@7",
  H: "~@6 [c5,e5] [d5,f5] [e5,g5] ~ [c4,c5,e5] [d4,d5,f5] e4 ~ [c4,e4] e4, ~@3 [c5,e5,g5]", I: "[a3,f4]@5 ~@3",
  J: "[c4,e4]@3 g4 [c4,f4,a4]@4, g4@5 ~@11", K: "e4@8 g4 ~ a4 ~ c5@3 ~", L: "a4@6 a4 ~@9, f5@3 ~",
  M: "[e4@4 [e4,g4,c5]@2 [d4,a4,d5]@2 g4@4 g4@4 [f4,a4]@13 ~@3, ~@8 c4@21 ~@3, ~ [c5,e5] ~@2]/2", // C D5 F C
  N: "[e4@4 [e4,g4]@2 [d4,a4]@2 g4@4 g4@4 [f4,a4]@13 ~@3, ~@8 c4@21 ~@3, ~ c5 ~@2]/2", // Em D5 F
  O: "[a3,c4] ~@3 [a3,c4]@5 ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~, a4 ~ a4@5 ~", P: "[g3,b3] ~@3 [g3,b3,g4]@9 ~@3, g4 ~@7",
  Q: "[g3,b3,e4] ~@3 [g3,b3,e4,g4]@6 [g3,b3,e4] ~ [g3,b3,e4] ~ [g3,b3,e4] ~, g4 ~@7", // Em
  R: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,e4]@2 ~@4 [a3,c#4,e4] ~ [c#4,e4] ~@3, ~@4 c#4 ~@7 a3@2 ~@2", // A A5 A C#m
  S: "~@4 f#4@4 a4@2 f#4 g4 d5@2 f#4 ~, ~@12 a4 ~@3", T: "[g4,b4]@3 ~",
  U: "~@6 [f#4,d5] [g4,e5] [a4,f#5] ~ [f#4,d5] [g4,e5] ~@2 f#4 e4, ~@3 [a4,d5,f#5]", // D C D C D
  V: "b4 ~@3 b4@4 g4 ~ a4 ~ b4 ~@3, [d4,g4]@9 ~@7", W: "d4@4 ~@2 d4 ~ d4 ~@7",
  X: "~@4 d4@2 [f#4,d5] [g4,e5] [a4,f#5] ~ [f#4,d5] [e4,g4,e5] f#4 ~ [d4,f#4] ~, ~@4 d4!2 [a4,d5,f#5]@2", // D C D Em D
  Y: "[b3,g4]@5 ~@3", Z: "f#5@3 d5 b4@2 a4@2 [d4,g4,b4]@8, [d4,f#4]@7 ~@9, a4@5 ~@11",
  AA: "[b3,g4,b4,d5]@8 [c#4,a4,c#5,e5]@5 ~@3", AB: "[d4,f#4,a4]@7 ~ [d4,g4,b4]@8", AC: "f#4@8 a4 ~ b4 ~ d5@3 ~",
  AD: "b4@6 b4 ~@9, g5@3 ~", AE: "[c#4,a4] ~ [c#4,a4] ~ [b3,g4] ~ [b3,g4] ~ [a3,f#4] ~ [a3,f#4] ~ [e3,e4] ~ [e3,e4] ~",
  AF: "[c#4@6 ~ f#4 g4 a4@12 ~@11]/2",
})).s("gm_trumpet").gain(0.31)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
  ~@13 A B C D@3 E F G H I J K L M N O P Q R S T U V ~@2 W@2 X@4 Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ
  ~ AO AP AQ ~ AR@2 ~@7
>`.pickRestart({
  A: "e5@2 c5 a4 ~@2 g4 ~ a4@5 ~@3", B: "c5@2 d5 ~", C: "g4@5 ~@3 a4@5 ~@3",
  D: "[c5@8 [b4,d5]@5 ~@11 b4@8 [e4,b4]@16, ~@13 g4@34 ~, ~ d4 ~, ~@8 d5@5 ~@11, ~@3 e5@2 ~]/3", // Bm E5
  E: "[d4,a4,c5,f5]@14 c6 a5", F: "[d5,g5] ~@7 [f4,a4,c5,f5] ~ [f4,a4,c5,f5] ~ [f4,b4,d5,g5] ~ [f4,b4,d5,g5] ~",
  G: "~ e5@14 ~, [c4,e4,g4]@15 ~", H: "a4@8 a4@4 f4@3 ~, a3, f4@11 ~@5", I: "[g3,e4,g4]@7 c5",
  J: "[a3,f4,a4]@7 ~ f4 g4 a4 g4 f4 g4 a4 c5", K: "~@2 e5 c5, [c4,e4,g4]@15 ~", L: "a4@6 d5 f5, [a3,f4]",
  M: "[g3,e4,g4,e5]@7 c5", N: "[a3,f4,a4,f5]@9 ~@7", O: "e5@3 c5 a4@3 e5", P: "[c5,f5] e5 c5 a4 [g4,d5]@2 ~@2",
  Q: "g4@7 ~ a4@5 ~ e5@2", R: "[c5,f5]@2 e5@2 c5@2 a4 ~ [g4,b4,d5]@5 ~@3", S: "~ b4, d4, d5@5 ~@3", T: "[e4,g4,b4]",
  U: "[d4,a4]@14 c6 a5, [c5,f5]@3 ~", V: "d5 ~@7 [f4,a4,c5,f5] ~ [f4,a4,c5,f5] ~ [f4,b4,d5,g5] ~ [f4,b4,d5,g5] ~",
  W: "[~@16 c5@15 ~, c4]/2", X: "[e4@16 f4@16 e4@16 f4@15 ~, c4@31 ~]/4", Y: "~@5 e3 f3 a3", Z: "b3@2 a3 ~ g3@10 ~@2",
  AA: "e3 ~ e3@5 ~", AB: "a2@8 ~@2 a2 ~ a2 ~@3", AC: "[f#5,d6]@11 ~ [a5,b5] f#5@2 ~, [d4,f#4,a4]@15 ~",
  AD: "e5@2 d5 ~@5 b4@4 g4@3 ~, d4, g4@11 ~@5, b4 ~, ~ d5@3", AE: "d6@10 a5 b5 a5 ~ d5@2, [a3,f#4,a4]@14 f#5 ~",
  AF: "e5@2 d5 ~ d5@11 ~, [b3,g4,b4]@7 ~", AG: "~@8 f#5@4 [a5,b5] f#5@2 ~, [d4,f#4,a4]@15 ~, d6@11 ~ d5@4",
  AH: "e5@2 d5 ~ d5@8 e5@2 g5@2, [b3,g4], b4@3 ~", AI: "[f#5,d6]@10 a5 b5 a5 ~ d5@2, [a3,f#4,a4]@14 f#5 ~",
  AJ: "e5@2 d5 ~ d5@8 ~@4, [b3,g4,b4,g5]@3 ~", AK: "f#5@2 d5 b4 ~@2 a4 ~ b4@5 ~@3", AL: "d5@2 e5 ~",
  AM: "a4@5 ~@3 b4@5 ~@3", AN: "d5@8 [c#5,e5]@5 ~@3", AO: "e5 c#5, e4", AP: "[f#4,a4,c#5]",
  AQ: "[e4,b4]@7 ~, [d5,g5]@3 ~", AR: "[[c#4,e4,f#4,a4]@21 ~@11]/2",
})).s("gm_string_ensemble_1").gain(0.27).pan(0.8)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~@5 A B C D E@4 F G F G ~@4 A H C I A H C I F G F G ~@16 J K L M J K L M N O N O ~@8 P@8 ~
>`.pickRestart({
  A: "c5@7 ~@7 c6@2, ~@8 c5@7 ~, ~@5 e5@3, ~@3 g5", B: "c5@7 ~@7 f6 ~, ~@8 c5@7 ~, ~@3 c6",
  C: "[c5,e6]@8 ~@4 g5@2 c6 ~, ~@8 c5@7 ~, ~@10 e5@5 ~", D: "c5@8 f6 c6 a5@2 f5@2 ~@2",
  E: "[[c5,e5,g5]@4 [c6,e6] ~@3 [c6,e6] ~ c6 ~ [c6,e6] ~ [e5,g5] ~ [f5,a5]@4 [c6,f6] ~@3 [c6,f6] ~ c6 ~ [c6,f6] ~ [f5,a5] ~ [e5,g5]@4 [c6,e6] ~@3 [c6,e6] ~@2 e5 [e5,g5]@2 c6 ~ [f5,a5]@4 [c6,f6] ~@3 [c6,f6] ~ [c6,e6] ~ c6@2 [c5,f5,a5]@2, ~@6 [c5,e5,g5]@7 ~ c5@7 ~ [c5,f5,a5]@7 ~ c5@7 ~ [c5,e5,g5]@4 c6@2 c5@9 ~ [c5,f5,a5]@7 ~@3, ~@44 e6 ~@15 f6@4]/4", // C Em F F5 F Em C Em …
  F: "e6@3 c6 a5@2 g5@2 a5@2 c6@2 d6@4", G: "f5 c6 d6@2 g5 c6 b5 ~", H: "c5@7 ~@7 f6 ~, ~@8 c5@7 ~, ~@5 a5@3, ~@3 c6",
  I: "c5@4 ~ a5 f5 ~, ~@2 f6 ~, ~@9 c6@3 ~@4", J: "d5@7 ~@7 d6@2, ~@8 d5@7 ~, ~@5 f#5@3, ~@3 a5",
  K: "d5@7 ~@7 g6 ~, ~@8 d5@7 ~, ~@5 b5@3, ~@3 d6", L: "[d5,f#6]@8 ~@4 a5@2 d6 ~, ~@8 d5@7 ~, ~@10 f#5@5 ~",
  M: "d5@4 ~ b5 g5 ~, ~@2 g6 ~, ~@9 d6@3 ~@4", N: "f#6@3 d6 b5@2 a5@2 b5@2 d6@2 e6@4", O: "g5 d6 e6@2 a5 d6 c#6 ~",
  P: "[~@7 c#5@121, d3@3 f#4@61, ~ a3@22 ~@105, ~@3 c#4@21 ~@104, ~@4 d4@19 ~@105]/8",
})).s("gm_piano").gain(0.15).pan(0.1)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@4 A B@7 C B D B E B@3 F B@7 E B G B E B@3 H ~@3 I B@7 J B@7 E B@3 E B@3 K B@3 K ~ L ~@7
>`.pickRestart({
  A: "~@8 x ~@3 x ~ x!2", B: "~ x ~ x", C: "~@4 x ~@3 x ~ x!3 ~@3", D: "~@4 x ~@3 x ~@2 x!2 ~@3", E: "~ x!3",
  F: "x ~@6 x!2 ~ x ~ x ~ x ~", G: "~@4 x ~@6 x!2 ~@3", H: "x ~@3 x!4", I: "~@8 x ~@2 x!2 ~ x!2", J: "x!3 ~@2 x!2 ~",
  K: "x!7 ~", L: "~@5 x ~@10",
})).gain(0.52)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@4 A ~@11 A ~@3 B ~@7 A ~ C ~ A ~@3 D ~@3 C ~@7 E ~@7 A ~ A ~ A ~@9 F ~@7
>`.pickRestart({
  A: "~@10 x!2 ~@4", B: "~@3 x ~@4", C: "~@5 x ~@2", D: "~@6 x!2 ~@8", E: "~@7 x", F: "~ x ~@2",
})).gain(0.2)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@5 A@9 B A C A@3 D A@7 E A F A C A@3 D ~@4 A@7 G A@7 E A B A@5 H A@3 H ~@9
>`.pickRestart({
  A: "x!3 ~ x!4", B: "x!3 ~ x!3 ~", C: "x!3 ~@4 x", D: "x", E: "x!4 ~@3 x", F: "x!3 ~@5", G: "~@7 x", H: "x!8",
})).gain(0.2)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@5 A@15 ~ A@7 ~ A@7 ~@5 A@7 ~ A@7 ~ A@7 ~ A@3 ~@10>".pickRestart({
  A: "~@3 x ~@4",
})).gain(0.13)

// drums · low tom
const low_tom = s("lt").struct("<~@14 [~ x] x ~@14 [~@7 x] ~@27 [~@7 x] ~@19>").gain(0.46)

// drums · mid tom
const mid_tom = s("mt").struct("<~@14 [~@7 x] ~@15 [~ x] ~@27 [~ x] ~@19>").gain(0.52)

// drums · open hat
const open_hat = s("oh").struct("<~@69 [x ~ x!7 ~@7] [~@3 x ~@4] ~@7>").gain(0.13)

stack(
  bass, electric_guitar_clean, overdriven_guitar, string_ensemble_1, trumpet, string_ensemble_1_2, piano, kick, snare,
  snare_soft, hihat, hihat_soft, low_tom, mid_tom, open_hat
)

More by The Temptations