Strudelify

I'm Outta Love

Anastacia

KeyB♭ minorTempo122 bpm
0:00/0:00
// I'm Outta Love — Anastacia
// 122 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 117 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/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("<~@33 A@5 B@8 ~@18 A@5 B@8 ~@4 C@2 D@2 E@8 F@8 G@5 H I@7 J@2 ~>".pickRestart({
  A: "[~@4 [c4,f4]@3 [db4,f4]@8 [c4,f4]@4 bb3 [c4,f4]@3 [c4,eb4]@8 [bb3,eb4]@8 [db4,f4]]/5", // F5 Db F5 Cm Eb5 Db
  B: "[~@6 bb3@2 [db4,f4]@6 [a3,c4]@16 [c4,eb4]@12 [eb4,ab4]@4 [c4,eb4]@16 [db4,f4]@16 [c4,f4]@8 [f4,a4]@8 [gb4,bb4]@4 [db4,gb4]@12 [c4,f4]@9 ~@9]/8", // Db Am Cm Ab5 Cm Db F5 F …
  C: "[db3,f3,bb3]/2", D: "[c3,f3,bb3]/2",
  E: "[~@4 [c4,f4,a4]@3 [db4,f4,bb4]@8 [c4,f4,a4]@4 [bb3,eb4] [c4,f4,bb4]@3 [c4,eb4,ab4]@4 [c4,eb4,bb4]@2 [c4,eb4,ab4]@2 [bb3,eb4,g4]@4 [bb3,eb4,g4]@2 [bb3,eb4,ab4] [bb3,eb4,a4] [db4,f4,bb4]@4 [bb3,f4] [db4,f4,bb4]@3 [c4,f4,a4]@4 [a3,c4,f4,g4]@2 [a3,c4,f4]@2 [c4,eb4,ab4]@4 [c4,eb4,bb4]@2 [eb4,ab4,c5]@2 [c4,eb4,bb4]]/8", // F Bbm F Eb5 Fsus4 Ab Cm7 Ab …
  F: "[~@3 [c4,eb4,ab4]@4 [db4,f4,bb4]@8 [c4,f4,a4]@4 [bb3,eb4] [c4,f4,bb4]@3 [c4,eb4,ab4]@4 [c4,eb4,bb4]@2 [c4,eb4,ab4]@2 [bb3,eb4,g4]@6 [bb3,eb4,ab4] [bb3,eb4,a4] [db4,f4,bb4]@4 [bb3,f4] [db4,f4,bb4]@3 [c4,f4,a4]@4 [a3,c4,f4,g4]@2 [a3,c4,f4]@2 [c4,eb4,ab4]@4 [c4,eb4,bb4]@2 [eb4,ab4,c5]@2 [c4,eb4,bb4]]/8", // Ab Bbm F Eb5 Fsus4 Ab Cm7 Ab …
  G: "[~@3 [c4,eb4,ab4]@4 [db4,f4,bb4]@8 [c4,f4,c5]@4 [f4,a4,c5]@4 [gb4,bb4,db5]@2 [db4,gb4,bb4]@6 [c4,f4,a4]@4 eb4@4 db4]/5", // Ab Bbm F5 F Gb F
  H: "eb4 db4 bb3@12 ~@2",
  I: "[~@4 [c4,f4,a4]@3 [db4,f4,bb4]@8 [c4,f4,a4]@4 [bb3,eb4] [c4,f4,bb4]@3 [c4,eb4,ab4]@4 [c4,eb4,bb4]@2 [c4,eb4,ab4]@2 [bb3,eb4,g4]@6 [bb3,eb4,ab4] [bb3,eb4,a4] [db4,f4,bb4]@4 [bb3,f4] [db4,f4,bb4]@3 [c4,f4,a4]@4 [a3,c4,f4,g4]@2 [a3,c4,f4]@2 [c4,eb4,ab4]]/7", // F Bbm F Eb5 Fsus4 Ab Cm7 Ab …
  J: "[~@3 [c4,eb4,bb4]@2 [eb4,ab4,c5]@2 [bb3,f4,bb4]@9]/2", // Cm7 Ab Bb5
})).s("gm_piano").gain(0.05)

// bass · synth bass 1
const bass = note(`<
  ~@9 A B C D E@2 F@2 G@8 H@4 I@3 J K A B C D E@2 F@2 L M N O P Q G@8 H@4 I@3 J ~ A B C D E@2 F@2 L M N O R@2 ~@4 S T U
  ~@2 V W ~@3 X Y B C D E@2 F@2 A M N O P Q A B Z D E@2 F@2 AA
>`.pickRestart({
  A: "bb2 bb1 c2 db2@2 f2@2 bb1", B: "f1@4 ~@4 f1 ~ f1@2 g1@2 ab1@2", C: "ab1@3 ~ ab1 ~ ab1@4 ab1@2 ab1@2 g1@2",
  D: "eb1@2 g1@2 bb1@2 db2 c2", E: "[bb1@3 ~ bb1 ~ bb1@2 db2@2 eb2@2 db2@2 f1@4 ~@6 f1 ~ f1@2 gb1@2 g1 ~]/2",
  F: "[ab1@3 ~ ab1 ~ ab1 ~ ab1@2 ab1@2 g1 ~ eb1@5 ~ g1@4 ab1@3 ~ a1@2 bb1@2]/2",
  G: "[bb1@3 ~ bb1@2 db2@6 eb1 ~ f1@5 ~ f1@4 ~@2 f1@2 g1@2 ab1@5 ~ ab1@4 ~@2 ab1@2 g1@2 eb1@6 eb1@4 ~@2 ab1@2 a1@2 bb1@4 ~@2 bb1@2 db2@5 ~ f2@2 a1@5 ~ a1@4 ~@2 bb1@2 a1 ~ ab1@4 ~@2 ab1@4 ~@2 ab1@2 g1@2 eb1@4 ~ d1 eb1@3 ~ g1@4 ab1 ~ a1@2]/8",
  H: "[~@3 a1 bb1@4 db2@4 f2@2 f1@6 f1@4 ~@2 f1@2 f1@2 gb1@4 ~@2 gb1@3 ~ gb1@2 gb1@2 f1@2 eb1@4 eb1@2 e1@2 f1@3 ~ f1@2 ab1@4]/4",
  I: "[bb1@4 bb1@4 db2@4 bb1@2 f1@5 ~ f1@5 ~ e1@2 f1@2 gb1@4 gb1@2 db2@2 eb2@4 db2@5 ~]/3",
  J: "f1@4 f1@4 ~@2 f2 ~ f2@2 f1@2", K: "~@3 f2", L: "~ bb1@2 ~ c2@2 db2@4 f2@4 bb1@2, bb2 ~@7",
  M: "f1@4 f1@2 ~@4 f1@2 f1 ~ f1@2", N: "gb1@3 ~ gb1@3 ~ gb1@2 bb1@2 db2@2 bb1@2", O: "f2@2 f2 ab2 f2 db2@3",
  P: "bb1@3 ~@13", Q: "~@2 bb2@2 db3@2 eb3@2 f3@4 db3@3 ~", R: "[gb1@9 ~@7]/2", S: "c2", T: "f2@4 f2@4 f2@4 f2@3 ~",
  U: "f2@3 ~@3 f1@2 f2@5 ~@3", V: "~@5 bb2 bb1@2", W: "~@3 bb1", X: "bb2 ab2 f2 eb2 db2@2 eb2@2",
  Y: "bb1@3 ~ c2@2 db2@4 f2@4 bb1@2", Z: "ab1@4 ab1 ~ ab1@4 ab1@2 ab1@2 g1@2", AA: "bb1 ~@3",
})).s("gm_synth_bass_1").gain(0.43)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@9 A B C D A B C D ~@17 A E C D A F C D A B G F H@2 ~@17 A E C D A F C D A B G F I@2 J@2 K@2 L M ~@9 A E N D O E N D
  O B P F H@2 A E N D O E N ~@2
>`.pickRestart({
  A: "[bb3,db4,f4]", B: "[f3,bb3,eb4]", C: "[ab3,c4,eb4]", D: "[g3,bb3,eb4]", E: "[bb3,eb4,f4]", F: "[a3,c4,f4]",
  G: "[gb3,bb3,db4]", H: "[f3,bb3,db4]/2", I: "[[bb3,db4], [gb3,f4]@15 ~]/2", J: "[a3,c4,eb4,f4]/2",
  K: "[gb3,bb3,db4,f4]/2", L: "[g3,bb3,c4,f4]", M: "[f3,bb3,c4,eb4]", N: "[ab3,c4], eb4 ~@15", O: "[db4,f4], bb3 ~@15",
  P: "[gb3,db4], bb3 ~@15", // Gb5
})).s("gm_synth_strings_1").gain(0.24)

// other · synth brass 1
const synth_brass_1 = note("<~@51 A@2 ~@2 B C ~@2 D@2 ~ E@3 ~@52>".pickRestart({
  A: "[~@6 ab4 bb4@3 ab4 f4 ~@4]/2", B: "~@2 f4@2 eb4 db4!2 eb4", C: "db4@7 ~@9",
  D: "[db4@4 f4@4 ab4@4 bb4 ~ bb4@9 ~@9]/2", E: "[f4@17 ~@7]/3",
})).s("gm_synth_brass_1").gain(0.39)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@2 A ~ B ~ C ~@42 D E ~ F G H I J@2 ~ K L M ~ N ~@13 O P Q ~ R ~@2 S T ~@29 U ~
>`.pickRestart({
  A: "[bb4,db5,ab5]@3 [bb4,db5,ab5]@2 [bb4,db5,ab5]@2 ~ [bb4,db5,ab5]@2 ~ [bb4,db5,ab5]@2 ~@3", // Bbm7
  B: "~@4 [f4,bb4,db5]@2 ~ [f4,bb4,db5]@2 [f4,bb4,db5]@2 ~@5", // Bbm
  C: "[bb4,db5,ab5]@2 ~ [bb4,db5,ab5]@2 [bb4,db5,ab5]@2 ~ [bb4,db5,ab5]@2 ~ [bb4,db5,ab5]@2 ~@3", // Bbm7
  D: "~@8 bb3@3 ~ bb3 ~ bb3 ~", E: "bb3@2 ~@2 bb3@2 ~@2 bb3 ~ bb3 ~ bb3@2 ~@2", F: "~@6 bb3 ~ bb3 ~ bb3@2 ~@4",
  G: "eb4@2 ~@2 eb4@2 ~@2 eb4@2 ~@2 eb4 ~ eb4 ~", H: "ab3@3 ~ ab3@3 ~@5 ab3@2 bb3 ~", I: "g3 ~@7",
  J: "[~@10 eb4@4 ~ a3@5 ~@12]/2", K: "~@10 f4@2 ab4 ~ a4 ~", L: "~@6 bb4 ~ db5 ~ bb4@2 ~@4",
  M: "~@4 f5 ~@3 eb5@2 db5 ~ bb4@2 ~@2", N: "~@2 bb3 ~ bb3 ~ bb3 ~ db4@2 bb3 ~ bb3 ~ bb3@2",
  O: "[bb3,db4,f4]@5 ~ [bb3,db4,f4]@10", P: "[f4,bb4,db5] ~@7",
  Q: "[a3,c4,eb4,f4]@2 ~ [a3,c4,eb4,f4]@2 ~ [a3,c4,eb4,f4]@2 ~@8", // F7
  R: "[gb3,bb3,db4,f4]@2 ~ [gb3,bb3,db4,f4]@2 ~ [gb3,bb3,db4,f4]@2 [gb3,bb3,db4,f4]@3 ~@5", // Gbmaj7
  S: "[a3,c4,f4]@4 [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~", T: "[a3,c4,f4]@3 ~@13",
  U: "~ [bb4,db5,f5]@2 f4 ~ [bb4,db5,f5] ~ f4 [bb4,db5,f5] ~ [bb4,db5,f5] ~ f4 [bb4,eb5,g5]@2 f4", // Bbm Eb
})).s("gm_electric_guitar_clean").gain(0.21).pan(0.9)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@2 A ~ B@2 A ~@47 C ~@24 D ~ E ~@35>".pickRestart({
  A: "~@13 [bb4,db5,ab5]@2 ~", B: "[~@12 [f4,bb4,db5]@2 ~ [f4,bb4,db5]@2 [f4,bb4,db5]@2 ~@13]/2", C: "~@8 ab3 ~@7",
  D: "~@8 [a3,c4,eb4,f4]@3 ~ [a3,c4,eb4,f4]@2 ~@2", E: "~@12 [gb3,bb3,db4,f4]@3 ~",
})).s("gm_electric_guitar_clean").gain(0.1).pan(0.9)

// chords · electric guitar clean
const electric_guitar_clean_3 = note(`<
  ~@4 A B ~@8 C D E ~@23 F G ~@4 H I ~@23 F G ~@5 J ~ K ~ L M ~@16 F G ~@3 N H O ~@9
>`.pickRestart({
  A: "~@2 [bb4,eb5] [bb4,db5]", B: "[bb4,db5]@11 ~@5", C: "~@10 f4 ~ f4@2 eb4 ~",
  D: "[f4,bb4] ~ [f4,bb4] ~ [f4,bb4] ~@3", E: "~@8 [f4,db5]@2 [f4,bb4] ~ [f4,bb4] ~ [f4,ab4] ~",
  F: "[eb4,ab4] ~ [eb4,ab4] ~ [eb4,ab4] ~ [eb4,ab4] ~", G: "[bb4,f5] ~ [bb4,eb5] ~ [bb4,db5] [bb4,eb5] ~@2",
  H: "[bb3,db4,f4]@2 ~@2 [bb3,db4,f4] ~ [bb3,db4,f4] [bb3,db4,f4]@2 ~ [bb3,db4,f4] ~@5", // Bbm
  I: "~@2 bb3@2 db4@2 eb4@2 f4@4 db4@3 ~", J: "~@6 [bb3,db4,f4]@5 ~@5", K: "[a3,c4,eb4,f4]@3 ~@3 [a3,c4,eb4,f4]@5 ~@5",
  L: "[bb3,db4,f4]@3 ~@3 [bb3,db4,f4]@5 ~@5", M: "[bb3,c4,f4]@3 [bb3,c4,f4]@3 ~@2",
  N: "~@2 bb3@2 db4 ~ eb4 ~ f4 eb4 db4 ~ bb3@2 ab3 ~", O: "~ bb3 db4 eb4 f4@2 db4 ~",
})).s("gm_electric_guitar_clean").gain(0.34)

// chords · epiano2
const epiano2 = note(`<
  A B@2 C@2 D@2 E F G@2 H@2 I@2 J@2 K L M@2 N@4 O@3 P Q@3 R S G@2 H@2 T@2 U@2 G@2 V W ~@2 K L M@2 N@4 O@3 P Q@3 R S G@2
  H@2 T@2 U@2 G@2 V W ~ X Y@2 Z@2 AA AB AC ~@8 G@2 H@2 I@2 J@2 G@2 V W ~@2 G@2 H@2 I@2 AD AE AF
>`.pickRestart({
  A: "bb2@3 ~@4 f2", B: "[bb2@5 ab3 ~ bb3 ~ bb3 ~ db4 ~ db4 f4 e4 gb2@6 ~@10, ~@12 f2@2 ~ eb4@3 ~@14]/2",
  C: "[gb2@6 ~ eb4 f4@2 db4!2 eb4@8 db4@2 bb3 ~@7 f2@2, ~@8 e4 ~@3 gb2@4 ~@16, ~@12 d4 ~@19]/2",
  D: "[~@5 ab3 ~ bb3 ~ bb3 ~ db4 ~ db4 f4 ~ gb2@6 ~@7 db4 eb4 ~, ~@12 f2@2 ~ eb4@4 ~@13]/2",
  E: "[eb4,e4] ~@9 bb4@4 ab4 f4, f4@7 ~@3 ab4 ~@5", F: "eb4@5 ~@3 eb4!2 db4 ~ eb4!2 db4 ~",
  G: "[[f3,bb3,db4]@7 ~@7 [f3,bb3,c4,eb4]@17 ~]/2", H: "[~@4 [ab3,c4,eb4]@5 ~ [ab3,c4,eb4]@3 ~ [g3,bb3,eb4]@15 ~@3]/2",
  I: "[[f3,bb3,db4]@8 ~@6 [f3,bb3,c4,eb4]@17 ~]/2", // Bbm Fsus4
  J: "[~@4 [ab3,c4,eb4]@4 ~@2 [ab3,c4,eb4]@3 ~ [g3,bb3,eb4]@7 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~@3]/2", // Ab Eb
  K: "[f3,bb3,db4]@7 ~", L: "[c3,f3,a3]@3 ~ [c3,f3]@3 ~@3 [c3,f3]@2 g3@2 [eb3,ab3]@2, ~@12 d3 ~@3",
  M: "[~@4 [eb3,ab3]@3 ~@3 [eb3,ab3]@2 [eb3,g3]@2 [bb2,eb3]@4 ~@2 [bb2,eb3]@3 ~@3 [c3,eb3,ab3]@4 ~@2]/2", // Ab5 Eb Eb5 Ab
  N: "[[db3,f3,bb3]@4 ~@6 [f3,bb3] ~ [f3,bb3] ~ [c3,f3,a3]@4 ~@2 [c3,f3,a3]@2 ~@4 [f3,bb3] ~ [f3,a3] ~ [eb3,ab3]@5 ~ [eb3,ab3]@3 ~@3 [eb3,ab3] ~ [eb3,ab3] ~ [eb3,g3]@5 ~ [bb2,eb3]@2 ~@2 [eb3,g3]@2 ab3@2 a3@2 [bb2,f3,bb3]@2, ~@58 eb3 ~ eb3 ~@3]/4", // Bbm Bb5 F Bb5 F Ab5 Eb Eb5 …
  O: "[~@4 [bb2,f3,bb3,db4]@6 [f3,bb3,db4] ~@3 [f3,a3,c4]@7 ~@5 [f3,a3,c4]@3 ~ [db3,gb3,bb3]@6 [gb3,bb3]@2 ~@4 [db3,gb3] ~ [db3,gb3] ~ gb3 ~, ~@36 db4 ~@11]/3", // Bbm F Gb Gb5
  P: "[gb3,bb3,eb4]@5 ~ [a3,c4,f4]@5 ~@5", // Ebm F
  Q: "[[f3,bb3,db4]@4 [f3,bb3,db4]@2 ~@4 [f3,bb3,db4] ~@3 [f3,a3,c4]@5 ~ [f3,a3,c4] ~@5 [f3,a3,c4] ~@3 [gb3,bb3,db4]@5 ~ [gb3,bb3,db4]@2 ~@4 [gb3,bb3,db4] ~@5]/3", // Bbm F Gb
  R: "[a3,c4,f4]@7 ~ [a3,c4,f4]@2 [a3,c4] ~ [f3,a3,c4] ~ f3@2, ~@14 a3 ~", S: "[f3,a3,c4,f4] ~@7",
  T: "[[f3,bb3,db4]@8 ~@6 [f3,a3,c4,f4]@17 ~]/2", // Bbm F
  U: "[~@4 [ab3,c4,eb4]@4 ~@2 [ab3,c4,eb4]@3 ~ [g3,bb3,eb4]@6 ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~@3]/2", // Ab Eb
  V: "~@4 [gb3,bb3,db4]@5 ~ [gb3,bb3,db4]@3 ~@3", W: "[a3,c4,f4]@15 ~",
  X: "~@8 bb3@2 [b3,c4] ~ eb4@2 eb3@2, ~@5 db4 ~@2", // Cmaj7
  Y: "[[a3,c4,eb4,f4]@18 ~@4 f3@2 ~@2 ab4@2 db4 ~@3, f2 ~@5 [eb4,bb4] ~]/2", // F7 Eb5
  Z: "[[gb3,bb3,db4,f4]@20 ~@2 bb3@4 db4@2 eb4 ~@3]/2", AA: "[c3,g3,c4]@15 ~, [bb3,f4]@13 ~@3", AB: "[f2,f3,bb3,eb4]",
  AC: "[f2,f3,bb3,eb4] ~@7", AD: "~@4 [ab3,c4,eb4]@4 ~@2 [ab3,c4,eb4]@3 ~@3",
  AE: "[bb4,db5,f5]@2 f4 ~ [bb4,db5,f5] ~ f4 [bb4,db5,f5] ~ [bb4,db5,f5] ~ f4 [bb4,eb5,g5]@2 f4 ~", // Bbm Eb
  AF: "[bb3,db4,f4]@3 ~@13, [bb4,db5,f5] ~@15", // Bbm
})).s("gm_epiano2").gain(0.39)

// chords · epiano2 · soft notes
const epiano2_soft = note("<A B C D E F C G@2 ~@18 H ~@4 I ~@25 H ~@4 I ~@53>".pickRestart({
  A: "~@3 f3@4 ~", B: "~@6 ab3 a3 ~ b3 c4 ~@3 e2@2, ~@3 f3@3 ~@2", C: "~@3 db3@5", D: "~@3 db3@3 ~@2",
  E: "bb2@3 f3@4 ~", F: "bb2@6 ab3 a3 ~ b3 c4 ~@3 e2@2, ~@3 f3@3 ~@2", G: "[f2@6 f3@18 f4 ~@3 f4 ~@3]/2",
  H: "~@14 db3 ~", I: "f3@7 ~ f3@2 f3@2 f4 ~ [c4,f4] ~, ~@10 f4 ~@5",
})).s("gm_epiano2").gain(0.26)

// chords · electric guitar clean
const electric_guitar_clean_4 = note(`<
  ~@9 A B A B A B A B ~@17 A B A B A C A B D B E C ~@19 A B A B A C A B D B E C ~@9 F G H I F G H I A J A J A J A J D J
  E K ~@2 A J A J A J A ~ L
>`.pickRestart({
  A: "[f4,bb4]@3 ~ [f4,bb4]@2 ~ [f4,bb4] ~ [f4,bb4]!2 ~ [f4,bb4] ~@3", // Bb5
  B: "[f4,bb4]@3 ~ [f4,bb4]@2 [f4,bb4]!2 ~ [f4,bb4]!2 ~ [f4,bb4]!4", // Bb5
  C: "[f4,c5]@3 ~ [f4,c5]@2 [f4,c5]!2 ~ [f4,c5]!2 ~ [f4,c5]!4", // F5
  D: "[f4,bb4]@3 ~ [f4,bb4]@2 ~ [f4,bb4] ~ [f4,bb4]!2 ~ [f4,bb4]@2 ~@2", // Bb5
  E: "[gb4,db5]@3 ~ [gb4,db5]@2 ~ [gb4,db5] ~ [gb4,db5]!2 ~ [gb4,db5] ~@3", // Gb5
  F: "[f4,bb4,db5]@3 ~ [f4,bb4,db5]@2 ~ [f4,bb4,db5] ~ [f4,bb4,db5]!2 ~ [f4,bb4,db5] ~ [f4,bb4,db5]!2", // Bbm
  G: "[f4,a4,c5]@3 ~ [f4,a4,c5]@2 [f4,a4,c5] c5 [f4,a4] [f4,a4,c5]!2 ~ [f4,a4,c5]!4", // F
  H: "[ab4,c5,eb5]@3 ~ [ab4,c5,eb5]@2 ~ [ab4,c5,eb5] ~ [ab4,c5,eb5]!2 ~ [ab4,c5,eb5] ~ [ab4,c5,eb5]!2", // Ab
  I: "[g4,bb4,eb5]@3 ~ [g4,bb4,eb5]@2 [g4,bb4,eb5]!2 ~ [g4,bb4,eb5]!2 ~ [g4,bb4,eb5]!4", // Eb
  J: "[f4,bb4]@3 ~ [f4,bb4]@2 [f4,bb4] bb4 f4 [f4,bb4]!2 ~ [f4,bb4]!4", // Bb5
  K: "[f4,c5]@3 ~ [f4,c5]@2 [f4,c5] c5 f4 [f4,c5]!2 ~ [f4,c5]!4", L: "[f4,bb4]@3 ~@13",
})).s("gm_electric_guitar_clean").gain(0.15).pan(0.6)

// other · lead 8 bass lead
const lead_8_bass_lead = note(`<
  ~@9 A@8 ~@17 A@10 B A ~@19 A@10 B A@9 ~@9 C A C A C A C A C A B A ~@2 C A C A C A C ~@2
>`.pickRestart({
  A: "f3!16", B: "gb3!16", C: "f3!8 ~ f3!7",
})).s("gm_lead_8_bass_lead").gain(0.08).pan(0.6)

// chords · clavinet
const clavinet = note(`<
  ~@34 A B C D A B C D A B C D E@2 ~@17 F B G H A B G H A B C H ~@17 A B C D A B C D A B C D I@2 A B C D A B C J K
>`.pickRestart({
  A: "[f3,bb3] ~ bb2 ~ f3@2 bb2 [f3,bb3] ~ [f3,bb3] ~ bb2 [f3,bb3] ~ bb2 ~, ~@4 bb3 ~@11", // Bb5
  B: "[c3,f3] ~ f2 ~ [c3,f3] ~ f2 [c3,f3] ~ [c3,f3] ~ f2 [c3,f3] ~ f2 ~", // F5
  C: "[eb3,ab3]@2 ab2 ~ [eb3,ab3] ~ ab2 [eb3,ab3] ~ [eb3,ab3] ~ ab2 [eb3,ab3] ~ ab2 ~", // Ab5
  D: "[bb3,eb4] ~ eb3 ~ [bb3,eb4] ~ eb3 [bb3,eb4] ~ [bb3,eb4] ~ eb3 [bb3,eb4] ~ eb3 ~", // Eb5
  E: "[~@10 f4 ~ db4@8 ~@4 f4@4 db4@2 ~@2]/2",
  F: "[f3,bb3] ~ bb2 ~ [f3,bb3] ~ bb2 [f3,bb3] ~ [f3,bb3] ~ bb2 [f3,bb3] ~ bb2 ~", // Bb5
  G: "eb3@2 ab2 ~ [eb3,ab3] ~ ab2 [eb3,ab3] ~ [eb3,ab3] ~ ab2 [eb3,ab3] ~ ab2 ~, ab3 ~@15", // Ab5
  H: "[bb3,eb4] ~ eb3 ~ [bb3,eb4] ~ eb3 [bb3,eb4] ~ [bb3,eb4] ~@2 [bb3,eb4] ~ eb3 ~, ~@11 eb3@3 ~@2", // Eb5
  I: "[f3,bb3] ~ bb2 ~ [f3,bb3] ~ bb2 [f3,bb3] ~ [f3,bb3] ~ bb2 [f3,bb3]@2 bb2 ~", // Bb5
  J: "bb3 ~ db4 bb3 db4 bb3 db4 bb3 ~ db4 ~ db4 bb3 ~ db4 ~", K: "bb3 ~@15",
})).s("gm_clavinet").gain(0.24)

// chords · electric guitar clean
const electric_guitar_clean_5 = note(`<
  ~@34 A B C D E F G D H I J ~@20 A B C D E F C D H I J ~@18 A B C D E K G D H I J ~@3 A K C D E K C ~@2
>`.pickRestart({
  A: "~@5 [bb4,db5,f5]@2 ~@5 [bb4,db5,f5]@2 ~@2", B: "~@5 [bb4,c5,f5]@2 ~@5 [bb4,c5,f5]@2 ~@2",
  C: "~@2 [ab4,c5,eb5] ~@3 [ab4,c5,eb5] ~", D: "~@2 [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~",
  E: "~@2 [bb4,db5,f5] ~@3 [bb4,db5,f5] ~", F: "~@2 [a4,c5,f5] ~@3 [a4,c5,f5] ~",
  G: "~@5 [ab4,c5]@2 ~@5 [ab4,c5,eb5]@2 ~@2, ~@2 eb5 ~@5", H: "~@2 [f4,bb4,db5] ~@3 [f4,bb4,db5] ~",
  I: "~@2 [f4,bb4,c5] ~@3 [f4,bb4,c5] ~", J: "~@2 [gb4,bb4,db5] ~@3 [gb4,bb4,db5] ~",
  K: "~@2 [bb4,c5,f5] ~@3 [bb4,c5,f5] ~", // Bbsus2
})).s("gm_electric_guitar_clean").gain(0.13).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@9 A@24 B A@12 B ~ A@16 B A@12 ~@7 C B A@20 B ~ A@8 B>".pickRestart({
  A: "x!4", B: "x", C: "~@2 x!2",
})).gain(0.8)

// drums · clap
const clap = s("cp").struct("<~@9 A@24 B A@12 ~@2 A@16 B A@12 ~@9 A@20 ~@2 A@7 ~@2>".pickRestart({
  A: "~ x ~ x", B: "x",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@9 A@24 B A@12 ~@2 A@16 B A@12 ~@9 A@20 ~@2 A@7 ~ B>".pickRestart({
  A: "~ x ~ x", B: "x",
})).gain(0.32)

// … 20 more lines

More by Anastacia