Strudelify
Man! I Feel Like a Woman cover art

Come On Over

Man! I Feel Like a Woman

Shania Twain

KeyF♯ majorTempo132 bpm
0:00/0:00
// Man! I Feel Like a Woman — Shania Twain
// 132 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 46, 4/4 at bar 47, 2/4 at bar 92, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 12 overdriven guitar (copy of ch 11 overdriven guitar, 0.271 beats late)
// note: Full arrangement: all 123 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(132/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.

// bass · fretless bass
const bass = note(`<
  ~@17 A@2 B C D@2 B C E F@2 B G H@4 I J K H L H@2 I J M N@2 ~ O B P Q B@2 R@2 B@2 S@2 F T U V H@4 W X Y H Z H@2 W X
  AA@2 ~ AB AC AD B AE AF AG AH AI F AJ AK AL H@4 I J K H L H@2 I J M AM@3 ~ AN AO AP AQ AR AO AP AQ AR AO AP AQ AS
>`.pickRestart({
  A: "[~@16 b1@2 a1@2 a#1@2 b1@6 ~@2 b1@3 ~@3 b1@3 ~@3 b1@3 ~@3]/2", B: "b1 ~ b1 ~ b1 ~ b1 ~",
  C: "b1@3 ~@3 b1@3 ~@3 b1@3 ~@3 d2@4 d#2@2",
  D: "[e2@6 d2@4 b1@6 b1@2 a1@2 a#1@2 b1@6 ~@2 b1@3 ~@3 b1@3 ~@3 b1@3 ~@3]/2", E: "e2@3 d2@2 b1@3 b1 a1 a#1 b1",
  F: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~", G: "g#2@3 f#2@3 d#2@3 b1@2 e1", H: "f#1 ~ f#1 ~ f#1 ~ f#1 ~",
  I: "f#1@3 ~@3 f#1@3 ~@3 f#1@3 ~ f#1@2 a#1@4 a#1@2", J: "d#2@4 ~@2 d#2@4 ~@2 d#2@4 ~@2 c#2@3 ~@3",
  K: "b1@4 ~@2 b1@4 ~@2 b1@3 ~ b1@2 a#1@4 g#1@2", L: "f#1@3 ~@3 f#1@3 ~@3 f#1@3 ~@3 e1@4 f1@2",
  M: "b1 ~ b1 ~ b1 ~ a#1 ~", N: "[g#1@13 ~@11]/2", O: "~@10 a1@2 b1@3 ~@3 b1@3 ~@3",
  P: "b1@3 ~ b1@2 d2@6 e2@3 ~@3 e2@3 ~@3", Q: "e2@3 ~ e2@2 d2@3 ~ b1@4 ~@4 b1@3 ~@3",
  R: "[b1@3 ~@3 d2@4 d#2@2 e2@6 d2@4 b1@6 b1@2 a1@2 a#1@2 b1@6 ~@2 b1@3 ~@3]/2",
  S: "[b1@3 ~@3 d2@4 d#2@2 e2@6 d2@4 b1@6 b1@2 a1@2 a#1@2 b1@2 a1@4 ~@2 a1@4 ~@2]/2",
  T: "a1@3 ~@3 a1@4 ~@2 b1@4 ~@2 b1@3 ~@3", U: "b1 ~ b1 ~ g#2@2 f#2@2", V: "d#2@6 b1@4 e1@2 f#1@4 ~@2 f#1@3 ~@3",
  W: "f#1@3 ~ f#1@2 a#1@4 a#1@2 d#2@4 ~@2 d#2@4 ~@2", X: "d#2@4 ~@2 c#2@3 ~@3 b1@4 ~@2 b1@4 ~@2",
  Y: "b1@3 ~ b1@2 a#1@4 g#1@2 f#1@4 ~@2 f#1@3 ~@3", Z: "f#1@3 ~@3 e1@4 f1@2 f#1@3 ~@3 f#1@3 ~@3",
  AA: "[b1@3 ~@3 a#1@3 ~@3 g#1@26 ~@10]/2", AB: "~@2 a1 c#2", AC: "e2@6 c#2@6 e2@5 ~ e2@6",
  AD: "b1@6 e2@6 b1@4 ~@2 b1@3 ~@3", AE: "b1@2 a1 b1@3 a1@3 c#2@3", AF: "e2 c#2 e2 g#1", AG: "b1@2 c#2@2 b1 ~ b1 ~",
  AH: "b1@3 ~@3 b1@3 ~@3 b1@3 ~ b1@2 a1@6", AI: "f#1@6 g#1@6 a1@3 ~@3 a1@4 ~@2",
  AJ: "a1@4 g#1@2 a1@6 b1@4 ~@2 b1@3 ~@3", AK: "b1@3 ~@3 b1@3 ~@3 g#2@6 f#2@4 b1 ~", AL: "b1@5 ~@17 e1@2",
  AM: "[g#1@25 ~@11]/3", AN: "~@12 b1@5 ~ b1@4 b1@2", AO: "d#2@6 f#2@6 b1@5 ~ b1@4 b1@2",
  AP: "g#1@6 f#1@5 ~ a1@5 ~ a1@4 a1@2", AQ: "c#2@6 e2@6 e1@5 ~ e1@3 ~ e1@2", AR: "g#1@6 f#1@6 b1@5 ~ b1@4 b1@2",
  AS: "g#1@6 f#1@3 ~ b1@3 ~@3 b1@4 ~@4",
})).s("gm_fretless_bass").gain(0.54)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@3 A@8 B@4 C@6 B@4 D E@2 F@2 G@7 H@7 I@2 ~ J K L M N O P@2 N O Q@5 R@6 S@7 T@3 ~ U@6 V@6 W G@7 H@7 X@3 ~ Y Z AA AB AC
  Z AA AD AE Z AA AB AF
>`.pickRestart({
  A: "[~@22 [b2,f#3]@6 [b2,f#3]@2 ~@4 [b2,f#3]@2 ~@4 [b2,f#3]@2 ~@4 [b2,f#3]@6 [b2,f#3]@2 ~@4 [b2,f#3]@2 ~@4 [b2,f#3]@2 a2@2 a#2@2 [b2,f#3]@5 ~ [b2,f#3]@2 ~@4 [b2,f#3]@2 ~@4 [b2,f#3]@2 ~@4 [b2,f#3]@6 [b2,f#3]@2 ~@4 [b2,f#3]@2 ~@4 b2@2 a2@2 a#2@2 [b2,f#3]@6 [b2,f#3]@2 ~@4 [b2,f#3]@2 ~@4 [b2,f#3]@2 ~@4 [b2,f#3]@6 [b2,f#3]@2 ~@4 [b2,f#3]@2 ~@4 b2@2 a2@2 a#2@2 [b2,f#3]@6 [b2,f#3]@2 ~@4 [b2,f#3]@2 ~@4 [b2,f#3]@2 d3@2 d#3@2 d#2@2, ~@112 f#3@5 ~@43 f#3@5 ~@27]/8", // B5
  B: "[[b2,e3]@3 d3@2 [b2,f#3]@3 [b2,f#3] a2 a#2 [b2,f#3]@3 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3]@3 [b2,f#3] ~@2 [b2,f#3] ~@2 b2 a2 a#2 [b2,f#3]@3 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] d3 d#3 d#2, a#2 ~@63 f#3@5 ~@27]/4", // E5 B5
  C: "[[b2,e3]@3 d3@2 [b2,f#3]@3 [b2,f#3] a2 a#2 [b2,f#3]@3 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3]@3 [b2,f#3] ~@5 b2 a2 a#2 [b2,f#3]@3 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3]@3 [b2,f#3] ~@2 [b2,f#3] ~@2 b2 a2 a#2 [b2,f#3]@3 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] d3 d#3 d#2, a#2 ~@111 f#3@5 ~@27]/6", // E5 B5
  D: "[b2,e3]@3 d3@2 [b2,f#3]@3 [b2,f#3] a2 a#2 ~, a#2 ~@23", E: "[b3@12 c#4@6 c#4@5 ~, [a3,e4]@47 ~]/2",
  F: "[[b3,c#4,f#4]@21 ~ [b3,c#4]@2 [b3,c#4]@3 ~ [b3,c#4,f#4] ~ [b3,c#4,f#4]@3 ~ [b3,c#4,f#4]@2 [b3,c#4,f#4]@6 [b3,c#4,f#4]@6, ~@22 f#4@5 ~@21]/2", // Bsus2
  G: "[[f#3,c#4]@45 ~ [f#3,c#4]@23 ~ [f#3,c#4]@23 ~ [f#3,c#4]@26 [a#3,d#4]@18 g#3@3 ~ f#3@25 ~, ~@138 c#4@5 ~@25, ~@47 b3@9]/7", // F#5 D#5
  H: "[[f#3,c#4]@45 ~ [f#3,c#4]@23 ~ [f#3,c#4]@23 ~ f#3@26 ~@18 c#4@4 [f#3,b3]@26, ~@94 c#4@25 ~ [a#3,d#4]@20 ~@28, ~@46 g#3 ~@9]/7", // F#5 B5 D#5
  I: "[[b3,d#4]@9 ~@7]/2", J: "~@5 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3]",
  K: "~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3]", L: "~@2 [b2,f#3] [d3,a3]@2 [e3,b3] ~@2 [e3,b3] ~@2 [e3,b3]",
  M: "~@4 [e3,b3]@2 [d3,a3]@4 [b2,f#3]@2 [b2,f#3]@3 ~ [b2,f#3]@2 ~@4 [b2,f#3]@2", // E5 D5 B5
  N: "~@2 [b2,f#3] ~@2 [b2,f#3]@3 [b2,f#3] ~@2 [b2,f#3]", // B5
  O: "~@2 b2 a2 a#2 [b2,f#3]@3 [b2,f#3] ~@2 [b2,f#3], ~@4 f#3@5 ~@15", // B5
  P: "[~@2 [b2,f#3] d3 d#3 d#2 [b2,e3]@3 d3@2 [b2,f#3]@3 [b2,f#3] a2 a#2 [b2,f#3]@3 [b2,f#3] ~@2 [b2,f#3], ~@12 a#2 ~@35]/2", // B5 E5 B5
  Q: "[~@4 [b2,f#3]@2 d3@2 d#3@2 d#2@2 [b2,e3]@6 d3@4 [b2,f#3]@6 [b2,f#3]@2 a2@2 a#2@2 ~@2 b3@24 c#4@12 c#4@10 ~@2 [b3,c#4,f#4]@21 ~ [b3,c#4]@2 [b3,c#4]@3 ~ [b3,c#4,f#4] ~ [b3,c#4,f#4]@3 ~ [b3,c#4,f#4]@2, ~@12 a#2 ~@23 [a3,e4]@47 ~@23 f#4@5 ~@9]/5", // B5 E5 B5 Bsus2 A5
  R: "[[b3,c#4,f#4]@6 [b3,c#4,f#4]@6 [f#3,c#4]@45 ~ [f#3,c#4]@23 ~ [f#3,c#4]@23 ~ [f#3,c#4]@26 [a#3,d#4]@12]/6", // Bsus2 F#5 D#5
  S: "[~@6 g#3@3 ~ f#3@25 ~ [f#3,c#4]@45 ~ [f#3,c#4]@23 ~ [f#3,c#4]@23 ~ f#3@26 [a#3,d#4]@12, ~@6 c#4@5 ~@119 c#4@25 ~@13, ~@3 b3@9 ~@44]/7", // F#5 D#5
  T: "[~@3 c#4@2 f#3@13 [b3,d#4]@12 ~@6, ~@6 g#3@3 ~ b3@25 ~@37]/3", // B
  U: "[~@10 [e3,a3]@6 [e3,a3]@2 [e3,a3]@3 ~ [e3,a3]@5 ~ [e3,a3]@2 [e3,a3]@3 ~ [e3,b3]@5 ~ [e3,b3]@2 [e3,b3]@3 ~ [e3,b3]@6 [e3,b3]@2 [e3,b3]@3 ~ [f#3,b3]@5 ~ [f#3,b3] ~ [f#3,b3]@3 ~ [f#3,b3]@5 ~ [f#3,b3] ~ [f#3,b3]@3 ~ [f#3,b3]@6 [f#3,b3]@2 [f#3,b3]@3 ~ [f#3,b3]@5 ~ [f#3,b3]@2 [f#3,b3]@3 ~ [e3,a3]@5 ~ [e3,a3] ~ [e3,a3]@3 ~ [e3,a3]@5 ~ [e3,a3] ~ [e3,a3]@3 ~ [e3,b3]@5 ~ [e3,b3] ~ [e3,b3]@3 ~ e3@2, ~@47 b3]/6", // A5 E5 B5 A5 E5
  V: "[~@4 [e3,b3]@2 [e3,b3]@3 ~ [f#3,b3]@5 ~ [f#3,b3] ~ [f#3,b3]@3 ~ [f#3,b3]@5 ~ [f#3,b3] ~ [f#3,b3]@3 ~ [f#3,b3]@6 [f#3,b3]@2 [f#3,b3]@3 ~ [f#3,b3]@5 ~ f#3 ~ [f#3,b3]@6 b3@24 c#4@12 c#4@10 ~@2 [b3,c#4,f#4]@21 ~ [b3,c#4]@2 [b3,c#4]@3 ~ [b3,c#4,f#4] ~ [b3,c#4,f#4]@3 ~ [b3,c#4,f#4]@2, ~@51 b3@2 ~@7 [a3,e4]@47 ~@23 f#4@5 ~@9]/6", // E5 B5 Bsus2 A5
  W: "[b3,c#4,f#4] ~@11", X: "[[b3,d#4]@25 ~@11]/3", Y: "~@10 [b2,f#3] ~@5 [b2,f#3]@6 [b2,f#3] ~",
  Z: "~@4 [b2,f#3] ~@5 [b2,f#3] ~@5 [b2,f#3]@6 [b2,f#3] ~", AA: "~@4 [b2,f#3]@2 ~@4 [a2,e3]@2 ~@4 [a2,e3]@6 [a2,e3] ~",
  AB: "~@4 [a2,e3] ~@5 [e2,b2] ~@5 [e2,b2]@6 [e2,b2] ~", AC: "~@4 [e2,b2]@2 ~@4 [b2,f#3] ~@5 [b2,f#3]@6 [b2,f#3] ~",
  AD: "~@4 [a2,e3] ~@5 [e2,b2]@2 ~@4 [e2,b2]@5 ~ [e2,b2]@2", // A5 E5
  AE: "~@4 [e2,b2]@2 ~@4 [b2,f#3] ~@5 [b2,f#3]@5 ~ [b2,f#3] ~", AF: "~@4 [e2,b2]@2 ~@4 [b2,f#3]@2 ~@4 [b2,f#3]@3 ~@5",
})).s("gm_overdriven_guitar").gain(0.3).pan(0.6)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@18 A@2 B@2 A@2 B@2 C@2 D@2 E@5 F G E@5 H I J@2 ~ K L M N O@2 P@2 O@2 Q@2 C R D S T@4 U V W T@4 U X Y@2 ~ Z@8 AA C R
  D AB E@5 F G E@5 H I AC@3 ~ AD@8 AE@5
>`.pickRestart({
  A: "~@3 [f#3,b3]@2 ~ [f#3,b3]@2 ~@4", // B5
  B: "[~@6 [f#3,b3]@5 ~ [f#3,b3]@4 ~@6 [b3,e4]@8 a3@3 ~ b3@8 [f#3,b3]@6, ~@30 d4@5 ~@13, ~@33 f#3@8 ~@7]/2", // B5 E5 B5
  C: "~@4 [e3,a3] ~@5 [e3,a3] ~@5 [e3,a3] ~@5 [e3,a3] ~", D: "~@4 [f#3,b3] ~@5 [f#3,b3] ~@5 [f#3,b3] ~@5 [f#3,b3] ~",
  E: "[f#3,c#4]@3 ~ [f#3,c#4]@2 ~@4 [f#3,c#4]@2 ~@4 [f#3,c#4]@2 ~@4 [f#3,c#4]@2", // F#5
  F: "[d#3,a#3]@3 ~ [d#3,a#3]@2 ~@4 [d#3,a#3]@2 ~@4 [d#3,a#3]@2 [c#3,g#3]@3 ~@3", // D#5 C#5
  G: "[b2,f#3]@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3]", // B5
  H: "[d#3,a#3]@2 [d#3,a#3] ~@2 [d#3,a#3] ~@2 [d#3,a#3] ~@2 [d#3,a#3]", // D#5
  I: "[f#3,b3]@2 [f#3,b3] ~@2 [f#3,b3] ~@2 [f#3,b3] ~@3", J: "[[g#3,d#4]@9 ~@7]/2",
  K: "~@12 [b2,f#3]@3 ~@3 [b2,f#3]@4 ~@2", L: "[b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~",
  M: "[b2,f#3]@2 ~ [d3,a3]@2 ~ [e3,b3]@2 ~ [e3,b3]@2 ~", N: "[e3,b3]@2 ~ [d3,a3]@2 ~@4 [f#3,b3]@2 ~",
  O: "[f#3,b3]@2 ~@7 [f#3,b3]@2 ~", // B5
  P: "[[f#3,b3]@4 ~@6 [b3,e4]@8 a3@3 ~ b3@8 [f#3,b3]@6 ~@6 [f#3,b3]@4 ~@2, ~@18 d4@5 ~@25, ~@21 f#3@8 ~@19]/2", // B5 E5 B5
  Q: "[[f#3,b3]@4 ~@6 [b3,e4]@8 a3@3 ~ b3@8 [f#3,b3]@6 ~@4 [e3,a3] ~@5 [e3,a3] ~, ~@18 d4@5 ~@25, ~@21 f#3@8 ~@19]/2", // B5 E5 B5 A5
  R: "~@4 [e3,a3] ~@5 [e3,a3] ~@5 [f#3,b3] ~@5 [f#3,b3] ~", // A5 B5
  S: "~@4 [f#3,b3] ~@5 [f#3,b3] ~ [f#3,c#4]@3 ~ [f#3,c#4]@2 ~@4 [f#3,c#4]@2", // B5 F#5
  T: "~@4 [f#3,c#4]@2 ~@4 [f#3,c#4]@2 [f#3,c#4]@3 ~ [f#3,c#4]@2 ~@4 [f#3,c#4]@2", // F#5
  U: "~@4 [f#3,c#4]@2 ~@4 [f#3,c#4]@2 [d#3,a#3]@3 ~ [d#3,a#3]@2 ~@4 [d#3,a#3]@2", // F#5 D#5
  V: "~@4 [d#3,a#3]@2 [c#3,g#3]@3 ~@3 [b2,f#3]@4 [b2,f#3]@2 ~@4 [b2,f#3]@2", // D#5 C#5 B5
  W: "~@4 [b2,f#3]@2 ~@4 [b2,f#3]@2 [f#3,c#4]@4 [f#3,c#4] ~@5 [f#3,c#4]@2", // B5 F#5
  X: "~@2 [d#3,a#3] ~@2 [d#3,a#3] [f#3,b3]@2 [f#3,b3] ~@2 [f#3,b3]", Y: "[~@2 [f#3,b3] ~@3 [g#3,d#4]@12 ~@6]/2",
  Z: "[~@10 [e4,a4]@7 ~ [e4,a4]@3 ~ [e4,a4]@7 ~ [e4,a4]@3 ~ [e4,b4]@7 ~ [e4,b4]@3 ~ [e4,b4]@7 ~ [e4,b4]@3 ~ [f#4,b4]@7 ~ [f#4,b4]@3 ~ [f#4,b4]@7 ~ [f#4,b4]@3 ~ [f#4,b4]@8 [f#4,b4]@4 [f#4,b4]@7 ~ [f#4,b4]@3 ~ [e4,a4]@7 ~ [e4,a4]@3 ~ [e4,a4]@7 ~ [e4,a4]@3 ~ [e4,b4]@7 ~ [e4,b4]@3 ~ [e4,b4]@7 ~ [e4,b4]@3 ~ [f#4,b4]@7 ~ [f#4,b4]@3 ~ [f#4,b4]@7 ~ [f#4,b4]@3 ~ [f#4,b4]@8 [f#4,b4]@4 [f#4,b4]@2]/8", // A5 E5 B5 A5 E5 B5
  AA: "~@6 [f#4,b4]@6 ~@4 [e3,a3] ~@5 [e3,a3] ~", AB: "[f#3,b3] ~@23", AC: "[[g#3,d#4]@25 ~@11]/3",
  AD: "[~@12 [f#3,b3]@5 ~ [f#3,b3]@4 ~@2 [f#3,b3]@5 ~ [f#3,b3]@4 ~@2 [f#3,b3]@5 ~ [f#3,b3]@4 ~@2 [f#3,b3]@5 ~ [f#3,b3]@3 ~@3 [e3,a3]@5 ~ [e3,a3]@4 ~@2 [e3,a3]@5 ~ [e3,a3]@3 ~@3 [b3,e4]@5 ~ [b3,e4]@4 ~@2 [b3,e4]@5 ~ [b3,e4]@4 ~@2 [f#3,b3]@5 ~ [f#3,b3]@4 ~@2 [f#3,b3]@5 ~ [f#3,b3]@4 ~@2 [f#3,b3]@5 ~ [f#3,b3]@4 ~@2 [f#3,b3]@5 ~ [f#3,b3]@3 ~@3 [e3,a3]@5 ~ [e3,a3]@4 ~@2 [e3,a3]@5 ~ [e3,a3]@3 ~@3 [b3,e4]@5 ~ [b3,e4]@4 e3@2, ~@10 b2@11 ~ b2@10 ~@2 b2@11 ~ b2@11 ~ a2@11 ~ a2@10 ~@2 e3@10 ~@2 e3@10 ~@2 b2@11 ~ b2@11 ~ b2@11 ~ b2@11 ~ a2@11 ~ a2@10 ~@2 e3@10 ~@4]/8", // B5 A5 E5 B5 A5 E5
  AE: "[[b3,e4]@5 ~ [b3,e4]@4 ~@2 [f#3,b3]@5 ~ [f#3,b3]@4 ~@2 [f#3,b3]@5 ~ [f#3,b3]@4 ~@2 [f#3,b3]@5 ~ [f#3,b3]@4 ~@2 [f#3,b3]@5 ~ [f#3,b3]@3 ~@3 [e3,a3]@5 ~ [e3,a3]@4 ~@2 [e3,a3]@5 ~ [e3,a3]@3 ~@3 [b3,e4]@5 ~ [b3,e4]@4 ~@8 e3@3 ~ [b2,f#3,b3]@3 ~@3 b2@3 ~@5, ~@10 b2@11 ~ b2@11 ~ b2@11 ~ b2@11 ~ a2@11 ~ a2@10 ~@2 e3@10 ~@2 e3@7 ~@10 [f#3,b3]@3 ~@6, ~@32 [b3,e4]@3 ~@5]/5", // E5 B5 A5 E5 B5 E5
})).s("gm_distortion_guitar").gain(0.27).pan(0.3)

// other · synth brass 1
const synth_brass_1 = note("<~ A B C ~@11 A B C ~@28 D E D F ~@59 D E D F D E D E D E D E D E>".pickRestart({
  A: "~@11 [b3,b4]", B: "~@2 [b3,b4]@3 [b3,b4] [g#3,g#4]@3 [f#3,f#4]@2 [b3,b4]", C: "~@4 [b3,b4]@3 ~@17",
  D: "~@5 [b3,b4] ~@2 [b3,b4]@3 [b3,b4]", E: "[g#3,g#4]@6 [f#3,f#4]@4 [b3,b4]@2 ~@4 [b3,b4]@3 ~@5",
  F: "[g#3,g#4]@3 [f#3,f#4]@2 [b3,b4] ~@2 [b3,b4] ~@3", // G# F# B
})).s("gm_synth_brass_1").gain(0.4).pan(0.7)

// other · synth brass 1
const synth_brass_1_2 = note("<~ A B C ~@11 A B C ~@28 D E D E ~@59 D E D E D E D E D E D E D E>".pickRestart({
  A: "~@11 b4", B: "~@4 b4@5 ~ b4 ~ b4@5 ~ b4@3 ~ b4@2", C: "~@2 b4 ~@9", D: "~@10 b4@2 ~@4 b4@5 ~ b4 ~",
  E: "b4@5 ~ b4@3 ~ b4@2 ~@4 b4@2 ~@6",
})).s("gm_synth_brass_1").gain(0.28).pan(0.3)

// chords · fiddle
const fiddle = note(`<
  ~@30 A@4 B C D A@5 C D E ~@8 F@2 ~@7 G A@4 H I J A@4 H I K@2 ~@14 A@4 B C D A@5 C D L@3 ~@14
>`.pickRestart({
  A: "f#4@2 [f#4,c#5] ~ f#4@2 f#4@2 [f#4,c#5] ~ [f#4,c#5]@2 [f#4,c#5]@2 [f#4,c#5] ~ [f#4,c#5]@2 f#4@2 [f#4,c#5] ~ c#5@2, c#5 ~@3 c#5 ~ c#5 ~@11 c#5 ~@3 f#4 ~", // F#5
  B: "[f#4,c#5] ~ [f#4,c#5] ~ [f#4,c#5]@2 [f#4,c#5] ~ [f#4,c#5] ~ f#4@2 f#4@2 [f#4,c#5] ~ f#4@2 f#4@2 [f#4,c#5] ~ [f#4,c#5] ~, ~@10 c#5 ~ c#5 ~@3 c#5 ~ c#5 ~@5", // F#5
  C: "[a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5]@2 [a#4,d#5] ~ [a#4,d#5]@2 [a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5] ~", // D#5
  D: "[f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ f#4@2 [f#4,b4]@2 [f#4,b4] ~ [f#4,b4] ~ f#4@2 [f#4,b4] ~ [f#4,b4] ~, ~@10 b4 ~@7 b4 ~@5", // B5
  E: "[g#4,d#5]", F: "[~@11 [f#4,a4,c#5]@6 [a3,c#4,f#4]@4 ~@3]/2",
  G: "~@12 f#4@2 [f#4,c#5] ~ f#4@2 f#4@2 [f#4,c#5] ~ [f#4,c#5]@2, ~@12 c#5 ~@3 c#5 ~ c#5 ~@5", // F#5
  H: "[f#4,c#5]@2 [f#4,c#5] ~ [f#4,c#5]@2 [f#4,c#5]@2 [f#4,c#5] ~ [f#4,c#5] ~ [a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5]@2 [a#4,d#5] ~ [a#4,d#5]@2", // F#5 D#5
  I: "[a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5] ~ [a#4,d#5] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ f#4@2, ~@22 b4 ~", // D#5 B5
  J: "[f#4,b4]@2 [f#4,b4] ~ [f#4,b4] ~ f#4@2 [f#4,b4] ~ [f#4,b4] ~ [f#4,c#5] ~ [f#4,c#5] ~ [f#4,c#5] ~ [f#4,c#5] ~ [f#4,c#5] ~ [f#4,c#5] ~, ~@6 b4 ~@17", // B5 F#5
  K: "[[f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ [g#4,d#5]@25 ~@11]/2", // B5 G#5
  L: "[[g#4,d#5]@25 ~@11]/3", // G#5
})).s("gm_fiddle").gain(0.25).pan(0.4)

// chords · contrabass
const contrabass = note(`<
  ~@30 A@4 B C D E F A@2 B C D G ~@17 H@6 I@7 J@3 ~@14 A@4 B C D E F A@2 B C D K@3 ~ L@6 M@7
>`.pickRestart({
  A: "[[c#4,f#4]@7 [f#3,c#4]]/2", B: "[c#4,f#4]", C: "[f#5,a#5] [f5,g#5] [d#5,f#5] [c#5,f5]", D: "[d#5,f#5]",
  E: "[f#4,c#5]", F: "[c#4,f#4]@3 [f#3,c#4]", G: "[b4,d#5]",
  H: "[~@12 [c#4,f#4]@41 ~ [f#3,c#4]@6 [c#4,f#4]@42 f#3@6 [c#4,f#4]@24 [f#5,a#5]@6 [f5,g#5]@6, ~@102 c#4@5 ~@37]/6", // F#5 F# Fm
  I: "[[d#5,f#5] [c#5,f5] [d#5,f#5]@4 c#5@4 [c#4,f#4]@3 [f#3,c#4] [c#4,f#4]@7 f#3 [c#4,f#4]@4 [f#5,a#5] [f5,g#5], ~@36 f#4@23 ~@67 c#4@5 ~@37]/7", // D#m C# D#m F#5 F# Fm
  J: "[[d#5,f#5] [c#5,f5] [d#5,f#5]@4 [b4,d#5]@4 ~@2]/3", K: "[[b4,d#5]@25 ~@11]/3",
  L: "[~@5 f#3 [b3,f#4]@11 f#3 [b3,f#4]@11 e3 [a3,e4]@11 e3 [b3,e4]@11 f#3 [b3,f#4]@11 f#3 [b3,f#4]@6]/6", // B5 A5 E5 B5
  M: "[~@10 e3@2 [a3,e4]@22 e3@2 [b3,e4]@22 f#3@2 [b3,f#4]@22 f#3@2 [b3,f#4]@22 e3@2 [a3,e4]@22 e3@2 [b3,e4]@21 f#3@6 ~ f#4@3 ~@5, ~@53 b3 ~@2]/7", // A5 E5 B5 A5 E5
})).s("gm_contrabass").gain(0.19).pan(0.7)

// other · overdriven guitar
const overdriven_guitar_2 = note("<~@78 A B@4 C@3 D E ~@35>".pickRestart({
  A: "~@11 a5",
  B: "[~@4 f#5@3 ~@3 e5@2 ~@4 d5@18 ~@10 d5@2 ~@2 d5@10 f#3@2 a3@2 f#3@2 a3@2 b3@3 ~ [a3,d4]@12 f#3@2 a3@2 f#3@2 a3@2 d4@2 ~ g#4@3, ~@34 b4@4 b4@4 b4@4 b4@13 ~@33 b3@2 ~@2, ~@9 d5!2 ~@13]/4", // D5
  C: "[d4@2 ~@3 e4 c#5 a4 c#5 ~@3 d5@2 c#5@3 b4 ~ e5 g#5 ~@3 a5@2 g#5@3 b4 a5 b5!2 b5@2 f#5, ~@2 b3@4 ~@3 a4@2 a4@6 ~@5 g#5@2 ~@12, ~@10 c#5@2 ~@6 g#5@2 ~ e5@2 e5@6 ~@7]/3",
  D: "a5@2 b5@2 b5@2 b5@4 f#5@2 a5@2 b5@2 b5@2 b5@5 ~", E: "b5@2 f#5 b4 f#4 a4 ~@6",
})).s("gm_overdriven_guitar").gain(0.52).pan(0.7)

// other · synth brass 2
const synth_brass_2 = note("<~ A B C ~@11 A B C ~@28 D E D E ~@59 D E D E D E D E D E D E D E>".pickRestart({
  A: "~@11 b3", B: "~@4 b3@5 ~ b3@2 g#3@6 f#3@4 b3@2", C: "~@2 b3 ~@9", D: "~@10 b3@2 ~@4 b3@5 ~ b3@2",
  E: "g#3@3 f#3@2 b3 ~@2 b3 ~@3",
})).s("gm_synth_brass_2").gain(0.32).pan(0.7)

// other · brass section
const brass_section = note("<~ A B C ~@11 A B C ~@105>".pickRestart({
  A: "~@11 b3", B: "~@4 b3@5 ~@3 g#3@6 f#3@4 [d#4,f#4]@2, ~@11 b3@2 ~@11", C: "~@2 [d#4,f#4] ~@9",
})).s("gm_brass_section").gain(0.15).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~@6 A@11 B A@12 C@14 B ~@2 D A@14 E C@13 F ~@2 G C@7 F A@3 B C@14 B ~@3 D A@11 H
>`.pickRestart({
  A: "x!2", B: "x", C: "x!4", D: "~ x", E: "x ~ x!2", F: "x!3 ~", G: "~@5 x!2 ~@2 x ~@2", H: "x ~@4 x ~@2 x ~@3",
})).gain(0.6)

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

// drums · low tom
const low_tom = s("lt").struct("<~@17 A ~@9 B ~ C ~@20 D ~@9 E ~ F ~@26 E ~@32 G>".pickRestart({
  A: "~@11 x", B: "~@9 x ~ x", C: "~@10 x!2", D: "~@5 x ~@6", E: "~@3 x ~ x ~@6", F: "~@4 x!2 ~@6", G: "~@2 x!2 ~@8",
})).gain(0.42)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@17 A ~@11 A ~@20 B ~@11 B ~@59 C>".pickRestart({
  A: "~@3 x", B: "~ x ~@2", C: "~ x ~@10",
})).gain(0.42)

// drums · open hat
const open_hat = s("oh").struct("<~@6 A@11 B A@27 ~@5 C A@26 D ~@3 E ~@5 F A@3 ~ A@14 G A ~@14 H>".pickRestart({
// … 37 more lines

More by Shania Twain