Strudelify
The Wind Beneath My Wings cover art

Madness, Money and Music

The Wind Beneath My Wings

Sheena Easton

KeyG majorTempo68 bpm
0:00/0:00
// The Wind Beneath My Wings — Sheena Easton
// 68 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 75 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(68/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 · "E.PIANO 1"
const epiano1 = note(`<
  A B C D E F G@2 H I J@2 K L M N O P Q R S T U V W X Y Z AA K AB M AC AD P Q R AE AF AG V AH AI Y AJ S AK AG V W X Y AL
  AM@5 AN@8 AO@6 AP@3
>`.pickRestart({
  A: "~@15 e4, [d3,g3,b3]@6 g4 f#4, [g1,g2]!2, ~@3 a3@13, ~@3 d4@5", // G
  B: "~@3 g3@3 [f#1,f#2,d3,f#3,a3]@2, [c1,c2,g2,e3,a3,d4]@3 ~, ~@3 e4@9 ~@4", // D Am7
  C: "g1 ~@14 e4, [g2,d3,g3,b3]@7 f#4, ~@3 a3@13, ~@3 d4@5, ~@3 g4", D: "~@6 g3@9 ~, [c1,c2,g2,e3,a3,d4], ~@3 e4@12 ~",
  E: "[d3,g3,b3]@8 [e3,c4]@3 ~@3 g3@2, [g1,g2], ~@11 [d3,b3]@5", F: "g3@7 ~ [d4,e4]@7 ~, [d3,e3]@15 ~, ~@7 g3@8 ~",
  G: "[~@15 [d3,g3] g3@7 ~ g4@5 g3 [b2,g3,d4]@2, [g1,g2]@8 [c1,e3]@7 ~, [d3,g3,b3]@15 b3@2 ~@15, ~@8 [a3,d4]@9 ~@6 g3@6 ~@3]/2", // G5 G C G D5
  H: "[e3,a3,c4]@8 [d3,b3]@3 [e3,c4]@3 [d3,b3]@2, [a1,a2]", // Am G C G A
  I: "d3@6 ~ [g3,a3,d4] [f#3,a3,d4]@7 a3, d1, [d2,g3,a3] ~, ~@3 d3@5", // Gsus2 D Dsus4
  J: "[[e3,a3,c4]@8 [d3,b3]@3 [e3,c4]@2 ~ b3@2 [d2,g3,a3,d4]@7 [g3,d4] [d3,a3]@5 ~@2 d3, [a1,a2] d1, ~@7 d3@5 [d2,f#3,d4]@4, ~@29 d3@2 ~, ~@15 a3]/2", // Am G C Dsus4 G5 D5 A D
  K: "d3@6 ~ g3 [e3,c4]@4 [d3,g3,b3]@4, g2, [g3,a3,b3] ~, ~@3 d3 ~@4", // C G
  L: "~@7 [e3,c4], [c1,c2,d3]@11 g3@5, e3@5 e4@3, g3@9 d4@7, ~ g4", M: "[d3,g3,a3,b3]@2 [e3,c4] [d3,g3,b3], [g1,g2]",
  N: "~@8 e4@2 f#4 ~@4 b4, [d3,e3,g3]@11 [b3,g4]@5, ~@7 [c4,a4]", O: "[e3,c4,e4,c5]@2 [d4,b4] [e4,c5], [a1,a2]",
  P: "[d2,d3,g3,a3,d4]@7 d4 d4@4 d4@4, ~ [d2,f#3,a3]", // Dsus4 D
  Q: "~@7 c4 [d3,b3]@4 [e3,c4]@4, [a2,e3,a3,c4] a2, ~@3 [d3,b3] ~@4", // G C Am G
  R: "g3@3 g3 [d1,d2,d3,f#3,a3,d4]@2 b3 a3, [d1,d2,d3,a3,d4]@2 ~ [d#1,d#2,b2,f#3]", // D D5 B
  S: "g3 ~@2 [g3,c4,e4], [e1,e2,b2,e3] [c1,c2], ~ [g3,e4] ~@2, ~@5 a3@2 [a3,f#4]@5 ~@4, ~@3 g4 ~@4", // C E5 C D
  T: "a3@6 ~ d4 a3@5 ~@2 a3, [g1,g2,g3,b3,d4]@8 ~@5 a3@2 ~, ~@3 a3 [d3,d4]@4, ~@7 a4", // G D
  U: "[g3,e4]@4 ~ f#4@2 ~@5 [g3,c4,e4]@4, [e1,e2,b3,g4]@7 [a3,f#4]@5 ~@4, ~ [g3,e4] [c1,c2]@2", // C Em D C
  V: "[d3,a3]@5 ~@2 d4 [f#1,d3,a3,d4]@6 [d#1,d#2,b2,f#3,b3]@2, [g1,g2,g3,b3,d4] ~, ~@5 d3@3 ~@8, ~@3 a3 ~@4", // D5 D B G
  W: "g3@4 [g3,e4]@3 ~@7 d4@2, [e1,e2,b2,e3]@7 [a3,f#4]@5 [g3,c4,e4]@4, ~ [c1,c2]", // C E5 D C
  X: "g3@3 d3 [f#1,f#2,d3,a3,d4]@2 [e1,e2,b2,e3,g3]@2, [g1,g2] ~, b3@4 ~@2 g3 ~@9", // D Em G
  Y: "[a1,a2,e3,a3,c4]@8 g3@4 f#3@3 ~, ~ [d2,d3,a3,d4]", Z: "~@7 f#4, [g1,g2,d3,b3], ~@3 a3@13, ~@3 d4@5, ~@3 g4",
  AA: "~@3 g3@5, [c1,c2,e3,a3,d4], ~@3 e4@13", AB: "~@7 [e3,c4], [c2,d3]@11 g3@5, e3@5 e4@3, g3@9 d4@7, ~ g4",
  AC: "~@8 e4@2 f#4 ~@4 b4, c2, [d3,e3,g3]@11 [b3,g4]@5, ~@7 [c4,a4]", // Em7 Em F
  AD: "[e3,c4,e4,c5]@7 c5 [d4,b4]@4 [e4,c5]@4, [a1,a2]", // C G C A
  AE: "g3 ~@2 [g3,c4,e4], [e1,e2,b2,e3]@3 g4 ~@4, ~ [g3,e4] [c1,c2]@2, ~@5 a3@2 [a3,f#4]@5 ~@4", // C E5 C D
  AF: "a3@6 a3@2 a3@5 ~@2 a3, [g1,g2,g3,b3,d4] [f#1,d3,d4], ~@13 a3@2 ~, ~@7 a4", // G D
  AG: "[g3,e4] ~@2 [g3,c4,e4], [e1,e2] [c1,c2], [b3,g4]@5 [a3,f#4]@2 [a3,f#4]@5 ~@4, ~ [g3,e4] ~@2, ~@3 g4 ~@4", // C E C Em D C
  AH: "g3@4 [g3,e4]@2 [b3,g4] ~@7 d4@2, [e1,e2,b2,e3]@7 [a3,f#4]@5 [g3,c4,e4]@4, ~ [c1,c2]", // C Em E5 D C
  AI: "b3@2 d4 d3 [f#1,f#2,d3,a3,d4]@2 [e1,e2,b2,e3,g3]@2, [g1,g2] ~, g3@6 g3 ~@9", // D Em G
  AJ: "~@3 e4 [g1,g2,d3,g3,a3,b3,d4]@2 [f#1,f#2,f#3,a3,d4,f#4]@2, [c1,c2,d3,e3,g3,c4,d4] ~", // G D C
  AK: "a3@6 a3@2 a3@5 ~ a4@2, [g1,g2,g3,b3,d4] [f#1,d3,d4], ~@13 a3@3", // G D
  AL: "[g2,g3,c4,d4]@8 [g1,g2,g3,b3,d4]@3 [f#1,f#2,d3,f#3,a3,d4]@2 ~ [e2,e3,g3,d4]@2", // Gsus4 G D Em7
  AM: "[~ [d4,b4] [e4,c5] [c4,a4]@5 g3@8 f#3@8 ~@14 f#4@2 ~@6 g3@10 ~ d3@2 ~@9 g4@4 ~@6 g3@2, a2@8 [d2,d3,a3,d4]@16 [g2,b3]@12 g4@4 ~@22 d4@10 ~@3 e4@5, [e4,c5]@2 ~@25 a3@13 g3@6 ~@13 a3@13 g3@6 ~@2, ~@29 g3@6 g3@5 [e3,c4]@16 [g1,g2,b3]@16 ~@8, ~@30 d4@10 ~@3 e4@13 ~@5 g3@11 [e3,d4]@8]/5", // G C F D5 G C G E7
  AN: "[g3@4 ~@3 d4@5 d3 ~@2 c4@5 d3 ~@2 d4@5 d3 ~@5 [f#1,f#2,d3,a3]@2 d3 ~@2 d4@5 d3 ~@2 c4@5 d3 ~@2 d4@5 ~@3 c4, ~@2 [g1,g2,a3]@4 [c1,c2,a3]@4 [g1,g2]@4 [c1,c2,a3]@3 ~ [g1,g2,a3]@4 [c1,c2,a3]@4 [g1,g2,a3]@4 [c1,c2,a3]@2, ~@11 g3@13 ~@3 g3@13 a3@8 ~@14 d4@10 ~@56, ~@43 g3@13 ~@3 g3@9 ~@7 g3@13 ~@3 g3@13 ~@3 g3@13 ~@3 g3@5, ~@45 d3@11 ~@21 d3@11 ~@40]/8", // D Gsus2 F G F Gsus2 F Gsus2 …
  AO: "[~@4 [f#1,f#2,d3,a3,d4]@3 ~ d3@2 ~@4 d4@10 d3@2 ~@4 c4@10 d3@2 ~@4 d4@10 ~@6 c4@6 [f#1,f#2,d3,a3,d4]@3 ~ d3@2 ~@4 d4@10 [g1,g2,e3,g3,c4]@8, ~@2 [g1,g2,a3]@4 [c1,c2,a3]@4 [g1,g2,a3]@4 [c1,c2,a3]@3 ~ [g1,g2,a3]@4 ~@2, ~@11 g3@13 ~@3 g3@13 ~@3 g3@13 ~@3 g3@9 ~@7 g3@13 ~@8, ~@13 d3@11 ~@50 d3@3 ~@19]/6", // D C Gsus2 F Gsus2 F Gsus2
  AP: "[[d1,d2,e3,g3,c4,d4] [g2,d3,g3,a3,b3,d4]@4 ~]/3", // C G
})).s("gm_epiano1").gain(0.33)

// chords · epiano1 · "E.PIANO 1" · soft notes
const epiano1_soft = note(`<
  ~@5 A ~ B ~ C ~ D E ~@2 F G H I ~ J K L M N O P ~@2 E Q ~ R S H I ~ T U T M N V P ~ T U T M N O P W X Y@7 Z@2 AA@4
  AB@5 AC@3
>`.pickRestart({
  A: "~@7 g4@8 ~, [c1,c2]@15 ~", B: "[c2,d3]@7 b1", C: "~ d2", D: "~@7 a3 ~@8", E: "g1", F: "~@10 a3 ~@5, [c1,c2]",
  G: "~@7 [e4,c5] ~@8", H: "~ [d1,d3]", I: "~@7 e3 ~@4 a1@4, a1@3 ~", J: "~@5 f#4@2 ~@4 e3@5", K: "d3 [f#1,f#2]",
  L: "~@5 a3@2 ~@4 e3@5", M: "~@4 f#2@3 ~", N: "~@5 [a3,f#4]@2 ~@4 e3@5",
  O: "d3@4 ~ d3 ~ [a3,d4] ~@8, a3@7 g3@5 ~@4, ~ [b3,d4] ~@2", P: "~@12 d1@3 ~", Q: "c1", R: "~@10 a3 ~@5, c1",
  S: "~@7 e4 ~@8", T: "~@6 b3@2 ~@3 e3@5", U: "d3@7 d4 f#2@8", V: "d3@4 ~ d3 ~ [a3,d4] ~@8, a3@7 g3@5 ~@4, ~ b3 ~@2",
  W: "[g1,e3]@8 d3@3 ~@3 e1@2", X: "~@2 d4 ~@13, a1 ~",
  Y: "[d1@8 ~@2 g3@2 d3@11 e4 [g2,d4]@16 ~@2 g3@2 ~@11 e4 g2@16 ~ d3@4 d3@9 d3@2 ~@2 d3@3 d3@11 ~@2 d3@3 ~@3, ~@9 d3@3 ~@32 d3@12 ~@56, ~@27 f#4 ~@28]/7", // G5
  Z: "[a3@8 ~@2 d3@3 d3@7 ~@6 d3@3 ~@3]/2", AA: "[~@10 d3@3 d3@11 ~@2 d3@3 d3@11 d3@2 d3@3 d3@7 ~@6 d3@3 ~@3]/4",
  AB: "[~@10 d3@3 d3@11 ~@2 d3@3 d3@11 d3@2 d3@3 d3@7 ~@9 d3@11 ~@8]/5", AC: "[~ g1@4 ~]/3",
})).s("gm_epiano1").gain(0.14)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@2 A B@2 ~@7 C D E D F G F H I J K L M N O A P@2 D E D F G F Q R J K S M N O T U J K L M N V W X Y@8 Z@8 AA@2 AB@3
>`.pickRestart({
  A: "~@3 d4@5, [g2,d3,b3], ~@3 a3@13", B: "[[e3,a3,d4]@9 ~@7, [c2,g2] ~]/2",
  C: "~ b3@7 [e3,c4]@4 [d3,b3]@4, [g2,g3], d3 ~", D: "[c2,g2,d3,e3,g3]", E: "[d3,b3]@2 [e3,c4] [d3,b3], [g2,g3]",
  F: "[e3,c4]@2 [d3,b3] [e3,c4], [a1,a2,a3]", G: "~ f#3, [d2,d3,a3,d4], g3@5 ~@3",
  H: "[d3,g3,a3]@2 [d3,f#3,a3] [d#2,d#3,f#3,b3,f#4,b4,c#5,d#5,f#5], [d2,d4]@3 ~", // Dsus4 D B D
  I: "[e2,e3,g3,b3,g4,b4,e5,g5] [c2,c3,e3,g3,c4]", J: "[g2,d3,g3,a3,b3,d4] [f#2,d3,a3,d4]",
  K: "[e2,b2,e3,g3,b3] [c2,e3,g3,c4]", L: "a3@2 g3@2 [f#2,d3,f#3,a3,d4]@3 [d#2,d#3,f#3,b3,d#4], [g2,d3,b3,d4] ~",
  M: "[e2,e3,g3,b3] [c2,c3,e3,g3,c4], e4", N: "[g2,d3,g3,a3,b3,d4]@2 [f#2,d3,a3,d4] [e2,e3,g3,b3,e4]",
  O: "[a2,e3,a3,c4]@8 g3@4 f#3@3 ~, ~ [d2,d3,a3,d4]", // Am D5
  P: "[~@4 [d3,b3,b5]@2 [e3,c4] [d3,b3], [c2,g2,e3,a3]@8 d5 d4 e4 g4 c5 d5@11 ~@8, d4 f#5@2 ~, ~@3 g3@4 d6@5 ~@4, ~ [c4,e5,a5] [g2,g3]@2]/2", // G C G Am7 Am G
  Q: "[d3,g3,a3]@2 [d3,f#3,a3] [d#2,d#3,f#3,b3,f#4], [d2,d4]@3 ~", R: "[e2,e3,g3,b3,g4,b4,e5] [c2,c3,e3,g3,c4]",
  S: "~@2 g3@2 [f#2,f#3,a3,d4]@3 [d#2,d#3,f#3,b3,d#4], [g2,d3,a3,b3,d4] d3", // D B G
  T: "[c2,g2,g3,c4,d4]@4 ~@3 a5, ~@2 [g2,g3,b3,d4] [f#2,f#3,a3,d4,f#4,d5], ~@5 a4@3", // Csus2 G D
  U: "[e2,e3,g3,b3,e5,g5,b5] [c2,c3,e3,g3,c4]", V: "[a2,e3,a3,c4]@2 g3 f#3, ~ [d2,d3,a3,d4]",
  W: "[g2,e3,g3,c4,d4]@8 [g2,d3,g3,b3,d4]@3 [f#2,d3,a3,d4]@3 [e2,e3,g3,b3,d4]@2", X: "[a2,e3,a3,c4] [d2,a2,g3,a3,d4]",
  Y: "[f#3@8 [b3,b4]@3 [a3,a4]@3 ~@9 e5 d5@3 e5@3 ~ c4@9 [b3,b5]@3 a5@3 ~@6 g6@2 ~ e6 d6@3 e6@3 [g4,g5]@9 ~ a4@3 g4@3 [d4,d5]@10 ~@6 [c4,c5]@10 a4@3 g4@3 ~@2 [b1,b2]@8 a4@3 g4@3 [d4,d5]@2, ~@8 [g2,d3,g3]@16 [g2,e3,g3,d4]@16 [g2,d3,g3]@15 ~ [g2,e3,g3,c4]@15 ~ [g2,d3,a3]@16 [c2,g2,d3,a3,a4]@16 g2@8 ~@8 [c2,g2,d3,a3]@8, ~@14 [d4,d5]@10 c4@7 ~@12 a3@12 ~@20 g3@13 ~@3 [g3,g4]@13 [d3,a3]@16 ~@8, ~@10 g5@2 ~@15 f#6 ~@27 [d4,d5]@5 ~@4, ~@22 f#5@2 ~@6 g4@10 ~@6 [d4,d6]@10 ~@51 g3@13 ~@3 g3@5]/8", // B A B G D C B D …
  Z: "[~@4 [f#2,d3,a3,d4]@4 ~@6 [d4,d5,d6]@10 ~@6 [c4,c5,c6]@10 ~@8 [b1,b2]@8 [a4,a5]@3 [g4,g5]@3 c4@6 [f#2,d3,a3,d4]@4 ~@6 [d4,d5,d6]@10 ~@6 [c4,c5,c6]@10 ~@8 [b1,b2]@8 [a4,a5]@3 [g4,g5]@3 [c4,c5,c6]@2, ~@8 [g2,d3,a3,a4,a5]@16 [c2,g2,d3,a3,a4,a5]@16 [g2,a4,a5]@6 [d4,d5,d6]@10 ~@51 g3@13 ~@3 g3@5, ~@11 [g3,g4,g5]@13 ~@3 [g3,g4,g5]@13 [d3,a3]@16 [c2,g2,d3,a3]@12 ~@4 [g2,d3,a3,a4,a5]@16 [c2,g2,d3,a3,a4,a5]@16 [g2,a4,a5]@6 [d4,d5,d6]@10 ~@8, ~@43 g3@13 ~@3 g3@9 ~@7 [g3,g4,g5]@13 ~@3 [g3,g4,g5]@13 [d3,a3]@16 [c2,g2,d3,a3]@8, ~@43 [g4,g5]@5 ~@14 [c5,c6]@10 ~@35 [g4,g5]@5 ~@16]/8", // D C B A G D C B …
  AA: "[~@2 [f#2,d3,a3,d4]@2 ~@3 d4@5 [g2,e3,g3,c4,d4]@4, ~ [g2,d3,a3]@2 ~, ~@11 g3@13 ~@8]/2", // D C Gsus2
  AB: "[[d2,d3,g3,c4,d4]@2 ~@2 [b4,d5,g5]@5 ~@3, ~@2 [g2,g3,b3,d4,g4]@7 ~@3]/3", // Csus2 G
})).s("gm_string_ensemble_1").gain(0.19)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@2 A@4 ~@2 B ~ C ~@4 D E ~ F ~@2 G H I J ~ K L M ~@3 D E ~ N ~@2 G H I J ~ K ~@2 G H I J ~ K ~ O P@2 Q@5 R@8 S@3 T@2
  ~
>`.pickRestart({
  A: "[~@11 [g3,g4]@16 ~@5, [b3,b4]@15 [e4,e5] [d4,d5]@32 ~@16, ~@3 [a3,a4]@16 [e4,e5]@32 ~@13, ~@3 [d4,d5]@3 g4 f#5@16 ~@9, ~@3 g5@8 ~@5]/4", // G B E D A E D
  B: "~@3 [c4,a4]@13, [e4,c5] [e4,c5]@7, ~ [d4,b4]@15", C: "~@3 [c4,a4]@13, [e4,c5] c5@7, ~ d4@15",
  D: "~@15 [d4,b4], ~ [g3,e4], ~@5 [a3,f#4]@3, ~@11 [b3,g4]@5, ~@7 [c4,a4]", E: "[e4,c5] ~",
  F: "~@3 [c4,a4]@9 ~@4, [e4,c5] c5@5 ~@2, ~ b4@11 ~@4", G: "~@2 [d4,d5] [a4,a5]", H: "[g4,g5] ~",
  I: "~@3 [a4,f#5,a5], ~ [d4,d5]", J: "[e4,g4,e5,g5]@7 ~@9", K: "~@3 [c4,a4]@5 ~@8, [e4,c5] c5@3 ~@4, ~ b4@7 ~@8",
  L: "~@6 d4@6 ~@3 e4, b3@3 g4, ~@3 a3@9 ~@2 f#4@2", M: "~@3 g3@5, d4, ~@3 e4@13",
  N: "~@3 [c4,a4]@10 ~@3, [e4,c5]@2 c5@11 ~@3, ~ b4@12 ~@3", // F C
  O: "~@3 [c4,a4]@5 ~@8, [e4,c5] [e4,c5]@3 ~@4, ~ [d4,b4]@7 ~@8", // F C G
  P: "[~@15 g3, ~@8 b3@19 e4@5, ~@11 a3@21, ~@7 d4@5 d4@4, ~@5 g4@3]/2",
  Q: "[~@30 g3@9 ~@7 [d4,d5]@10 ~@6 [c4,c5]@10 ~@6 [d4,d5]@2, ~@8 b3@15 e4 d4@3 e4@12 ~@4 [g3,g4]@13 ~@3 [g3,g4]@13 ~@3 g3@5, ~@11 a3@28 ~ [a3,a4]@16 [a3,a4]@16 [a3,a4]@8, ~@14 d4@8 f#4@17 ~@41, ~@20 g4@19 ~@41]/5", // D C D G A
  R: "[~@7 [d4,d5]@5 ~@3 [d4,d5]@5 ~@3 [c4,c5]@5 ~@3 [d4,d5]@5 ~@3 [d4,d5]@5 ~@3 [d4,d5]@5 ~@3 [c4,c5]@5 ~@3 [d4,d5], ~ [a3,a4]@2 [a3,a4]@2 [a3,a4]@2 [a3,a4]@2 [a3,a4]@2 [a3,a4]@2 [a3,a4]@2 [a3,a4], ~@11 [g3,g4]@13 ~@3 [g3,g4]@13 ~@3 [g3,g4]@13 ~@3 g3@13 ~@3 [g3,g4]@13 ~@3 [g3,g4]@13 ~@3 [g3,g4]@13 ~@3 g3@5]/8", // D C D C D A G
  S: "[~@7 [d4,d5]@5 ~@3 [d4,d5]@5 [e3,g3,c4]@4, ~ [a3,a4]@2 [a3,a4]@2 ~, ~@11 [g3,g4]@13 ~@3 [g3,g4]@13 ~@8]/3", // D C A G
  T: "[[g3,c4,d4] g4 g4 ~, ~ [b3,d4]@2 ~]/2", // Gsus4 Bm
})).s("gm_acoustic_guitar_steel").gain(0.23).pan(0.4)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@2 A@3 ~@5 B ~@7 C ~@4 D ~@2 E ~@8 F ~@4 D ~@2 E ~@4 D ~@2 E ~@3 G@2 ~@3 H@2 ~@2 H@2 ~@2 H@2 ~@3 I ~
>`.pickRestart({
  A: "[~@7 f#4@16 ~]/3", B: "~ e4@7, ~ b4@15", C: "~ e4@5 ~@2, ~ d4@11 ~@4", D: "~@3 f#4", E: "~ e4@3 ~@4, ~ d4@7 ~@8",
  F: "~@2 e4@11 ~@3, ~ d4@12 ~@3", G: "[~@7 e4@4 ~@21, ~@3 f#4@8 ~@5]/2", H: "[~@11 g4@13 ~@8]/2", I: "b4 ~",
})).s("gm_acoustic_guitar_steel").gain(0.13).pan(0.4)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@29 A B C D E F G H I J K L K M N O I P K L K Q R S T U V W X Y Z AA AB AC Z AD AE AF AG AH AI AJ@2 AK AL ~
>`.pickRestart({
  A: "g1@7 d2 g1@2 ~ g1 g1@2 ~ b1", B: "c2@7 g1 c2@5 ~ d1 e1", C: "g1@7 d1 g1@4 g1@3 b1", D: "c2@7 g1 c2@3 g1 e1@4",
  E: "a1@7 e1 a1@3 e1 c1@3 e1", F: "d1@6 ~ a1 d2@6 a1 d1", G: "a1@7 e1 a1@3 b1 c2@3 a1", H: "d2@7 a1 d1@4 d#1@4",
  I: "e1@6 e2 b1 c2@6 c2 d2", J: "g1@6 ~ g1 f#1@7 d#1", K: "e1@6 e2 b1 c2@6 d2 d1", L: "g1@5 ~ d2 g1 f#1@4 ~@2 d#1@2",
  M: "g1@7 g1 f#1@3 ~ e1@3 ~", N: "a1@5 ~ a1 c2 d2@3 ~ d1@4", O: "g1@2 ~ g1 g2 g1 ~ g1 g1@4 f#1@4",
  P: "g1@7 g1 f#1@7 d#1", Q: "g1@6 ~ g1 f#1@3 ~ e1@3 ~", R: "a1@5 ~ a1 c2 d2@3 d1 d1@4",
  S: "g1@5 ~ g1 d2 g2@3 f#2@3 e2@2", T: "a1@6 ~ a1 d2@6 ~ d2", U: "d1@8 g1@6 ~ g1", V: "g1@7 d2 g1@6 ~ g1",
  W: "g1@3 g2 ~ e2 ~ d2 g1@6 ~ g1", X: "g1@5 ~ d2 e2 g1@6 ~ g1", Y: "g1 g2 ~ e2 ~ d2 ~ b1 g1@2 ~ g1 ~@3 d2",
  Z: "g1@2 ~ g1 ~@4 g1@2 ~ g1 ~@4", AA: "g1@2 ~ g1 ~@4 g1@2 ~ g1 ~@3 g1", AB: "b1@3 b1 ~@3 b1 c2@3 c2 ~@4",
  AC: "c2@2 ~ c2 f#1@2 ~ f#1 g1@2 ~ g1 ~@3 d2", AD: "g1@2 ~ g1 ~@2 d2 e1 g1@2 ~ g1 ~@3 g1",
  AE: "b1@3 b1 ~@3 b1 c2@2 ~ c2 ~@3 c2", AF: "c2@2 ~ c2 f#1@2 ~ f#1 g1@2 ~ g1 g2@3 ~",
  AG: "g1@2 ~ g1 g2 g1 ~ g1 g1@2 ~ g1 g2@3 g1", AH: "g1@2 ~ g1 g2 g1 ~ g1 g1@2 g1 ~@2 g1 a1 a#1",
  AI: "b1@2 ~@2 b1@2 ~ b1 c2@3 c2 ~ c2 ~ c2", AJ: "[c2@3 ~ f#1@3 f#1 g1@16 g2@7 ~]/2", AK: "d2@7 ~ g1@7 ~", AL: "g1 ~",
})).s("gm_electric_bass_finger").gain(0.29)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@31 A ~@5 B C D A@3 ~ E B C D A@3 ~@2 B ~@4 F@4 ~@2 F ~@10>".pickRestart({
  A: "~@7 x ~@8", B: "~@7 x ~@7 x", C: "~@3 x ~@12", D: "~@7 x ~@3 x ~@4", E: "~@3 x ~@4", F: "~@15 x",
})).gain(0.14)

// drums · snare
const snare = s("sd").struct("<~@29 A@15 B A@7 C A@5 D A@11 E ~@4>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2 x ~@7 x ~@3", C: "~@4 x ~@6 x ~@4", D: "x!2 ~ x", E: "~ x ~@2",
})).gain(0.31)

// drums · low tom
const low_tom = s("lt").struct("<~@28 A ~@7 B ~@6 C B ~@6 C A ~ D ~@15 E ~@4>".pickRestart({
  A: "~@7 x", B: "~@14 x!2", C: "~@3 x", D: "~@6 x!2 ~@8", E: "~@5 x!2 ~@9",
})).gain(0.28)

// drums · mid tom
const mid_tom = s("mt").struct("<~@28 A ~@7 B ~@6 C D ~@6 C E ~@5 F ~@7 G ~@3 H ~@4>".pickRestart({
  A: "~@13 x ~@2", B: "~@3 x", C: "~@9 x ~@6", D: "~@9 x ~ x ~@4", E: "~@11 x ~@4", F: "~@5 x ~@10",
  G: "~ x ~@3 x ~@10", H: "~@3 x ~@12",
})).gain(0.28)

// drums · high tom
const high_tom = s("ht").struct("<~@28 A ~@7 B ~@7 C ~@7 D ~@5 E ~@7 F ~@3 G ~@4>".pickRestart({
  A: "~@10 x!2 ~@4", B: "~@9 x ~@6", C: "~@3 x", D: "~ x", E: "~@3 x ~@4", F: "~ x ~@2", G: "~ x ~@2 x ~@11",
})).gain(0.28)

// drums · ride
const ride = s("rd").struct("<~@29 A@25 B C D E F G D H@2 D H D H@4 I J@2 K ~>".pickRestart({
  A: "x!16", B: "x!13 ~ x!2", C: "x ~ x!9 ~ x ~ x!2", D: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2",
  E: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x!2", F: "x ~ x ~ x ~ x!10", G: "x!9 ~ x!6", H: "x ~ x!7 ~ x!3 ~ x!2",
  I: "x!3 ~ x!5 ~@7", J: "x!2", K: "x",
})).gain(0.17)

stack(
  epiano1, epiano1_soft, string_ensemble_1, acoustic_guitar_steel, acoustic_guitar_steel_2, bass, kick, kick_soft,
  snare, low_tom, mid_tom, high_tom, ride
)

More by Sheena Easton