Strudelify
The Wind Beneath My Wings cover art

The Wind Beneath My Wings

Bette Midler

KeyF majorTempo97 bpm
0:00/0:00
// The Wind Beneath My Wings — Bette Midler
// 97 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 119 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(97/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 · vibraphone
const vibraphone = note(`<
  ~@10 A B C ~ A D@2 ~ E F@2 ~ G H@2 ~ A I C ~ J K@2 ~ G L@3 G M@2 ~ N O P ~ Q R@2 ~ Q S@3 T U@2 ~@3 V W X@3 Y@3 Z AA@4
  AB@3 AC AD AE@2 AF AG@3 AF AH@4 AI AJ ~ AK AL AM@2 AN AO@2 ~ AP AQ AR@3 AS@2 ~ G AT@3 AU@6 ~
>`.pickRestart({
  A: "~@7 c5, ~@3 c4@5, ~ a4, ~@11 bb4@5", B: "bb4@4 ab4 ~@8 f4@3, ~ a4@3, ~@5 g4@3", C: "f4@3 d4@5",
  D: "[~@2 [ab4,a4] ~@3 a4 f4@7 ~@2, bb4@6 ~@5 ab4@3 ~@18, ~@3 g4@3 g4@8 ~@18]/2", E: "~@7 bb4, ~@8 g4@7 ~, ~@11 a4@5",
  F: "[[g4,ab4] ~@3 g4@2 ~@6 d4@2 g4@17 ~, a4@3 f4@4 ~@9]/2", G: "~@7 bb4, ~ g4, ~@11 a4@5",
  H: "[~@2 g4 f4@3 a4 g4@7 ~@2, a4@6 ~@6 ab4 ~@19]/2", I: "bb4@3 ~@11 f4@2, ~@3 a4@13, ~@5 g4@3",
  J: "~@7 c5, ~ a4, ~@11 bb4@5", K: "[~@2 a4 g4@2 a4@2 f4@5 ~@4, bb4@6 ~@4 ab4 ~@21]/2",
  L: "[~@4 g4@2 ~@6 d4@2 g4@19 ~@15, a4@3 f4@4 ~@17]/3", M: "[a4@2 g4 f4@2 d5@2 c5@6 ~@3, ~@10 db5 ~@21]/2",
  N: "~@7 f5, ~@3 a4@5, ~ d5, ~@11 e5@5", O: "~@3 c5@2 bb4@3, e5@11 ~@5, ~@4 d5@7 ~@5", P: "c5@6 c5@9 ~",
  Q: "~@7 f5, ~ d5, ~@11 e5@5", R: "[~@4 d5@2 ~@6 bb4@2 c5@11 ~@7, e5@3 c5@4 ~@9]/2",
  S: "[~@4 d5@2 ~@6 bb4@2 ~@19 g4 ~@8 g4 a4@5, e5@3 c5@4 c5@10 ~@7, ~@15 d5@2 ~@7, ~@16 a4 f4@5 ~@2]/3",
  T: "~@13 bb4@2 ~, ~ g4, ~@11 a4@5", U: "[~@2 g4 ~@3 e4 f4@7 ~@2, a4@3 f4@4 ~@9]/2",
  V: "~@13 db5@3, ~@3 db4@5, ~ bb4, ~@11 b4@5", W: "~@2 bb4 ~@3 gb4@2, b4@3 ab4@5",
  X: "[gb4@6 eb4@32 db4@2 ~@5 db5@3, ~@5 bb4, ~@43 b4@5]/3", Y: "[~@4 bb4@2 ~@6 bb4@2 gb4@25 ~@9, b4@2 ab4@3 ~@11]/3",
  Z: "~@7 b4, ~ ab4, ~@11 bb4@5",
  AA: "[~@4 ab4@2 ~@8 ab4@41 ~@7 b4@2, bb4@3 gb4@16 ~@9 ab4@4, ~@12 eb4@32 ~@15 bb4@5]/4",
  AB: "[~@5 eb5@2 db5@16 ~, bb4@5 ~@11, ~@4 ab4@11 ~@33, ~@2 gb4@3 ~@11]/3", AC: "~@7 gb5, ~@3 bb4@5, ~ eb5, ~@11 f5@5",
  AD: "~@5 b4@3, f5, ~ eb5@3, ~@3 db5@5", AE: "[db5@3 db5@6 ~@7]/2", AF: "~@7 gb5, ~ eb5, ~@11 f5@5",
  AG: "[~@5 b4@2 db5@16 ~, f5@7 ~@17, ~@4 eb5@11 ~@33, ~@3 db5@4 ~@17]/3",
  AH: "[~@12 b4@2 ~@29 bb4@9 ~@9 b4@3, f5@7 ~@10 bb4@4 ab4 ~@5 ab4@5, ~@4 eb5@11 ~@15 eb5@13 ~@21, ~@6 db5@8 db5@29 ~@15 bb4@6, ~@35 ab4@2 gb4@7 ~@20]/4",
  AI: "~@3 gb4@2 f4@3, bb4@5 ~@3, ~@2 ab4@3 ~@3", AJ: "gb4@7 ~@9", AK: "~@3 a4 ~@3 f5, ~ d5, ~@11 e5@5",
  AL: "e5@2 d5 ~@4 [db5,d5], ~@3 c5@5, ~@5 bb4@3", AM: "[c5@6 c5@13 ~@13]/2", AN: "~@2 d5@2 ~@3 f5, ~ d5, ~@11 e5@5",
  AO: "[~ d5@2 ~@2 bb4@2 c5@9, e5@3 c5@4 ~@9]/2", AP: "~@3 d5 ~@3 f5, ~ d5, ~@11 e5@5",
  AQ: "e5@2 ~@3 bb4@3, ~ d5@3, ~@3 c5@5",
  AR: "[~@17 g4 f4@8 a4@9 ~@3 g4@2 ~@6 bb4@2, c5@18 ~@25 a4@5, ~@13 [db5,d5]@5 ~@30, ~@16 [ab4,a4]@2 ~@8 g4 ~@13 g4@8]/3", // Dmaj7 Amaj7
  AS: "[a4@2 ~ f4@2 e4@2 f4@9, ~@2 g4@3 ~@11]/2", AT: "[a4@2 ~ f4@2 e4@2 f4@11 ~@6, ~@2 g4@3 ~@19]/3",
  AU: "[~@12 bb4@2 ~@6 g4@2 ~@7 g4@2 f4@50 ~@15, ~@8 g4@6 ~@8 f4@9 ~@65, ~@5 a4@2 a4@4 ~@37]/6",
})).s("gm_vibraphone").gain(0.64)

// bass · fretless bass
const bass = note(`<
  A@2 B@2 C@2 D@3 E F@2 B@2 G@2 B@2 H I J K L M N O P Q R@2 S P R@2 T U V@2 W X V Y Z AA AB AC AD AE AB AF AG AH AB AI
  AJ AK AL AM AN AO AP AQ AR AS AT AQ AU AV AW AX AY AZ BA AW BB BC BD BE BF BG BH BE BI BJ BD BE BF BK BL BM BN BO AG
  BP AB BQ BR AA BS BT AD BU AB AC BV BW BS BG BX BY BZ CA R CB CC CD CE CF ~
>`.pickRestart({
  A: "f3/2", B: "[bb2@29 ~@3]/2", C: "[f3@31 ~]/2", D: "[bb2@28 ~@3 f3@7 e3@6 d3@4]/3", E: "c3@6 ~ c2@8 ~",
  F: "[f2@15 ~]/2", G: "[f3@29 ~@3]/2", H: "g2", I: "g3@13 ~@3", J: "c3@7 ~", K: "c3@6 c2@7 ~@3", L: "g2@13 ~ d3 ~",
  M: "g3@15 ~", N: "c3@13 ~@3", O: "c2@15 ~", P: "f2@4 ~@2 f2 ~ f2@6 c2@2", Q: "f2@5 ~ f2 ~ f2@6 c2 ~",
  R: "bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~", S: "f3@5 ~ f3 ~ f3@3 c3 f2@3 ~", T: "g2@5 ~ g2 ~ g2@7 g1",
  U: "g2@5 ~ g2 ~ g2@5 ~ g2 ~", V: "c2@5 ~ c2 ~ c2@6 c2 ~", W: "g2@5 ~ g2 ~ g2@7 d2", X: "g2@5 ~ g2 ~ g2@6 g2 ~",
  Y: "c2@6 g1 ~ db2@6 db2 ~", Z: "d2@6 ~ d2 d2@6 b1 d2", AA: "bb1@6 ~ bb1!2 ~ bb1@3 ~ bb1 ~", AB: "f2@6 ~ f2 f2@6 ~ f2",
  AC: "e2@6 ~ e2!2 ~ e2@5 e1", AD: "d2@6 ~ d2 d2@7 d2", AE: "bb1@7 bb1!2 ~ bb1@4 ~ f1", AF: "e2@6 ~ e2 d2@2 ~ d2 c2@4",
  AG: "d2@6 ~ d2 d2@6 ~ d2", AH: "bb1@6 ~ bb1!2 ~ bb1@4 bb1!2", AI: "e2@6 ~ e2!2 ~ e2@3 ~ e2 ~",
  AJ: "g2@6 ~ g2 g2@6 g2!2", AK: "c2@7 c2!2 ~ c2@4 ~ d2", AL: "f2@6 ~ f2 f2@6 f2!2", AM: "f2@6 ~ f2!2 ~ f2@4 eb2 d2",
  AN: "db2@7 db1 c2@4 bb1@2 ~ bb1", AO: "db2@7 db2!2 ~ db2@4 ~ ab1", AP: "gb2@4 ~@2 gb2 ~ gb2@6 db2@2",
  AQ: "gb2@5 ~ gb2 ~ gb2@6 gb2!2", AR: "b1@6 gb1 ~ b1@6 b1 ~", AS: "b1@5 ~ b1 ~ b1@5 ~ b1 ~",
  AT: "gb2@5 ~ gb2 ~ gb2@6 db2 ~", AU: "b1@6 b1 ~ b1@5 ~ b1 ~", AV: "b1@6 b1 ~ b1@6 ab1 ~",
  AW: "ab2@5 ~ ab2 ~ ab2@5 ~ ab2 ~", AX: "ab2@5 ~ ab2 ~ ab2@6 eb2 ~", AY: "db2@5 ~ db2 ~ db2@6 db2!2",
  AZ: "db2@5 ~ db2 ~ db2@4 db2@4", BA: "ab2@5 ~ ab2 ~ ab2@7 ab1", BB: "db2@5 ~ db2 ~ db2@6 db2 ~",
  BC: "db2@5 ~ db2 ~ d2@5 ~ d2 ~", BD: "eb2@6 ~ eb2 eb2@6 ~ eb2", BE: "b1@7 b1!2 ~ b1@4 ~ gb1",
  BF: "gb2@6 ~ gb2 gb2@6 ~ gb2", BG: "f2@6 ~ f2!2 ~ f2@3 ~ f2 ~", BH: "eb2@6 ~ eb2 eb2@6 eb2!2",
  BI: "gb2@6 ~ gb2 gb2@6 gb2!2", BJ: "f2@6 ~ f2 eb2@4 db2@3 db2", BK: "f2@6 ~ f2!2 ~ f2@5 f1",
  BL: "ab2@6 ~ ab2 ab2@6 ab2!2", BM: "db2@6 ~ db2!2 ~ db2@5 db1", BN: "d2@6 ~ d2 db2@4 b1@4",
  BO: "c2@6 ~ c2 db2 ~ db2@2 e2@2 db2!2", BP: "bb1@6 ~ bb1!2 ~ bb1@4 bb1 ~", BQ: "e2@7 e2!2 ~ e2@4 ~ g1",
  BR: "d2@6 ~ d2 d2@6 d2!2", BS: "f2@6 ~ f2 f2@7 f2", BT: "e2@6 ~ e2 d2@4 c2@2 ~ c2",
  BU: "bb1@6 ~ bb1!2 ~ bb1@4 eb2 bb1", BV: "g2@6 ~ g2 g2@6 ~ g2", BW: "c2@6 ~ c2!2 ~ c2@3 ~ c2 ~",
  BX: "bb1@6 f1 ~ bb1@5 ~ bb1 ~", BY: "c2@6 c2 ~ c2@5 ~ c2 ~", BZ: "f2@5 ~ f2 ~ f2@6 f2@2", CA: "f2@5 ~ f2 ~ f2@6 f1 ~",
  CB: "bb1@5 ~ bb1 ~ bb1@5 ~ bb1@2", CC: "db2@5 ~ db2 ~@2 c2@4 bb1@3", CD: "~ ab2@5 ~ ab2 ~ gb2@5 ~ gb2",
  CE: "~ f2@6 ~ f2 f2@7", CF: "c2 f2@15",
})).s("gm_fretless_bass").gain(0.36)

// other · flute
const flute = note(`<
  ~@4 A B C D E F G@2 ~@13 H I@2 C J K@2 C L M@2 ~@5 N O P Q R S T Q ~@4 U M@2 A V W X@2 ~@2 Y Z ~ AA@3 ~@5 AB AC AD@3
  AE AF ~@2 AG AF ~@2 AH AF AI AJ AK@2 AL Q AM AN ~@3 AO P AP AQ@2 ~@5 AR AS AT ~ W AU AV@2 ~
>`.pickRestart({
  A: "~@5 a4 c5 g5", B: "a5@5 e5 f5@6 c5@4", C: "d5 e5", D: "f5@6 e5@9 f5", E: "g5@3 f5@3 e5@2, gb5 ~@15", F: "f5 c5",
  G: "[c5@3 ~]/2", H: "~@6 f4@4 g4@4 a4 bb4", I: "[c5@15 ~]/2", J: "f5 e5", K: "[c5@29 ~@3]/2", L: "f5@8 e5@7 ~",
  M: "[d5@3 ~]/2", N: "~@2 g4@2 c5@2 d5 ~ e5@3 a5@3 e5@2, ~@11 ab5 ~@4", O: "f5", P: "e5@2 d5 c5@2 bb4@3", Q: "c5",
  R: "~@2 c5@3 d5@2 ~ e5@2 ~ f5@2 ~ g5@2", S: "f5@15 d5", T: "e5@2 d5 c5@2 bb4@3, eb5 ~@15",
  U: "~@7 g5@2 gb5 e5@3 c5@3, ~@10 f5 ~@5", V: "a5@3 f5@3 c5@2", W: "eb5@3 db5@3 c5@2", X: "[db5@31 ~]/2",
  Y: "eb5 ~ b4@2 eb5@2 f5@4 db5@4 f5 gb5", Z: "db5@15 ~",
  AA: "[~@2 eb5@2 b4@2 eb5@2 f5@2 db5@2 f5 ~ gb5@4 eb5@2 b4@2 f5@4 gb5@2 ab5@2 eb5@17 ~, ~@14 f5 ~@33]/3",
  AB: "~@3 db5@2 eb5@2 ~ f5@2 gb5@2 ~ ab5@2 ~", AC: "ab5@8 db6@3 f6@3 d6@2", AD: "[eb6@33 db6@14 ~]/3",
  AE: "~@2 db5@3 eb5@2 ~ f5@3 gb5@3 ab5@2", AF: "gb5@15 ~", AG: "ab5@3 gb5@3 f5@2",
  AH: "~@4 db5@2 eb5@2 f5@3 ab5@3 f5@2", AI: "~@15 [d5,eb5]", AJ: "e5@3 d5@3 db5@2",
  AK: "[d5@8 ~@6 d5 f5@13 ~@4, ~ e5 ~@2]/2", AL: "[d5,eb5] ~@3 d5@2 c5@4 bb4@6, e5 ~@3",
  AM: "~@2 c5@3 d5@3 e5@3 f5@3 g5@2", AN: "f5@15 ~", AO: "~ a4 d5 e5 f5 e5 f5 g5", AP: "c5@13 ~@3",
  AQ: "[~@2 a4@2 d5@2 e5@4 f5@4 d5@17 ~]/2", AR: "~@10 g4@2 c5@2 d5 ~", AS: "e5@3 c5@3 a4@2, eb5 ~@15", AT: "f4 ~",
  AU: "db5@8 ~ ab4@6 bb4", AV: "[b4 c5@26 ~@5]/2",
})).s("gm_flute").gain(0.25)

// chords · epiano1 · "Electric Piano 1"
const epiano1 = note(`<
  A B C D E F G H I J K L M N O P Q N R@2 S T U@2 V W K P M X K L M Y Z@2 AA AB Z@2 S AC AD AE K AF AD AG O AH AD AI AJ
  AK AL AM AN AO AP AQ AR AS AT AU AR AV AW AX AY@2 AZ BA BB@2 BC BD BE BF AR BG BE BF BH BI BE BJ AR BG BK BL BM BN AD
  AE AJ BO BP AG O BQ BP AE K AF AM BR BS BT BU BV BW BX BY BZ CA CB@3 ~
>`.pickRestart({
  A: "~@6 g3@4 a3@4 [bb4,g5] ~, [f2,g4,a4,c5]@5 ~@3, ~ c3@4 ~@3, ~@2 f3@3 ~@2 d4", // Eb F
  B: "~@3 [a4,f5]@3 [f4,c5]@2, [e4,c5,a5]@13 ~@3", // Dm F5 Am
  C: "d5@2 ~@4 d5@2 e5@2 ~@4 e5 ~, bb2@8 bb2@7 ~, ~ [f3,f4]@3 ~ [g3,g4]@3, ~ [d4,bb4] ~ [e4,c5]", // F G Gm C
  D: "~@2 d5 [g4,e5]@5, [bb2,f5]@3 ~@5, ~ [f3,a4]@2 ~@5, ~ f4@3", // C Bb5 F
  E: "~@10 a3@4 [bb4,g5] ~, [f2,g4,a4,c5]@7 d4, ~@2 c3@13 ~, ~@4 f3@11 ~, ~@6 g3@9 ~", // Eb F
  F: "~@12 [f4,c5]@3 ~, [e4,a5]@15 ~, c5@3 ~, ~@6 [a4,f5]@9 ~", // F5 A5 Dm
  G: "~@3 d5 ~@3 e5, bb2!2, d5@3 ~ e5@3 ~, ~ [f3,f4]@3 ~ [g3,g4]@3, ~ [d4,bb4] ~ [e4,c5]", // F G Gm C
  H: "~@2 d5 [g4,e5]@4 ~, [bb2,f5]@3 ~@5, ~ [f3,a4]@2 ~@5, ~@2 f4@5 ~", // C Bb5 F
  I: "[f4,c5,g5,a5]@3 [e4,c5,f5,a5]@3 [d4,c5,e5,a5]@2", // F Fmaj7 Am
  J: "~ [c3,f3,bb3,c4], [c4,bb4,d5,f5,a5]@7 b2@2 ~@7, ~@6 bb2@3 ~@7", // Fsus4 Dm7
  K: "~@13 g4!2 ~, [f3,a4,c5]@15 ~, g4@13 ~@3, ~@6 c4@9 ~", // F
  L: "~@6 e4@7 ~@2 a4, [f3,a4,c5], f4@7 f4, e4@6 ~@7 e4@2 ~, ~@4 c4@11 ~", // F
  M: "f4@4 f4@2 f4 ~ [bb1,g3,c4,e4]@7 ~, [bb2,bb4,d5] ~", // C7 Bb
  N: "d4@4 d4@2 f4@2 g3@4 g3@2 g3 ~, [bb2,a4,c5] [bb1,c4,e4], f4@3 ~@5", // F C7
  O: "~@6 g4@7 g4!2 a4, [f3,a4,c5], g4@3 ~@5, ~@4 c4@11 ~", // F
  P: "~@14 f4 ~, [f3,f4,a4,c5]@15 ~, e4@13 e4@2 ~, ~@6 c4@9 ~", Q: "[bb2,f4,bb4,d5]@7 ~ [bb1,g3,c4,e4]@7 ~",
  R: "[~@30 a4 f4, g2, [bb4,d5]@27 f4@2 bb4@2 ~, [f4,a4]@14 f4 a4@13 d5@3 ~, ~@13 d4@18 ~]/2", // Bb F
  S: "~@6 f4@7 f4!2 bb4, [c3,bb4,d5], f4@3 ~@5, ~@4 d4@11 ~", T: "[c2,g3,c4,e4]@7 ~ [c2,a3,d4,f4]@7 ~",
  U: "[f3@10 ~@5 f4 ~@12 d4@2 f4 ~, g2@31 ~, [f4,a4,bb4]@14 d4@2 [f4,a4,bb4]@15 ~, [bb3,d4]@13 bb3@3 d4@10 bb3@5 ~, ~@10 f3@6 bb3@6 f3@9 ~]/2", // Bbmaj7 Bb
  V: "[bb4,d5,f5]@13 ~ bb4 d5, f4@12 ~ f4@2 ~", W: "f3@2 f3 g3 e3@2 e3 g3, [c2,bb3,d4] [c2,bb3,c4], g3@3 ~ g3@3 ~",
  X: "d4@4 d4@2 f4@2 [bb1,g3,c4,e4]@7 ~, [bb2,a4,c5] ~, f4@3 ~@5", // C7 F
  Y: "[d4,f4,a4,c5]@5 ~ [f4,c5]@2 [bb1,g3,c4,e4]@7 ~, bb2 ~, ~@5 d4@2 ~@9, ~@6 a4 ~@9", // Dm7 F5 C7
  Z: "[d4@5 ~ d4@7 ~@18 d4, g2@8 f4 g2@7, [bb4,d5]@15 bb4@5 f4@9 bb4@3, f4@13 d4@3 d4@6 bb4@6 d5@4, ~@7 f4 d5@5 d4@2 f4]/2", // Bb
  AA: "~@13 f4!2 ~, [c3,bb4,d5]@15 ~, f4@13 ~@3, ~@6 d4@9 ~", // Gm
  AB: "[g3,c4,e4]@5 ~ e4@2 [a3,d4,f4]@5 ~ [d4,f4]@2, c2!2, ~@5 g3@2 ~@6 a3@2 ~, ~@6 c4 ~@9", // C Dm
  AC: "[c2,g3,c4,e4]@7 ~ e4@4 e4@2 e4 ~, ~ [db3,a4,db5]", AD: "[d4,f4,a4]@13 ~ d4 f4, a3@12 ~ a3@2 ~",
  AE: "[c5,d5,f5]@13 ~ c5 d5, f4@12 ~ f4@2 ~", AF: "~@13 g3!2 ~, [e2,c4,e4]@15 ~, g3@13 ~@3, ~@6 e3@9 ~",
  AG: "~@6 f4@7 f4!2 c5, [bb2,c5,d5], f4@3 ~@5, ~@4 d4@11 ~", AH: "[e2,g3,c4,e4]@7 ~ [d3,f4,bb4,d5]@4 [c2,g3,c4,e4]@4",
  AI: "~@13 f4!2 ~, [bb2,c5,d5]@15 ~, f4@13 ~@3, ~@6 d4@9 ~", AJ: "[a4,c5,g5]@13 ~ a4 c5, g4@12 ~ g4@2 ~",
  AK: "[c4,e4,g4]@13 ~ c4 e4, g3@12 ~ g3@2 ~", // C
  AL: "~@6 f4@7 ~@2 bb4, [g2,bb4,d5], g4@7 g4, f4@6 ~@7 f4@2 ~, ~@4 d4@11 ~", // Gm
  AM: "[bb4,d5,f5,g5]@13 ~ bb4 d5, f4@12 ~ f4@2 ~", // Gm7
  AN: "~@7 [d4,bb4,g5], [f2,g4,a4,c5]@5 a3@3, ~ c3@7, ~ f3@3, ~@3 g3@5", // Gm F
  AO: "d4 ~@11 [f4,c5]@4, [e4,a5], c5@3 ~, ~@3 [a4,f5]@5", AP: "[db4,ab4,eb5,f5]@3 [c4,ab4,db5,f5]@3 [bb3,ab4,c5,f5]@2",
  AQ: "~@13 [ab6,bb6]@2 ~, [db3,b3]@5 [bb4,db5,eb5,gb5]@3, [eb4,gb4,db5]@9 [eb4,gb4,ab4]@7, ~@7 [gb3,ab3]@4 [ab5,bb5,db6] [eb6,gb6]@3 ~, ~@8 [bb3,db4]@7 ~", // Absus2 Db7 Ebm7 Ab7 Gbsus2 Bbm7 Ebm Bbm
  AR: "[bb4,db5,ab5]@13 ~ bb4 db5, ab4@12 ~ ab4@2 ~", // Bbm7
  AS: "~@14 gb4 ~, [gb3,gb4,bb4,db5]@15 ~, f4@13 f4@2 ~, ~@6 db4@9 ~", AT: "[b2,gb4,b4,eb5]@7 ~ [b1,ab3,db4,f4]@7 ~",
  AU: "[eb4,gb4,bb4,db5]@5 ~ [gb4,db5]@2 [b1,ab3,db4,f4]@7 ~, b2 ~, ~@5 eb4@2 ~@9, ~@6 bb4 ~@9", // Ebm7 Gb5 Db7
  AV: "[bb4,db5,f5,ab5]@13 ~ bb4 db5, f4@12 ~ f4@2 ~", // Bbm7
  AW: "[b2,gb4,b4,eb5]@7 ~ [ab3,db4,f4]@5 ~ f4@2, ~ b1, ~@13 ab3@2 ~, ~@14 db4 ~", // B Db
  AX: "eb4@4 eb4@2 gb4@2 [b1,ab3,db4,f4]@7 ~, [b2,bb4,db5] ~, gb4@3 ~@5", // Db7 Gb
  AY: "[[gb4,bb4,b4,eb5]@16 eb5@6 ~@6 b5@2 bb5 ~, ab2@13 bb5@2 ~, ~@16 [gb4,b4]@15 ~, ~@16 bb5@8 gb5@7 ~, ~@16 gb5@6 eb5@9 ~]/2", // Bmaj7 B5
  AZ: "~@13 ab3!2 ~, [db2,db4,gb4]@15 ~, ab3@13 ~@3, ~@6 gb3@9 ~", // Gb5
  BA: "ab3@4 ab3@2 ab3 ~ [db3,eb4,gb4,bb4]@4 [db2,ab3,db4,f4]@4, [db2,db4,f4] ~", // Ebm7 Db
  BB: "[~@30 eb4 b3, [ab2,b3]@22 bb4@4 gb3@2 bb4 gb4@2 ~, gb3@14 bb4 b4 [eb5,gb5]@15 ~, [eb4,gb4,bb4]@6 [eb4,gb4]@10 gb3@4 b4@11 ~, ~@4 eb3@2 [bb4,b4]@7 eb3@18 ~]/2", // Abm Ebm Bmaj7
  BC: "~@6 ab3@7 ab3!2 db4, [db2,db4,gb4], ab3@3 ~@5, ~@4 gb3@11 ~", // Gb5
  BD: "ab3@4 ab3@2 ab3 ~ [f4,bb4,d5]@5 ~ [bb4,d5]@2, [db2,db4,f4] d3, ~@13 f4@2 ~", // Bb Db
  BE: "[gb4,bb4,eb5]@13 ~ gb4 bb4, eb4@12 ~ eb4@2 ~", BF: "~@6 gb4@7 gb4!2 db5, [b2,db5,eb5], gb4@3 ~@5, ~@4 eb4@11 ~",
  BG: "[db4,f4,ab4]@13 ~ db4 f4, ab3@12 ~ ab3@2 ~", BH: "~@6 ab4@7 ab4!2 bb4, [gb3,bb4,db5], ab4@3 ~@5, ~@4 db4@11 ~",
  BI: "[ab3,db4,f4]@5 ~ [db4,f4]@2 [eb3,gb4,b4,eb5]@4 [db2,ab3,db4,f4]@4, f2 ~, ~@5 ab3@2 ~@9", // Db B Db
  BJ: "~@13 gb4!2 ~, [b2,db5,eb5]@15 ~, gb4@13 ~@3, ~@6 eb4@9 ~", // B
  BK: "~@14 ab4 ~, [ab2,ab4,b4,eb5]@15 ~, gb4@13 gb4@2 ~, ~@6 eb4@9 ~", // Abm
  BL: "~@6 gb4@7 ~@2 b4, [db3,b4,eb5], ab4@7 ab4, gb4@6 ~@7 gb4@2 ~, ~@4 eb4@11 ~", // Abm
  BM: "a3@4 a3@2 a3 ~ [db2,a3,d4,gb4]@4 [b1,gb3,a3,db4,e4]@4, [d2,e4,gb4] ~", // Dmaj7 Gbm7 D
  BN: "d4@4 d4@2 f4@2 [db3,e4,a4,db5]@7 ~, [c3,a4,c5] ~, f4@3 ~@5", // A F
  BO: "~@6 g3@7 g3!2 c4, [e2,c4,e4], g3@3 ~@5, ~@4 e3@11 ~", BP: "~@13 a3!2 ~, [d2,d4,f4]@15 ~, a3@13 ~@3, ~@6 f3@9 ~",
  BQ: "g3@4 g3@2 g3 ~ [d3,f4,bb4,d5]@4 [c2,g3,c4,e4]@4, [e2,c4,e4] ~", // Bb C
  BR: "~@6 f4@7 ~@2 bb4, [c3,bb4,d5], g4@7 g4, f4@6 ~@7 f4@2 ~, ~@4 d4@11 ~", // Gm
  BS: "~@7 [f4,d5], [f2,g4,a4,c5]@5 a3@3, ~ c3@7, ~ f3@3, ~@3 g3@5", BT: "~@3 [e4,c5]@3 [c4,a4]@2, [a4,e5]@13 ~@3",
  BU: "[f4,bb4,d5]@5 ~ d5@2 [bb1,g3,c4,e4]@7 ~, bb2 ~, ~@5 f4@2 ~@9, ~@6 bb4 ~@9", // Bb C7
  BV: "[bb4,d5]@5 ~ [bb4,d5]@2 g3@4 g3@2 g3 ~, c3 [c2,e4], f4@4 ~ f4@2 ~ c4@6 ~@2", // Bb C
  BW: "~@10 a3@4 [f4,d5] ~, [f2,g4,a4,c5]@15 ~, ~@2 c3@13 ~, ~@4 f3@11 ~, ~@6 g3@9 ~", // Dm F
  BX: "~@3 [c4,a4], [g4,e5], ~@3 [e4,c5]@5", BY: "[bb2,f4,bb4,d5]@7 ~ [g3,c4,e4]@5 ~ [c4,e4]@2, ~ bb1, ~@13 g3@2 ~",
  BZ: "[bb2,d4,f4,a4,c5]@7 ~ [bb1,g3,c4,e4]@8", CA: "[db2,ab3,eb4,f4]@8 ~ [c2,ab3,db4,f4]@4 [bb1,f3,ab3,c4,eb4]@3",
  CB: "[~ [f4,gb4,bb4,db5]@5 ~ [gb4,bb4,db5]@2 [ab3,db4,f4]@5 ~ [db4,f4]@2 [a3,c4,g4]@12 ~@4 [a3,c4,g4]@15, ~ ab2@8 gb2@8 ~@14 [a5,c6]@12 ~@5, ~@6 f4@2 ~@6 ab3@2 ~@13 [a3,c4,g4]@3 e5@11 ~@5, ~@33 c5@10 ~@5]/3", // Gbmaj7 Gb Db Am7 Am Am7
})).s("gm_epiano1").gain(0.31)

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

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

// drums · clap
const clap = s("cp").struct("<~@9 [~@3 x] [~ x ~ x]!104 [~@4 x ~@8 x ~@2] [~@5 x ~@7 x ~@2]!2 ~@2>").gain(0.38)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@9 A ~@3 B ~@11 A ~@3 A ~@11 B ~@3 A ~@3 B ~@13 A ~@19 B ~@11 A ~@3 A ~@11 C ~@3 D ~@3
>`.pickRestart({
  A: "~@13 x!2 ~", B: "~@7 x ~@5 x!2 ~", C: "~@7 x!2 ~@5 x ~", D: "~@8 x ~@5 x!2",
})).gain(0.38)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A B@5 C@2 D E C@2 F C G C@4 G C H C G F H C G@3 C I C G C J G E ~@3 H ~@3 E ~@9 K C@2 G H C@3 G L C G@2 F C@2 M
  ~@3 K ~@3 E ~@7 M ~@3 N ~@3 H ~@7 M C I C O C G P Q R S ~
// … 104 more lines

More by Bette Midler