Strudelify
Never Can Say Goodbye cover art

1975 · I Will Survive

Never Can Say Goodbye

Gloria Gaynor

KeyC majorTempo134 bpm
0:00/0:00
// Never Can Say Goodbye — Gloria Gaynor
// 134 bpm, 4/4, key C major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(134/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 · synth bass 2 · "bass"
const bass = note(`<
  ~@2 A B C D@2 E@2 D@2 E@2 F@8 G@3 F H I@2 J K@5 L@3 K@5 M@3 N D O E P D O E Q F@7 R G@2 S T U V@2 W K@5 X@2 Y K@5 X@2
  Z D O E P D O E Q F@7 R G@2 S T U AA@2 AB W K@3 AC K X@2 Y K@3 AD K X@2 AE
>`.pickRestart({
  A: "~@7 c2", B: "~ g1 a1 c2 ~ g1 a1 c2", C: "~ g1 a1 c2 d#2 e2 g2 a2", D: "f1!2 c1 d1 f1!2 c1 d1",
  E: "g1!2 d1 e1 g1!2 d1 e1", F: "c2!2 g1 a1 c2!2 g1 a1", G: "c1 c2 c1 c2 c1 c2 c1 c2", H: "f1 f2 f1 f2 f1 f2 f1 f2",
  I: "[f1 f2 c2 d2 f2 e2@2 d2@9]/2", J: "g1!2 ~@6", K: "c2!2 a1 g1 c2!2 a1 g1",
  L: "[c2!2 a1 g1 c2!2 a1 c2@2 g1 a1 c2@2 g1 a1 c2@2 g1 a1 c2 d#2 e2 g2 a2]/3",
  M: "[c2!2 a1 g1 c2!2 a1 c2@2 g1 a1 c2@2 g1 a1 c2@2 g1 a1 c2 d#2 e2 d#2 e2]/3", N: "~@4 f1!2 c1 d1",
  O: "f1!2 c1 d1 g1!2 d1 e1", P: "g1!2 d1 e1 f1!2 c1 d1", Q: "g1!2 d1 e1 c2!2 g1 a1", R: "c2!2 g1 a1 c1 c2 c1 c2",
  S: "c1 c2 c1 c2!3 g1 a1", T: "c2!2 g1 a1 f1 f2 f1 f2", U: "f1 f2 f1 f2 f1 f2 c2 d2", V: "[f2 e2 ~ d2@9 g1!2 ~@2]/2",
  W: "~@4 c2!2 a1 g1", X: "[c2!2 a1 c2@2 g1 a1 c2@2 g1 a1 c2@2 g1 a1 c2]/2", Y: "d#2 e2 g2 a2 c2!2 a1 g1",
  Z: "d#2 e2 d#2 e2 f1!2 c1 d1", AA: "[f2 e2@2 d2@9 g1!2 ~@2]/2", AB: "~@3 g1!3 ~@2",
  AC: "c2 ~ c2@2 a1@2 g1@2 c2@2 c2@2 a1@2 g1@2", AD: "d#1 f1 g1 a1 c2!2 a1 g1", AE: "d#2 e2 d#2 e2 ~@3 c2",
})).s("gm_synth_bass_2").gain(0.64)

// chords · piano
const piano = note(`<
  ~@2 A ~@2 B@2 C@2 B@2 D E F@2 G@2 H@2 I@2 J@2 K L M@3 N O@2 P@6 O@2 P@6 Q@7 R@3 S@4 T@8 U@2 V@8 W@8 X Y Z AA AB AC AD
  AE AF@6 AG@8 AH@2 AI V@8 AJ@8 AK
>`.pickRestart({
  A: "~@7 [c5,e5,g5,c6]", B: "[[f3,a3,c4,e4]@31 ~]/2", C: "[[g3,b3,d4,e4]@31 ~]/2", D: "[g3,c4,d4]@15 ~",
  E: "[g3,b3,d4,g4]@15 ~", F: "[g4@23 ~ c5@7 ~, [c4,e4]@31 ~]/2", G: "[[d4,f4,g4,a#4]@31 ~]/2",
  H: "[c5@15 ~ c5@5 ~ e5@5 ~ c5@4, [e4,g4]@31 ~]/2", I: "[[f4,g4,a#4,d5]@31 ~]/2", J: "[[e4,g4,b4]@31 ~]/2",
  K: "[f4,g4,a#4,c5]@15 ~", L: "[e4,g4,a#4,c5]@15 ~",
  M: "[[f4,a4,c5,e5]@23 ~ [f4,a4,c5,e5]@2 [e4,g4,b4,d5]@2 ~@2 [d4,f4,a4,c5]@17 ~]/3", N: "[d4,f4,a4,c5] ~@7",
  O: "[[e4,g4,c5]@31 ~]/2", // C
  P: "[~@4 [d#4,g4,a#4,c5]@23 ~@3 [f4,a4,c5]@15 ~ [f4,g#4,c5]@15 ~ [e4,g4,c5]@25 ~ [d#4,d#5]@2 [e4,e5] ~ [d#4,d#5]@2 [e4,e5] ~]/6", // Cm7 F Fm C D# E D# E
  Q: "[~@8 [f3,a3,c4,e4]@31 ~ [g3,b3,d4,e4]@31 ~ [f3,a3,c4,e4]@31 ~ [g3,c4,d4]@8]/7", // Fmaj7 Em7 Fmaj7 Gsus4
  R: "[~@8 [g3,b3,d4,g4]@15 ~ [c4,e4,g4]@24]/3", S: "[c5@7 ~ [d4,f4,g4,a#4]@31 ~ c5@15 ~ c5@5 ~ e5@2, ~@5 [e4,g4]@3]/4",
  T: "[~@4 c5@4 [f4,g4,a#4,d5]@31 ~ [e4,g4,b4]@31 ~ [f4,g4,a#4,c5]@15 ~ [e4,g4,a#4,c5]@15 ~ [f4,a4,c5,e5]@23 ~]/8", // Gm7 Em Fsus4 C7 Fmaj7
  U: "[[f4,a4,c5,e5]@2 [e4,g4,b4,d5]@2 ~@2 [d4,f4,a4,c5]@17 ~ [d4,f4,a4,c5]@2 ~@6]/2", // Fmaj7 Em7 Dm7
  V: "[~@8 [e4,g4,c5]@31 ~@5 [d#4,g4,a#4,c5]@23 ~@3 [f4,a4,c5]@15 ~ [f4,g#4,c5]@15 ~ [e4,g4,c5]@25 ~]/8", // C Cm7 F Fm C
  W: "[[d#4,d#5]@2 [e4,e5] ~ [d#4,d#5]@2 [e4,e5] ~ [e4,g4,c5]@31 ~@5 [d#4,g4,a#4,c5]@23 ~@3 [f4,a4,c5]@15 ~ [f4,g#4,c5]@15 ~ [e4,g4,c5]@25 ~]/8", // D# E D# E C Cm7 F Fm …
  X: "[d#4,d#5]@2 [e4,e5] ~ [d#4,d#5]@2 [e4,e5] ~ a4 a#4 c5 a4 d5 a4 c5 a4, ~@2 c6 a5", // D# E D# E
  Y: "a4 a#4 c5 a4 d5 a4 c5 a4 e5 a4 a5 a4 e5 a4 a#4 a4", Z: "c5 a4 d5 a4 c5 a#4 a4 g4 a4 g4 d5 g4 a4 g4 d5 g4",
  AA: "b4 g4 c5 g4 d5 g4 c5 g4 d5 g4 a5 g4 d5 g4 b4 g4", AB: "c5 g4 d5 g4 e5 g4 d5 g4 f5 e5 c5 a4 f4 e4 f5 e5",
  AC: "c5 a4 f4 e4 c4 a3 c4 e4 f5 e5 c5 a4 f4 e4 f5 e5", AD: "c5 a4 f4 e4 c4 d4 e4 c4 g4 e4 a4 f4 b4 g4 c5 a4",
  AE: "d5 b4 e5 c5 f5 d5 g5 e5 a5 f5 b5 g5 c6 a5 d6 b5",
  AF: "[e6 c6 f6 d6 g6@3 ~ g4@23 ~ c5@7 ~ [d4,f4,g4,a#4]@31 ~ [e4,g4,c5]@24, ~@8 [c4,e4]@31 ~@57]/6", // Gm7 C
  AG: "[e5@4 c5@4 [f4,g4,a#4,d5]@31 ~ [e4,g4,b4]@31 ~ [f4,g4,a#4,c5]@15 ~ [e4,g4,a#4,c5]@15 ~ [f4,a4,c5,e5]@23 ~]/8", // Gm7 Em Fsus4 C7 Fmaj7
  AH: "[[f4,a4,c5,e5]@2 [e4,g4,b4,d5]@2 ~@2 [d4,f4,a4,c5]@17 ~ [d4,f4,a4,c5]@2 [d4,f4,a4,c5] ~@5]/2", // Fmaj7 Em7 Dm7
  AI: "~@6 [d4,f4,a4,c5] ~ [d4,f4,a4,c5]@2 [d4,f4,a4,c5] ~@5", // Dm7
  AJ: "[[d#4,d#5]@2 [e4,e5] ~ [d#4,d#5]@2 [e4,e5] ~ [e4,g4]@31 ~@5 [d#4,g4,a#4]@23 ~@3 [f4,a4,c5]@15 ~ [f4,g#4,c5]@15 ~ [e4,g4,c5]@25 ~, ~@8 c5@36 c5@11 ~@73]/8", // D# E D# E Em D# F Fm …
  AK: "[d#4,d#5]@2 [e4,e5] ~ [d#4,d#5]@2 [e4,e5] ~@7 [e4,g4,c5]@2", // D# E D# E C
})).s("gm_piano").gain(0.5).pan(0.4)

// other · string ensemble 1 · "strings"
const string_ensemble_1 = note(`<
  ~@2 A ~@10 B@2 C D E F C G H@2 I@2 J K@2 L M@2 N@2 O@2 P Q R@4 S@2 T U V ~@7 W@2 X@2 Y@2 Z@7 AA AB@2 AC@2 AD@5 P AE@6
  AF AG V ~@7 AH AI AJ@8 AK@3 AA AL@2 ~ AM@2 AD@5 P AN@2 AO@5 P AP
>`.pickRestart({
  A: "~@14 [c5,c6] ~", B: "[g4@3 c5]/2", C: "a#4", D: "g4 a4 a#4 d5", E: "c5@15 ~", F: "c5@3 e5@3 c5@2",
  G: "[f4,a#4,d5]@15 ~", H: "b4/2", I: "[c5@31 ~]/2", J: "e5@7 ~ d5 c5 d5 e5 f5 e5 f5 g5",
  K: "[a5 g5 a5 b5 c6 b5 c6 d6 e6@2 d6@2 ~@2 c6@17 ~]/2",
  L: "[c5,c6]@4 [c5,c6]@3 [c5,c6] c5@2 [c5,c6]@4 c5@2, ~@8 c6 ~@5 c6 ~", M: "[c6@19 ~ c6@4 c6!2 c6@2 ~@2 d6@2]/2",
  N: "[d#6 d6 c6@30]/2", O: "[d#6 d6 c6@10 d#6 d6 c6@14 d6 e6 g6 ~]/2", P: "~@2 g4@2 a4@2 c5 ~@3 g4@2 a4@2 c5 ~",
  Q: "~@2 g4@2 a4@2 c5 ~ d#5@2 e5 ~ d#5@2 e5 ~", R: "c6/2", S: "[c6@19 ~ [g5,a#5]@4 [f5,g#5]@4 d6@2 e6@2]/2",
  T: "c6 ~@2 c6 ~@3 c6", U: "~@8 d#6@2 e6 ~ d#6@2 e6 ~", V: "d#6@2 e6 ~ d#6@2 e6 ~@9", W: "[~ g4@3]/2",
  X: "[c5@2 a#4@4 g4 a4]/2", Y: "[a#4@4 d5@4 c5@15 ~ c5@6 e5@2]/2",
  Z: "[~@4 c5@4 a#4@16 [f4,a#4,d5]@15 ~ b4@32 c5@31 ~ e5@7 ~]/7", AA: "d5 c5 d5 e5 f5 e5 f5 g5 a5 g5 a5 b5 c6 b5 c6 d6",
  AB: "[e6@2 d6@2 ~@2 c6@17 ~ [c5,c6]@4 [c5,c6]@3 [c5,c6]]/2", AC: "[c5@2 [c5,c6]@4 [c5,c6] ~ c6@20 c6@4, c6 ~@31]/2",
  AD: "[c6!2 c6@2 ~@2 d6 ~ d#6 d6 c6@30 d#6 d6 c6@10 d#6 d6 c6@14 d6 e6 g6 ~@3 g4@2 a4@2 c5 ~]/5",
  AE: "[d#5@2 e5 ~ d#5@2 e5 ~ c6@32 c6@32 c6@19 ~ [g5,a#5]@4]/6", AF: "[f5,g#5]@2 d6 e6 c6 ~@2 c6", AG: "~@3 c6 ~@4",
  AH: "~ g3", AI: "e4 c4 e4@2",
  AJ: "[c4@8 d5@8 [d5,f5]@8 [a#4,d5,g5]@8 [d5,f5,g5,a#5]@8 [e5,g5,c6]@6 [c5,e5,g5]@2 [c5,e5,g5]@4 [g4,c5,e5]@2 [g4,c5,e5]@4 [e4,g4,c5]@2 [e4,g4,c5]@4 [g4,c5,e5]@4 [e4,g4,c5]@4 a#4@8 d5@8 ~@2 a5 a#5 a#5@4 d6@4 f5@4 b4@24, ~ d4@4 c4@4 [d4,f4]@4 ~@3]/8", // Dm Gm Gm7 C Dm
  AK: "[~@8 c5@31 ~ e5@6 ~@2]/3", AL: "[e6@2 d6 ~@3 c6@16 ~@10]/2", AM: "[~@2 c6@5 c6]/2",
  AN: "[d#5@2 e5 ~ d#5@2 e5 ~ c6@20 c6@3 ~]/2",
  AO: "[c6!2 c6@2 ~@2 d6@2 d#6 d6 c6@30 d#6 d6 c6@10 d#6 d6 c6@14 d6 e6 g6 ~@3 g4@2 a4@2 c5 ~]/5",
  AP: "d#5@2 e5 ~ d#5@2 e5 ~@7 [c5,c6]@2", // C
})).s("gm_string_ensemble_1").gain(0.57).pan(0.2)

// other · pad warm · "pad"
const pad_warm = note("<~@70 A B@2 ~@2 C@2 ~ A B@2 ~@2 C@2 D@8 ~@18 A B@2 ~@2 C@2 ~ A B@2 ~@2 C@2 ~>".pickRestart({
  A: "~@2 c6 d6", B: "[e6@4 g6@2 a#6@5 ~ g6@2 d#6@9 ~@9]/2", C: "[~@6 e7@4 d7@4 c7@9 ~@9]/2",
  D: "[~ [f4,a4,c5,e5]@4 [g4,b4,d5,e5]@4 [f4,a4,c5,e5]@4 c5@2 b4, ~@13 [g4,d5]@3]/8", // Fmaj7 Em7 Fmaj7 G5
})).s("gm_pad_warm").gain(0.43).pan(0.6)

// chords · brass section · "brass"
const brass_section = note(`<
  ~@2 A ~@23 B@2 ~ C D E F@4 G C D E F@4 G ~@17 H I@3 ~ J@2 K@2 L@2 M@4 N@2 L@2 M@4 O ~@16 H I@3 ~ P@2 Q R ~@2 S T U V ~
  N@2 L@2 M@4 W
>`.pickRestart({
  A: "~@7 [c6,c7]", B: "[~@4 [f5,a5,c6,e6] [e5,g5,b5,d6] ~ [d5,f5,a5,c6]@9]/2", C: "[e5,g5,c6]",
  D: "~@2 [e5,g5,c6]!3 ~@3 [e5,g5,c6]!3 ~@5", E: "~@4 [d#5,g5,a#5,c6]@9 ~ [d#5,g5,a#5,c6] [d#5,g5,a#5]",
  F: "[[d#5,g5,a#5,c6] ~@3 [d#5,g5,a#5,c6]!3 ~@3 [d#5,g5,a#5,c6] ~@3 [f5,a5,c6]@16 [f5,g#5,c6]@16 [e5,g5,c6]@18]/4", // Cm7 F Fm C
  G: "~@8 d#6@2 e6 ~ d#6@2 e6 ~", H: "~@7 g5", I: "[b5@4 e6@3 ~ f5@16 e5@16 ~@8, ~ [g5,c6]@4 ~]/3",
  J: "[[f5,a5,c6,e6] [e5,g5,b5,d6] ~ [d5,f5,a5,c6]@9 ~@4]/2", K: "[~@8 [e5,g5,c6]@16 ~@2 [e5,g5,c6]!3 ~@3]/2",
  L: "[[e5,g5,c6]!3 ~@9 [d#5,g5,a#5,c6]@9 ~ [d#5,g5,a#5,c6] [d#5,g5,a#5] [d#5,g5,a#5,c6] ~@3 [d#5,g5,a#5,c6]!3 ~]/2", // C Cm7 D# Cm7
  M: "[~@2 [d#5,g5,a#5,c6] ~@3 [f5,a5,c6]@16 [f5,g#5,c6]@16 [e5,g5,c6]@18 ~@8]/4", // Cm7 F Fm C
  N: "[d#6@2 e6 ~ d#6@2 e6 ~ [e5,g5,c6]@16 ~@2 [e5,g5,c6]!3 ~@3]/2", O: "d#6@2 e6 ~ d#6@2 e6 ~@9",
  P: "[[f5,a5,c6,e6]@2 [e5,g5,b5,d6]@2 ~@2 [d5,f5,a5,c6]@18 [d5,f5,a5,c6]@2 [d5,f5,a5,c6] ~@5]/2", // Fmaj7 Em7 Dm7
  Q: "~@6 [d5,f5,a5,c6] ~ [d5,f5,a5,c6]@2 [d5,f5,a5,c6] ~@5", // Dm7
  R: "[g5,g6]!2 [f5,f6] [g5,g6] ~ [f5,f6] [g5,g6] [c6,c7] c7@4 ~@4", S: "a#5!2 ~ g5!2 ~ f5!2 ~@8",
  T: "~@10 c5!2 f5 g5 ~@2", U: "c5!2 f5 g5 ~@12", V: "~@4 c6 ~ c6 ~@9", W: "d#6@2 e6 ~ d#6@2 e6 ~@7 [c6,e6,g6,c7]@2",
})).s("gm_brass_section").gain(0.5).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~@2 A ~@2 B@21 C D E B@16 F B@21 G H I B@37 G H J I B@15 K>".pickRestart({
  A: "~@7 x", B: "x!4", C: "x ~ x ~ x!2 ~ x", D: "x ~@2 x!2 ~@3 x ~@3 x ~@3", E: "x!2 ~@6", F: "x!2 ~@2 x ~ x ~",
  G: "x ~ x ~@3 x ~ x ~@2 x!2 ~@3", H: "x ~ x ~ x!2 ~@2", I: "~@2 x!2", J: "~@3 x!3 ~@2", K: "x ~ x ~@4 x",
})).gain(0.64)

// drums · rim
const rim = s("rim").struct("<~@23 [~ x ~ x] ~@103>").gain(0.64)

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

// drums · clap
const clap = s("cp").struct("<~@87 A B C ~ A D E ~@33>".pickRestart({
  A: "~@2 x ~@2 x!2 ~ x!3 ~@5", B: "~@7 x", C: "x!3 ~@2 x ~ x!2 ~@7", D: "~@2 x ~@2 x ~ x!4 ~@2 x ~ x", E: "x!3 ~@13",
})).gain(0.71)

// drums · hihat
const hihat = s("hh").struct("<A B@2 ~@2 B@21 C B ~ B@16 D B@21 D C D B@37 D C ~ D B@15 C>".pickRestart({
  A: "x!4", B: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2", C: "x!2 ~@2 x!2 ~@10", D: "~@8 x!2 ~@2 x!2 ~@2",
})).gain(0.64)

// drums · low tom
const low_tom = s("lt").struct("<~@126 [~@5 x ~@2]>").gain(0.71)

// drums · mid tom
const mid_tom = s("mt").struct("<~@69 [~ x ~@6] ~@56 [~@9 x ~@6]>").gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~ A B ~@2 A@21 C A ~@17 D A@21 D C ~@16 D A@21 D C ~@18>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~ x ~@2", C: "~ x ~ x ~@4", D: "~@5 x ~ x",
})).gain(0.64)

// drums · high tom
const high_tom = s("ht").struct("<~@45 [~@2 x!2 ~@12] ~@23 [~@3 x ~@12] ~@56 [~ x]>").gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  ~@2 A ~@2 B ~@7 B ~@12 C ~@2 B ~@7 B ~@7 D ~@7 D ~@13 E ~ D ~@7 D ~@7 D ~@7 D ~@13 E ~@2 D ~@15 A
>`.pickRestart({
  A: "~@7 x", B: "x", C: "~@4 x!2 ~ x", D: "~ x", E: "x!2 ~ x ~@4",
})).gain(0.71)

// drums · ride
const ride = s("rd").struct("<~@29 A@16 ~@24 B A@15 C ~@24 B A@15 C>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~@5 x ~ x", C: "~ x ~ x ~@4",
})).gain(0.71)

// drums · tambourine
const tambourine = s("tb").struct("<~@29 A@16 ~@24 B A@15 C ~@24 B A@15 C>".pickRestart({
  A: "x!2", B: "~ x", C: "x",
})).gain(0.57)

// drums · congas
const congas = s("conga:18").struct("<~@13 A@16 B@16 C A@22 D E B@15 F A@22 D ~ E B@15 G>".pickRestart({
  A: "x!2 ~@2 x!2 ~@2", B: "x!3 ~ x!3 ~", C: "~@4 x!2 ~@2", D: "x!2 ~@6", E: "~@4 x!3 ~", F: "x!3 ~ x!2 ~@2",
  G: "x!3 ~@5",
})).gain(1.83)

// drums · congas
const congas_2 = s("conga:33").struct("<~@13 A@32 B A@22 C B A@38 C ~ B A@15 C>".pickRestart({
  A: "~@4 x ~ x!2 ~@4 x ~ x!2", B: "~@12 x ~ x!2", C: "~@4 x ~ x!2 ~@8",
})).gain(1.83)

// drums · agogo bells
const agogo_bells = s("agogo:2").struct("<~@29 A@16 ~@24 B A@15 C ~@24 B A@15 C>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~@5 x ~ x", C: "~ x ~ x ~@4",
})).gain(4.1)

stack(
  bass, piano, string_ensemble_1, pad_warm, brass_section, kick, rim, snare, clap, hihat, low_tom, mid_tom, open_hat,
  high_tom, crash, ride, tambourine, congas, congas_2, agogo_bells
)

More by Gloria Gaynor