Strudelify
You Make Me Feel (Mighty Real) cover art

Step II

You Make Me Feel (Mighty Real)

Sylvester

KeyF majorTempo136 bpm
0:00/0:00
// You Make Me Feel (Mighty Real) — Sylvester
// 136 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 112 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(136/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 · rock organ · "THIS SONG"
const rock_organ = note(`<
  ~@8 A B A C D E D F ~@32 A B A C D E D F A B G C D H D F ~ I@2 J@2 K@4 L M@3 N O N P L Q@2 R S@2 T U I@5 V I A B G C D
  E D F A B A C D E D W
>`.pickRestart({
  A: "~@4 [f4,bb4]@2 ~@3 [db4,f4,ab4] ~@3 [bb3,g4]@2 ~@2 [bb3,eb4] ~@4 [bb3,eb4,g4] ~, ~@4 db4 ~@8 eb4 ~@3 g4@2 ~@5", // Bb5 Db Eb Eb5 Eb
  B: "~@4 [f4,a4]@3 ~ [f4,a4]@2 ~ [c4,eb4,g4] ~ [c4,f4] ~@3 [c4,f4] ~@4 [c4,f4,a4] ~, ~@4 c4 ~@3 c4 ~@4 a4@2 ~@2 a4@2 ~@5", // F Cm F5 F
  C: "~@4 [c4,f4] ~@3 [c4,f4,a4] ~@2 [eb4,g4] ~ [c4,a4]@3 ~ [c4,f4] ~@4 [c4,f4,a4] ~, ~@4 a4@2 ~@7 f4 ~@3 a4@2 ~@5", // F5 F Eb F F5 F
  D: "~@4 [db4,f4,bb4]@2 ~@2 [db4,f4,ab4]@2 ~@3 [bb3,eb4] ~@3 [bb3,eb4] ~@4 [eb4,g4]@2, ~@13 g4@2 ~@2 g4@2 ~@3 bb3 ~", // Bbm Db Eb5 Eb
  E: "~@4 [c4,a4]@2 ~@2 [c4,f4,a4] ~@3 [c4,eb4,g4] [c4,f4] ~@3 [c4,f4] ~@4 [c4,f4,a4] ~, ~@4 f4 ~@8 a4@2 ~@2 a4@2 ~@5", // F Cm F5 F
  F: "~@4 [f4,a4]@3 ~ [c4,f4,a4] ~@2 [eb4,g4] ~ [c4,a4]@2 ~@2 [c4,f4] ~@4 [c4,f4] ~, ~@4 c4 ~@8 f4 ~@3 a4@2 ~@3 a4@2", // F Eb F F5
  G: "~@4 [f4,bb4]@2 ~@3 [db4,f4,ab4] ~@3 [bb3,eb4] ~@3 [bb3,eb4] ~@4 [eb4,g4]@2, ~@4 db4 ~@8 g4@2 ~@2 g4@2 ~@3 bb3 ~", // Bb5 Db Eb5 Eb
  H: "~@4 [f4,a4]@2 ~@2 [c4,a4] ~@2 [c4,eb4,g4] ~ [c4,f4] ~@3 [c4,f4] ~@4 [c4,f4,a4] ~, ~@4 c4 ~@3 f4@2 ~@3 a4@2 ~@2 a4@2 ~@5", // F Cm F5 F
  I: "~@4 [f3,c4,f4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4,f4] ~@6, ~@8 f4@2 ~@3 f4@2 ~@9", // F5
  J: "[~@4 [f3,c4,f4] ~@4 [f3,c4,f4] ~@3 [f3,c4,f4] ~@3 [f3,c4,f4] ~@2 f3 ~ bb3 f3@2 ab3 ~@2 [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~@2 f3 ~ bb3 f3]/2", // F5
  K: "[~ ab3@2 ~ c4@2 ~@2 c4@2 ~@3 c4@2 ~@2 [f3,c4] ~@2 f3 ~ bb3 f3@2 ab3@2 ~ c4@2 ~@2 c4@2 ~@3 c4@2 ~@2 [f3,c4] ~@2 f3 ~ bb3 f3@2 ab3@2 ~ c4@2 ~@2 c4@2 ~@3 c4@2 ~@2 [f3,c4] ~@2 f3 ~ bb3 f3@2 ab3 ~@2 [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 f3 ~ bb3 f3 ~ bb3 f3, ~@4 f3 ~@3 f3 ~@4 f3 ~@14 f3 ~@3 f3 ~@4 f3 ~@14 f3 ~@3 f3 ~@4 f3 ~@34]/4", // F5
  L: "~ ab3 ~@2 [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~@2 f3 ~ bb3 f3", // F5
  M: "[~ ab3 ~@2 [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~@2 f3 ~ bb3 f3@2 ab3 ~@2 [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~@2 f3 ~ bb3 f3@2 ab3 ~@2 [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~@2 f3 ~ bb3 f3]/3", // F5
  N: "~ ab3@2 ~ [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~@3 f3 bb3 ~", // F5
  O: "~ ab3 ~@2 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~@3 [f3,c4] ~@2 f3 ~ bb3 f3, f3 ~@11", // F5
  P: "f3 ab3@2 ~ [f3,c4] ~@3 f3 c4@2 ~@2 [f3,c4] ~@3 [f3,c4] ~@2 f3 ~ bb3 f3", // F5
  Q: "[~ ab3@2 ~ c4@2 ~@2 c4@2 ~@3 c4@2 ~@2 [f3,c4] ~@2 f3 ~ bb3 f3@2 ab3 ~@2 [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~ bb3 f3 ~ bb3 f3, ~@4 f3 ~@3 f3 ~@4 f3 ~@34]/2", // F5
  R: "~ ab3@2 ~ [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~ bb3 ~ f3 bb3 ~", // F5
  S: "[f3 ab3 ~@2 c4@2 ~@2 f3 c4 ~@3 [f3,c4] ~@3 [f3,c4] ~ bb3 ~ f3 bb3 f3@2 ab3 ~@2 [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~@2 f3 ~ bb3 f3, ~@4 f3 ~@43]/2", // F5
  T: "~ ab3@2 ~ [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~", // F5
  U: "~@4 [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4] ~@4 [f3,c4,f4] ~, ~@4 f4@2 ~@2 f4@2 ~@3 f4@2 ~@2 f4@2 ~@5", // F5
  V: "~@3 [f3,c4] ~@4 [f3,c4] ~@4 [f3,c4] ~@3 [f3,c4,f4] ~@6, ~@3 f4@2 ~@3 f4@2 ~@3 f4@2 ~@9", // F5
  W: "~ [f3,c4,f4] ~@2 [f3,c4,f4]@2 ~@18", // F5
})).s("gm_rock_organ").gain(0.55)

// chords · epiano1 · "THIS SONG"
const epiano1 = note("<~@16 A B C D E F G H I J K L M N M O P Q P R S T U V W X Y Z AA AB AA AC ~@64>".pickRestart({
  A: "~ d3@3 [d4,f4,a4]@2 d3@2 [d4,f4,a4] ~@4 [f4,a4]@4 ~ f4@2 d3 [d4,f4,a4]@3, ~@11 d3@5 ~@8, ~@13 d4@2 ~@2 [d4,a4]@3 ~@4", // Dm F Dm D5
  B: "~ bb2@3 ~@4 [bb3,d4,g4]@3 ~@2 [g3,db4,f4]@5 ~ [g3,db4,e4]@5, ~ d4 ~@2 [bb3,d4,g4]@4 ~@16, ~@6 bb2@5 ~@2 a2@9 ~@2", // Gm Gm7b5 Dbdim Gm
  C: "~ d3@3 [d4,f4,a4]@2 d3@2 [d4,g4,b4] ~@2 d3 [d4,f4,a4]@3 d3 ~ [d4,g4,b4]@3 ~@2 [f4,a4]@2, ~@5 d3, ~@7 d4", // Dm G Dm G F
  D: "~ bb2@3 ~@4 [bb3,d4,g4]@3 ~@2 [a2,a3,f4]@5 ~ [a2,a3,e4]@5, ~@4 [bb3,d4,g4]@4 ~@5 db4@11, ~@6 bb2@5 ~@13", // Gm Dm A5 Gm
  E: "~ d3@2 ~ [f4,a4]@2 d3@2 [d4,g4,b4] ~@3 [d4,f4,a4]@4 d3 [d4,g4,b4]@3 ~@2 [d4,f4,a4]@2, ~@3 d4@3 ~@5 d3@2 ~@7 d3@4", // F G Dm G Dm
  F: "~ bb2@3 ~@5 [bb3,d4,g4]@3 ~ [a2,a3,db4,f4]@5 ~ [a2,a3,db4,e4]@5, ~ [bb3,d4,g4] ~@4, ~@6 bb2@5 ~@13", // Gm Aaug A Gm
  G: "~ d3@2 [d4,f4,a4]@3 d3@2 [d4,g4,b4] ~@4 [f4,a4]@3 ~ [d4,g4,b4]@3 ~ [d4,f4,a4]@3, ~@11 d3@3 ~@2 d3@2 ~@2 d3@4, ~@3 d4 ~@2", // Dm G F G Dm
  H: "~ bb2@2 ~@3 bb2@6 ~ [a2,a3,db4,e4]@5 ~ [c3,c4,e4,g4]@5, ~ d4@2 ~@5, ~ [bb3,g4]@2 ~@3", // A C Eb
  I: "~ [f3,c4,f4,a4]@4 ~@4 [c4,f4] ~@3 [f3,c4,f4]@3 f4 [f3,c4] ~@4 [f3,c4,f4] ~", // F F5
  J: "~ [f3,c4,f4]@3 ~ [f3,c4]@2 ~@3 [f3,c4,f4] ~@2 [ab5,ab6]!2 g6 g5 ~@2 [f5,f6]!2 ~@3, ~@5 f4 ~@18", // F5 Ab F
  K: "~@3 f4 c4 ~@3 [f3,c4,f4] ~@4 [f3,c4,f4]@3 ~ [f3,c4,f4] ~@3 [f3,c4,f4] ~@2, ~ f3@4 ~@19", // F5
  L: "~ f3 ~@2 [f3,c4,f4] ~@3 [f3,c4,f4] ~@3 [f3,c4,f4] ~@3 c4 [f3,f4] ~@3 [c4,f4] ~@2, ~@21 f3@2 ~", // F5 F F5
  M: "~@4 [f4,bb4]@2 ~@3 [db4,f4,ab4] ~@3 [bb3,g4]@2 ~@2 [bb3,eb4] ~@4 [bb3,eb4,g4] ~, ~@4 db4 ~@8 eb4 ~@3 g4@2 ~@5", // Bb5 Db Eb Eb5 Eb
  N: "~@4 [f4,a4]@2 ~@2 [c4,a4] ~@2 [c4,eb4,g4] ~ [c4,f4] ~@3 [c4,f4] ~@4 [c4,f4,a4] ~, ~@4 c4 ~@3 f4@2 ~@3 a4@2 ~@2 a4@2 ~@5", // F Cm F5 F
  O: "~@4 [c4,f4] ~@3 [c4,f4,a4] ~@2 [eb4,g4] ~ [c4,a4]@3 ~ [c4,f4] ~@4 [c4,f4,a4] ~, ~@4 a4@2 ~@7 f4 ~@3 a4@2 ~@5", // F5 F Eb F F5 F
  P: "~@4 [db4,f4] ~@3 [db4,f4,ab4]@2 ~@3 [bb3,eb4] ~@3 [bb3,eb4] ~@4 [eb4,g4]@2, ~@4 bb4@2 ~@7 g4@2 ~@2 g4@2 ~@3 bb3 ~", // Db Eb5 Eb
  Q: "~@4 [c4,a4]@2 ~@2 [c4,f4,a4] ~@3 [c4,eb4,g4] [c4,f4] ~@3 [c4,f4] ~@4 [c4,f4,a4] ~, ~@4 f4 ~@8 a4@2 ~@2 a4@2 ~@5", // F Cm F5 F
  R: "~@4 [f4,a4]@3 ~ [c4,f4] ~@2 [eb4,g4] ~ [c4,a4]@2 ~@2 [c4,f4] ~@4 [f4,a4]@2, ~@4 c4 ~@3 a4@2 ~@3 f4 ~@3 a4@2 ~@3 c4 ~", // F F5 Eb F F5 F
  S: "~ d3@3 [d4,f4,a4]@3 ~ [d4,f4,a4] ~@3 d3 [d4,f4,a4]@3 d3 ~ a4@2 d3 ~ [d4,f4,a4]@2, ~@7 d3@2 ~@8 [d4,f4]@3 ~@4", // Dm
  T: "~ bb2@3 [bb3,d4,g4]@2 ~@2 [bb3,d4] ~@4 [a2,g3,db4,f4]@5 ~ a2@4 ~, ~@6 bb2@5 ~@7 [g3,db4,e4]@5 ~, ~@4 g4 ~@7", // Gm Bb Aaug Dbdim
  U: "~ d3@3 [f4,a4,c5]@2 d3@2 [g4,b4,d5] ~@2 d3 ~ [f4,a4,c5]@3 d3 [g4,b4,d5]@3 d3 ~ [f4,a4,c5]@2", // F G F G F
  V: "~ bb2@3 [bb3,d4,g4]@2 ~@3 [bb3,g4]@3 ~ [a2,g3,db4,f4]@5 ~ [a2,g3,db4,e4]@5, ~@6 bb2@5 ~@13, ~@8 d4@3 ~@2 a3 ~@10", // Gm Eb Aaug A7
  W: "~ d3@3 [d4,f4,a4]@2 d3 ~ [d4,f4,a4] ~@2 d3 ~ [d4,f4,a4]@3 d3 [d4,f4,a4] ~@2 d3 ~ [d4,f4,a4]@2", // Dm
  X: "~ bb2@3 [bb3,d4,g4]@2 ~@2 [bb3,d4,g4]@3 ~@2 [a2,g3,db4,f4]@5 [a2,g3,db4,e4]@5 ~, ~@6 bb2@5 ~@13", // Gm Aaug A7
  Y: "~ d3@2 ~@2 d3@3 [d4,f4,a4] ~@4 [d3,d4,f4,a4]@4 [d3,d4,f4,a4]@3 ~@2 [d3,d4,f4,a4]@2, ~@3 [d4,f4,a4]@4 ~@17", // Dm
  Z: "~ d4@7 ~ d4@3 ~ a2@5 [c3,c4,e4,g4]@5 ~, ~ [bb2,bb3,g4]@10 ~ [a3,db4,e4]@5 ~@7", // C Eb A
  AA: "~@4 [f3,c4,f4]@2 ~@2 c4 f3 ~@3 [f3,c4,f4]@2 ~@2 [f3,f4]@2 ~@3 [c4,f4]@2, ~@8 f4@2 ~@7 c4 ~@4 f3 ~", // F5 F F5
  AB: "~@4 [f3,c4,f4]@2 ~@3 [f3,c4,f4]@2 ~@2 [ab5,ab6]!2 ~ [g5,g6] ~@2 [f5,f6]!2 ~@3", // F5 Ab G F
  AC: "~@4 [f3,f4] ~@4 f3 ~@3 [c4,f4]@2 ~@2 [f3,c4,f4]@2 ~@3 [f3,c4,f4]@2, ~@4 c4@2 ~@2 [c4,f4]@2 ~@3 f3 ~@10", // F F5
})).s("gm_epiano1").gain(0.53)

// chords · electric guitar muted · "HAS MANY"
const electric_guitar_muted = note(`<
  ~@4 A B C D E F G F G F G F H I J I J I K L M N O P G F G F G F G F H I J I J Q R L M S O P G F G F E F G F G F G F G
  F G T U ~@24 V W X Y X Z AA G F G F G F AB F E F G F G F AC AD
>`.pickRestart({
  A: "~@16 [ab5,c6,f6]!2 ~@4 c6 [ab5,f6]", B: "c6 [ab5,c6,f6]@2 [f5,g5] [d5,e5] ~@19",
  C: "~ ab6 a6@2 ~@18 [ab5,c6,f6]@2, ~ [c6,f6]@3 ~@20", D: "~ [f5,g5] [d5,e5] ~@21",
  E: "~ [db5,f5,bb5]@2 ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~@3 [db5,f5,ab5] [db5,f5] ab5 [bb4,eb5,g5] ~@2 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5]!2", // Bbm Db Eb
  F: "~ [a4,c5,f5]@2 ~ [a4,c5,f5]!2 ~@4 [a4,c5,f5]!2 ~ [a4,c5,f5]@2 ~ [c5,f5] [a4,c5,f5] ~@4 [a4,c5,f5]!2", // F F5 F
  G: "~ [db5,f5,bb5]@2 ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~@3 [db5,f5,ab5]!2 ~ [bb4,eb5,g5] ~@2 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5]!2", // Bbm Db Eb
  H: "~ [a4,d5,f5]@5 ~ [a4,d5,f5] [a4,d5] g5 ~@2 [a4,d5,f5]@6 ~ [a4,d5,f5]@5", // Dm D5 Dm
  I: "~ [bb4,d5,g5]@5 ~ [bb4,d5,g5]@4 ~@2 [a4,db5,f5]@5 ~ [a4,db5,e5]@5", // Gm Aaug A
  J: "~ [a4,d5,f5]@4 ~@2 [a4,d5,f5] [a4,d5,g5] ~@2 [a4,d5,f5]@6 ~@2 [a4,d5,f5]@5", // Dm Dsus4 Dm
  K: "~ [a4,d5,f5]@3 ~@3 [a4,d5,f5] d5 [a4,g5] ~@2 a4@6 ~ [a4,d5,f5]@5, ~@11 [d5,f5]@6 ~@7", // Dm A7 Dm
  L: "~ [bb4,d5,g5]@5 ~ [bb4,d5,g5]@5 ~ [db5,e5,a5]@5 ~ [c5,e5,g5]@4 ~", // Gm A C
  M: "~ [a4,c5,f5]!2 ~ [c5,f5] [a4,c5,f5] ~ [a4,c5,f5] [c5,f5] ~ [a4,c5,f5] ~ c5 [a4,c5,f5] c5 ~ [c5,f5] [a4,c5,f5] ~ [c5,f5]!2 ~ [a4,c5,f5] [c5,f5]", // F F5 F F5 F F5 F F5 …
  N: "~ [a4,c5,f5] ~ c5 [c5,f5]!2 ~ [a4,c5,f5] [c5,f5] ~ [c5,f5] [a4,c5,f5] ~ [c5,f5] ~ [c5,f5] [a4,c5,f5]!2 ~ [c5,f5] ~ [a4,c5,f5]!2 f5", // F F5 F F5 F F5 F F5 …
  O: "c5 [a4,c5,f5] c5 f5 ~ [a4,c5,f5] ~ [c5,f5] ~ [c5,f5] [a4,c5,f5] ~ c5 [a4,c5,f5] ~ c5 [c5,f5] [a4,c5,f5] ~ [a4,c5,f5]!2 ~ [a4,c5,f5] [c5,f5]", // F F5 F F5 F F5
  P: "~ [a4,c5,f5] ~ c5 [c5,f5] [a4,c5,f5] ~ [c5,f5]!2 ~ [a4,c5,f5] [c5,f5] ~ [a4,c5,f5] ~ c5 [c5,f5] [a4,c5,f5] ~ [c5,f5]!2 ~ [a4,c5,f5]!2", // F F5 F F5 F F5 F F5 …
  Q: "~ [bb4,d5,g5]@4 ~@2 [bb4,d5,g5]@4 ~@2 [a4,db5,f5]@5 ~ [a4,db5,e5]@4 ~", // Gm Aaug A
  R: "~ [a4,d5,f5]@3 ~@3 [a4,d5,f5] d5 [a4,g5] ~ [a4,d5,f5]@6 ~@2 [a4,d5,f5]@5", // Dm A7 Dm
  S: "~ [a4,c5,f5] ~ c5 [c5,f5] c5 f5 [a4,c5,f5] [c5,f5] ~ [c5,f5] [a4,c5,f5] ~ [c5,f5] ~ [c5,f5] [a4,c5,f5]!2 ~ [c5,f5]!2 a4 [a4,c5,f5] f5", // F F5 F F5 F F5 F F5 …
  T: "~ [a4,c5,f5]@2 ~ [a4,c5,f5]!2 ~@4 [a4,c5,f5]!2 ~ [a4,c5,f5]@2 ~ [c5,f5] [a4,c5,f5] ~@4 [ab5,c6,f6]!2", // F F5 F Fm
  U: "~ [ab5,c6,f6]@2 ~@21", V: "~@12 [c6,f6]@2 ~ e5 [c5,d5] [a4,b4] ~@6, ~@4 f5 ~@3", W: "~@11 [ab5,f6,ab6]@4 ~@9",
  X: "~@11 [f5,c6,f6]@4 ~@9", Y: "~@11 [f5,bb5,c6,eb6]@4 ~@9", Z: "~@11 [c5,f5,ab5]@4 ~@9",
  AA: "~@11 [c5,f5,ab5]@3 ~@10", // Fm
  AB: "~ [db5,f5,bb5]@2 ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~@3 [db5,f5,ab5]!2 ~ [bb4,eb5,g5] ~@2 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~@2 bb4 [eb5,g5] [bb4,eb5,g5]", // Bbm Db Eb
  AC: "~ [db5,f5,bb5]@2 ~ [db5,f5,bb5] bb5 [db5,f5] ~@3 [db5,f5,ab5]!2 ~ [bb4,eb5,g5] ~@2 [bb4,eb5,g5]!2 ~@3 bb4 [eb5,g5] [bb4,eb5,g5]", // Bbm Db Eb
  AD: "~ [c5,f5,a5]@2 ~ [c5,f5,a5]@2 ~@18", // F
})).s("gm_electric_guitar_muted").gain(0.36)

// chords · string ensemble 1 · "PRG.CHANGE"
const string_ensemble_1 = note(`<
  ~@8 A B@2 C@4 D ~@8 E@5 C@6 D ~@8 E@5 C@6 F@2 C@2 F@4 G@7 ~@18 H@8 I C@4 J@2 C@4 K@4 L
>`.pickRestart({
  A: "~ f6@12 eb6@11, ~ bb5@23", B: "[~ f6@35 [bb5,eb6]@12, c6@3 ~]/2", C: "[[c6,f6]@3 [bb5,eb6]]/2", D: "[c6,f6]@11 ~",
  E: "[~ [c6,f6]@107 [bb5,eb6]@12]/5", F: "[~ [c6,f6]@35 [bb5,eb6]@12]/2", G: "[[c6,f6]@157 ~@11]/7",
  H: "[~ [f5,f6]@191]/8", I: "c6 [bb5,eb6]", J: "[~@35 [bb5,eb6]@13, [c6,f6]@37 ~@11]/2",
  K: "[[c6,f6]@37 eb6@11 [c6,f6]@36 [bb5,eb6]@12, ~@37 bb5@14 ~@45]/4", L: "[f5,c6,f6] ~@3",
})).s("gm_string_ensemble_1").gain(0.18)

// other · lead 1 square · "PRG.CHANGE"
const lead_1_square = note("<~@76 A@2 ~@6 B@2 C@2 ~@24>".pickRestart({
  A: "[~@2 eb7@2 c7 bb6 ~ f6 eb7@2 c6 bb5@2 [c6,f6] eb6!2 [c6,f6] bb6!2 [c6,f6] ~ eb6 [c6,f6,f7] bb5@2 c6 eb7@2 [f6,f7] ~ bb6 ~@2 eb6 [f6,f7] ~ bb6 ~ eb7@2 f7@2 ~@6, ~ f7@2 ~@4 f7@2 ~ c7@2 ~ f7@2 ~@2 bb5@2 ~ eb7@2 ~@4 eb6 ~@2 bb5@2 ~ eb7@2 ~@14, ~@8 eb6 ~@2 bb6 ~@2 eb7@2 c7@2 ~ [c7,f7]@2 ~@2 bb6 ~ c7@2 ~@4 c7@2 ~@4 c7@2 ~@9]/2", // F5 F F5
  B: "[~@2 eb7@2 c7 bb6 ~ f6 eb7@2 [c6,c7] bb5@2 [c6,f6] eb6!2 f6 [bb5,bb6]@2 [c6,f6,c7] eb6!2 [c6,f6,f7] [bb5,bb6]@2 c6 ~ eb6 [f6,f7] bb5@2 ~ eb7@2 [f6,f7] bb6@2 c7 eb7@2 f7 ~@7, ~ f7@2 ~@4 f7@2 ~@2 bb6 ~ f7@2 ~@4 f7@2 ~@5 eb7@2 ~@4 eb6 ~@15, ~@8 eb6 ~@5 eb7@2 [c6,c7]@2 ~@2 eb7@2 ~@3 c7@2 ~@2 bb6 ~ c7@2 ~@15]/2", // C F5 Bb F5 Bb F C
  C: "[~@2 eb7@2 c7 bb6@2 f6 eb7@2 [c6,c7] bb5@2 [c6,f6] eb7@2 f6 bb5@2 [c6,f6] eb7@2 [c6,f6,f7] bb6 bb6 [c6,c7] eb7@2 [f6,f7] ~ bb6 c7 ~ eb6 [f6,f7] ~ bb6 c7 eb7@2 f7@2 ~@6, ~ f7@2 ~@4 f7@2 ~@2 bb6 ~ f7@2 ~@2 bb6 ~ [c7,f7]@2 ~@11 eb7@2 ~@14, ~@8 eb6 ~@5 eb6 ~ [c6,c7]@2 ~@2 eb6 ~@2 bb5@2 ~ eb6 ~@2 bb5@2 ~@17]/2", // C F5 C F F5 C
})).s("gm_lead_1_square").gain(0.37)

// other · lead 1 square · "PRG.CHANGE" · soft notes
const lead_1_square_soft = note("<~@76 A B ~@6 A B A B ~@24>".pickRestart({
  A: "~@11 c7", B: "~ f6 ~@2 c6 ~@2 c6 ~@16",
})).s("gm_lead_1_square").gain(0.25)

// bass · fretless bass · "ON THE"
const bass = note("<A@3 B C A@2 B ~@56 D E A F G F D H A@7 I D A@2 J A@3 H A D A I K A D H ~@16>".pickRestart({
  A: "~ f2@3 f3@3 f2@3 f3@2 ~ f2@3 f3@3 f2@3 f3@2", B: "~ f2@3 f3@3 f2@3 f3@3 f2@3 bb3@4 ab3 ~ f3@2",
  C: "~ f2@3 f3@3 f2@3 f3@3 f2@3 f3@3 f2@3 f3@2", D: "~ f2@2 ~ f3@3 f2@3 f3@3 f2@3 f3!2 ~ f2@3 f3@2",
  E: "~ f2@3 f3@3 f2@3 f3@3 f2@3 f3@2 ~ f2 c3 ~ ab2@2",
  F: "~ f2@3 f3!2 ~ f2@3 f3@3 f2@2 ~ f3@3 ~ c3 ~ ab2@2, ~@19 f2@2 ~@3",
  G: "~ f2@2 ~ f3@3 f2@3 f3!2 ~ f2@3 f3@3 f2@3 f3@2", H: "~ f2@3 f3@2 ~ a2@3 a3@3 bb2@3 bb3@2 ~ c3@3 c4@2",
  I: "~ f2@2 ~ f3!2 ~ f2@3 f3@2 ~ f2@3 f3@3 f2@3 f3@2", J: "~ f2@2 ~ f3@2 ~ f2@3 f3@3 f2@3 f3@3 f2@3 f3@2",
  K: "~ f2@3 f3@2 ~ f2@3 f3@2 ~ f2@3 f3@2 ~ f2@3 f3!2",
})).s("gm_fretless_bass").gain(0.55)

// bass · slap bass 1 · "ON THE"
const bass_2 = note(`<
  ~@8 A B A B A B C@2 D E F E F G H I J K J L A M A B A B N O D E F E F G D P Q R Q S A B A B A B T@2 A B A B A B U V
  ~@32 A M A B A B T@2 A B A B A B U W
>`.pickRestart({
  A: "~ bb1@3 bb2@3 bb1@3 bb2!2 ~ eb2@3 eb3@3 eb2@3 eb3!2",
  B: "~ f2@3 f3@3 f2@3 f3 f3@2 f2@3 c3@3 ~ ab2 ~ f2@2, ~@19 bb2@2 ~@3",
  C: "[~ bb1@3 bb2@3 bb1@3 bb2 bb2@2 eb2@3 eb3@3 eb2@3 eb3 eb3@2 f2@3 f3@3 f2@3 f3!2 ~ f2@2 ~ f2@3 e2@2 ~ e2@2]/2",
  D: "~ d2@3 d3@3 d2@3 d3 d3@2 d2@3 d3@3 d2@3 d3@2", E: "~ bb1@3 bb2@3 bb1@3 bb2!2 ~ a1@3 a2@3 a1@3 a2!2",
  F: "~ d2@3 d3@3 d2@3 d3@3 d2@3 d3 d3@2 d2@3 d3@2", G: "~ bb1@3 bb2@3 bb1@3 bb2!2 ~ a1@3 a2@2 ~ a1@3 a2@2",
  H: "~ d2@3 d3@3 d2@3 d3!2 ~ d2@3 d3@3 d2@3 d3@2", I: "~ bb1@3 bb2@3 bb1@3 bb2 bb2@2 a1@2 ~ a2@2 ~ c2@3 c3@2",
  J: "~ f2@2 ~ f3@3 f2@3 f3@3 f2@3 f3!2 ~ f2@3 f3@2", K: "~ f2@3 f3@3 f2@2 ~ f3@3 f2@3 f3 c3@3 ab2 ~ f2@2",
  L: "~ f2@3 f3@3 f2@3 f3@3 f2@3 c3@3 bb2 ab2 ~ f2@2", M: "~ f2@3 f3@3 f2@3 f3!2 ~ f2@3 c3@3 bb2 ab2@2 f2@2",
  N: "~ bb1@3 bb2@3 bb1@3 bb2 ~ bb2 eb2@3 eb3@3 eb2@3 eb3!2", O: "~ f2@3 f3@3 f2@3 f3!2 ~ f2@2 ~ f2@3 e2@2 ~ e2@2",
  P: "~ bb1@3 bb2@3 bb1@3 bb2 bb2@2 a1@3 ~@3 c2@5", Q: "~ f2@2 ~ f3@2 ~ f2@2 ~ f3@2 ~ f2@3 f3!2 ~ f2@2 ~ f3@2",
  R: "~ f2@2 ~ f3@2 ~ f2@3 f3@2 ~ f2@2 ~ f3!2 ~ f2@2 ~ f3@2", S: "~ f2@3 f3@2 ~ d2@3 d3@2 ~ c2@3 c3@2 ~ a1@3 a2@2",
  T: "[~ bb1@3 bb2@3 bb1@3 bb2 ~ bb2 eb2@3 eb3@3 eb2@3 eb3 eb3@2 f2@3 f3@3 f2@3 f3!2 ~ f2@2 ~ f3@2 ~ f2@2 ~ f3@2]/2",
  U: "~ bb1@3 bb2!2 ~ bb1@3 bb2@3 eb2@3 eb3@3 eb2@3 eb3!2", V: "~ f2@3 f3@3 f2@3 f3!2 ~ f2@2 ~ f3@2 ~ f2@2 ~ f3@2",
  W: "~ f2@3 f2@3 ~@17",
})).s("gm_slap_bass_1").gain(0.62)

// drums · kick
const kick = s("bd").struct("<[~ x ~@5 x ~@5 x ~@5 x ~@4]!111 [~ x ~@2 x ~@19]>").gain(0.51)

// drums · clap
const clap = s("cp").struct("<[~@7 x ~@11 x ~@4]!111 ~>").gain(0.26)

// drums · snare
const snare = s("sd").struct("<A@7 B A@19 C A@19 C A@47 D A@14 E ~>".pickRestart({
  A: "~@7 x ~@11 x ~@4", B: "~@7 x ~@2 x!2 ~ x ~ x!2 ~ x!2 ~ x!3", C: "~@7 x ~@2 x!2 ~ x!2 ~@9",
  D: "~@7 x ~@2 x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2", E: "~@7 x ~@5 x!2 ~ x!2 ~ x!2 ~ x!2",
})).gain(0.51)

// drums · hihat
const hihat = s("hh").struct("<A B@6 C D E@7 B@8 E@3 C D E@7 B@8 E@3 C D E@27 D E@18 F D E@14 ~>".pickRestart({
  A: "~@7 x ~@2 x ~@2 x ~@5 x ~@2 x ~", B: "~ x ~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~", C: "~ x ~@22",
  D: "~@7 x ~@5 x ~@5 x ~@4", E: "~ x ~@5 x ~@5 x ~@5 x ~@4", F: "~ x ~@5 x ~@16",
})).gain(0.31)

// drums · mid tom
const mid_tom = s("mt").struct("<~@27 [~@22 x!2] ~@19 [~@22 x!2] ~@64>").gain(0.46)

// drums · open hat
const open_hat = s("oh").struct("<A@7 B C@8 A@8 C@3 D C@8 A@8 C@3 D C@47 E C@15 ~>".pickRestart({
  A: "~ x ~@2 x ~", B: "~ x ~@4", C: "~@2 x ~@2 x ~@2 x ~@2 x", D: "~@4 x ~@2 x ~@16", E: "~@2 x ~@2 x ~@6",
})).gain(0.26)

// drums · high tom
const high_tom = s("ht").struct("<~@27 [~@16 x!2 ~ x!2 ~@3] ~@19 [~@16 x!2 ~ x!2 ~@3] ~@64>").gain(0.46)

// drums · crash
const crash = s("cr").struct("<A ~@7 A ~@19 A ~@19 A ~@27 A ~@19 A ~@14 A>".pickRestart({
  A: "~ x ~@22",
})).gain(0.36)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@76
  [~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x ~ x!3]
  [~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2]!34
  ~
>`).gain(0.26)

// … 44 more lines