Strudelify
Ma Baker cover art

1994 · Daddy Cool

Ma Baker

Boney M.

KeyE♭ minorTempo129 bpm
0:00/0:00
// Ma Baker — Boney M.
// 129 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 149 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(129/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.

// chords · vibraphone
const vibraphone = note(`<
  ~@8 A B A B@2 C D E F G@2 H ~@21 I J K J L@2 M N O P Q@2 ~@10 D E F G@2 H ~@8 D E F G@2 H ~@8 A B A B@2 C D E F G@2 H
  ~@21 I J K J L@2 M N O P Q@2 I J K J L@2 M N O R ~@3
>`.pickRestart({
  A: "bb4 ~@3 b4 ~@3 bb4 eb4!4 ~ eb4!2", B: "f4 ~ gb4 ~ f4 ~ db4 ~ eb4 ~@5 eb4!2",
  C: "f4 ~ gb4 ~ f4 ~ db4 ~ eb4 ~@2 gb5 [bb4,gb5] gb5 [bb4,gb5] ~", // Ebm
  D: "gb5@4 [gb4,eb5] ~ f5@2 ~@2 [gb4,f5]!3 ~ [gb4,f5] ~, bb4 ~@5 ab4 ~@9", // Ebm Gbmaj7
  E: "db5@3 ~ [db4,ab4] ~ bb4@2 ~@2 [bb4,gb5]!2 bb4 gb5 [bb4,gb5] ~, f4 ~@5 eb4 ~@9", // Db5 Ebm
  F: "gb5@3 ~ [gb4,eb5] ~ [ab4,f5] ~@3 [gb4,f5]!3 ~ [gb4,f5] ~, bb4 ~@15", // Ebm Db Gbmaj7
  G: "db5@3 ~ [db4,ab4] ~ [eb4,bb4] ~@3 [eb4,bb4]!3 ~ [eb4,bb4] ~, f4 ~@15", // Db5 Eb5
  H: "db5@3 ~ [db4,ab4] ~ [eb4,bb4] ~@9, f4 ~@15", I: "~@8 bb4 ~@3 b4 ~@3",
  J: "bb4 eb4!4 ~ eb4!2 f4 ~ gb4 ~ f4 ~ db4 ~", K: "eb4 ~@5 eb4!2 bb4 ~@3 b4 ~@3",
  L: "eb4 ~@5 eb4!2 f4 ~ gb4 ~ f4 ~ db4 ~",
  M: "eb4 ~@2 gb5 [bb4,gb5] gb5 [bb4,gb5] ~ gb5@4 [gb4,eb5] ~ f5@2, ~@8 bb4 ~@5 ab4 ~", // Ebm
  N: "~@2 [gb4,f5]!3 ~ [gb4,f5] ~ db5@3 ~ [db4,ab4] ~ bb4@2, ~@8 f4 ~@5 eb4 ~", // Gbmaj7 Db5
  O: "~@2 [bb4,gb5]!2 bb4 gb5 [bb4,gb5] ~ gb5@3 ~ [gb4,eb5] ~ [ab4,f5] ~, ~@8 bb4 ~@7", // Ebm Db
  P: "~@2 [gb4,f5]!3 ~ [gb4,f5] ~ db5@3 ~ [db4,ab4] ~ [eb4,bb4] ~, ~@8 f4 ~@7", // Gbmaj7 Db5 Eb5
  Q: "~@2 [eb4,bb4]!3 ~ [eb4,bb4] ~ db5@3 ~ [db4,ab4] ~ [eb4,bb4] ~, ~@8 f4 ~@7", // Eb5 Db5 Eb5
  R: "~@2 [gb4,f5]!3 ~ [gb4,f5] ~ db5@3 ~@5, ~@8 f4 ~@7", // Gbmaj7
})).s("gm_vibraphone").gain(0.64)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B C D E F G H I J I J K L I J I J K L I J I J K L I J I J K L M N M N M O M P Q R S T S T U V S T S T U V W X W X W
  Y Z AA AB I J I J K L ~@8 I J I J K L A B C D AC F G H I J I J K L I J I J K L I J I J K L I J I J K L M N M N M O M P
  Q R S T S T U V S T S T U V S T S T U V S T AD ~@3
>`.pickRestart({
  A: "eb2!2 bb1 eb2 d2!2 a1 d2", B: "db2@2 db2@2 ab1@2 db2@2 d2 ~ d2@2 a1@2 d2@2", C: "eb2!2 bb1 eb2 db2!2 ab1 db2",
  D: "b1@2 b1@2 gb1 ~ b1@2 bb1@2 bb1@2 db2@2 d2@2",
  E: "eb2@2 eb2@2 ~ eb4 eb2@2 d2@2 ~ d4 a1@2 d2@2, ~@2 eb4 ~ bb1@2 ~@2 d4 ~ d2@2 ~@2 d4 ~",
  F: "db2@2 db2@2 ~ db4 db2@2 [d2,d4] ~@2 d4 a1@2 d2@2, ~@2 db4 ~ ab1@2 ~@4 d2@2 ~@2 d4 ~", // D
  G: "eb2@2 eb2@2 ~ eb4 eb2@2 db2@2 ~ db4 ab1@2 db2@2, ~@2 eb4 ~ bb1@2 ~@2 db4 ~ db2@2 ~@2 db4 ~",
  H: "b1@2 b1@2 gb1 b3 b1@2 bb1@2 ~ bb3 db2@2 d2@2, ~@2 b3 ~@5 bb3 ~ bb1@2 ~@2 bb3 ~",
  I: "bb1@2 db2@2 eb2@2 gb2@2 db2@2 ~ db2@3 b1@2", J: "bb1@2 b1@2 db2@2 gb2@2 eb2@2 ~ eb2@2 ~ eb2@2",
  K: "bb1@2 db2@2 eb2@2 gb2@2 eb2@2 ~ eb2 ~ eb2 eb2@2", L: "bb1@2 db2@2 eb2@2 gb2@2 eb2@2 ~ eb2 ~ eb2!2 ~",
  M: "bb1@2 db2@2 eb2@2 gb2@2 db2@2 ~ db2 ~ db2!2 ~", N: "b1 ~ b1 ~ b1 ~ b1 ~ bb1@2 ~ bb1 ~ bb1!2 ~",
  O: "b1 ~ b1 ~ b1 ~ b1 ~ bb1 ~@2 bb1 ~ bb1!2 ~", P: "db2@2 bb1@2 db2@2 eb2@2 ~@3 eb2@2 ~ eb1 eb2",
  Q: "eb2@2 ~ eb2 ~ eb1 eb2 ~ eb2@2 ~ eb2 ~ eb1 eb2 ~", R: "eb2@2 ~ eb2@2 eb1 [gb1,eb2] ~ bb1@2 db2@2 eb2@2 gb2@2",
  S: "db2@2 ~ db2@3 b1@2 bb1@2 b1@2 db2@2 gb2@2", T: "eb2@2 ~ eb2@2 ~ eb2@2 bb1@2 db2@2 eb2@2 gb2@2",
  U: "eb2@2 ~ eb2 ~ eb2 eb2@2 bb1@2 db2@2 eb2@2 gb2@2", V: "eb2@2 ~ eb2 ~ eb2!2 ~ bb1@2 db2@2 eb2@2 gb2@2",
  W: "db2@2 ~ db2 ~ db2!2 ~ b1 ~ b1 ~ b1 ~ b1 ~", X: "bb1@2 ~ bb1 ~ bb1!2 ~ bb1@2 db2@2 eb2@2 gb2@2",
  Y: "bb1 ~@2 bb1 ~ bb1!2 ~ bb1@2 db2@2 eb2@2 gb2@2", Z: "db2@2 ~ db2 ~ db2!2 ~ db2@2 bb1@2 db2@2 eb2@2",
  AA: "~@3 eb2@2 ~ eb1 eb2 eb2@2 ~ eb2 ~ eb1 eb2 ~", AB: "eb2@2 ~ eb2 ~ eb1 eb2 ~ eb2@2 ~ eb2@2 eb1 [gb1,eb2] ~",
  AC: "~ eb2 eb2@2 ~ eb4 eb2@2 d2@2 ~ d4 a1@2 d2@2, ~@2 eb4 ~ bb1@2 ~@2 d4 ~ d2@2 ~@2 d4 ~",
  AD: "db2@2 ~ db2@3 b1@2 bb1@2 ~@6",
})).s("gm_acoustic_bass").gain(0.64)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@8 A B C B D E F G H I J K ~@12 L M L N O N O P Q R@2 S@2 T U V@2 W X Y Z AA AB AC AD AE AF AE AG AH AI F G H I J K
  ~@8 F G H I J K ~@8 A B C B D E F G H I J K ~@12 L M L N O N O P Q R@2 S@2 T AJ V@2 W X Y Z AK@2 S@2 T U V@2 W AL ~@3
>`.pickRestart({
  A: "bb4 ~@3 b4 ~ gb5@2 bb4 eb4!4 ~ eb4!2, ~@3 db5@3 ~@2, ~@6 ab4 ~ [ab4,f5]@3 ~@5", // Db
  B: "f4 ~ gb4 ~ f4 ~ [db4,ab4,db5,f5]@2 [gb4,bb4,eb5]@4 ~@2 eb4!2, ~@8 eb4 ~@7", // Db Ebm
  C: "bb4 ~@3 b4 ~ gb5@2 bb4 eb4!4 ~ eb4!2, ~@3 db5@3 ~@2, ~@6 ab4 ~ [ab4,f5]@4 ~@4", // Db
  D: "f4 ~ gb4 ~ f4 ~ [db4,ab4,db5,f5]@2 [gb4,bb4,eb5]@3 ~@3 eb4!2, ~@8 eb4 ~@7", // Db Ebm
  E: "f4 ~ gb4 ~ f4 ~ [db4,ab4,db5,f5]@2 [gb4,bb4,eb5]@3 ~ bb4 ~ bb4 ~, ~@8 eb4 ~@7", // Db Ebm
  F: "bb4 ~@3 gb4 ~ [ab4,gb5] ~@3 gb4!3 ~ gb4 ~, ~@6 db5@5 ~@5, ~@2 [ab4,f5] ~", // Ab7 Db
  G: "f4 ~@3 db4 ~ [eb4,ab4,db5,f5]@2 bb4@2 bb4!3 ~ bb4 ~, ~@2 [gb4,eb5] ~", // Db Ebm
  H: "bb4 ~@3 gb4 ~ [ab4,db5,f5]@2 [gb4,bb4,eb5]@2 gb4!3 ~ gb4 ~", // Db Ebm
  I: "f4 ~@3 db4 ~ [eb4,ab4,db5,f5]@2 ~@2 eb4!3 ~ eb4 ~, ~@8 [gb4,bb4,eb5]@5 ~@3", // Db Ebm
  J: "f4 ~@3 db4 ~ eb4 ~@3 eb4!3 ~ eb4 ~", K: "f4 ~@3 db4 ~ eb4 ~@9", L: "~@2 [db5,gb5,bb5] ~ [db5,f5,ab5] ~@3",
  M: "~@2 [b4,eb5,gb5] ~@5 [bb4,db5,f5]@2 ~@2 [gb4,bb4,eb5] ~@3", // B Bbm Ebm
  N: "~@2 [b4,eb5,gb5] ~@3 [bb4,db5,f5] ~@5 [gb4,bb4,eb5] ~@3", O: "~@4 [db5,gb5,bb5] ~@3 [db5,f5,ab5] ~@7",
  P: "[db5,f5,ab5] ~@9 [gb5,bb5,eb6] ~@5", Q: "~@2 [gb5,bb5,eb6] ~@3 [gb5,bb5,eb6] ~@7 [gb5,bb5,eb6] ~",
  R: "[~@2 [gb5,bb5,eb6] ~@5 bb4 ~@3 b4 ~ gb5@2 bb4 eb4!4 ~ eb4!2 f4 ~ gb4 ~ f4 ~ [db4,ab4,db5,f5]@2, ~@7 db5@3 ~@6, ~@14 ab4 ~ [ab4,f5]@3 ~@13]/2", // Ebm Db
  S: "[[gb4,bb4,eb5]@4 ~@2 eb4!2 bb4 ~@3 b4 ~ gb5@2 bb4 eb4!4 ~ eb4!2 f4 ~ gb4 ~ f4 ~ [db4,ab4,db5,f5]@2, eb4 ~@13 db5@6 ~@12, ~@14 ab4 ~ [ab4,f5]@4 ~@12]/2", // Ebm Db
  T: "[gb4,bb4,eb5]@4 ~@2 eb4!2 f4 ~ gb4 ~ f4 ~ [db4,ab4,db5,f5]@2, eb4 ~@15", // Ebm Db
  U: "[gb4,bb4,eb5]@3 ~@3 eb4!2 f4 ~ gb4 ~ f4 ~ [db4,ab4,db5,f5]@2, eb4 ~@15", // Ebm Db
  V: "[[gb4,bb4,eb5]@3 ~ bb4 ~ bb4 ~ bb4 ~@3 gb4 ~ [ab4,gb5] ~@3 gb4!3 ~ gb4 ~ f4 ~@3 db4 ~ [eb4,ab4,db5,f5]@2, eb4 ~@13 db5@5 ~@13, ~@4 [ab4,f5] ~@3]/2", // Ebm Ab7 Db
  W: "bb4@2 bb4!3 ~ bb4 ~ bb4 ~@3 gb4 ~ [ab4,db5,f5]@2, [gb4,eb5] ~@3", // Db Ebm
  X: "[gb4,bb4,eb5]@2 gb4!3 ~ gb4 ~ f4 ~@3 db4 ~ [eb4,ab4,db5,f5]@2", // Ebm Db
  Y: "~@2 eb4!3 ~ eb4 ~ f4 ~@3 db4 ~ eb4 ~, [gb4,bb4,eb5]@5 ~@11", Z: "~@2 eb4!3 ~ eb4 ~ f4 ~@3 db4 ~ eb4 ~",
  AA: "~@6 [db5,gb5,bb5] ~", AB: "[db5,f5,ab5]@2 ~@8 [b4,eb5,gb5] ~@5",
  AC: "[bb4,db5,f5]@2 ~@2 [gb4,bb4,eb5] ~@7 [db5,gb5,bb5]@2 ~@2", // Bbm Ebm Gb
  AD: "[db5,f5,ab5]@2 ~@8 [b4,eb5,gb5] ~@3 [bb4,db5,f5] ~", AE: "~@4 [gb4,bb4,eb5] ~@7 [db5,gb5,bb5] ~@3",
  AF: "[db5,f5,ab5] ~@9 [b4,eb5,gb5] ~@3 [bb4,db5,f5] ~", AG: "[db5,f5,ab5] ~@7 [db5,f5,ab5] ~@7",
  AH: "~@2 [gb5,bb5,eb6] ~@7 [gb5,bb5,eb6] ~@3 [gb5,bb5,eb6] ~", AI: "~@6 [gb5,bb5,eb6] ~@3 [gb5,bb5,eb6] ~@5",
  AJ: "[gb4,bb4,eb5]@3 ~@3 eb4!2 f4 ~ gb4 ~ f4 ~ [db4,ab4,db5,f5]@2, eb4 ~@2 bb4@13", // Ebm Db
  AK: "[~@8 bb4 ~@3 b4 ~ gb5@2 bb4 eb4!4 ~ eb4!2 f4 ~ gb4 ~ f4 ~ [db4,ab4,db5,f5]@2, ~@7 db5@3 ~@6, ~@14 ab4 ~ [ab4,f5]@3 ~@13]/2", // Db
  AL: "[gb4,bb4,eb5]@2 gb4!3 ~ gb4 ~ f4 ~@7", // Ebm
})).s("gm_electric_guitar_clean").gain(0.48)

// chords · trumpet
const trumpet = note(`<
  ~@12 A ~@6 B ~@11 B ~@7 C D ~@4 E F ~@5 G ~@7 H I J ~@5 B ~@4 K L K M ~@5 B ~@12 A ~@6 B ~@11 B ~@7 C D ~@4 E F N ~ O
  ~@2 G ~@4 E F N ~ O ~@4
>`.pickRestart({
  A: "[f4,f5]@2 [gb4,gb5]@2 [f4,f5]@2 [db4,db5]@2 [eb4,eb5]@5 ~@3", // F Gb F Db Eb
  B: "[ab4,db5,f5]@4 [f4,ab4,db5]@2 [gb4,bb4,eb5]@3 ~@7", // Db Ebm
  C: "~@2 [bb3,bb4] ~ [db4,db5] ~ [eb4,eb5]@3 ~ [bb3,bb4]@2 [db4,db5] ~ [eb4,eb5]@2", // Bb Db Eb Bb Db Eb
  D: "~@2 db5@2 ~@2 [db4,db5]@2 [eb4,eb5] ~ [bb3,bb4] ~ db4@2 [eb4,eb5]@2, ~@2 db4 ~@9 db5 ~@3", // Db Eb Bb Eb
  E: "~@4 [f4,f5] [gb4,gb5] [f4,f5] [db4,db5]", F: "[eb4,eb5]@5 ~@11",
  G: "~@4 [ab4,db5,f5]@2 [f4,ab4,db5] [gb4,bb4,eb5]", H: "~@10 [bb3,bb4] ~ [db4,db5] ~ [eb4,eb5]@2",
  I: "~@2 [bb3,bb4]@2 [db4,db5] ~ [eb4,eb5]@2 ~@2 db5@2 ~@2 [db4,db5]@2, ~@10 db4 ~@5", // Bb Db Eb Db
  J: "[eb4,eb5] ~ [bb3,bb4] ~ db4@2 [eb4,eb5]@3 ~@7, ~@4 db5 ~@11", K: "[bb3,bb4]@3 [eb4,eb5]",
  L: "[db4,db5]@3 [ab3,ab4]", M: "[b3,b4]@2 [eb4,eb5]@2 [d4,d5]@3 ~",
  N: "~@2 [eb5,gb5,bb5]!3 ~ [eb5,gb5,bb5] ~ [eb5,gb5,bb5]@3 ~ [bb4,eb5,gb5] ~ [db5,f5,ab5]@2", // Ebm Db
  O: "~@2 [eb5,gb5,bb5]!3 ~ [eb5,gb5,bb5] ~ [eb5,gb5,bb5]@4 [bb4,eb5,gb5] ~ [db5,f5,ab5]@2", // Ebm Db
})).s("gm_trumpet").gain(0.56)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@13 A B C B D E F ~@11 G H I J K L M N O@3 ~@5 P Q P R S T U@6 V@4 W X W Y Z AA AB AC AB AD AB AC AE AF W X W Y Z
  ~@14 A B C B D E F ~@5 AG AH AI AJ AK AI AL H I J K L M N AM@3 AN AO AP AQ AR AS AT P AU AV AW AX AN AO AP AQ AR AS AT
  P AY ~@3
>`.pickRestart({
  A: "~@10 bb5!3 ~ bb5 ~", B: "bb5@4 gb5@2 ab5@2 ~@2 gb5!3 ~ gb5 ~", C: "f5@4 db5@2 eb5@2 ~@2 bb5!3 ~ bb5 ~",
  D: "f5@4 db5@2 eb5 ~@3 eb5!3 ~ eb5 ~", E: "f5@4 db5@2 eb5@2 ~@2 eb5!3 ~ eb5@2", F: "f5@2 db5 eb5 ~@4",
  G: "~@10 [eb5,eb6] [db5,db6] [eb5,eb6] [db5,db6] [bb4,bb5] [ab4,ab5]", // Eb Db Eb Db Bb Ab
  H: "gb5@2 [f4,f5] ~ [eb4,eb5] ~ f5@4 [gb4,gb5] ~ ab4@3 ~, gb4@3 f4@5, ~@6 ab4@6 ab5 ~@3", // F Eb Gb
  I: "gb5@2 [f4,f5]@2 [eb4,eb5] ~ f4@4 [db4,db5] ~ [eb4,eb5]@3 ~, [b3,gb4]@6 f5@3 ~@7", // F Eb Db Eb B5
  J: "gb5@2 [f4,f5]@2 [eb4,eb5]@2 f5@3 ~ [gb4,gb5] ~ ab4@4, gb4@6 f4@9 ~, ~@12 ab5 ~@3", // F Eb Gb
  K: "gb5@2 [f4,f5]@2 [eb4,eb5]@2 f5@3 ~ [db4,db5] ~ [eb4,eb5]@3 ~, gb4@3 f4@3 ~@2", // F Eb Db Eb
  L: "gb5@2 [f4,f5]@2 [eb4,eb5]@2 f5@3 ~ [gb4,gb5] ~ ab4@4, db4, [gb4,bb4]@6 f4@9 ~, ~@3 ab4@3 ab5 ~", // F Eb Gb
  M: "gb5@2 [f4,f5]@2 eb4@2 f4@4 [db4,db5] ~ [gb3,eb4,eb5]@3 ~, gb4@3 ~@5, eb4@4 eb5 ~ f5@3 ~@7", // F Db Ebm
  N: "gb5@2 [f4,f5]@2 [eb4,eb5]@2 f5@3 ~ [gb4,gb5] ~ [ab4,ab5]@2 ~@2, db4@7 ~, gb4@3 f4@4 ~, ~@3 ab4@3 ~@2", // F Eb Gb Ab
  O: "[~@2 [bb4,bb5] ~ [db5,db6] ~ [bb4,eb6]@4 bb5 ~ [db5,db6] ~ eb6@3 ~ [db5,db6]@3 ~ [db5,db6] ~ eb6@2 bb5 ~ [db5,db6] ~ eb5@7 ~@11, [db4,f4,ab4]@6 gb4@31 ~@11, ~@6 eb5@8 eb5@10 eb5@6 eb6@3 ~@15, ~@10 bb4@16 bb4@11 ~@11]/3", // Bb Db Eb5 Db
  P: "~@2 bb5!3 ~ bb5 ~ bb5@4 gb5@2 ab5@2",
  Q: "~@2 [gb3,gb4,gb5]!3 ~ [gb3,gb4,gb5] ~ [f3,f4,f5]@4 [db3,db4,db5]@2 [eb3,eb4,eb5]@2", // Gb F Db Eb
  R: "~@2 [gb3,gb4,gb5]!3 ~ [gb3,gb4,gb5] ~ [f3,f4,f5]@4 [db3,db4,db5]@2 [eb3,eb4]@2, ~@14 eb5 ~", // Gb F Db Eb
  S: "~@2 eb5!3 ~ eb5 ~ [f3,f4,f5]@4 [db3,db4,db5]@2 [eb3,eb4,eb5]@2", // F Db Eb
  T: "~@2 eb5!3 ~ eb5@2 [f3,f4,f5]@4 [db3,db4] ~ [eb3,eb4,eb5]@2, ~@6 db5 ~", // F Db Eb
  U: "[~@2 [eb5,eb6] [db5,db6] [eb5,eb6] [db5,db6] [bb4,bb5] [ab4,ab5] gb5@2 [f4,f5] ~ [eb4,eb5] ~ f5@4 [gb4,gb5] ~ ab4@3 ~ gb5@2 [f4,f5]@2 [eb4,eb5] ~ f4@4 [db4,db5] ~ [eb4,eb5]@3 ~ gb5@2 [f4,f5]@2 [eb4,eb5]@2 f5@3 ~ [gb4,gb5] ~ ab4@4 gb5@2 [f4,f5]@2 [eb4,eb5]@2 f5@3 ~ [db4,db5] ~ [eb4,eb5]@3 ~ gb5@2 [f4,f5]@2 [eb4,eb5]@2 f5@3 ~ [gb4,gb5] ~ ab4@4 gb5@2 [f4,f5]@2 eb4@2 [f4,f5]@2, ~@8 gb4@6 f4@10 [b3,gb4]@6 ~@10 gb4@6 f4@9 ~ gb4@6 f4@6 ~@4 db4@16 eb4@4 ~@4, ~@14 ab4@6 ab5 ~@9 f5@3 ~@19 ab5 ~@19 [gb4,bb4]@6 f4@9 ~ gb4@6 ~@2, ~@78 ab4@6 ab5@2 ~@6 eb5 ~@3]/6", // Eb Db Eb Db Bb Ab F Eb …
  V: "[~@2 [db4,db5] ~ [gb3,eb4,eb5]@3 ~ gb5@2 [f4,f5]@2 [eb4,eb5]@2 f5@3 ~ [gb4,gb5] ~ [ab4,ab5]@2 ~@4 [bb4,bb5] ~ [db5,db6] ~ [bb4,eb6]@4 bb5 ~ [db5,db6] ~ eb6@3 ~ [db5,db6]@3 ~ [db5,db6] ~ eb6@2 bb5 ~ [db5,db6] ~ eb6@3 ~ bb5!3 ~ bb5 ~, ~@8 db4@14 ~@2 [db4,f4,ab4]@6 ~@4 bb4@16 bb4@11 ~@3, ~@8 gb4@6 f4@8 ~@8 gb4@31 ~@3, ~@14 ab4@6 ~@10 eb5@8 eb5@10 eb5@6 eb5@7 ~@3]/4", // Db Ebm F Eb Gb Ab Bb Db …
  W: "bb5@4 gb5@2 ab5@2 ~@2 [gb3,gb4,gb5]!3 ~ [gb3,gb4,gb5] ~", // Gb
  X: "[f3,f4,f5]@4 [db3,db4,db5]@2 [eb3,eb4,eb5]@2 ~@2 bb5!3 ~ bb5 ~", // F Db Eb
  Y: "[f3,f4,f5]@4 [db3,db4,db5]@2 [eb3,eb4]@2 ~@2 eb5!3 ~ eb5 ~, ~@6 eb5 ~@9", // F Db Eb
  Z: "[f3,f4,f5]@4 [db3,db4,db5]@2 [eb3,eb4,eb5]@2 ~@2 eb5!3 ~ eb5@2", AA: "~@12 bb5 ab5 gb5 f5",
  AB: "eb5 f5 gb5 bb5, [bb3,eb4,gb4]", AC: "ab5 gb5 f5 db5, [ab3,db4,f4]", AD: "[eb4,gb4,b4,eb6] [d4,f4,bb4,d6]",
  AE: "eb5@4 f5@4 gb5 f5@3 eb5@4, [bb3,eb4,gb4]", AF: "[b3,eb4,gb4,gb5]@8 f5 ~ bb5!3 ~ bb5 ~, ~ [bb3,d4,f4]",
  AG: "[db5,db6] [c5,c6] [db5,db6] ~ [c5,c6] [bb4,bb5] [c5,c6] ~ [bb4,bb5] [ab4,ab5] [bb4,bb5] ~ [bb4,bb5] ~ [bb4,bb5] ~", // Db C Db C Bb C Bb Ab …
  AH: "[db5,db6]@3 ~ [db5,db6]@2 [c5,c6]@4 [c5,c6]@3 ~ [c5,c6] ~", // Db C
  AI: "[db5,db6]@2 [bb4,bb5]@2 [db5,db6]@2 [eb5,eb6]@3 ~ [eb5,eb6]!3 ~ [eb5,eb6] ~", // Db Bb Db Eb
  AJ: "[db5,db6]@3 ~ [db5,db6]@2 [c5,c6]@3 ~ [c5,c6]@3 ~ [c5,c6] ~", // Db C
  AK: "[db5,db6]@2 [bb4,bb5] ~ [db5,db6] ~ [eb5,eb6]@3 ~ [eb5,eb6]@3 ~ [eb5,eb6] ~", // Db Bb Db Eb
  AL: "[db5,db6]@2 [bb4,bb5] ~ [db5,db6] ~ [eb5,eb6]@2 ~@2 [eb5,eb6] [db5,db6] [eb5,eb6] [db5,db6] [bb4,bb5] [ab4,ab5]", // Db Bb Db Eb Db Eb Db Bb …
  AM: "[~@2 [bb4,bb5] ~ [db5,db6] ~ [bb4,eb6]@4 bb5 ~ [db5,db6] ~ eb6@3 ~ [db5,db6]@3 ~ [db5,db6] ~ eb6@2 bb5 ~ [db5,db6] ~ eb5@7 ~@3 bb5@2 ~@2 b5@2 ~@2, [db4,f4,ab4]@6 gb4@31 ~@11, ~@6 eb5@8 eb5@10 eb5@6 eb6@3 ~@15, ~@10 bb4@16 bb4@11 ~@11]/3", // Bb Db Eb5 Db
  AN: "bb5 eb5!3 ~ eb5@2 ~ f5@2 gb5@2 f5@2 db5@2", AO: "eb5@4 ~@2 bb5 ~ bb5@3 ~ b5@3 ~",
  AP: "bb5 eb5!4 ~ eb5@2 f5@2 gb5@2 f5@2 db5@2", AQ: "eb5@4 ~@3 eb5 f5@2 gb5@2 f5@2 db5@2",
  AR: "eb5@3 ~@3 eb5!2 f5@2 gb5@2 f5@2 db5@2", AS: "eb5@2 bb5!3 ~ bb5 ~ bb5@4 gb5@2 ab5@2",
  AT: "~@2 gb5!3 ~ gb5 ~ f5@4 db5@2 eb5@2", AU: "~@2 gb5!3 ~ gb5 ~ f5@4 db5@2 eb5 ~",
  AV: "~@2 eb5!3 ~ eb5 ~ f5@4 db5@2 eb5@2", AW: "~@2 eb5!3 ~ eb5@2 f5@4 db5@2 eb5@2", AX: "~@4 bb5 ~ b5 ~",
  AY: "~@2 gb5!3 ~ gb5 ~ f5@4 ~@4",
})).s("gm_string_ensemble_1").gain(0.56)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@32 A B C D ~ E F ~@14 G@5 H@2 ~@55 A B C D ~ E F ~@27>".pickRestart({
  A: "db4@15 ~, bb4@3 ~@5", B: "eb4@4 ~@2 [bb3,db4]@5 ~ [gb3,bb3]@4", C: "[db4,bb4]@5 ~ db4@9 ~, ~@3 ab4@3 ~@2",
  D: "[b3,eb4]@5 ~ [bb3,db4]@5 ~ [gb3,bb3]@3 ~", E: "b3@5 ~ bb3@6 bb3@3 ~, ~@3 db4@2 ~@3", F: "bb4@3 ~@5",
  G: "[~@8 db4@15 ~ eb4@4 ~@2 [bb3,db4]@5 ~ [gb3,bb3]@4 [db4,bb4]@5 ~ db4@9 ~ [b3,eb4]@5 ~ [bb3,db4]@5 ~ [gb3,bb3]@3 ~@9, ~@4 bb4@3 ~@16 ab4@3 ~@14]/5", // Bbm Gb B Bbm Gb
  H: "[~@8 b3@5 ~ bb3@6 bb3@3 ~ bb4@6 ~@2, ~@7 db4@2 ~@7]/2",
})).s("gm_string_ensemble_1").gain(0.31)

// chords · epiano2 · "E.PIANO 2"
const epiano2 = note("<~@69 A@7 B ~@72>".pickRestart({
  A: "[[bb3,eb4,gb4,bb4,eb5,gb5]@15 ~ [db4,f4,db5,f5]@15 ~ [gb4,eb5,gb5]@16 [eb4,gb4,b4,eb5,gb5,b5]@8 [d4,f4,bb4,d5,f5,bb5]@7 ~ [gb4,eb5,gb5]@15 ~@17 gb5@16, ~@15 [ab3,ab4]@16 [bb3,eb4,bb4]@18 ~@14 [bb3,eb4,bb4]@16 [ab3,db4,f4,ab4]@16 [eb4,gb4,bb4,eb5]@17, ~@5 [db5,f5] ~, ~@47 bb3@9]/7", // Ebm Db Ebm B Bb Ebm Ab Eb5 …
  B: "[eb4,gb4,b4,eb5,gb5,b5] [d4,f4,bb4,d5,f5,bb5]", // B Bb
})).s("gm_epiano2").gain(0.52)

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

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@13 A ~@27 B ~@5 C ~@14 D ~@13 A ~@19 A ~@27 B ~@5 C ~@11 C ~@6>".pickRestart({
// … 42 more lines

More by Boney M.