Strudelify
Never Ever cover art

1998 · All Saints

Never Ever

All Saints

KeyD♭ majorTempo68 bpm
0:00/0:00
// Never Ever — All Saints
// 68 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 111 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(68/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 · electric bass finger · "Bass"
const bass = note(`<
  ~@17 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB Y W AC AD ~@8 AE AF AG AH AI AJ AK AL AM AN AO AP AQ@2
  AR AS AT AU AV AW AX AY AZ BA AM AN AO AP AQ@2 AR AS AT AU AV AW AX AY AZ BA BB BC BD BC BD BC BD BE BB BF BB BG BH ~
>`.pickRestart({
  A: "db1@7 ~ db2 ~@2 db1 db1@11 ~", B: "db1@7 ~ db2 ~@2 db1 db1@6 eb1@3 f1@3",
  C: "gb1@9 ~@2 db1 ~@5 gb2 ~@2 db1 gb1@3, ~@3 gb1@2 ~", D: "db1@9 ~@2 db1 db1@6 eb1@3 f1@3",
  E: "db1@7 ~ db2 ~@2 db1 db1@9 ~@2 db1", F: "db1@18 gb1@5 ~", G: "ab1@9 ~@2 ab1 ab1@9 ~@2 ab1",
  H: "gb1@3 ab1@6 ~@2 ab1 gb1@3 ab1@5 ab2 ~@3", I: "db1@7 ~ db1 ~@2 db1 db1@9 ~@2 db1",
  J: "db1@8 db2 ~@2 db1 db1@6 eb1@3 f1@2 ~", K: "gb1@5 gb2 ~@5 gb1 gb1@5 ~@3 gb1@4",
  L: "db1@5 db2 ~@5 db1 db1@5 ~ bb0@6", M: "db1@5 db2 ~@5 db1 db1@11 ~", N: "ab1@9 ~@2 ab1 ab1@5 ~ gb1@5 ~",
  O: "gb1@5 gb2 ~@5 gb1 f1@5 ~ eb1@5 ~", P: "db1@6 db2 ~@4 db1 db1@11 ~",
  Q: "db1@8 db2 ~@3 db1@2 ~ db1@2 ~ db1@3 bb0@3", R: "db1@8 db2 ~@2 db1 db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~",
  S: "gb1@9 ~@2 gb1 gb1@2 ~ gb1@2 ~ gb1@2 ~ gb1@2 ~", T: "db1@9 ~@2 bb0 db1@2 ~ db1@2 ~ db1@3 bb0@3",
  U: "db1@8 db2 ~@3 db1@2 ~ db1@2 ~ db1@2 ~ bb0@2 ~", V: "db1@9 ~@2 db1 db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~",
  W: "ab1@8 ab2 ~@2 eb1 ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~", X: "ab1@9 ~@2 eb1 ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~",
  Y: "db1@8 db2 ~@2 bb0 db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~", Z: "db1@9 ~@2 bb0 db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~",
  AA: "gb1@9 ~@2 eb1 gb1@2 ~ gb1@2 ~ gb1@2 ~ gb1@2 ~", AB: "db1@8 db2 ~@2 bb0 db1@2 ~ db1@2 ~ db1@2 ~ bb0@3",
  AC: "gb1@7 ~ gb1 ~@2 db1 f1@6 eb1@5 ~", AD: "db1@9 ~@2 db1 ab0@3 ~ ab0@2 ab0@5 ~",
  AE: "db1@7 ~ db1 ~@2 bb0 db1@8 db2 ~@2 bb0", AF: "db1@9 ~@2 db1 db1@2 ~ db1@3 eb1@3 f1@2 ~",
  AG: "gb1@6 ~@2 gb1 ~@2 gb1 gb1@5 ~ gb1@5 ~", AH: "db1@6 ~@5 db1 db1@5 ~ bb0@5 ~", AI: "db1@6 ~@5 db1 db1@7 ~@5",
  AJ: "ab1@7 ~@4 ab1 ab1@5 ~ gb1@5 ~", AK: "gb1@7 ~@4 gb1 f1@6 eb1@5 ~", AL: "db1@6 ~@5 db1 db1@10 ~@2",
  AM: "db1@7 ~ db1 ~@3 db1@2 ~ db1@2 ~ db1@2 ~ bb0@3", AN: "db1@5 ~@3 db1 ~@3 db1@9 ~@3",
  AO: "gb1@6 ~@2 gb1 ~@2 db1 gb1@2 ~ gb1@2 ~ gb1@3 gb1@2 ~",
  AP: "db1@6 ~@2 db1 ~@2 bb0 db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~", AQ: "db1@6 ~@6 db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~",
  AR: "ab1@7 ~@4 eb1 ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~", AS: "ab1@6 ~@5 eb1 ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~",
  AT: "db1@7 ~@4 bb0 db1@2 ~ db1@2 ~ db1@2 ~ db1@3", AU: "~@11 bb0 db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~",
  AV: "gb1@7 ~@4 db1 gb1@2 ~ gb1@2 ~ gb1@2 ~ gb1@2 ~", AW: "db1@7 ~@4 bb0 db1@2 ~ db1@2 ~ db1@2 db1 bb0@2 ~",
  AX: "db1@7 ~@4 bb0 db1@2 ~ db1@2 ~ db1@3 bb0@3", AY: "ab1@7 ~@4 eb1 gb1@6 ab1@3 ab1@2 ~",
  AZ: "gb1@8 ~@3 eb1 f1@6 eb1@5 ~", BA: "db1@6 ~@5 bb0 db1@3 db1@2 ~ db1@3 bb0@3",
  BB: "db1@7 ~@4 bb0 db1@2 ~ db1@2 ~ db1@3 bb0@2 ~", BC: "db1@6 ~@5 bb0 db1@2 ~ db1@2 ~ db1@4 ~@2",
  BD: "db1@6 ~@5 bb0 db1@2 ~ db1@2 ~ db1@3 bb0@3", BE: "db1@7 ~@4 bb0 db1@2 ~ db1@2 ~ db1@4 ~@2",
  BF: "db1@8 ~@3 bb0 db1@2 ~ db1@2 ~ db1@3 ~@3", BG: "db1@7 ~@4 bb0 db1@2 ~ db1@2 ~ db1@2 ~ bb0@3", BH: "db1",
})).s("gm_electric_bass_finger").gain(0.66)

// chords · piano · "Piano Accoustique"
const piano = note(`<
  ~ A B C D E F G H I J K L@2 M N O ~@16 A B P D Q F G H I J K R@2 S N O A B C D Q F G H I T K R@2 M N O A B P D Q F G H
  I J K U@2 M N O A B P D Q F G H I J K V@3 N W ~@14
>`.pickRestart({
  A: "[ab3,db4]@18 f4@5 ~, db2@23 ~", B: "[ab3,b3,f4]@17 ~@4 db2@3, db2@3 [ab3,eb4]",
  C: "[gb2,gb3,bb3,db4]@18 ~@3 gb2@2 ~, ~@18 bb3@5 ~", D: "[ab3,db4]@17 ~ ab3@6, db2",
  E: "[f3,ab3,db4]@17 ~@5 ab3@2, db2, ~@3 f4", F: "[ab3,b3,f4]@18 b3@3 b3@2 ~, db2@23 ~, ~@18 [f4,ab4]@5 ~",
  G: "c4@3 c4, [ab2,ab3,eb4]", H: "[c4,eb4,gb4]@3 [eb4,ab4], ab2@23 ~, ~@9 c4@2 ~", I: "~@3 f4, [db2,f3,ab3,db4]",
  J: "db2@2 eb2 f2, [ab3,b3,f4]", K: "[gb3,bb3]@3 [gb3,bb3], [gb2,db4]",
  L: "[[db2,f3,ab3,db4]@16 ~@2 ab3@3 ~@3 [db4,f4]@12 ~@9 db2@3, ~@7 db2@6 db2@2 ~, ~ ab3, ~@6 [db4,f4]!2]/2", // Db
  M: "[ab3,c4,eb4]@12 ab3@3 ~ ab3@2 ab3@3 ~ ab3@2, ab2, ~@2 [c4,eb4]!2", // Ab Cm
  N: "[gb2,gb3,bb3,db4]@11 ~ [f2,ab3,db4]@6 [eb2,gb3,db4]@6", O: "[f3,ab3,db4]@16 ~@2 ab3@5 ~, db2@3 ~",
  P: "[gb2,gb3,bb3,db4]@9 bb3@2 gb2", Q: "[db2,f3,ab3,db4]@17 ~@5 ab3@2, ~@3 f4",
  R: "[[db2,f3,ab3,db4]@16 ~@2 ab3@3 ~@3 [db4,f4]@12 ~@10 db2@2, ~@21 db2@18 db2@7 ~@2, ~ ab3, ~@6 [db4,f4]!2]/2", // Db
  S: "[ab3,c4,eb4]@6 ab3@2 ab3 ab3@2 ab3, ab2, ~@2 [c4,eb4]!2", T: "db2@12 eb2@6 f2@5 ~, [ab3,b3,f4]",
  U: "[[db2,f3,ab3,db4]@16 ~@2 ab3@3 ~@3 [db4,f4]@12 ~@10 db2@2, ~@7 db2@6 db2@2 ~, ~ ab3, ~@6 [db4,f4]!2]/2", // Db
  V: "[[db2,f3,ab3,db4]@16 ~@2 ab3@3 ~@3 [db4,f4]@12 ~@12 [ab3,c4,eb4]@12 ab3@4 ab3@2 ab3@4 ab3@2, ~@21 db2@18 db2@6 ~ db2@4 ~@22, ~ ab3 ab2, ~@36 [db4,f4]@6 [db4,f4]@7 ~@11 [c4,eb4]@6 [c4,eb4]@6]/3", // Db Ab Db Cm
  W: "[db2,f3,ab3,db4]@23 ~", // Db
})).s("gm_piano").gain(0.25)

// chords · epiano1 · "Piano Rhodes"
const epiano1 = note(`<
  ~@17 A B C D E F G H I J K L M N O I P Q R L S T U V W X Y Z AA AB AC AD ~@48 AE AF AG AH AI AJ AK AL AI AL AM AN AO ~
>`.pickRestart({
  A: "[f3,ab3,db4]@3 [db4,f4]", B: "[ab3,b3,db4,f4]@17 ~ [ab3,b3,eb4]@6", C: "[gb3,bb3,db4]@17 ~ [gb3,b3,eb4]@6",
  D: "[f3,ab3,db4]@2 ~", E: "[f3,ab3,db4]@17 ~ [ab3,db4]@6", F: "[ab3,b3,db4,f4]@17 ~@7", G: "[gb3,c4,eb4]@3 [c4,f4]",
  H: "[c4,gb4]@17 ~ [c4,f4]@6", I: "[f3,ab3,db4]@23 ~", J: "f3@18 f3@5 ~, [ab3,b3,db4]@23 ~",
  K: "[gb3,bb3,db4]@10 ~@2 [gb3,b3,eb4]@5 ~ [gb3,bb3,db4]@6", L: "[f3,ab3,db4]@11 ~", M: "[f3,ab3,db4]@7 ~",
  N: "[ab3,c4,eb4]@17 ~ [g3,b3,d4]@5 ~", O: "[gb3,bb3,db4]@12 [f3,ab3,db4]@5 ~ [eb3,gb3,db4]@5 ~",
  P: "[f3,ab3,db4]@18 [db4,f4]@5 ~", Q: "[ab3,b3,f4]@18 [ab3,b3,f4]@5 ~", R: "[gb3,bb3,db4]@3 [gb3,bb3,db4]",
  S: "[ab3,db4]@6 [f3,ab3] ~, f3@16 ~@2 db4@5 ~", T: "[ab3,b3,f4]@17 ~ [ab3,b3,f4]@5 ~",
  U: "[ab3,c4]@18 ~@3 c4 ~@2, eb4@7 ~", V: "[ab3,c4,eb4]@3 [ab3,eb4], ~@9 c4@2 ~",
  W: "[f3,ab3,db4]@18 [f3,ab3,db4]@5 ~", X: "[b3,f4]@18 [ab3,b3,f4]@5 ~, ab3@2 ~",
  Y: "[bb3,db4]@17 ~ [gb3,bb3,db4]@5 ~, gb3@5 ~@3", Z: "[f3,ab3,db4]@3 f3", AA: "[f3,ab3,db4]@9 [f3,ab3,db4]@2 ~",
  AB: "[ab3,c4,eb4]@17 ~ [ab3,eb4]@6, ~@9 c4@2 ~", AC: "[gb3,bb3,db4]@12 [ab3,db4]@5 ~ [eb3,gb3,db4]@5 ~",
  AD: "[ab3,db4]@19 ~@5, f3@17 ~@7", // Db5
  AE: "[gb3,b3]@4 ~ [gb3,b3] ~@3 [e3,bb3] ~@2 [gb3,b3] ~@2 [e3,bb3]@2 ~ gb3@2 ~@4, ~@18 b3 ~@5", // B5 Edim B5 Edim
  AF: "[gb3,b3]@5 [gb3,b3] ~@3 [e3,bb3] ~@2 [gb3,b3]@2 ~@4 gb3@2 ~@4, ~@18 b3 ~@5", // B5 Edim B5
  AG: "[gb3,b3]@4 ~ [gb3,b3] ~@3 bb3@2 ~ [gb3,b3]@2 ~ [e3,bb3]@2 ~ gb3@2 ~@4, ~@18 b3 ~@5", // B5 Edim
  AH: "[gb3,b3]@4 ~ [gb3,b3] ~@6 [gb3,b3] ~@5 [gb3,b3] ~@5", // B5
  AI: "[gb3,b3]@4 ~ [gb3,b3] ~@3 bb3@2 ~ gb3@2 ~ [e3,bb3]@2 ~ [gb3,b3]@2 ~@4, ~@12 b3 ~@11", // B5 Edim B5
  AJ: "[gb3,b3]@4 ~ [gb3,b3] ~@3 [e3,bb3]@2 ~ [gb3,b3]@8 ~@4", // B5 Edim B5
  AK: "[gb3,b3]@4 ~ [gb3,b3] ~@3 bb3@2 ~ [gb3,b3]@2 ~@2 bb3 ~ [gb3,b3]@2 ~@4", // B5
  AL: "[gb3,b3]@4 ~ [gb3,b3] ~@3 bb3@2 ~ [gb3,b3]@5 ~@7", // B5
  AM: "[gb3,b3]@4 ~ [gb3,b3] ~@3 bb3@2 ~ [gb3,b3]@2 ~ [e3,bb3]@2 ~ [gb3,b3]@2 ~@4", // B5 Edim B5
  AN: "[gb3,b3]@4 ~ [gb3,b3] ~@3 bb3@2 ~ [gb3,b3]@2 ~@10", AO: "[gb3,b3]",
})).s("gm_epiano1").gain(0.48)

// chords · epiano1 · "Piano Rhodes" · soft notes
const epiano1_soft = note("<~@23 A ~@3 B ~@5 C ~@2 D ~@2 C ~@3 A ~@3 E ~@49 F G H I J K L M@2 J M N ~@2>".pickRestart({
  A: "~@17 gb3 ~@6", B: "~@11 gb3 ~@12", C: "~@6 ab3 ~", D: "~@23 f3", E: "~@14 f3@3 ~@7", F: "~@8 e3 ~@14 e3",
  G: "~@8 e3 ~@8 e3 ~@6", H: "~@8 e3 e3@2 ~@12 e3", I: "~@17 e3 ~@5 e3", J: "~@8 e3 e3@2 ~@13", K: "~@8 e3 ~@15",
  L: "~@8 e3@3 ~@4 e3@2 ~@7", M: "~@8 e3@3 ~@13", N: "~@8 e3@3 ~@12 e3",
})).s("gm_epiano1").gain(0.24)

// chords · drawbar organ · "Orgue"
const drawbar_organ = note(`<
  ~@9 A@4 B C D E ~@32 F@4 G@2 H@2 I@2 J K@2 L M N O@6 P@2 Q@4 R S T R O@6 P@2 Q@4 R S T R ~ U V U W X Y Z ~ AA AB AC
  ~@2
>`.pickRestart({
  A: "[~@24 b4@23 ~ [gb4,bb4]@24 [f4,ab4]@24, db5, [f4,ab4]@47 ~@49]/4", B: "[f4,ab4,db5]@23 ~", C: "[ab4,c5,eb5]@23 ~",
  D: "[gb4,bb4]@2 ab4 [eb4,gb4], db5, ~@12 f4@5 ~@7", E: "~ f4@23, [ab4,db5]",
  F: "[ab4 [ab5,b5] bb5 [f5,ab5], db5, f5@23 ~ gb5@11 ~@13]/4", // Abm Fm
  G: "[bb4 db5@23 [f5,ab5,b5]@18 [ab5,b5]@6, ab4@47 ~, f5@23 ~@19 f5@4 ~@2]/2", H: "[[eb5,gb5,ab5,c6]@47 ~, b5 ~@47]/2",
  I: "[[db5,f5]@24 [b4,db5,f5]@23 ~, ab4@47 ~]/2", J: "[bb4,db5,gb5]@23 ~",
  K: "[[ab4,db5]@24 [ab4,db5]@20 [b3,c4] [d4,e4,f4] [g4,a4,b4] [c5,d5], f5@15 ~]/2", L: "[eb5,ab5,c6], e5 ~@23",
  M: "[db5,gb5,bb5]@12 [f5,ab5]@6 [eb5,gb5]@5 [d3,e3], ~@12 bb5@11 ~", N: "[ab4,db5,f5], [f3,g3,a3] ~@23",
  O: "[[ab4,f5]@24 [f5,ab5,b5]@24 gb5@17 ~ gb5@6 ~@66 [db5,f5]@5 ~, db5@95 ~ db5@41 ~@7, ~@48 bb5@24 f5@65 ~@7, ~@72 ab4@48 [ab5,b5]@23 ~]/6", // Db Fdim Db Abm
  P: "[b5 ~@23 gb5@23 ~, [eb5,ab5,c6]@47 ~]/2", Q: "[ab4@24 [ab5,b5]@23 ~ [gb5,bb5]@24 [ab4,f5]@24, db5, f5@23 ~@25]/4",
  R: "[ab4,db5,f5]", S: "[eb5,ab5,c6]", T: "[db5,gb5,bb5]@12 [f5,ab5]@6 [eb5,gb5]@5 ~",
  U: "~@11 [f5,f6] [ab5,bb5,ab6,bb6] ~ [f5,f6] [ab5,bb5,ab6,bb6] ~ [f5,f6] [bb5,bb6]@2 ~ [bb5,bb6]@2 [ab5,ab6], ~@12 [db6,db7]@2 ~ [db6,db7]@2 ~ [ab5,ab6] ~@2 [ab5,ab6] ~@2", // F Absus2 F Absus2 F Bb Ab Db …
  V: "~@15 f5 eb5 ~ f5@2 ~@4", W: "~@17 eb5 f5 ~ f5 ~@3",
  X: "~@11 [f5,f6] [ab5,bb5,ab6,bb6] ~ [f5,f6] [ab5,bb5,ab6,bb6] ~ [f5,f6] [bb5,bb6]@3 [ab5,bb5,ab6,bb6] [ab5,ab6] [f5,f6], ~@12 [db6,db7]@2 ~ [db6,db7]@2 ~ [ab5,ab6] ~@5", // F Absus2 F Absus2 F Bb Absus2 Ab …
  Y: "~@18 [ab5,ab6] ~ [f5,f6] ~@3", // Ab F
  Z: "~@11 [f5,f6] [ab5,bb5,ab6,bb6] ~ [f5,f6] [ab5,bb5,ab6,bb6] ~ [f5,f6] [ab5,ab6] [bb5,bb6] [f5,ab5,f6,ab6] [ab5,ab6]@2 [f5,f6], ~@12 [db6,db7]@2 ~ [db6,db7]@2 ~@7", // F Absus2 F Absus2 F Ab Bb Fm …
  AA: "~@14 [f5,f6] [ab5,bb5,ab6,bb6] ~@2 [db6,db7]@2 [f5,f6] [ab5,bb5,ab6,bb6] [ab5,ab6] ~, ~@15 [db6,db7]@2 ~ [bb5,bb6] ~@5", // F Absus2 Db F Absus2 Ab Db Bb
  AB: "[bb5,bb6] ~@23", // Bb
  AC: "~@11 [f5,f6] [ab5,bb5,ab6,bb6] ~ [f5,f6] [ab5,bb5,ab6,bb6] ~ [f5,f6] [ab5,ab6] [bb5,bb6] [f5,ab5,f6,ab6] [bb5,bb6]@2 ~, ~@12 [db6,db7]@2 ~ [db6,db7]@2 ~@7", // F Absus2 F Absus2 F Ab Bb Fm …
})).s("gm_drawbar_organ").gain(0.14)

// chords · electric guitar clean · "Guitare Funk Acc."
const electric_guitar_clean = note(`<
  ~@17 A@2 B C D E F G E@2 D@2 H@2 ~ I J K@3 L K ~@2 M N O P@2 Q R P ~@8 S T U V W X Y Z ~@32 AA AB AA@6 AC AD AE AF ~@2
>`.pickRestart({
  A: "~@3 [ab3,db4]", B: "~@17 f3 [ab3,db4]@5 ~", C: "~@18 [f3,db4]@5 ~", D: "~@18 [ab3,db4]@5 ~",
  E: "~@17 ab3 [ab3,db4]@5 ~", F: "~@18 [ab3,c4]@5 ~", G: "~@15 ab3 ~@4 f3 ~@3",
  H: "[~@18 f4@2 ab3 eb4@5 ~@16 eb4@5 ~]/2", I: "[b3,f4,ab4]@11 ~", J: "~@3 [ab3,db4]@2 ~@7", K: "~@6 [ab3,db4]@5 ~@13",
  L: "~ [ab3,db4] ~@2", M: "~@6 [ab3,db4]@2 [ab3,db4] ~@15", N: "~@2 [ab3,db4] ~@5", O: "~@6 [e3,db4]@2 db4 ~@15",
  P: "~@6 [ab3,db4]@2 db4 ~@15", Q: "~@6 eb4@2 eb4 ~@2 bb3 eb4 ~@4 eb4 eb4@2 db4 ~@3",
  R: "~@8 db4 ~@3 db4 ~@2 db4 ~@4 db4 ~@3", S: "~@17 ab3 [ab3,db4]@3 ~@3", T: "~@17 ab3 [ab3,db4]@2 ~@4",
  U: "~@18 [ab3,db4]@2 ab3 ~@3", V: "~@18 [eb4,e4]@2 db4 e4@2 db4", W: "~@18 e4 ~@2 e4 ~@2",
  X: "~@14 ab3 ~@3 bb3 ~@2 ab3 ~@2", Y: "~@8 db4 ~@2 bb3 db4 ~@5 eb4@2 db4 ~@3", Z: "~@9 [ab3,db4]@2 ~",
  AA: "~ [b3,e4] ~ [b3,e4] ~ [b3,e4] ~ [b3,e4]", AB: "~@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~",
  AC: "~@2 b3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@3", // E5
  AD: "~@3 [b3,e4]@2 ~@4 [b3,e4]@3 ~@3 [b3,e4]@3 ~@2 b3 [b3,e4]@2 ~", // E5
  AE: "~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~@4 [b3,e4]@3 ~@2 b3 [b3,e4]@2 ~", // E5
  AF: "~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~@4 [b3,e4]@2 ~@4 [b3,e4]@2 ~", // E5
})).s("gm_electric_guitar_clean").gain(0.33)

// chords · distortion guitar · "Guitare Wha"
const distortion_guitar = note("<~@33 A B A@5 C A@5 D A ~@17 A B A@5 C A@5 D A ~ A B A@5 C A@5 D A ~@15>".pickRestart({
  A: "[ab4,db5]@5 ~@19", B: "[ab4,db5] ~@5", C: "[ab4,eb5] ~@5", D: "[ab4,db5] ~@3",
})).s("gm_distortion_guitar").gain(0.3)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@33 A B C D E@4 F@2 G@4 H I ~@16 J@2 K L@3 M@2 N@2 O@3 P Q R S@6 T@2 U@3 V@2 W X R ~@14
>`.pickRestart({
  A: "db4@18 eb4@5 ~", B: "f4@3 eb4", C: "db4@3 eb4", D: "f4@23 ~",
  E: "[[ab4,f5]@23 ~ f5@24 c5@24 [c5,gb5,ab5]@23 ~, db5@47 ~ eb5@48, ~ ab5@2 ~]/4", // Db Ab7
  F: "[~ ab4@7 ab5@8, ~ [db5,f5]@47]/2", G: "[[gb5,bb5]@22 ~@2 [ab4,f5]@47 ~ [eb5,ab5,c6]@24, db5@70 ~ c5@25]/4",
  H: "[gb5,bb5]@12 ab5@6 gb5@5 ~, db5", I: "~ a4 ab4@21 ~, [db5,f5]", J: "[ab4,db5,f5]/2", K: "[bb4,db5,gb5]",
  L: "[[db5,f5]@23 ~@25 b4@23 ~, ab4@71 ~, ~@24 [db5,f5]@47 ~]/3", M: "[ab4@12 ~@13 gb5@23, [c5,eb5]@47 ~, ~ ab5@3]/2",
  N: "[f5@24 ~@9 b4@13 ~@2, ab5, db5@23 ~, ~@26 f5@21 ~]/2",
  O: "[bb5@24 f5@20 ~@2 f5@2 [db5,f5]@23 ~, db5@23 ~@13, gb5@11 ~ ab5@24]/3", P: "[c5,eb5,ab5]",
  Q: "[gb5,bb5]@2 ab5 gb5, db5", R: "[ab4,db5,f5]",
  S: "[~@24 b5@24 [gb5,bb5]@24 ~@48 b5@23 ~, db6@143 ~, [f5,ab5]@47 ~@25 [f5,ab5]@71 ~]/6", // Gb Fm
  T: "[~@6 f6 eb6, [ab5,c6]@47 ~, eb6@7 ~]/2", U: "[~@24 b5@23 ~@19 eb6@6, db6@11 ~, [ab5,f6]@47 ~ [gb5,bb5]@23 ~]/3",
  V: "[[ab5,db6,f6]@23 eb6]/2", W: "[ab5,c6,eb6]", X: "[gb5,bb5]@2 ab5 gb5, db6",
})).s("gm_string_ensemble_1").gain(0.11)

// drums · rim
const rim = s("rim").struct("<A ~@16 B@15 C B@16 ~@8 B@7 D B@19 C B@3 C B@7 C B@11 E ~@2>".pickRestart({
  A: "x!4", B: "~ x ~ x", C: "~@3 x ~@3 x ~ x ~@2", D: "~@7 x ~ x ~@2", E: "~@6 x ~@7 x ~@3 x ~@2 x ~ x",
})).gain(0.6)

// drums · kick
const kick = s("bd").struct("<~@17 A@15 B A@16 ~@8 A@51 C D ~>".pickRestart({
  A: "x ~@10 x!2 ~@11", B: "x ~@10 x!2 ~@2 x ~ x ~@2 x ~@3", C: "x ~@10 x!2 ~@4 x ~@2 x ~@3", D: "x",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct("<~@17 [x!8]!32 ~@8 [x!8]!52 ~@2>").gain(0.6)

// drums · crash
const crash = s("cr").struct("<~@65 x ~@43 x ~>").gain(0.54)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@33
  [x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@2 x ~@2 x ~ x]!15
  [x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@2 x ~@2 x ~@2]
  ~@16
  [x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@2 x ~@2 x ~ x]!44
  ~@2
>`).gain(0.36)

stack(
  bass, piano, epiano1, epiano1_soft, drawbar_organ, electric_guitar_clean, distortion_guitar, string_ensemble_1, rim,
  kick, hihat, crash, tambourine
)

More by All Saints