Strudelify

Wish I Could Fly

Roxette

KeyB♭ majorTempo80 bpm
0:00/0:00
// Wish I Could Fly — Roxette
// 80 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 1 "Female lead (honky tonk)" named as a piano, played on piano (its pad halo patch is not one); ch 2 "Male lead (bass + lead)" named as a bass, played on electric bass finger (its pad choir patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/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.

// other · piano · "Female lead (honky tonk)"
const piano = note(`<
  ~@10 A B C D A E F G H@6 I J@2 E K D L M N@2 O@2 P@4 Q R@2 S ~@16 T@2 U@4 V W@2 X@2 Y Z ~ AA ~@3 AB AC AD AE AF AG@2 ~
  AH AI ~@5
>`.pickRestart({
  A: "~@12 c4!3 bb3", B: "c4 bb3@4 ~@3", C: "~@11 c4!4 bb3", D: "c4@2 bb3@7 ~@7", E: "c4@2 bb3@5 ~@9",
  F: "~@5 c4!5 ~ c4@2 c4!2 bb3", G: "c4 bb3@3 ~@4",
  H: "[~@7 f4 f4@2 f4@2 g4@2 a4@8 ~@2 a4@2 g4@2 f4@2 g4@4 f4@4 ~@2 a4@2 g4@2 f4@2 bb4@8 ~@2 bb4@2 f4@2 g4 ~ g4@7 ~@3 g4@2 a4@2 bb4@2 a4@8 ~@2 a4@2 g4@2 f4 ~ f4@2]/6",
  I: "eb4@4 ~@2 eb4@2 f4@2 ~ f4@3 g4@2", J: "[f4@2 d4@3 ~ d4 ~ d4@2 c4@2 bb3@2 c4@4 d4@4 ~@4 g3!2 bb3 c4!2 bb3]/2",
  K: "~@4 c4@5 ~@3 c4!3 bb3", L: "~@6 c4!4 ~ c4@2 bb3 c4@2", M: "bb3 ~", N: "[~@8 c4!4 c4@2 bb3 c4@3 bb3@6 ~@8]/2",
  O: "[~@7 f4 f4@2 f4@2 g4@2 a4@8 ~@2 a4@4 g4 f4 g4@2]/2",
  P: "[f4@7 ~ a4@2 g4@2 f4@2 bb4@8 ~@2 bb4@2 a4@2 g4 ~ g4@7 ~ g4 ~ g4@2 a4@2 bb4@2 a4@4 f4@3 ~@2 f4 a4@4 g4 f4 f4@2]/4",
  Q: "eb4@5 ~@2 eb4 f4@2 ~ f4@3 g4@2", R: "[f4@2 d4@3 ~ d4 ~ d4@2 c4@2 bb3@2 c4@4 d4@3 ~ e4 ~ e4@2 g4@2 a4 ~ a4@2]/2",
  S: "g4@7 ~@9", T: "[~@7 f4!2 ~ f4@2 g4@2 a4@7 ~@2 a4 a4@4 g4 f4 g4@2]/2",
  U: "[f4@6 ~@2 c5@2 bb4@2 a4@2 g4@4 d4@3 ~@2 g4 g4@2 a4@2 bb4@2 g4@6 ~@2 g4 ~ g4@2 a4@2 bb4@2 a4@4 f4@4 ~ f4 a4@4 ~ f4 f4@2, ~@30 g4 ~]/4",
  V: "eb4@6 ~ eb4 f4@2 ~ f4@3 g4@2", W: "[f4@2 d4@3 ~ d4 ~ d4@2 eb4@2 d4@2 c4@4 d4@6 ~@8]/2",
  X: "[~@6 bb4 ~ bb4@2 a4@2 g4@2 a4@4 g4@10 c5@4]/2", Y: "bb4@15 ~", Z: "eb4@2 ~ eb4@3 f4@6 ~@4",
  AA: "~@3 f4 bb4!2 bb4@2 g4@2 f4@5 ~", AB: "~@11 f4!4 eb4", AC: "f4 eb4@5 ~@2", AD: "~@14 eb4!2",
  AE: "eb4!3 d4 f4@8 ~@4", AF: "~@11 c5!4 ~", AG: "[c5 bb4@6 g4@6 ~@3]/2", AH: "~@11 f4!4 ~", AI: "f4@2 eb4@11 ~@3",
})).s("gm_piano").gain(0.8).pan(0.6)

// bass · electric bass finger · "Male lead (bass + lead)"
const bass = note(`<
  ~@10 A B C D A B E B F@6 G H@2 D I J K L M@2 N@2 O@4 P Q@2 R S ~ T ~ S U ~@10 N@2 V@4 P W@2 X@2 Y@2 ~ Z AA AB ~ AC
  AB@2 ~@2 AB@2 ~@8
>`.pickRestart({
  A: "~@12 g3!3 f3", B: "g3 f3@2 ~@5", C: "~@11 g3!4 f3", D: "g3@2 f3@3 ~@11", E: "~@5 g3!5 ~ g3 ~ g3!2 f3",
  F: "[~@7 c4!2 ~ c4@2 d4@2 e4@9 ~ e4@2 d4@2 c4@2 d4@4 c4@4 ~@2 e4@2 d4@2 c4@2 f4@8 ~@2 f4@2 c4@2 d4 ~ d4@7 ~@3 c4@2 d4@2 e4@2 c4@9 ~ c4 ~ c4 ~ c4@2 bb3 ~]/6",
  G: "bb3@4 ~@2 bb3 ~ c4@3 c4@2 ~ d4 ~", H: "[c4@2 bb3@3 ~ bb3 ~ bb3@2 a3@2 g3@2 a3@4 ~@8 d3!2 f3 g3!2 f3]/2",
  I: "~@7 c3@4 ~ g3!3 f3", J: "g3@2 f3@5 ~@9", K: "~@6 g3!4 ~ g3@2 f3 g3@2", L: "f3@5 ~@11",
  M: "[~@8 g3!4 g3@2 f3 g3@3 f3@5 ~@9]/2", N: "[~@7 c4!2 ~ c4@2 d4@2 e4@8 ~ e4 e4@4 d4 c4 d4@2]/2",
  O: "[c4@8 e4@2 d4@2 c4@2 f4@9 ~ f4@2 c4@2 d4 ~ d4@7 ~ c4 ~ c4@2 d4@2 e4 ~ e4@4 c4@5 c4 c4@3 ~ c4!2 c4@2]/4",
  P: "bb3@6 ~ bb3 c4@2 ~ c4@3 d4@2", Q: "[c4@2 bb3@3 ~ bb3 ~ bb3@2 a3@2 g3@2 a3@4 ~@4 e3 ~ e3@2 g3@2 a3 ~ a3@2]/2",
  R: "g3 ~@3", S: "~@3 g3 b3 d4 d4@2 b3@2 g3@5 ~", T: "~@3 g3 b3 d4 d4@2 b3@2 g3@6", U: "d4@13 ~@3",
  V: "[c4@6 ~@2 e4@2 d4@2 c4@2 g4@4 d4@3 ~@2 f4 f4@2 c4@2 d4 ~ d4@6 ~@2 c4 ~ c4@2 d4@2 e4 ~ e4@4 c4@4 ~ c4 d4@4 c4!2 c4@2]/4",
  W: "[c4@2 bb3@3 ~ bb3 ~ bb3@2 a3@2 g3@2 a3@4 ~@4 g3 ~ g3@3 a3@3 g3 ~]/2",
  X: "[g3@2 f3@3 ~ f3@2 a3@2 g3@2 f3@2 g3@10 ~@8]/2", Y: "[~@3 g3 d4!2 d4@2 bb3@2 g3@8 ~ g3 d4!2 d4@2 bb3@2 g3@6]/2",
  Z: "g3 ~ g3@2 f3@2 g3@5 ~ g3 ~ g3@2", AA: "bb3@2 ~ g3 d4!2 [bb3,d4]@2 ~@2 g3@6, ~@2 bb3@3 ~@3 bb3@5 ~@3",
  AB: "~@3 g3 d4!2 d4@2 bb3@2 g3@6", AC: "f4 ~ f4@2 eb4@2 c4@6 ~@4",
})).s("gm_electric_bass_finger").gain(0.57)

// chords · synth strings 1 · "Syn strings"
const synth_strings_1 = note(`<
  ~@3 A B C B D B D B A E A E D E F G H E I J H K I L M N A E D E A E H E I J H K I L O P Q P Q P I J H E I R S@2 A B C
  T@2 E I J H K I J I J U I V@2 U I W X U I W X U I W X ~@6
>`.pickRestart({
  A: "[g3,bb3,d4,f4]@7 [eb3,g3,bb3,d4]@9", B: "[f3,a3,c4,f4]", C: "[bb3,d4,f4] [eb3,g3,bb3,d4], g3 ~@3",
  D: "[g3,bb3,d4,f4] [eb3,g3,bb3,d4]", E: "[f3,a3,c4,e4]", F: "[bb3,d4]@7 [eb3,g3,bb3,d4]@9, [g3,f4] ~@3",
  G: "[f3,a3,c4,e4]@15 ~", H: "[a3,c4,e4,g4]", I: "[d3,f3,a3,c4]", J: "[e3,g3,b3,d4]", K: "[ab3,c4,eb4]",
  L: "[e3,g3,b3,d4] ~", M: "[g3,bb3,d4,f4]@7 ~ [eb3,bb3]@8, ~@7 [g3,d4]@9", N: "[a3,c4,e4], f3@11 ~@5",
  O: "[b3,d4,gb4,a4] [g3,b3,d4,gb4]", P: "[a3,d4,gb4,a4]", Q: "[b3,d4,gb4,a4] [g3,b3,d4,g4]", R: "[e3,g3,b3,d4]@15 ~",
  S: "[[e3,g3,b3,d4]@3 ~]/2", T: "[[a3,c4] [a3,c4,e4,g4], [f3,f4]]/2", U: "[c3,eb3,g3,bb3]",
  V: "[[f3,bb3,d4]@15 ~ [a3,c4]@16, ~@15 f3@17]/2", W: "[f3,bb3,d4]", X: "[f3,a3,c4]",
})).s("gm_synth_strings_1").gain(0.48)

// bass · acoustic bass · "Ac. bass"
const bass_2 = note(`<
  ~@3 A B A B A C A D A B A B A C A D E F G H I J K L A B A B A C A D M N O P Q R S T U V W X W Y Z AA AB AC AD AA AE AF
  A B A B AG AH AI AJ AG AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AL AY AG AZ AL BA BB ~@6
>`.pickRestart({
  A: "g1@3 ~ g1@3 bb1@2 g1 bb1@3 ~ bb1@2", B: "c2@3 ~ c2@2 ~ c2@2 bb1 c2@4 bb1@2",
  C: "c2@3 ~ c2@2 ~ c2@2 ~ c2@4 bb1@2, ~@9 bb1@2 ~@5", D: "c2@3 ~ c2@2 ~ c2@2 bb1 c2@3 ~@3",
  E: "f1@2 ~ f1@2 ~ f1@5 ~ f1 ~ f1@2", F: "d1@2 ~ d1@2 ~ d1@4 ~@2 d1@4", G: "g1@3 g1@2 ~ g1@5 ~ g1@3 ~",
  H: "c2@2 ~ c2@2 ~ c2@5 ~ c2 ~ c2@2", I: "f1@2 ~ f1@2 ~ f1@4 ~@2 f1@4", J: "eb1@2 ~ eb1@2 ~ eb1@6 ~@2 eb1@2",
  K: "bb1@2 ~ bb1@2 ~ bb1@4 ~@2 bb1@3 ~", L: "c2@2 ~ c2@2 ~ c2@2 ~@8", M: "f1@2 ~ f1@2 ~ f1@3 ~@3 f1@2 f1@2",
  N: "d1@2 ~ d1@2 ~ d1@3 ~ d1 ~ d1 ~ d1@2", O: "g1@2 ~ g1@2 ~ g1@4 ~@2 g1 ~ g1!2",
  P: "c2@2 ~ c2 ~@2 c2@3 ~ c2 ~ c2 ~ c2@2", Q: "f1@2 ~ f1@2 ~ f1@4 ~@2 f1 ~ f1@2", R: "eb1@2 ~ eb1@2 ~ eb1@4 ~@2 eb1@4",
  S: "bb1@3 bb1@2 ~ bb1@4 ~@2 bb1 ~ bb1@2", T: "c2@2 ~ c2@2 ~ c2@4 ~@2 c2 ~ c2!2", U: "g1@2 ~ g1@2 ~ g1@2 c2@4 b1@4",
  V: "d2@2 ~ d2@2 ~ d2@4 ~@2 d2 ~ d2!2", W: "g1@2 ~ g1@2 ~ g1@2 c2@3 ~ b1@3 ~", X: "d2@2 ~ d2@2 ~ d2@5 ~ d2 ~ d2@2",
  Y: "d2@2 ~ d2@2 ~ d2@4 ~@2 d2@2 ~@2", Z: "d2@2 ~ d2@2 ~ d2@4 ~@2 d2@2 d2@2", AA: "c2@2 ~ c2@2 ~ c2@4 ~@2 c2@4",
  AB: "g1@2 ~ g1@2 ~ g1@5 ~ g1@3 ~", AC: "g1@2 ~@2 g1 ~ g1@2 ~@4 g1@2 g1@2", AD: "d2@2 ~ d2@2 ~ d2@4 ~@2 d2@4",
  AE: "g1 ~@7", AF: "~@3 bb1", AG: "f1@2 ~ f1@2 ~ f1@3 ~ f1 ~ f1@4", AH: "d1@2 ~ d1@2 ~ d1@3 ~ d1 ~ d1@4",
  AI: "g1@2 ~ g1@2 ~ g1@4 g1 ~ g1 ~ g1!2", AJ: "c2@2 ~ c2@2 ~ c2@3 ~ c2 ~ c2 ~ c2!2",
  AK: "eb1@2 ~ eb1@2 ~ eb1@4 ~ eb1@2 ~ eb1@2", AL: "bb1@2 ~ bb1@2 ~ bb1@3 ~ bb1 ~ bb1@4",
  AM: "c2@2 ~ c2@2 ~ c2@3 ~ c2 ~ c2@2 ~@2", AN: "bb1@2 ~ bb1@2 ~ bb1@3 ~ bb1 ~ bb1 ~ bb1@2",
  AO: "c2@2 ~ c2@2 ~ c2@4 c2 ~ c2@3 ~", AP: "c2@2 ~ c2 ~@2 c2@3 c2 ~@2 c2@3 ~", AQ: "bb1@2 ~ bb1@2 ~ bb1@3 ~@3 bb1@4",
  AR: "f1@2 ~ f1@2 ~ f1@4 ~@2 f1@3 ~", AS: "f1@2 ~ f1 ~@2 f1@3 ~@3 f1@4", AT: "c2@2 ~ c2@2 ~ c2@3 ~ c2 ~ c2@4",
  AU: "bb1@2 ~ bb1 ~@2 bb1@3 ~ bb1 ~ bb1@4", AV: "f1@2 ~ f1@2 ~ f1@3 ~ f1 ~ f1@2 ~@2",
  AW: "f1@2 ~ f1 ~@2 f1@3 ~ f1 ~ f1@4", AX: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 c2@2",
  AY: "f1@2 ~ f1@2 ~ f1@2 ~@2 f1 ~ f1@3 ~", AZ: "c2@2 ~ c2 ~@2 c2@2 ~ c2@2 ~ c2@4",
  BA: "f1@2 ~ f1@2 ~ f1@3 ~ f1 ~ f1@3 ~", BB: "f1@2 ~ f1 ~@2 f1@3 ~ f1 ~ f1@2 ~@2",
})).s("gm_acoustic_bass").gain(0.8).pan(0.4)

// chords · string ensemble 1 · "Strings - high"
const string_ensemble_1 = note(`<
  A@3 B C D E F@2 G@2 ~@4 H I@3 J K L M N O P Q B C B C R S R T U K L V N W P X Y Z Y AA AB AC AD AE AF AG AD@2 AH ~
  AI@2 AJ@2 J AK@2 M AL AM P AN AO AP AQ AR AS@2 AT AU AV@2 AT AR AW@2 AT AR AS@2 AX AY AZ BA@3
>`.pickRestart({
  A: "[~@2 bb3@3 c4@3, ~ f4@3]/3", B: "g4 f4", C: "e4", D: "bb4 a4 g4 f4", E: "g4@15 ~",
  F: "[g4@2 f4@2 ~@3 f5, g5@7 ~, ~ e4]/2", G: "[bb4 a4 g4 f4 g4@4, g5@31 ~]/2", H: "g5@3 f5", I: "[g5@23 ~]/3",
  J: "[c4,f4,a5]", K: "[d4,f4,f5]", L: "[d4,g4,bb5]", M: "e5 f5 ~ bb5, [c4,e4], ~ g5", N: "~@3 f5, [c4,f4,a5]",
  O: "[eb4,g4,eb5]", P: "[bb3,d4,d5]", Q: "[c4,e4,c5] ~", R: "[g4,bb5] [f4,a5]", S: "[e4,g5]",
  T: "g5@2 a5 [f4,bb5], e4@3 ~", U: "[c4,f4,c6]", V: "e5 f5 g5 bb5, [c4,e4]", W: "~@3 f5, [eb4,g4,eb5]",
  X: "[c4,e4,c5]", Y: "[g4,b4]@2 [a4,c5] [g4,b4]", Z: "[d4,a4]", AA: "~@15 a5, [d4,a4], ~@13 d5@3, ~@7 g5",
  AB: "[g4,b4,b5]@2 [a4,c5,c6] [g4,b4,b5]", AC: "a5@7 gb5 d5@8, [d4,a4]", AD: "[a4,a5] [g4,g5] [a4,a5] [c5,c6]",
  AE: "[a4,a5]@4 [g4,g5]@4 [a4,a5]@4 [c5,c6]@3 ~", AF: "[c5,c6] [b4,b5] [a4,a5] [g4,g5]",
  AG: "[g4,d6] [a4,c6] [b4,b5] [g4,g5]", AH: "[b4,b5] ~", AI: "[g5@7 f5, g4]/2",
  AJ: "[bb4 a4 g4 f4 ~@2 f5 g5, g5@3 ~, ~ g4]/2",
  AK: "[f5@4 c6 ~@3 [d4,g4]@8, [d4,f4] ~, ~@5 bb5@3 ~@8, ~@3 a5 ~@4, ~@7 g5@9]/2", AL: "a5 ~@2 g5, [c4,f4], ~ f5@3",
  AM: "eb5 f5 g5@2, [eb4,g4]", AN: "[c4,e4]@4 g4 f4 e4 c4, c5", AO: "g5@6 f5 e5 f5@8, [bb3,d4]", AP: "[c4,e4,g5]",
  AQ: "g5 f5 ~ bb5, [eb4,g4], ~ g5", AR: "g5 f5 ~ bb5, [d4,f4], ~ g5", AS: "[bb5 a5 g5 f5 c6 bb5 a5 f5, [c4,f4]]/2",
  AT: "g5 f5 g5 bb5, [eb4,g4]", AU: "g5 f5 g5 bb5, [d4,f4]",
  AV: "[bb5@4 a5@4 g5@4 f5@4 ~@4 bb5 ~@3 a5@4 f5@4, [c4,f4], ~@2 c6 ~]/2", // F5
  AW: "[bb5 a5 g5 f5 c6 bb5 ~ f5, [c4,f4], ~@3 a5]/2", AX: "[g4,g5] [f4,f5] [g4,g5] [bb4,bb5], c4",
  AY: "[g4,g5] [f4,f5] [g4,g5] [bb4,bb5], bb3", AZ: "[bb4,bb5]@4 [a4,a5]@4 [g4,g5]@4 ~ [f4,f5]@3, g3@8 f3@7 ~",
  BA: "[~ [c5,c6]@4 [bb4,bb5]@4 [a4,a5]@5 [f4,f5]@25 ~@9]/3", // C Bb A F
})).s("gm_string_ensemble_1").gain(0.46).pan(0.4)

// bass · string ensemble 1 · "Strings - bass"
const bass_3 = note(`<
  A@3 B C B D B C B E F C G E G C G C H I J K@2 L M N F C F E F C G C H I J K@2 L M C O P O Q R P S T U V W@2 ~@2 G D G
  C H I J K@2 L M X I Y Z AA AB AC AD@2 AE AF Z AA AB AC AD@2 AE AG AH M AI AJ@3
>`.pickRestart({
  A: "[~@2 eb2@3 f2@3]/3", B: "g2@7 bb2@2 g2 bb2@6", C: "c3", D: "c3@12 c3 d3 f3 g3", E: "c3@11 ~ c3 d3 f3 g3",
  F: "g2@7 bb2@2 g2 bb2@4 bb2@2", G: "g2@7 bb2@2 g2 bb2@3 ~ bb2@2", H: "f2", I: "d3", J: "g2", K: "[c3 d3 e3 f3@5]/2",
  L: "eb3", M: "bb2", N: "c3 ~", O: "g2@2 c3 b2", P: "a2", Q: "a2@12 d3 e3 gb3@2", R: "g3@2 c3 b2", S: "a2 g2 a2 c3",
  T: "a2@4 g2@4 a2@4 c3@3 ~", U: "c3 b2 a2 g2", V: "g2 a2 b2 g2", W: "a2@5 g2 a2 c3 d3@8", X: "c3@4 g3 f3 e3 c3",
  Y: "c3 e3 f3 g3", Z: "g2 f2 g2 bb2", AA: "g2@4 f2@4 g2@4 bb2@3 ~", AB: "bb2 a2 g2 f2", AC: "f2 g2 a2 f2",
  AD: "g2@5 f2 g2 bb2 c3@8", AE: "f2@15 ~", AF: "f2 a2 bb2 c3", AG: "f2@3 a2@5 bb2@4 c3@4", AH: "ab2", AI: "f2 c2",
  AJ: "[~ c2@8 d2@29 ~@10]/3",
})).s("gm_string_ensemble_1").gain(0.56).pan(0.8)

// other · piano
const piano_2 = note("<~@7 A@2 B@2 ~@12 C@2 D E F ~ G ~ H ~ I ~@5 C@2 D C ~@14 A@2 B@2 ~@4 C@2 D E ~@24>".pickRestart({
  A: "[~@2 g5 f5 g5 f5 d5 c5@3 g5 f5 g5 f5 d5 c5@8 ~@9]/2", B: "[~@2 g5 f5 g5 f5 d5 c5@3 g5 f5 g5 f5 d5 c5@7 ~@10]/2",
  C: "g4 c5 g5 c5 g4 c5 g5 c5", D: "f4 c5 g5 c5 f4 c5 g5 c5", E: "g4 c5 g5 c5 ~@4", F: "~ d5 f5 d5@2 ~@3",
  G: "~@2 g5@2 f5@2 d5@5 ~@5", H: "~@2 d5@2 f5@2 d5@5 ~@5", I: "~ g5 f5 d5@3 ~@2",
})).s("gm_piano").gain(0.48).pan(0.6)

// other · pad new age · "Fantasia"
const pad_new_age = note("<~@23 A@3 B ~@12 A@3 B ~@12 C@2 ~@8 A@3 B ~@24>".pickRestart({
  A: "f5!2 g5 f5 c6 f5!3 g5 f5 g5 f5 c6 f5!3", B: "g5!3 f5 c6 f5!3 ~@8", C: "[[g3,b3,d4]@7 ~]/2",
})).s("gm_pad_new_age").gain(0.34).pan(0.8)

// chords · acoustic guitar steel · "Steel guitar"
const acoustic_guitar_steel = note("<~@49 A B C D E F G ~@37>".pickRestart({
  A: "[a3,d4,f4]@3 [a3,d4,f4]@2 [a3,d4,f4] [a3,d4,f4]@2 [a3,d4,f4]@4 [a3,d4,f4]@4", // Dm
  B: "[g3,e4]@3 [g3,c4,e4]@2 [g3,c4,e4] [g3,c4,e4]@2 [g3,c4]@2 [g3,c4]@2 [g3,c4,e4]@2 [g3,c4,e4] [c4,e4], c4 ~@7 e4@4 ~@4", // C C5 C
  C: "[g3,b3,d4]@3 [g3,b3,d4]@3 [g3,b3,d4]@3 [g3,b3,d4]@3 [g3,b3,d4]@4", // G
  D: "[g3,b3,d4]@3 [g3,b3,d4]@3 [g3,b3,d4]@3 [g3,d4] [g3,d4]@2 [b3,d4]@2 [b3,d4]@2, ~@9 b3@3 g3@4", // G G5 Bm
  E: "[a3,d4,f4] ~@2 [a3,d4,f4]@2 [a3,d4,f4] [a3,d4,f4]@3 [a3,d4,f4] [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2", // Dm
  F: "[g3,c4,e4]@3 [g3,c4,e4]@2 [g3,c4,e4] [g3,c4,e4]@3 [c4,e4] [c4,e4]@2 [g3,c4,e4]@2 ~ [c4,e4], ~@9 g3@3 ~@2 [g3,e4]@2", // C
  G: "[g3,b3,d4] ~@7", // G
})).s("gm_acoustic_guitar_steel").gain(0.41).pan(0.8)

// chords · electric guitar clean · "Clean guitar"
const electric_guitar_clean = note("<~@43 A B C D E F ~@19 G ~ H ~@22>".pickRestart({
  A: "[g4,b4]@2 d4@2 [g4,b4]@2 d4@2 [g4,c5]@2 e4@2 [g4,b4]@2 d4 ~", B: "[d4,gb4,a4]@11 ~@5",
  C: "[g4,b4]@2 d4@2 [g4,b4]@2 d4@2 [g4,c5]@2 d4@2 [g4,b4]@2 d4 ~", D: "[d4,gb4,a4] ~",
  E: "[g4,b4] d4 [g4,b4] d4 [g4,c5] d4 [g4,b4] d4", F: "[d4,gb4,a4]@5 ~@3, b4 ~@15",
  G: "~ f4 e4 c4 ~@4, [e3,g3] ~, c4@3 ~@5", H: "[e3,g3,c4]@11 ~@5",
})).s("gm_electric_guitar_clean").gain(0.48)

// chords · melodic tom · "Toms"
const melodic_tom = note("<~@2 A ~@75 B@2 ~@2 C ~@10>".pickRestart({
  A: "~@7 a2@2 ~ [f2,g2]@2 a2!2 [f2,g2]@2", B: "[[g2,a2]@2 f2 ~ [g2,a2]@2 ~@2 [g2,a2]@2 f2@2 [g2,a2]!2 f2 f2@2 ~@15]/2",
  C: "~@2 [a2,b2]@2 g2!2 [a2,b2]@2 g2 ~@3 [g2,a2]!2 f2 [g2,a2]", // Asus2 Gsus2
})).s("gm_melodic_tom").gain(0.48)

// drums · kick
const kick = s("bd").struct(`<
  ~@3 A B A B A B A B A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@2 A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@6
>`.pickRestart({
  A: "x ~@2 x ~@3 x ~@2 x ~@4 x", B: "x ~@2 x ~@3 x ~@2 x ~@2 x!2 ~", C: "x ~@2 x ~@3 x ~@8",
})).gain(0.72)

// drums · rim
const rim = s("rim").struct(`<
  ~@3
  [~@6 x!2 ~@6 x ~]!23
  [~@6 x!2 ~@8]
  [~@6 x!2 ~@6 x ~]!28
  ~@2
  [~@6 x!2 ~@6 x ~]!30
  ~@6
>`).gain(0.32)

// drums · snare
const snare = s("sd").struct("<~@3 [~ x ~ x]!23 [~ x ~@2] [~ x ~ x]!28 ~ [~@3 x] [~ x ~ x]!30 ~@6>").gain(0.56)

// drums · clap
const clap = s("cp").struct("<~@3 [~ x ~ x]!23 [~ x ~@2] [~ x ~ x]!28 ~@2 [~ x ~ x]!30 ~@6>").gain(0.64)

// drums · low tom
const low_tom = s("lt").struct("<~@56 [~@3 x] ~@36>").gain(0.56)

// drums · hihat
// … 21 more lines

More by Roxette