Strudelify

I'm Not in Love

Will to Power

KeyE♭ majorTempo72 bpm
0:00/0:00
// I'm Not in Love — Will to Power
// 72 bpm, 4/4, key Eb 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: duplicate parts dropped: ch 4 "Rhodes Piano" epiano1 (copy of ch 3 "Piano" piano)
// note: Full arrangement: all 74 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(72/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 · piano
const piano = note(`<
  ~ A@2 B@3 C D@2 E F G H I J@2 K L@2 M N E F G H I J@2 K L@2 O P@2 Q R E F G H I J@2 K L@2 S T U V W@3 F G H I J@2 X@3
  M N Y@2 Z AA@2 AB AC AD@3
>`.pickRestart({
  A: "[[ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~@9 [bb3,d4,f4]@4 [bb3,d4,f4]@2 ~ [bb3,d4,f4]@3 ~@5 bb1, bb1@11 eb3@2 eb3@4 ~@13 f3@2, ~@7 [ab3,c4,eb4]@2 [ab3,c4,eb4]@5 ab3@3 ~@10 [bb3,d4,f4]@2 [bb3,d4,f4]@3, ~@8 bb2@7 [bb2,eb4]@2 ~@5 bb2@6 bb2@4, ~@12 bb1@4 bb1@10 bb1@5 ~]/2", // Ab Bb Ab Bb Eb5
  B: "[[ab3,c4]@4 [eb3,ab3,c4]@3 eb3 ~@8 [bb3,d4,f4]@4 [bb3,d4,f4]@3 ~@3 bb3 ~@5 [ab3,c4]@4 [ab3,c4]@2 ~@3 eb3@2 ~@4 bb1, [bb1,eb4]@12 bb1@4 bb1@11 [bb3,f4]@2 ~ bb3@2 bb1@11 ~ bb1@3 ~, ~@7 c4@4 [ab3,c4,eb4]@3 [ab3,c4,eb4]@2 f3 ~@6 [bb3,d4,f4]@4 d4@5 eb4@7 [ab3,c4,eb4]@4 eb4@5, ~@7 ab3@2 eb3@4 eb3@4 ~@8 f3@3 ~ f3@4 ~@3 eb3@5 ~@2 [ab3,c4]@2 eb3@3, ~@8 bb2@7 bb2@2 ~@7 bb2@4 bb1@3 bb2@2 ~@5 bb2@8 [bb2,ab3,c4]@2]/3", // Ab Bb Ab Eb5 Bb5 Ab Bb Ab …
  C: "[bb3,d4]@4 f3@2 ~@7 f3 ~ bb1, [bb1,f4]@8 bb1@7 ~, ~@4 [bb3,d4]@5 f4@7, ~@6 bb2@5 f3 bb2@4, ~@7 f3@2 [bb3,d4]@5 [bb3,d4]@2", // Bb Bb5 Bb
  D: "[[eb3,ab3,c4,eb4]@3 ~ [ab3,c4]@2 ~ [ab3,c4]@2 ~@7 [bb3,d4]@4 f3@2 ~@4 bb3@2 [g2,g3,b3,d4,f4]@4, bb1@11 eb3@2 eb3@3 bb1@6 bb2@7 ~@3, ~@4 eb3@5 [ab3,c4]@5 [ab3,c4,eb4]@3 ~@3 d4@5 f3@4 ~@3, ~@6 bb2@9 bb2@2 ~@3 bb3@3 f3 bb1@5 ~@3, ~@7 eb4@5 bb1@4 f4@12 ~@4]/2", // Ab Bb G7 Ab
  E: "ab3@4 ab3@2 ~@7 eb3 ~ ab2, [ab1,eb4]@3 ab1, ab2@7 ab3@2 [ab3,c4]@5 ~@2, c4@2 ~@2 c4@4 ab2@7 ~, ~@6 eb3@5 eb3@2 ~ [eb3,ab3,c4]@2", // Ab5 Ab
  F: "eb3@4 eb3@3 eb3 ~@2 ab3 ~@4 ab1, [ab1,b3]@11 eb4@5, ab3@7 ~ ab2@8, ~@9 eb3@3 ab1@2 [ab3,b3]@2, ~@11 [ab3,b3]@2 eb3@3", // Abm
  G: "[g2,f3]@4 g2@4 ~@7 g2, g1!2, bb3@6 ~@3 [g3,b3]@5 [g3,b3]@2, ~@11 f3@2 f3@3, ~@12 g2@3 ~", // G7 G
  H: "eb3@3 ~@3 c4 g3 ~@2 c4 c4@2 ~ [bb1,c4]@2, c2!2, [g3,c4]@6 ~ [c4,eb4]@4 eb4@5, ~@3 eb3@5 ~ g3@2 g3 ~ g3@2 ~, ~ c3@2 ~", // Bbsus2 C5 Cm
  I: "~@4 eb3@3 eb3@2 ~ ab3 eb3 ~@3 c4, [ab1,c4]@11 ab3@2 eb3@3, ab3@10 ~ c4@3 [ab2,ab3]@2, ~@3 ab1", // Ab
  J: "[ab3@7 ~@6 ab3 ~@2 [g2,f3,bb3]@4 ~@3 f3 ~@7 b1, [ab1,b3]@8 ab1@6 [ab3,b3]@2 [g1,d4]@7 [g3,d4]@4 [g3,d4]@3 d4@2, ~@7 ab3@2 f3@6 ab1@2 ~@5 g1@2 b1@7 ~, ~@9 [ab3,b3]@3 ab2@5 ~@3 g2@4 ~@4 b2@4, ~@11 eb3@6 ~@4 bb3@3 ~ f3@7]/2", // Gm7 Abm G5 Abm
  K: "eb3@3 ~@3 g3 ~@3 c4 ~@4 bb1, c2@4 bb1@3 c4, g3@6 ~ [g3,c4]@3 ~ eb4@5, ~@3 eb3@2 eb3@3 ~ g3@2 [g3,c4]@2 g3@3, ~ c3 ~ bb2", // C5
  L: "[~@6 eb3 ~@7 [ab3,c4] ~@11 bb3@2 ~@2 bb1@2, [ab1,ab3,c4]@7 eb3@2 eb3@4 eb3@3 d4@12 ~@4, eb3@6 ~ [ab3,c4]@4 [ab3,c4]@3 ~ ab3@2 ~@3 bb2@8 [bb2,f3,bb3,d4]@4, ~@2 ab2@4 ab2@2 [bb1,bb3]@4 bb1@3 ~, ~@8 ab1@8 f3@6 ~ bb3@3 ~@6]/2", // Ab Bb
  M: "[eb2,g3,bb3,eb4]@3 ~ eb2@2 [eb2,eb3]@6 ~@3 eb2, ~@3 [g3,bb3,eb4]@3 [ab3,c4]@7 ab3@3, ~@3 [eb2,eb3], ~@7 c4", // Eb Ab Eb
  N: "[eb2,gb3,bb3,db4]@3 [eb2,gb3,bb3,db4] ~@2 eb3@5 ~@3 ab3@2, ~@3 eb2@5, ~@6 [ab3,c4]@7 c4@3, ~@11 eb3@5, ~@3 eb4", // Ebm7 Ab
  O: "[g3,bb3,eb4]", // Eb
  P: "[~@7 b3 [ab3,db4]@6 ~@2 gb2@4 ~@10 bb3@2, ab2@8 ~@7 db4@2 ~@3 f2@8 db2 gb4@3, ~ gb2 [f2,f3]@2 gb3@4, ~@6 ab3@2 ~@6 ab3@2 bb3@11 bb4@5, ~@3 eb2]/2", // Db5 F
  Q: "~@6 ab3@2 [f2,f3,ab3,db4]@7 ~, [ab2,b3,eb4] ~, ab3@3 ~@5, ~ gb2 ~@2", // Db Abm
  R: "[db4,f4,ab4]@8 ~@2 [db4,f4,ab4]@2 ~ [eb4,g4,bb4]@3, eb2@15 ~", // Db Eb
  S: "[eb2,g3,bb3,eb4]@3 ~ eb2@2 [eb2,eb3]@6 ~@3 eb2, ~@3 [g3,bb3,eb4]@3 [g3,bb3]@7 g3@3, ~@3 [eb2,eb3], ~@7 bb3", // Eb Gm Eb
  T: "ab2@4 gb2@4 ab3@6 ~ db4, [ab3,b3,eb4] [f2,f3,b3,db4], ~@7 ab3", // Abm Db7
  U: "gb2@2 f2@2 ~@3 db4, gb3, [bb3,db4]@13 bb3@3, ~ eb2, ~@3 db2", // Bbm
  V: "~@3 ab3 [f2,f3,ab3,db4]@4, [ab2,b3,eb4] ~, ab3@3 ~@5, ~ gb2 ~@2", // Db Abm
  W: "[~@2 [db4,f4,ab4]@5 eb4@6 ~ eb4@2 [f4,ab4]@10 ~@3 eb4@3 [ab3,c4]@4 ab3@2 ~@7 eb3 ~ ab2, eb2@16 [eb2,b3]@16 [ab1,ab2,eb4]@4 c4@2 eb3 ab3 ab2@7 ~, ~@7 [g4,bb4]@9 eb4@10 [db4,f4,ab4]@15 [ab3,c4]@5 ~@2, ~@13 bb3@30 eb3@2 ~ [eb3,ab3,c4]@2, ~@16 ab3@13 [g4,bb4]@15 ab1@4]/3", // Db Fm Ab Abm Ab5 Gm Db Ab …
  X: "[eb3@3 ~@3 g3 ~@3 c4 ~@4 bb1 ~@6 eb3 ~@7 [ab3,c4] ~@11 bb3@2 ~@2 bb1@2, c2@8 bb1@6 c4@2 ~@7 eb3 ab1@7 ab3@2 ~@3 bb2@8 [bb2,f3,bb3,d4]@4, g3@6 ~ [g3,c4]@3 ~ eb4@21 d4@12 ~@4, ~@3 eb3@2 eb3@3 ~ g3@2 [g3,c4]@2 g3@3 ~@7 [ab3,c4]@2 eb3@3 ab2@4 [bb1,bb3]@8 bb1@6 ~@2, ~@4 c3@4 ~@4 bb2@4 ~@4 ab2@7 [ab3,c4]@2 eb3@3 f3@6 ~ bb3@3 ~@6]/3", // Ab Bb C5 Ab Bb Ab
  Y: "[~@4 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~@3 [ab3,c4,eb4]@2 [bb3,d4,f4]@4 [bb3,d4,f4]@3 ~@7 [bb3,d4,f4]@2, bb1@4 bb1@3 bb1, bb2@11 [ab3,c4,eb4]@2 eb3@3 f3 ~@6 [bb3,d4,f4]@3 [bb3,d4,f4]@3 f3@3, ~@3 bb2@3 bb2@2]/2", // Ab Bb Ab Bb
  Z: "[ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~@8 bb2, bb1@11 [ab3,c4,eb4]@2 eb3@3, ~@7 [ab3,c4,eb4]@3 eb3@2 bb1@4, ~@4 bb2@3 [ab3,c4,eb4]", // Ab
  AA: "[[bb3,d4,f4]@4 ~@3 f3@2 ~@3 [bb3,f4] ~@3 [ab3,c4,eb4]@4 ~@6 [ab3,c4] ~@4 bb1, bb1@11 bb2@4 bb2@2 ~@6 eb3@2 eb3@2 ~@2 eb3@3, ~@4 [bb3,d4,f4]@5 f3@3 ~@4 bb1@11 ~@5, ~@10 [bb3,d4,f4]@2 d4@2 [bb3,d4,f4]@3 ~@3 [ab3,c4,eb4]@6 ~ [ab3,c4,eb4]@3 [ab3,c4,eb4]@2, ~@6 bb2!2]/2", // Bb Bb5 Ab Bb Ab
  AB: "[bb3,d4,f4]@4 [bb3,d4,f4]@3 [bb3,d4,f4]@2 ~ bb3 ~@3 [bb3,d4,f4]@2, bb1@11 [bb3,d4,f4]@2 f3@3, ~@9 f3@3 bb2@4", // Bb
  AC: "[ab3,c4,eb4]@4 ab3@3 ~@8 c4, bb1@11 ab3@2 eb3@3, ~@4 [c4,eb4]@7 [c4,eb4]@5, ~@7 eb3@2 eb3@3 bb1@4, ~@4 bb2@3 ab3", // Ab Cm
  AD: "[[bb3,d4]@2 [bb3,d4,f4] ~@4 d4@16 ~, f3@11 f4@32 ~@5, bb1@7 [bb3,f4]@2 bb4@32 ~@7, ~@6 bb2@3 d4@2 bb3 bb2@32 ~@4, ~@7 d4 bb1@5 f3@32 ~@3]/3", // Bb Bb5
})).s("gm_piano").gain(0.35).pan(0.3)

// chords · piano · soft notes
const piano_soft = note(`<
  ~ A@2 B ~ B C ~@3 D E F G H I ~ J@2 ~@3 D E F G H I ~ J@2 ~@3 K ~@2 D E F G H I ~ J@2 ~@7 D E F G H I ~ J@2 ~@5 L M N
  O P@3
>`.pickRestart({
  A: "[~@15 c4@2 ~@15]/2", B: "~@10 ab3 ~@5", C: "~@7 f3", D: "~@7 ab3 ~@8", E: "~@4 f3@2 ~ f3 ~ f3@2 ~@5, ~@3 bb3 ~@4",
  F: "~@5 g3@2 ~@8 g3", G: "~@9 eb3@2 ~@5", H: "~@6 eb3@5 ~@5, ~ ab2@2 ~", I: "~@4 f3@3 ~@3 g3 ~@2 g3@3",
  J: "[~@10 ab3 ~@4 c4@2 ~@5 f3@3 f3@3 ~@4]/2", K: "~@7 b3 ~@8", L: "~@13 f3@3", M: "~@10 eb4 ~@5",
  N: "~@10 [d4,f4] ~@4 bb1", O: "~@10 eb4 ~@4 bb2", P: "[~@15 bb3@32 ~]/3",
})).s("gm_piano").gain(0.2).pan(0.3)

// chords · electric guitar clean · "Guitar"
const electric_guitar_clean = note(`<
  ~ A B C D E F G H I J K L M N O P Q R S T I J K L M N O P Q R ~ U V U W I J K L M N O P Q R X U V U W@2 I J K L M N O
  P Q R S T Y Z AA AB AC AD AE AF ~@2
>`.pickRestart({
  A: "~@4 [ab3,c4,eb4]@2 ~ [c4,eb4] ~@2 [ab3,c4,eb4] ~@2 eb4 [ab3,c4,eb4] ~", // Ab Cm Ab
  B: "[bb3,d4,f4]@2 ~@2 [bb3,d4,f4]!2 ~ d4 [bb3,d4,f4]!2 ~@2 [bb3,d4,f4] f4 [bb3,d4,f4]!2", // Bb
  C: "~@4 [ab3,c4,eb4]@2 ~ [ab3,eb4] ~@2 [ab3,c4,eb4] ~@2 [ab3,eb4] [ab3,c4,eb4] ~", // Ab Ab5 Ab Ab5 Ab
  D: "~@4 [bb3,d4,f4]@2 ~ [bb3,d4,f4] ~@2 [bb3,d4,f4] ~@2 [d4,f4] [bb3,d4,f4] ~", // Bb Dm Bb
  E: "[ab3,c4,eb4]@3 ~ [ab3,c4,eb4] ~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~ [ab3,c4,eb4]!2 ~", // Ab
  F: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]!2 ~ [bb3,d4,f4] ~ [bb3,d4] [bb3,d4,f4] ~ [bb3,d4,f4] [d4,f4] [bb3,d4,f4]!2", // Bb Dm Bb
  G: "~@4 [ab3,c4,eb4]@2 ~ [c4,eb4] ~@2 [c4,eb4] ~@2 eb4 [ab3,c4,eb4] ~", // Ab Cm Ab
  H: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]!2 ~ [bb3,d4,f4] ~ [bb3,d4,f4]!2 ~@3 [d4,f4] ~", // Bb Dm
  I: "~@4 [ab3,eb4] [ab3,c4,eb4] ~ [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@2 [ab3,c4,eb4]!2", // Ab5 Ab
  J: "~@3 ab3 [ab3,b3,eb4]!2 ~ [ab3,b3,eb4] ~ [ab3,b3,eb4]!2 ~ [ab3,b3,eb4]!2 ~ [ab3,b3,eb4]", // Abm
  K: "~@3 [g3,bb3] [g3,bb3,d4] ~ [g3,bb3,d4] [g3,b3,d4] ~@2 [g3,b3,d4] ~ [f3,b3,d4]!2 ~ [g3,b3,d4]", // Gm G Bdim G
  L: "~@2 [g3,c4,eb4] ~ [g3,c4,eb4]!2 ~ [g3,c4,eb4] ~ [c4,eb4] [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] [c4,eb4]", // Cm
  M: "~@2 eb4 [ab3,c4,eb4] ~ [ab3,c4] [ab3,c4,eb4]@2 ~ c4 eb4 ~ [ab3,c4,eb4] [c4,eb4] ~ [ab3,eb4]", // Ab Cm Ab5
  N: "~@2 [ab3,b3,eb4]!2 ~ [b3,eb4] ~ ab3 [ab3,b3,eb4] ab3 ~ [ab3,b3,eb4] ~ [ab3,b3,f4] ~ b3", // Abm B Abm Fdim
  O: "[g3,bb3,d4] ~ [g3,bb3] [g3,bb3,d4] ~ [g3,bb3] ~ [g3,b3,f4] ~ [g3,b3,f4] ~ [g3,b3,f4] ~@2 [g3,b3,d4,f4] ~", // Gm G7
  P: "[g3,c4] ~ [g3,c4,eb4]!2 ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~@2 [c4,eb4] [g3,c4,eb4] ~@2 [g3,c4,eb4] [g3,c4]", // C5 Cm C5
  Q: "~@3 eb4 [ab3,c4,eb4] ~ ab3 [ab3,c4,eb4] ~ [c4,eb4] ~ eb4 ~@2 [ab3,c4,eb4] ~", // Ab Cm Ab
  R: "~@2 bb3 [bb3,d4] ~ [bb3,d4] ~ [f3,bb3,d4] ~ [bb3,d4]!2 ~@3 [f3,bb3,d4] ~", // Bb
  S: "~@4 [g3,bb3,eb4] ~ [ab3,eb4]@2 ~ eb4 [ab3,c4,eb4] ~ [ab3,c4,eb4]!2 ~ [c4,eb4]", // Eb Ab5 Ab Cm
  T: "[gb3,bb3,db4]@2 ~ [gb3,bb3,db4] ~@2 [ab3,c4,eb4]@2 ~ [ab3,c4,eb4] ~ ab3 [ab3,c4,eb4] [c4,eb4] ~ [ab3,c4,eb4]", // Gb Ab Cm Ab
  U: "~@4 [ab3,eb4] [ab3,b3,eb4] ~ [ab3,b3,eb4] ~@3 [f3,b3,db4] ~@2 [f3,b3,db4]!2", // Ab5 Abm Db7
  V: "[gb3,bb3,db4]@2 ~@2 [gb3,bb3,db4]!2 ~ db4 [gb3,bb3,db4]!2 ~@2 [gb3,bb3,db4] bb3 [gb3,bb3,db4]!2", // Gb
  W: "~@4 [f3,ab3,db4]!2 ~ db4 [f3,ab3,db4] [g3,bb3,eb4] ~@2 [g3,bb3,eb4] bb3 [g3,bb3,eb4]!2", // Db Eb
  X: "[bb3,eb4] ~ [g3,bb3,eb4]!2 ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~@2 [bb3,eb4] [g3,bb3,eb4] ~@2 [g3,bb3,eb4] [bb3,eb4]", // Eb5 Eb Eb5 Eb Eb5
  Y: "~@2 [ab3,c4] [ab3,c4,eb4] ~ [ab3,c4] [ab3,c4,eb4] ab3 [ab3,c4,eb4] [c4,eb4] ~ [ab3,c4,eb4] ~@2 [ab3,c4,eb4] ab3", // Ab Cm Ab
  Z: "[f3,bb3,d4] ~@2 [f3,bb3,d4] ~ f3 [f3,bb3,d4]!2 ~ [f3,bb3,d4]!2 f3 [f3,d4] [f3,bb3,d4] ~ [f3,bb3,d4]", // Bb Dm Bb
  AA: "[eb3,ab3,c4] ~ eb3 [ab3,c4,eb4] ~ ab3 [ab3,c4,eb4]!2 ~ ab3 [ab3,c4,eb4] ~ [ab3,c4,eb4] ab3!2 [ab3,c4,eb4]", // Ab
  AB: "~@2 [f3,bb3,d4] f3 [f3,bb3,d4]!2 ~ [f3,bb3,d4] ~ f3 [f3,bb3,d4] f3!2 [f3,bb3,d4] f3!2", // Bb
  AC: "[ab3,c4] ~ [ab3,eb4] eb3 ~ eb3 [ab3,c4,eb4] ~ [ab3,c4]!2 ~ [ab3,c4,eb4] ~ eb3 [ab3,c4,eb4] ~", // Ab Ab5 Ab
  AD: "[f3,bb3,d4] ~@2 [f3,bb3,d4] f3!2 [f3,bb3,d4] f3 [bb3,f4] f3 ~ [f3,bb3,d4] ~ f3 [bb3,d4,f4] f3", // Bb Bb5 Bb
  AE: "[ab3,c4,eb4]!2 ~ [ab3,c4,eb4] ~ eb3 [ab3,c4,eb4]!2 ~@2 [ab3,c4,eb4]!2 ~@3 [ab3,c4,eb4]", // Ab
  AF: "~ [f3,bb3,d4] ~@2 [bb3,f4] d4 ~ [f3,bb3,d4] ~ [f3,bb3,d4]!2 ~ f3 [bb3,d4]!2 f3", // Bb Bb5 Bb
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.6)

// chords · electric guitar clean · "Guitar" · soft notes
const electric_guitar_clean_2 = note(`<
  ~ A B C ~@2 D A ~@2 E F G H I J K L M N ~@2 E F G H I J K L M ~@2 O ~ P ~ E F G H I J K L M Q ~ O ~ P@2 ~ E F G H I J
  K L M N ~@5 R ~@2 S ~@2
>`.pickRestart({
  A: "~@7 ab3 ~@5 ab3 ~@2", B: "~@7 [bb3,f4] ~@3 [bb3,d4,f4] ~ bb3 ~@2", C: "~@13 c4 ~@2", D: "~@9 f4 ~@6",
  E: "~@11 ab3 ~@4", F: "~@3 d4 ~ g3 ~@3 g3 ~ g3 ~@4", G: "~ g3 ~@7 g3 ~@3 g3 ~ g3", H: "~@2 ab3 ~@6 eb4 c4 ~@5",
  I: "~@5 ab3 ~@3 b3 ~@5 ab3", J: "~@2 d4 ~@10 g3 ~ g3", K: "~@9 g3!2 ~@2 g3 ~ eb4",
  L: "~@3 [ab3,c4] ~@5 ab3 ~ [ab3,c4] ~ ab3 ~@2", M: "~@2 d4 ~@13", N: "~@7 ab3 ~ [ab3,c4] ~@5 ab3, ~@3 c4 ~@4",
  O: "~@7 [gb3,bb3] ~@3 [gb3,bb3,db4] ~ db4 ~@2", P: "~@7 [f3,ab3] ~@3 [g3,bb3,eb4] ~ eb4 ~@2",
  Q: "~@9 eb3 g3 ~@2 eb3 ~ g3", R: "~@2 c4 ~@12 ab3", S: "~@11 f3 ~@4",
})).s("gm_electric_guitar_clean").gain(0.18).pan(0.6)

// other · synth strings 1 · "Strings"
const synth_strings_1 = note(`<
  ~@9 A B C D@2 B C D@2 E F@2 G B C D@2 B C D@2 E H I J K J A B C D@2 B C D@2 E H K J K J@2 L B C D@2 B C M@2 E F@2 N
  O@2 P@2 Q@3 R ~
>`.pickRestart({
  A: "~@3 c4", B: "b3", C: "bb3 b3", D: "c4/2", E: "bb3@11 ~ g4@2 ~@2", F: "[eb4, g4 ~@15]/2",
  G: "[ab3,eb4]@5 ~@7 c4@4, c4 ~", H: "eb4", I: "~ db4, eb4", J: "db4", K: "eb4 db4", L: "[ab3,eb4] ~@2 c4, c4 ~",
  M: "[c4@3 ~]/2", N: "c4", O: "[~@13 g4 ~ f4@8 ~@9]/2", P: "[~@13 [c4,g4] ~ [bb3,f4]@5 ~@12]/2",
  Q: "[~@13 [c4,g4] ~ [bb3,f4]@33]/3", R: "[g3,eb4]",
})).s("gm_synth_strings_1").gain(0.25).pan(0.3)

// other · synth strings 1 · "Strings"
const synth_strings_1_2 = note(`<
  ~@10 A@2 B@2 A@2 C@2 D E@2 ~ A@2 B@2 A@2 C@2 D F ~@5 A@2 B@2 A@2 C@2 D G ~@6 A@2 B@2 A@2 H ~ D E@2 ~@2 I@2 J ~ J ~@3
>`.pickRestart({
  A: "[~@9 eb4!2 ~ eb4!2 ~ eb4@5 ~@12]/2", B: "[~@5 g4 ~ f4 ~ g4 ~ f4 ~ g4 ~ f4@6 ~@11]/2",
  C: "[~@5 g4 ~ f4 ~ g4 ~ f4 ~ g4 ~ f4@9 ~@8]/2", D: "~@12 g4 ~ g4@2", E: "[eb4@11 ~@5]/2", F: "[g3,bb3,eb4]", G: "eb4",
  H: "~@5 g4 ~ f4 ~ g4 ~ f4 ~ g4 ~ f4", I: "[~@5 g3 ~ f3@22 ~@3]/2", J: "~@5 g3 ~ f3@9",
})).s("gm_synth_strings_1").gain(0.25).pan(0.7)

// other · piano · "Honki Tonk Piano"
const piano_2 = note("<~@31 A B C D E ~@11 B C D E@2 ~@22>".pickRestart({
  A: "~@8 eb5@3 d5@3 c5@2", B: "eb5@3 db5@3 b4@2 eb5@6 ~@2", C: "db5@3 eb5@3 db5@2 bb4@6 ~@2",
  D: "bb5@3 ab5@3 gb5@2 f5@6 ~@2", E: "[eb1,eb2]@15 ~",
})).s("gm_piano").gain(0.4).pan(0.2)

// bass · synth bass 2 · "Bass"
const bass = note(`<
  A B C D E F G H I J@2 K L M N O P Q R S T U V W X Y Z O AA AB AC AD AE AF AG@2 J@2 K L M N O P Q R S AE AF AG@2 AH J@2
  K L M N O P Q R S T B C B C B C B AI AJ ~
>`.pickRestart({
  A: "~@9 e1 ~ f1 ~ gb1 ~ g1", B: "ab1@13 ab1@3", C: "bb1@9 e1@2 f1@2 gb1 ~ g1", D: "ab1@9 ab0 ab1@3 eb1 ab1@2",
  E: "bb1@2 bb1@8 eb1 f1@2 gb1@2 g1", F: "ab1@2 ab1@8 ab0 ab1@2 ab0 ab1@2", G: "bb1 ~ bb1@8 eb1 f1@2 gb1@2 g1",
  H: "ab1@2 ab1@8 eb1 ab1@2 eb1 ab1@2", I: "bb1 ~ bb1@10 ~ b1@2 ~", J: "ab1 ~ ab1@13 ~",
  K: "g1 ~ g1@4 ~ g1 b1@2 b1@4 ~ b1", L: "c1@2 c1@4 ~ c1 c2 g1 eb1@2 c1@2 ~ c1", M: "ab1 ~ ab1@11 eb1 ab1@2",
  N: "ab1 ~ ab1@11 ~@2 ab1", O: "g1 ~ g1@4 ~ g1 b1 ~ b1@4 ~ b1", P: "c2 g1 c1@5 c1!2 ~ c1@2 ~ c1@2 c1",
  Q: "ab1@2 ab1@10 ~ ab1 ~ ab1", R: "bb1 ~ bb1@5 bb1!2 ~ bb1@3 ~ bb1@2", S: "eb1@6 ~ eb1 eb2 bb1 eb1@5 eb1",
  T: "g1@2 eb1 bb1@2 eb1 eb2@4 bb1 g1 eb1 ~ eb1@2", U: "ab1 ~ ab1@11 eb1 ~ eb1", V: "ab1@2 ab1@8 ab0@3 ab1 ~ ab1",
  W: "g1 ~ g1@4 ~ g1 b1@3 b0@3 b1@2", X: "c1 ~ c1@2 c2@5 c1 c2 ~ c2@2 bb1@2", Y: "ab1 ~ ab1@7 ab0 ab1@3 ab0 ab1@2",
  Z: "bb1 ~ ab1@7 ~ ab1@2 ~ ab1 ~ ab1", AA: "c1 ~ c1@5 c1 c2 g1 eb1 c1@2 c1 c1@2",
  AB: "ab1 ~ ab1@5 eb1 ab1@2 eb1@3 ab1@2 eb1", AC: "bb1 ~ bb1@4 ~ bb1!2 f1 bb0@2 f1@2 bb1@2",
  AD: "eb1@4 eb1@2 ~@2 eb2 bb1 g1 eb1@2 ~ eb1 ~, ~@7 eb1@2 ~@7", AE: "ab1@7 ab1 db2@2 db2@5 db2",
  AF: "gb1@4 f1@2 ~ f1 eb1 ~ eb1@2 db1@2 ~ gb1", AG: "[ab1@6 ~ ab1 db2 ~ db2@8 db1@3 db2 ~ db2 db2@2 eb2@3 ~ eb2@2]/2",
  AH: "~@2 db1@3 db2 ~ db2 db2@2 eb2@3 ~ eb2@2", AI: "bb1@9 ~ bb1 ~ bb1@4", AJ: "eb1",
})).s("gm_synth_bass_2").gain(0.64)

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

// drums · snare
const snare = s("sd").struct("<~ [~ x ~ x]!71 ~@2>").gain(0.41)

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

// drums · crash
const crash = s("cr").struct("<~@9 A ~@11 A ~@28 A@2 ~@20 A ~>".pickRestart({
  A: "x",
})).gain(0.41)

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

stack(
  piano, piano_soft, electric_guitar_clean, electric_guitar_clean_2, synth_strings_1, synth_strings_1_2, piano_2, bass,
  kick, snare, hihat, crash, tambourine
)

More by Will to Power