Strudelify

I'm Gonna Getcha Good!

Shania Twain

KeyD♭ majorTempo123 bpm
0:00/0:00
// I'm Gonna Getcha Good! — Shania Twain
// 123 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 7, 4/4 at bar 8) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 140 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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 · drawbar organ
const drawbar_organ = note(`<
  ~@42 A@2 B@2 A@2 C@2 D ~@28 A@2 B@2 A@2 C@2 D ~@32 A@2 B@2 A@2 C@2 A@2 B@2 A@2 C@2 D ~@2 E
>`.pickRestart({
  A: "[[db5,f5]@16 [c5,eb5]@15 ~, ab5@31 ~]/2", B: "[[f5,ab5] [gb5,bb5], db5]/2", C: "[db5,gb5,bb5]/2",
  D: "[c5,eb5,ab5] ~@7", E: "bb3@3 ~ bb3@2 f3@2 ab3@2 bb3@2 ~@4",
})).s("gm_drawbar_organ").gain(0.14).pan(0.3)

// bass · electric bass finger
const bass = note(`<
  ~@6 A B A B ~@6 C D E B E F E G E H I@2 J@2 K L M N ~@3 O ~ P Q@2 R S T U V W X Y Z ~@3 D E G AA AB E G E H I@2 AC@2 K
  L M N ~@3 O ~ P Q@2 R S T AD V W AE AF AG ~@12 AH ~ AH AI I@2 J@2 K L AJ N ~@3 O ~ P Q@2 R S AK U V W X AL R S T AD V
  W X Y AM ~@2 AN
>`.pickRestart({
  A: "bb1@5 ~ f1 ~ ab1@2 bb1@2 ab1@3 ~", B: "db2@4 ~@2 f1@2 ab1@2 bb1@2 ab1@3 ~", C: "~@4 bb1@3 ~@9",
  D: "~@4 ab2 bb2 ab2@2", E: "bb1@5 ~ f1@2 ab1@2 bb1@2 ab1@3 ~", F: "db2@2 ~ f1 c2 db2 c2@2",
  G: "db2@5 ~ f1@2 ab1@2 bb1@2 ab1@3 ~", H: "db2@2 ~ f2 ab2 bb2 ab2@2",
  I: "[~@2 ab1 ~ ab1 ~@3 ab1@4 ab1@2 gb1@4 ~@2 gb1@3 ~ gb1 ~ gb1@2 ~@2 gb1@2]/2",
  J: "[ab1@3 ~ ab1@3 ~ ab1@5 ~ gb1@4 ~@2 gb1@3 ~ gb1@2 gb1@3 ~ db2@2]/2", K: "db1@4 db1@3 ~ db1@5 ~ d1@2",
  L: "eb1@3 ~ eb2@3 ~ eb1@2 db1@2 eb1@2 f1@2", M: "gb1@5 ~ gb1 ~ gb1@6 gb1 ~", N: "gb1@6 gb1@2 gb1@4 gb1@3 ~",
  O: "~@7 db2", P: "~@7 gb1", Q: "[~@7 gb1@3 gb1!2 ~@2 f1@2]/2", R: "db2@5 ~ db2 ~ db2@6 ~@2",
  S: "ab1@4 ~@2 ab1 ~ ab1@6 ~@2", T: "bb1@5 ~ bb1 ~ bb1@5 ~ gb1 ~", U: "gb1@4 ~@2 gb1 ~ gb1 ~ gb1@2 ab1@3 ~",
  V: "db2@5 ~ db2 ~ db2@5 ~@3", W: "ab1@4 ~@2 ab1 ~ ab1@5 ~ gb1 ~", X: "gb1@5 ~ gb1 ~ gb1@6 ~@2",
  Y: "gb1@6 gb1@2 gb1@3 ~ gb1@4", Z: "ab1@5 ~ ab1@2", AA: "bb1@5 ~ f1@2 ab1@2 bb1 ~ ab1@4",
  AB: "db2@5 ~ f1@2 c2@2 db2@2 c2@3 ~", AC: "[ab1@3 ~ ab1@3 ~ ab1@4 ~@2 gb1@4 ~@2 gb1@3 ~ gb1 ~ gb1@3 ~ db2@2]/2",
  AD: "gb1@5 ~ gb1 ~ gb1 ~ gb1@2 ab1@3 ~", AE: "gb1@5 ~ gb1 ~ gb1@5 ~@3", AF: "gb1@6 gb1@2 gb1@2 ~@2 gb1@3 ~",
  AG: "ab1@3 ~@9 ab1@3 ~", AH: "bb1@3 f1 ab1 bb1 ~@2", AI: "~@4 c3 db3 c3 ~", AJ: "gb1@6 gb1 ~ gb1@6 gb1 ~",
  AK: "bb1@6 bb1 ~ bb1@5 ~ gb1 ~", AL: "gb1@6 gb1@2 gb1@3 ~ gb1@3 ~", AM: "ab1@4 ~@8 ab1@3 ~",
  AN: "bb1@2 bb1 f1 ab1 bb1 ~@2",
})).s("gm_electric_bass_finger").gain(0.48)

// chords · lead 1 square
const lead_1_square = note(`<
  ~@18 A B A B A B A B ~@8 C D E F C D G H C I A F C J F@2 K ~@4 A B A B A B A B ~@8 C D E F C D G H C I A F C J F@2 K
  ~@12 A@4 L M L M C M F N C D E F C D G H C I A F C J F@2 C I A F C J F@2 K ~@3
>`.pickRestart({
  A: "[db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~", // Bbm
  B: "[db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [eb4,ab4,c5] ~ [f4,bb4,db5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~", // Bbm Ab Bbm Ab
  C: "[db4,f4,ab4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~", // Db
  D: "[db4,f4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~", // Db Ab
  E: "[c4,eb4,ab4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~", // Ab Bbm
  F: "[db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~", // Gb
  G: "[db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,ab4] ~ [db4,gb4,ab4] ~ [db4,gb4,ab4] ~", // Gb Dbsus4
  H: "[db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,ab4] ~ [db4,gb4,ab4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,ab4] ~", // Gb Dbsus4 Bbm Db
  I: "[db4,f4,ab4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~", // Db Ab
  J: "[c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~", // Ab
  K: "[c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~", // Ab Db
  L: "[c4,f4,ab4] ~ [c4,f4,ab4] ~ [c4,f4,ab4] ~ [c4,f4,ab4] ~ [c4,f4,ab4] ~ [c4,f4,ab4] ~ [c4,f4,ab4] ~ [c4,f4,ab4] ~", // Fm
  M: "[bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~", // Gb
  N: "[db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~", // Gb
})).s("gm_lead_1_square").gain(0.11).pan(0.4)

// chords · electric guitar muted
const electric_guitar_muted = note("<~@6 A B A B ~@8 A B A B A B A B ~@29 A B A B A B A B ~@77>".pickRestart({
  A: "[f3,bb3]@6 [f3,bb3]@4 [f3,bb3] ~@5", B: "[ab3,db4]@2 [ab3,db4]@2 [ab3,c4]@3 ~",
})).s("gm_electric_guitar_muted").gain(0.35).pan(0.7)

// other · electric guitar clean
const electric_guitar_clean = note("<~@18 A B C D A B E F ~@29 A B C D A B E F ~@7 G ~@69>".pickRestart({
  A: "~@4 bb3@2 db4@3 ~ db4@2 bb3@3 ~", B: "db4@3 ~ db4@4 c4@2 db4@2 c4@3 ~",
  C: "bb3@3 ~ bb3@2 f3@2 ab3@2 bb3@2 ab3@2 ~@2", D: "db4@2 db4@2 c4 db4 c4 ~",
  E: "bb3@3 ~ bb3@2 f3@2 ab3@2 bb3@2 ab3@3 ~", F: "db4@4 db4@2 f3@2 ab3@2 bb3@2 ab3@3 ~", G: "~@6 [db3,ab3,db4]@7 ~@3",
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.4)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~ A ~ A ~ B C D E F ~ D ~ E ~ D G ~ C D E F E D C F ~@11 H ~ I J@2 K L M N O P Q@2 R C D C F C D C F C D C F ~@11 H ~
  I J@2 K L M N O P Q@2 R ~@12 E ~ E ~@4 S@3 T U ~@6 V@2 K L W N O P Q@2 K L M N O P Q@2 X ~@2 E
>`.pickRestart({
  A: "~@2 bb2@2 [bb2,bb3] f2 ~ bb2, ~@3 ab2", B: "~@3 [ab2,eb3,ab3]", C: "bb2@2 [bb2,bb3] f2 ~ bb2 ~@2, ~@2 ab2 ~",
  D: "db3@2 ~ f2 ab2 bb2 ~@2, ~ [db3,db4] ~@2", E: "bb2@2 [bb2,bb3] f2 ab2 bb2 ~@2",
  F: "db3@4 ~@2 f2@2 ab2@2 bb2@2 ab2@3 ~, ~ [db3,db4] ~@2", G: "~@4 [bb2,f3]@3 ~@9", H: "~@7 [db3,ab3]",
  I: "~@7 [gb2,db3]", J: "[~@7 [gb2,db3]@4 [gb2,db3] ~@2 [f2,db3]@2]/2", K: "~@2 [ab3,db4] ~@2 [ab3,db4] ~ [ab3,db4]",
  L: "~@4 [ab3,eb4]@3 ~@3 [ab3,eb4]@2 ~@2 [ab3,eb4]@2", M: "~@2 [bb3,f4] ~@2 [bb3,f4] ~ [bb3,f4]",
  N: "~@4 [bb3,gb4]@3 ~@3 [bb3,gb4]@3 ~ [bb3,gb4]@2", O: "~@2 [ab3,f4] ~@2 [ab3,f4] ~ [ab3,eb4]",
  P: "~@2 [ab3,eb4] ~@2 [ab3,eb4] ~ [bb3,gb4]", Q: "~@2 [db4,gb4] ~@2 [db4,gb4] ~ [db4,gb4]", R: "[ab3,eb4]@3 ~@13",
  S: "[~@6 f3@2 gb3@2 db4@2 gb3@2 db3@12 ab3@2 db3@2 eb3@11 ~ eb3@2 f3@2 gb3 ~]/3", T: "gb3@15 ~", U: "gb3@2 gb3!2",
  V: "[~@14 [gb2,db3]@6 [gb2,db3]@2 [gb2,db3] ~@5 [f2,db3]@4]/2", W: "~@4 [bb3,f4]@2 ~@4 [bb3,f4]@3 ~ [bb3,f4]@2",
  X: "[ab3,eb4]@3 ~@9 eb3@3 ~", // Ab5
})).s("gm_distortion_guitar").gain(0.25).pan(0.3)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@2 A ~ B C D E D E ~@6 F@2 D E D E D E D E ~@6 G@2 ~@3 H ~ I J@2 K L M N O P Q@2 R ~@2 F@2 D E D E D E D E ~@6 G@2
  ~@3 S ~ I J@2 K T U N O P Q@2 R ~@32 K T M N O P N Q K L U N O P N Q V ~@3
>`.pickRestart({
  A: "~@2 [bb2,f3,bb3]@7 ~@7", B: "~@2 [db3,ab3,db4]@7 ~@7", C: "~@3 [ab2,eb3,ab3]",
  D: "~@2 [bb2,f3,bb3]@2 ~ [bb2,f3,bb3] ~@2", E: "~@4 [db3,ab3]@5 ~ [db3,ab3]@3 ~@3", F: "[~@7 [db3,ab3,db4]@4 ~@5]/2",
  G: "[[db3,gb3,db4]@11 [db3,gb3,db4]@3 [db3,gb3,db4]@2]/2", H: "~@14 [db3,ab3,db4] ~", I: "~@7 [db3,gb3,db4]",
  J: "[~@7 [db3,gb3,db4]@4 [db3,gb3,db4] ~@2 [db3,f3,db4]@2]/2", // Gb5 Db
  K: "~@4 [f3,ab3,db4]@3 ~@3 [f3,ab3,db4]@3 ~ [f3,ab3,db4]@2", // Db
  L: "~@4 [eb3,ab3,eb4]@4 ~@2 [eb3,ab3,eb4]@3 ~ [eb3,ab3,eb4]@2", // Ab5
  M: "~@4 [bb3,db4,f4]@3 ~@3 [bb3,db4,f4]@2 ~@2 [bb3,db4,gb4]@2", // Bbm Gb
  N: "~@4 [bb3,db4,gb4]@3 ~@3 [bb3,db4,gb4]@2 ~@2 [bb3,db4,gb4]@2", // Gb
  O: "~@2 [ab3,db4,f4] ~@2 [ab3,db4,f4] ~ [ab3,c4,eb4]", P: "~@2 [ab3,c4,eb4] ~@2 [ab3,c4,eb4] ~ [bb3,db4,gb4]",
  Q: "~@2 [bb3,db4,gb4] ~@2 [bb3,db4,gb4] ~ [bb3,db4,gb4]", R: "[eb3,ab3,c4,eb4]@3 ~@13", S: "~@7 [db3,ab3,db4]",
  T: "~@4 [eb3,ab3,eb4]@3 ~@3 [eb3,ab3,eb4]@3 ~ [eb3,ab3,eb4]@2", // Ab5
  U: "~@2 [bb3,db4,f4] ~@2 [bb3,db4,f4] ~ [bb3,db4,gb4]", V: "[eb3,ab3,c4,eb4]@3 ~@9 eb3@3 ~",
})).s("gm_overdriven_guitar").gain(0.12).pan(0.7)

// other · ocarina
const ocarina = note("<~@6 A B A C D ~@40 A E A C D ~@32 A F A F A F A F A F A G H F A F ~@33 H F I>".pickRestart({
  A: "bb5@6 db6@2 bb5@2 db6@2 f5@3 ~", B: "bb5@6 db6@2 c6@2 db6@2 ab5@3 ~", C: "bb5@3 f5 ab5 bb5 ab5 bb5",
  D: "ab5@2 bb5@2 ab5@3 ~@9", E: "bb5@6 db6@2 c6@2 db6 ~ ab5@3 ~", F: "bb5@6 db6@2 c6@4 ab5@3 ~",
  G: "bb5@6 db6@2 ab5@2 bb5@2 f5@3 ~", H: "bb5@3 db6 bb5 db6 f5@2", I: "bb5@4 bb5@2 f5@2 ab5@2 bb5 ~@5",
})).s("gm_ocarina").gain(0.13).pan(0.3)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@17 A ~@3 B ~@3 A C@2 D@2 E@2 F@2 ~@20 A ~@3 B ~@3 A C@2 G@2 H@2 I@2 ~@22 J ~ K ~ J ~ L M ~ M B N@2 O@2 P@2 Q R ~@27
  M
>`.pickRestart({
  A: "~@8 [ab3,ab4]@7 ~", B: "~@8 [c3,c4]@7 ~", C: "[f4@7 [bb3,gb4]@9]/2", D: "[f4@7 [db4,gb4]@9]/2",
  E: "[~@14 eb4@17 ~]/2", F: "gb4/2", G: "[f4@7 gb4@9]/2", H: "[[db4,f4]@14 eb4@17 ~]/2", I: "[db4,gb4]/2",
  J: "~@2 [bb2,bb3] [ab2,ab3] [bb2,bb3] ~ [c3,c4] ~ [db3,db4]@2 [eb3,eb4] ~ [f3,f4]@3 ~", // Bb Ab Bb C Db Eb F
  K: "~@2 [bb2,bb3] [ab2,ab3] [bb2,bb3] ~ [ab2,ab3] ~ [bb2,bb3]@2 [db3,db4] ~ [ab2,ab3] [bb2,bb3]@2 ~", // Bb Ab Bb Ab Bb Db Ab Bb
  L: "~@2 [bb2,bb3] [ab2,ab3] [bb2,bb3] ~ [ab2,ab3] ~ [bb2,bb3]@2 [db3,db4] ~ [ab2,ab3]@4", // Bb Ab Bb Ab Bb Db Ab
  M: "[bb2,bb3]@2 [bb2,bb3] [f2,f3] [ab2,ab3] [bb2,bb3] ~@2", N: "[c4@7 [bb3,gb4]@9]/2", O: "[~@7 [db4,gb4]@9]/2",
  P: "[~@14 [bb3,eb4]@17 ~]/2", Q: "[db4,gb4]", R: "gb4@2 db4 [db4,gb4]",
})).s("gm_string_ensemble_1").gain(0.4).pan(0.3)

// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@26 A ~ A ~ B@2 C@2 ~@29 A ~ D@2 E@2 ~@35 F ~ G ~ H ~@2 I ~@28>".pickRestart({
  A: "c4@7 ~", B: "[[db4,f4]@14 bb3@17 ~]/2", C: "db4/2", D: "[c4@14 db4@17 ~]/2", E: "[~@14 bb3@17 ~]/2", F: "f4@7 ~",
  G: "[c4,f4]@7 ~", H: "[db4,f4]@7 ~", I: "db4@2 gb4 ~",
})).s("gm_string_ensemble_1").gain(0.25).pan(0.3)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@6 A B A C ~@8 A C A D A C A E F@2 G@4 H@2 ~@8 I J K L M J N L O ~@4 A B A D A B A E F@2 G@4 H@2 ~@8 I J K L M J N L
  O ~@16 F@2 G@4 H@2 ~@8 M J K P M J Q P I J K L M J N L O ~@2 R
>`.pickRestart({
  A: "~@2 [bb2,f3,bb3]@2 ~ [bb2,f3,bb3]@2 ~", B: "db4@4 db4@4 c4@2 db4@2 c4@3 ~", C: "db4@3 ~ db4@4 c4@2 db4@2 c4@3 ~",
  D: "db4@3 ~ db4@4 c4@2 db4@2 c4@4", E: "db4@2 db4@2 c4 db4 c4@2",
  F: "[[ab3,c4,f4,ab4,c5]@13 ~@2 bb4@16 ~, ~@7 [db3,gb3,bb3,gb4]@8 ~]/2", // Fm Gb
  G: "[[ab3,c4,f4,ab4,c5]@13 ~ [db3,gb3,bb3,gb4,bb4]@16 ~@3 ab4@13 [eb3,gb3,bb3,eb4,gb4]@16 ~@2, ~@31 [db3,ab3]@14 ~@19, ~@16 [db4,f4]@7 ~@9]/4", // Fm Gb Ebm Db5 Db
  H: "[[db3,ab3,db4,gb4,bb4]@31 ~]/2", // Gb
  I: "~@2 [db3,ab3,db4,f4,ab4] ~ [db3,ab3,db4,f4,ab4]@4 [db3,ab3,db4,f4,ab4] ~ [db3,ab3,db4,f4,ab4]@2 ~@2 [db3,ab3,db4,f4,ab4]@2", // Db
  J: "~@2 [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4]@2 ~@2 [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4]@2 ~@2 [eb3,ab3,eb4,ab4,c5]@2", // Ab
  K: "[f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4]@3 ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4]@2 ~@2 [f3,bb3,db4,f4,bb4]@2", // Bbm
  L: "~@2 [db3,bb3,db4,gb4,bb4] ~ [db3,bb3,db4,gb4,bb4]@3 ~ [db3,bb3,db4,gb4,bb4] ~ [db3,bb3,db4,gb4,bb4]@2 ~@2 [db3,bb3,db4,gb4,bb4]@2", // Gb
  M: "~@2 [db3,ab3,db4,f4,ab4] ~ [db3,ab3,db4,f4,ab4]@4 [db3,ab3,db4,f4,ab4] ~ [db3,ab3,db4,f4,ab4]@3 ~ [db3,ab3,db4,f4,ab4]@2", // Db
  N: "[db3,bb3,db4,gb4,bb4] ~ [db3,bb3,db4,gb4,bb4]@5 ~ [db3,bb3,db4,gb4,bb4] ~ [db3,bb3,db4,gb4,bb4]@3 ~ [db3,bb3,db4,gb4,bb4]@2", // Gb
  O: "[c3,ab3,c4,eb4,ab4] ~@3", // Ab
  P: "~@2 [db3,bb3,db4,gb4,bb4] ~ [db3,bb3,db4,gb4,bb4]@3 ~ [db3,bb3,db4,gb4,bb4] ~ [db3,bb3,db4,gb4,bb4]@3 ~ [db3,bb3,db4,gb4,bb4]@2", // Gb
  Q: "[db3,bb3,db4,gb4,bb4] ~ [db3,bb3,db4,gb4,bb4]@5 ~ [db3,bb3,db4,gb4,bb4] ~ [db3,bb3,db4,gb4,bb4]@2 ~@2 [db3,bb3,db4,gb4,bb4]@2", // Gb
  R: "[db3,f3,bb3,db4,f4,bb4]@4 [db3,f3,bb3,db4,f4,bb4]@3 ~ [db3,f3,bb3,db4,f4,bb4]@2 [db3,f3,bb3,db4,f4,bb4] ~@5", // Bbm
})).s("gm_acoustic_guitar_steel").gain(0.25)

// other · electric guitar muted
const electric_guitar_muted_2 = note(`<
  ~@6 A B C B ~@7 D A B C E A B C E F G F G F G H I ~@8 J K L M J N O P Q ~@3 D A B C B A B C B F G F G F G H I ~@8 J K
  L M J N O P Q ~@16 F G F G F G H I ~@8 J K L M J N O P J K L M J N O P Q ~@3
>`.pickRestart({
  A: "~@2 f3 ~ f3 ~ f3 ~@3 f3 ~ f3 ~ f3 ~", B: "db3@3 ~ db3@2 ~@2 c3 ~ db3 ~ c3 ~@3",
  C: "~@2 f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~", D: "~@10 db3 ~ db3 ~ db3 ~", E: "db3@2 ~@2 db3@2 ~@2 c3 ~ db3 ~ c3 ~@3",
  F: "ab3 ~ ab3 ~ ab3@4 ~@2 eb3 ~ f3 ~ ab3 ~", G: "~@2 db3 ~ gb3 ~ gb3 ~@3 db3 ~ gb3 ~@3",
  H: "~@2 gb3 ~ gb3 ~ gb3 ~@3 db3 ~ db3 ~ gb3 ~", I: "~@4 db3 ~ db3@2 ~@2 f3 ~ f3@2 ~@2",
  J: "db3 ~ db3 ~@3 db3 ~ db3 ~ db3 ~@3 db3 ~", K: "db3 ~ db3 ~@3 c3 ~ c3 ~ c3 ~@5",
  L: "~@2 db3 ~ db3@3 ~@3 db3 ~ db3@4", M: "~@2 db3 ~ db3@4 ~@2 db3 ~ db3@3 ~", N: "c3 ~ c3 ~@3 c3 ~ c3 ~ c3 ~@3 c3 ~",
  O: "bb2 ~ bb2 ~@3 bb2 ~ bb2 ~ bb2 ~@3 bb2 ~", P: "bb2 ~ bb2 ~@3 bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~", Q: "c3 ~@15",
})).s("gm_electric_guitar_muted").gain(0.35).pan(0.3)

// other · pad new age
const pad_new_age = note("<~@26 A ~ A ~ A ~@32 A ~ A ~ A ~@72>".pickRestart({
  A: "ab5@3 ~@13",
})).s("gm_pad_new_age").gain(0.13).pan(0.3)

// other · pad new age
const pad_new_age_2 = note("<~@104 [ab5@3 ~@13] ~ [ab5@3 ~@13] ~ [ab5@3 ~@13] ~@31>")
  .s("gm_pad_new_age").gain(0.4).pan(0.4)

// other · distortion guitar
const distortion_guitar_2 = note("<~@112 A B A C A D@3 A B A C A E@3 A B A C A F@3 G ~@3>".pickRestart({
  A: "eb3@3 eb3@3 db3@2", B: "db3", C: "gb2@15 ~", D: "[db3@3 db3@3 db3 gb2@11 ~@6]/3",
  E: "[db3@3 db3@3 db3 gb2@8 gb2@8 ~]/3", F: "[db3@3 db3@3 db3 gb2@8 gb2@7 gb2@2]/3", G: "ab2 ~@3",
})).s("gm_distortion_guitar").gain(0.4)

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

// drums · snare
// … 91 more lines

More by Shania Twain