Strudelify
Da Ya Think I'm Sexy cover art

1978 · Blondes Have More Fun

Da Ya Think I'm Sexy

Rod Stewart

KeyD minorTempo114 bpm
0:00/0:00
// Da Ya Think I'm Sexy — Rod Stewart
// 114 bpm, 4/4, key D minor. 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 125 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(114/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 · epiano1
const epiano1 = note(`<
  A B@2 C@2 B@2 D@3 E@4 F@3 G H G H G H G I B@2 C@2 B@2 D@3 F@3 G H G H G H G H G H G I B@2 C@2 B@2 D@3 F@3 ~@7 J K L K
  M K M N O P Q G H G H G H G H G H G I B@2 C@2 B@2 D@3 E@4 F@3 R E@4 F@3 R E@4 S@5
>`.pickRestart({
  A: "~@7 [d4,g4], ~@14 db4 ~", B: "~@2 [a3,c4,f4] ~ [a3,c4,f4]@2 d4 ~ [a3,c4,f4]@4 d4 ~ [d4,g4]@2, ~@14 db4 ~",
  C: "[~@2 [a3,c4,f4] ~ [a3,c4,f4]@2 d4 ~ [a3,c4,f4]@4 d4 ~ [c4,f4,a4]@14 ~@2 [d4,g4]@2, ~@30 db4 ~]/2", // F G5
  D: "[~@2 [a3,c4,f4] ~ [a3,c4,f4]@2 d4 ~ [a3,c4,f4]@4 d4 ~ [c4,f4,a4]@14 ~@2 [d4,g4]@4 [a3,c4,f4] ~ [f4,a4,d5]@4 [a4,d5,f5]@4 [d5,f5,a5]@4, ~@30 db4 ~@17]/3", // F G5 F Dm
  E: "[[f5,a5,c6]@8 [f5,a5]@10 [d5,g5,bb5] [c5,f5,a5] [d5,g5,bb5] [c5,f5,a5] [a4,c5,f5] [g4,a4,d5] [a4,c5,f5]@10 [bb4,d5,g5] [a4,c5,f5] [bb4,d5,g5] [a4,c5,f5] [f4,a4,d5] [d4,g4,c5] [f4,a4,d5]@10 ~@2 [f4,a4,d5]@4 [a4,d5,f5]@4 [d5,f5,a5]@4, ~ d5 ~@6]/4", // F Gm F Gm F Gsus2 F Gm …
  F: "[[f5,a5,c6]@8 [f5,a5]@10 [d5,g5,bb5] [c5,f5,a5] [d5,g5,bb5] [c5,f5,a5] [a4,c5,f5] [g4,a4,d5] [a4,c5,f5]@10 [bb4,d5,g5] [a4,c5,f5] [bb4,d5,g5] [a4,c5,f5] [f4,a4,d5] [d4,g4,c5] [f4,a4,d5]@8, ~ d5 ~@4]/3", // F Gm F Gm F Gsus2 F Gm …
  G: "[f5,a5]@3 [g5,bb5]@2 c6@2 ~ f5@7 ~, [f3,bb3,d4], ~@5 a5@11", H: "[f3,bb3,f4,bb4,d5] [e3,e4,g4,c5], c5 ~@15",
  I: "[f3,bb3,f4,bb4,d5]@4 g4@3 [d4,g4], c5 ~@7 [e3,e4,c5]@8, ~@14 db4 ~", // Bb G5 C
  J: "[d4,f4,a4,d5] ~@2 [d4,f4,a4,d5] ~@2 [d4,e4,g4,d5] ~ [d4,f4,a4,d5] ~@2 [d4,f4,a4,d5]@4 ~", // Dm Em7 Dm
  K: "[c4,e4,g4,d5] ~@2 [c4,e4,g4,d5]@2 ~ [c4,d4,f4,d5] ~ [c4,e4,g4,d5] ~@2 [c4,e4,g4,d5]@4 ~", // C Dm7 C
  L: "[d4,f4,a4,d5] ~@2 [d4,f4,a4,d5]@2 ~ [d4,e4,g4,d5] ~ [d4,f4,a4,d5] ~@2 [d4,f4,a4,d5]@3 ~@2", // Dm Em7 Dm
  M: "[d4,f4,a4,d5] ~@2 [d4,f4,a4,d5]@2 ~ [d4,e4,g4,d5] ~ [d4,f4,a4,d5] ~@2 [d4,f4,a4,d5]@4 ~", // Dm Em7 Dm
  N: "[c4,e4,g4,d5]@3 ~ [c4,e4,g4,d5]@4 [c4,e4,g4,d5]@4 [c4,e4,g4,d5]@4", // C
  O: "[c4,e4,g4,d5]@4 [c4,e4,g4,d5]@4 [c4,e4,g4,d5]@5 [c4,f4,g4,d5]@3", P: "~@14 [bb2,bb3] bb3",
  Q: "[bb2,bb3] ~@5 bb3!2 [bb2,bb3]@2 ~@2 [a2,a3]@2 ~@2, ~@3 bb2 ~@4", R: "~ [f4,a4,d5] [a4,d5,f5] [d5,f5,a5]",
  S: "[[f5,a5,c6]@8 [f5,a5]@10 [d5,g5,bb5] [c5,f5,a5] [d5,g5,bb5] [c5,f5,a5] [a4,c5,f5] [g4,a4,d5] [a4,c5,f5]@10 [bb4,d5,g5] [a4,c5,f5] [bb4,d5,g5] [a4,c5,f5] [f4,a4,d5] [d4,g4,c5] [f4,a4,d5]@40, ~ d5 ~@8]/5", // F Gm F Gm F Gsus2 F Gm …
})).s("gm_epiano1").gain(0.22).pan(0.6)

// bass · electric bass finger
const bass = note(`<
  ~ A B C D E F G H A B C D E F G H I J K L I J K L A B C D E F G H A B C D I J K L I J K L I J K L A B C D E F G H A B
  C D M N M N O P Q R S R S R S R S T I J I J K L I J K L I J K L A B C D E F G H A B C D E F G H A B C D E F G H A B C
  D E F G H U@2
>`.pickRestart({
  A: "d2 ~ d3!2 d2 ~ d3!2 d2 ~ d3!2 d2 ~ d3!2", B: "d2 ~ d3!2 d2@2 d3!2 d2 ~ d3!2 d2 ~ d3!2",
  C: "f2 ~ f3!2 f2 ~ f3!2 f2 ~ f3!2 f2 ~ f3!2", D: "f2@2 f3!2 g2 ~ g3!2 a2 ~ a3!2 f2@2 f3!2",
  E: "d2@2 d3!2 d2 ~ d3!2 d2 ~ d3!2 d2 ~ d3!2", F: "d2 ~ d3!2 d2 ~ d3!2 d2 ~ d3!2 d2@2 d3!2",
  G: "f2@2 f3!2 f2@2 f3!2 f2@2 f3!2 f2@2 f3!2", H: "f2@2 f3!2 g2@2 g3!2 a2@2 a3!2 f2@2 f3!2",
  I: "g1 ~ g2 ~ a1 ~ a2 ~ bb1 ~ bb2 ~@3 bb2!2", J: "bb1 ~ bb2 ~@3 bb2!2 bb1 ~ bb2 ~ a1 ~ a2 ~",
  K: "g1 ~ g2!2 a1 ~ a2!2 bb1 ~ bb2 ~@3 bb2!2", L: "bb1 ~ bb2 ~@3 bb2 ~ bb1 ~ bb2 ~ a1 ~ a2 ~",
  M: "a1 ~ a2!2 a1 ~ a2!2 a1 ~ a2!2 a1 ~ a2!2", N: "d2 ~ d3!2 d2@2 d3!2 d2 ~ d3!2 d2 ~ a2!2",
  O: "g1 ~ g2!2 g1 ~ g2!2 g1 ~ g2!2 a1 ~ a2!2", P: "bb1 ~ bb2!2 bb1 ~ bb2!2 bb1 ~ bb2!2 bb1 ~ bb2!2",
  Q: "c2 ~ c3!2 c2 ~ c3!2 c2 ~ c3 ~ g1 a1 c2@2", R: "d2 ~ d3 ~ e2 ~ e3 ~ f2 ~ f3 ~ f2 f3@2 ~",
  S: "c2 ~ c3 ~@3 c3 ~ c2 ~ c3 ~@2 c3 ~@2", T: "c2 ~ c3 ~@3 c3 ~ c2 ~ c3 ~@2 d3@3", U: "d2/2",
})).s("gm_electric_bass_finger").gain(0.41)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A B C D E B C F G B C D E B C D E H I H I H I J K B C F L B C D G B C D L H I H I H I J M H I H N B C F L B C F G B C
  D L O P Q R S T U V W V W V W V X Y Z AA H I H I H I J M H I H N B C F L B C F G B C F E B C F G B C F E B C F G B C D
  E B C F E AB@2
>`.pickRestart({
  A: "~@14 [a3,d4]!2", B: "[a3,d4,f4] ~ [a3,d4] ~ [a3,d4,f4] ~@3 [a3,d4,f4] ~@2 a3 [a3,d4,f4] ~@3",
  C: "[a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~@3 [a3,d4,f4] ~ [a3,d4,f4] ~ [d4,f4] ~@3, ~@11 a3@2 ~@3", // Dm
  D: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4]@3 ~ [c4,f4] ~@3, ~@11 a3@2 ~@3", // F F5
  E: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4]@3 a3 [a3,c4,f4] ~@3", // F
  F: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4]@3 ~ [c4,f4] ~@3, ~@11 a3@2 ~@3", // F F5
  G: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4]@3 a3 [a3,c4,f4] ~ [a3,d4]!2", // F D5
  H: "~@4 [d4,f4,bb4]@3 d4 [f4,bb4] ~@3 [f4,bb4] ~@3", I: "[d5,g5]@3 g5 [c5,f5] ~@3 [g4,c5]@2 ~@2 g4!2 e5!2",
  J: "~@4 [d4,f4,bb4]@3 d4 [f4,bb4] ~@3 [f4,bb4] ~ [d5,g5]@2", // Bb Bb5 G5
  K: "~@2 [d5,g5]@2 [c5,f5] ~@3 [g4,c5] ~ [g4,c5] ~@2 c5 [a3,d4,c5] [a3,d4], ~@6 [g4,c5] ~", // G5 F5 C5 D7 D5 C5
  L: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4]@3 a3 [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  M: "~@2 [d5,g5]@2 [c5,f5] ~@3 [g4,c5] ~ [g4,c5] ~@2 c5!2 ~, ~@6 [g4,c5] ~", // G5 F5 C5
  N: "[d5,g5]@3 g5 [c5,f5] ~@3 [g4,c5] ~ [g4,c5] ~ [g4,c5]!2 [a3,d4,g4,c5] a3", // G5 F5 C5 Am7
  O: "~ g4 [g4,c5,e5] ~ [g4,c5,e5]@3 g4 [g4,c5,e5] ~ [g4,c5,e5] ~@5", // C
  P: "~ a4 [c5,f5] ~ [a4,c5,f5]@3 ~ [c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~@3", // F5 F F5 F
  Q: "~ g4 [c5,e5] ~ [g4,c5,e5]@3 g4 [c5,e5] ~ [g4,c5,e5] ~@5", // C
  R: "~ a4 [c5,f5] ~ [a4,c5,f5]@3 a4 [c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~@3", // F5 F F5 F
  S: "[g4,bb4,d5]@3 ~ [bb4,d5] ~ g4 ~ [g4,bb4,d5] ~@3 [g4,bb4,d5] ~@3, ~@3 g4@2 ~@11", // Gm Bb Gm
  T: "[f4,bb4,db5]@3 f4 [bb4,db5] ~@3 [f4,bb4,db5] ~@3 [f4,bb4,db5]@2 ~@2", // Bbm
  U: "~@2 [c4,f4] ~ [c4,f4,bb4]@2 ~ c4 [f4,bb4] ~ [c4,f4,bb4]@4 [a4,c5]!2", // F5 Fsus4 Bb5 Fsus4 Am
  V: "[a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~ [g4,c5]!2", // F C5
  W: "[g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~ [g4,c5]!2 [g4,c5,e5] ~ [a4,c5]!2", // C C5 C Am
  X: "[g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~ [g4,c5]!2 [g4,c5,e5] ~ [g4,c5]!2", // C C5 C C5
  Y: "[g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~ [g4,c5]!3 [f4,g4,c5]@3", Z: "~@10 g4!2 ~ g4!3", AA: "g4!15 ~",
  AB: "[a3,d4,f4]/2", // Dm
})).s("gm_electric_guitar_clean").gain(0.4)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@9 A B@4 C@3 ~@16 D@2 E@2 ~@20 D@2 E@2 F@7 G H G I G H G J@2 ~@22 D@2 E@2 D@2 K@2 D@2 E@2 D@2 K@2 D@2 E@2 D@2 K@2 ~@2
>`.pickRestart({
  A: "~ d5 f5 a5", B: "[c6@8 a5@10 bb5 a5 bb5 a5 f5 d5 f5@10 g5 f5 g5 f5 d5 c5 d5@12 d5@4 f5@4 a5@4]/4",
  C: "[c6@8 a5@10 bb5 a5 bb5 a5 f5 d5 f5@10 g5 f5 g5 f5 d5 c5 d5@8]/3", D: "[~ d5 f5 a5 c6@2 a5@2, d4]/2",
  E: "[~@2 bb5 a5 bb5 a5 f5 d5 f5@9 ~ g5 f5 g5 f5 d5 c5 d5@8, f4]/2",
  F: "[[e5,c6]@16 [f5,d6]@16 [e5,c6]@16 d6@12 c6@4 d5@16 db5@16 [c5,c6]@15 ~, a5@4 bb5@2 ~, ~@48 f5@63 ~]/7", G: "f5",
  H: "c6", I: "c5", J: "[c5@29 d5@3]/2", K: "[~@2 bb5 a5 bb5 a5 f5 d5 f5@9 ~ g5 f5 g5 f5 d5 c5 d5@7 ~, f4@15 ~]/2",
})).s("gm_string_ensemble_1").gain(0.36)

// chords · electric guitar clean
const electric_guitar_clean_2 = note("<~@67 A B A B A B A B ~ C D ~@47>".pickRestart({
  A: "~@14 [a3,d4] [f3,a3,d4]", B: "[f3,a3,d4] ~@7", C: "~@14 [bb3,d4] [g3,bb3,d4]", D: "[g3,bb3,d4] ~@7",
})).s("gm_electric_guitar_clean").gain(0.3).pan(1)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_3 = note("<~@67 A ~ A ~ A ~ A ~@2 B ~@48>".pickRestart({
  A: "~@14 f3 ~", B: "~@14 g3 ~",
})).s("gm_electric_guitar_clean").gain(0.19).pan(1)

// other · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  ~@9 A@2 B@2 A@2 B@2 ~@8 A@2 B@2 A@2 B@2 A@2 B@2 ~@12 A@2 B@2 A@2 B@2 A@2 B@2 C D C D E F G ~@23 A@2 B@2 A@2 B@2 A@2
  B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 H@2
>`.pickRestart({
  A: "d3/2", B: "[f2@5 g2 a2 f2]/2", C: "a2", D: "d3", E: "g2@3 a2", F: "bb2", G: "c3", H: "d2/2",
})).s("gm_lead_2_sawtooth").gain(0.36)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  A B@8 C@6 D@7 E@3 B@8 F@2 G@7 H@7 B@8 I@4 ~@7 J K L M N K L K O ~ P@8 Q@5 B@8 R@16 S@8 ~@2
>`.pickRestart({
  A: "~@7 [d4,g4]", // G5
  B: "[~@2 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 d4@2 [f3,c4]@15 ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4]@2 [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4]@2 [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [d4,g4]@2 [c4,f4,a4]@14 ~@2 [d4,g4]@2, ~@44 a3@17 ~@67]/8", // F5 D5 F5 D5 G5 F5 D5 F5 …
  C: "[~@2 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 d4@2 [f3,c4]@15 ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4]@2 [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4]@2 [d4,g4]@2, ~@44 a3@17 ~@35]/6", // F5 D5 F5 D5 G5 F5 D5 F5 …
  D: "[~@2 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 d4@2 [f3,c4]@14 ~@4 d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 f3, ~@12 a3@16 ~@3 [f3,bb3]@16 f3@8 e3@8 [f3,bb3]@16 f3@8 e3@8 [f3,bb3]@16 ~, ~@32 a4@13 ~@19 a4@13 ~@19 a4@13 ~@3]/7", // F5 D5 F5 Bb C5 Bb C5 Bb5
  E: "[[bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@5 ~ [d4,g4]@2, ~@7 e3@8 [f3,bb3]@16 f3@8 e3@6 ~@3, ~@16 a4@13 ~@19]/3", // Bb C5 Bb C5 G5 Bb5
  F: "[~@2 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@2]/2", // F5 D5 F5 D5 G5 F5 D5 F5 …
  G: "[~@2 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 d4@2 [f3,c4]@15 ~@3 d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 f3, ~@12 a3@17 ~@2 [f3,bb3]@16 f3@8 e3@8 [f3,bb3]@16 f3@8 e3@8 [f3,bb3]@16 ~, ~@32 a4@13 ~@19 a4@13 ~@19 a4@13 ~@3]/7", // F5 D5 F5 Bb C5 Bb C5 Bb5
  H: "[[bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@6 [d4,g4]@2, ~@7 e3@8 [f3,bb3]@16 f3@8 e3@8 [f3,bb3]@16 f3@8 e3@8 [f3,bb3]@16 f3@8 e3@8 ~, ~@16 a4@13 ~@19 a4@13 ~@19 a4@13 ~@19]/7", // Bb C5 Bb C5 Bb C5 Bb C5 …
  I: "[~@2 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 d4@2 [f3,c4]@15 ~@3, ~@44 a3@17 ~@3]/4", // F5 D5 F5 D5 G5 F5 D5 F5 …
  J: "[a3,c4,f4]@2 ~@2 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [c4,f4] ~@3, ~@11 a3@3 ~@2", // F F5
  K: "[g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [c4,e4]@2 ~@2, ~@11 g3@3 ~@2", // C
  L: "[a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [c4,f4]@2 ~@2, ~@11 a3@3 ~@2", // F F5
  M: "[g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [c4,e4] ~@3, ~@11 g3@3 ~@2", // C
  N: "[a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [c4,f4] ~@3, ~@11 a3@3 ~@2", // F F5
  O: "[g3,c4,e4] ~@3 [g3,c4,e4]@2 ~@2 [g3,c4,e4]@2 ~@2 [g3,c4,e4] [g3,c4,f4]@3", // C Csus4
  P: "[~@16 d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 f3, ~@15 [f4,a4]@16 ~@17 a4@13 ~@19 a4@13 ~@19 a4@13 ~@3, ~@16 bb3@13 ~@2 f3@8 e3@8 [f3,bb3]@16 f3@8 e3@8 [f3,bb3]@16 f3@8 e3@8 [f3,bb3]@16 ~]/8", // Bb C5 Bb C5 Bb C5 F Bb5
  Q: "[[bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@7 ~ d4@15 ~ [bb3,d4]@7 ~ [g3,c4]@6 [d4,g4]@2, ~@7 e3@8 [f3,bb3]@16 f3@8 e3@8 [f3,bb3]@16 f3@8 e3@8 ~, ~@16 a4@13 ~@19 a4@13 ~@19]/5", // Bb C5 Bb C5 Bb C5 G5 Bb5
  R: "[~@2 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 d4@2 [f3,c4]@15 ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4]@2 [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4]@2 [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 d4@2 [f3,c4]@14 ~@2 [d4,g4]@2, ~@44 a3@17 ~@47 a3@16 ~@4]/8", // F5 D5 F5 D5 G5 F5 D5 F5 …
  S: "[~@2 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 d4@2 [f3,c4]@15 ~ [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4]@2 [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 [a3,d4]@2 [d4,g4]@4 [c4,f4] ~ [c4,f4]@2 [a3,d4]@2 [c4,f4]@4 d4@2 [f3,c4]@14 ~@4, ~@44 a3@17 ~@47 a3@16 ~@4]/8", // F5 D5 F5 D5 G5 F5 D5 F5 …
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0)

// chords · electric guitar clean · Gm
const electric_guitar_clean_4 = note(`<
  ~@77
  [~@2 [g3,bb3,d4]!2 [g3,bb3,d4]@2 d4 [g3,bb3,d4] [g3,bb3,d4]@2 ~ [g3,bb3] [g3,bb3,d4]@2 ~@2]
  ~@47
>`).s("gm_electric_guitar_clean").gain(0.14).pan(0)

// chords · electric guitar clean · soft notes · Gm
const electric_guitar_clean_5 = note("<~@77 [~@6 [g3,bb3] ~@3 [g3,bb3,d4] d4 ~@4] ~@47>")
  .s("gm_electric_guitar_clean").gain(0.05).pan(0)

// drums · rim
const rim = s("rim").struct("<[x!4] ~@124>").gain(0.36)

// drums · kick
const kick = s("bd").struct("<~ A@75 B A@26 C ~@10 A@9 C ~>".pickRestart({
  A: "x!4", B: "x ~@3 x ~@3 x ~@4 x ~@2", C: "x",
})).gain(0.45)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@103 [~ x!3] [x!4]!10 ~@11>").gain(0.27)

// drums · snare
const snare = s("sd").struct(`<
  A B@15 C B@7 C B@7 C B@3 C B@11 C B@7 C B@3 C B@6 D B@8 E ~ F B@11 G B@7 C B@3 H ~@11 I B@3 J B@3 C ~@2
>`.pickRestart({
  A: "~@14 x!2", B: "~ x ~ x", C: "~@4 x ~@7 x!3 ~", D: "~@4 x ~@2 x!2 ~ x ~ x!3 ~", E: "~@4 x ~@3 x ~ x!3 ~@3",
  F: "~@5 x ~ x!2 ~ x ~ x!2 ~@2", G: "~@4 x ~@7 x ~ x!2", H: "~@4 x ~@3 x!8", I: "~@2 x!2 ~ x!2 ~ x!5 ~ x!2",
  J: "~@4 x ~ x!2 ~@2 x!2 ~@2 x!2",
})).gain(0.41)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@8 A ~@58 A ~@8 B ~@9 A ~@16 C@11 ~@11>".pickRestart({
  A: "~@15 x", B: "~@7 x ~ x ~@6", C: "~ x ~ x",
})).gain(0.23)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B@6 C A B@2 D B@3 E A B@2 D B@3 E A B@2 D B@3 E A B@2 E A B@2 D F B@2 D B@3 E A B@2 D B@3 E A B@2 E A B@4 G H I
  J@7 K L M A B@2 D F B@2 D B@3 E A B@2 D B@3 E A B@2 H I J@10 N A B@2 M B O B E ~@2
>`.pickRestart({
  A: "~@3 x ~ x!3", B: "x!8", C: "x ~ x!6", D: "x!7 ~", E: "x!5 ~ x ~", F: "x!4 ~ x!3", G: "x!5 ~ x!2",
  H: "x!3 ~ x ~@3", I: "~ x!3", J: "x!4", K: "x!3 ~", L: "~@3 x", M: "x!3 ~@5", N: "x", O: "~ x!7",
})).gain(0.36)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~ A ~@7 A ~@7 A ~@7 A ~@7 A ~@3 A ~@3 B ~@7 A ~@7 A ~@3 A ~@15 C ~ A ~@3 B ~@7 A ~@7 A ~@3 D E@2 F E@6 G ~ A ~@9
>`.pickRestart({
  A: "~ x!2 ~", B: "~ x", C: "~@7 x", D: "~@3 x ~ x ~ x", E: "~ x ~ x ~ x ~ x", F: "~ x ~ x ~@4", G: "~ x ~ x ~ x ~@2",
})).gain(0.18)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@8 A ~@3 B ~@3 C ~@3 B ~@3 C ~@3 B ~@3 C ~@3 C ~@3 B ~@3 B ~@3 C ~@3 B ~@3 C ~@3 C ~@5 C D E F@7 G ~@5 B ~@3 B ~@3 C
  ~@3 B ~@3 C ~@3 D A ~@2 H ~@6 B ~@8 C ~@2
>`.pickRestart({
  A: "~ x ~@6", B: "~@7 x", C: "~@5 x ~@2", D: "~@3 x ~@4", E: "~@3 x ~ x ~ x", F: "~ x ~ x ~ x ~ x",
  G: "~@2 x ~@3 x ~@6 x ~@2", H: "~@5 x ~ x",
})).gain(0.27)

// drums · mid tom
const mid_tom = s("mt").struct("<~@78 [~@14 x!2] ~@46>").gain(0.45)
// … 25 more lines

More by Rod Stewart