Strudelify

How Do You Fall in Love

Alabama

KeyE majorTempo85 bpm
0:00/0:00
// How Do You Fall in Love — Alabama
// 85 bpm, 4/4, key E major. 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 63 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/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 · piano
const piano = note(`<
  ~ A@2 B@2 C@2 D@2 E F G@2 H I J K L M N O P Q R@2 S T U V U V W@2 S X@3 Y@5 Z@5 AA@7 AB@2 AC@6 ~
>`.pickRestart({
  A: "[~@2 [g3,e4] ~@6 a2 ~ e3 [a2,f#3]@4, e2 a2 d2@2, [b3,g4]@18 [f#3,d4]@15 ~@9 f#3@19 ~@35, ~@6 [a3,f#4]@14 ~@10 [e3,c#4]@17 ~@13 [b2,g3]@14 ~@22, ~@21 d4@5 ~@22]/2", // C D Em D C#m Em
  B: "[c#4 ~@10 [a3,d4]@5, d2@30 c#4@12 b3@19 ~@35, ~@6 d4@42 ~@5 d3@43, ~ a3@3 g2@4, ~@3 a4@5 ~@2 g3@6]/2", // D5
  C: "[c#4@2 ~ c#4@3 d4@3 e4@6 ~@18 e4@3 [a3,f#4]@12, [a2,e3]@48 d2@47 ~, ~@30 b4@19 ~@5 a2@41 ~, ~@7 a4@5 ~@4, ~@5 [b3,g4] ~@2]/2", // D A5 Em
  D: "[c#4 d4 ~@9 [b3,d4,a4,d5]@5, d2@7 b3@4 ~@5, ~@6 a2@41 ~ g2@48, ~@12 a3@35 ~@7 d3@42, ~@17 a4@13 c#4@17 ~@13 g3@36]/2", // Bm7
  E: "[b3,g4]@18 [b3,g4]@6 [b3,g4]@8 ~ [a3,f#4]@7 ~@2 [f#3,d4]@6, e2", // Em D
  F: "~ c#4, a2, [g3,e4]@3 a4@5, ~ e3@7, ~@12 d4@13 ~@23", // C
  G: "[[f#4,d5]@6 [e4,c#5]@5 ~ a4@4 ~@2 a4@12 [a3,f#4]@12 ~@24 [a4,d5,d6]@30, b2 g2, ~@11 c#4@5 ~ c#4@13 ~@12 [d4,b4]@54, ~@9 d3@7, ~@5 g3@3]/2", // D C#m D D5 G
  H: "~@6 e3@5 ~ c#4@6 [f#3,d4]@11 ~ g3@18, a2, ~@11 e3@8 ~@10 e4@19", // D
  I: "~@2 [f#3,a3] [e3,g3] [d3,f#3]@4, d2, ~@5 a2@42 ~", J: "c#4 d4 ~@5 b3, d2@5 c#4@3, ~ a2@7, ~ [d3,a3]@3, ~@3 a4@5",
  K: "~@3 g4@5, g2, ~ [d3,a4]@7, ~ [g3,d5]@3", L: "~@18 f#4@6 ~@11 c#4@13, [e2,b3,g4] [a2,g3,e4]",
  M: "~@5 a2@7 ~@6 e3@7 [a2,f#3]@23, d2, [f#3,d4]@12 [b2,g3]@11 ~@25", // D Em
  N: "a2@2 ~@13 b5, d5, a5@3 [g3,d4]@5, [g3,d4]@11 e3@31 [e3,a5]@6, e3 a2@7", // G5 A5
  O: "a2@5 ~@7 e3@6 c#4@24 c#4@6, [c#5,a5], [g3,c#4]@3 ~@5, e3@2 ~ [e3,g3]@5, ~ a2@7", // F#m Gdim Em
  P: "a2@2 ~@2 e3@2 ~@9 b5, d5, a5@42 a5@5 ~, [g3,d4]@3 [e3,g3,d4]@5, e3 a2@7", // G5 Em7
  Q: "a2 ~@2 [g3,c#4]@5, [c#5,a5], [g3,c#4]@3 ~@5, e3 e3@3, ~ a2@7", // Gdim F#m Gdim
  R: "[[d4,b4]@3 ~@3 b4@2 ~@4 [d4,b4] ~@5 [d4,b4]@7 ~@47 g3@24, g2@42 [f#4,d5]@16 ~@7 d3@30 ~, ~@5 d4@2 ~@22 c#5@16 ~@10 [d4,b4]@41, ~@15 e4@8 ~ g2@24]/2", // G D G
  S: "~@3 b3 ~@3 g3, g2 e2, ~@6 d3@19 ~@5 b2@18, ~@12 g3@13 ~@11 e3@12", T: "~@2 d4 ~ c#4@4, a2, ~ e3@7, ~@3 a3@5",
  U: "~@2 g3 [g3,d4]@5, a2, ~ e3@7", V: "~@2 g3 [g3,c#4]@5, a2, ~ e3@7",
  W: "[[d4,b4]@2 ~@4 [d4,b4]@8 ~@4 [d4,b4]@7 ~@5 [e4,c#5]@12 ~@30 [g3,b3]@24, g2@7 [f#4,d5]@2 [d4,b4]@7, ~ g2, ~@65 d3@31]/2", // G C#m G D G
  X: "[~@19 d4@7 c#4@32 ~ c#4@6 d4@6 ~@7 a4@11 ~@13 b3@6 ~@12 g5@3 f#5@3 [b3,d5]@18, a2@60 ~@5 a2@42 ~ g2@36, ~@6 e3@53 d2@48 ~@37, ~@13 a3@46 ~@12 d3@36 ~@7 d3@30, ~@72 a3@17 c#4@18 ~@13 a3@7 ~@17]/3", // Bm
  Y: "[d5@6 d6@6 ~@67 [f#3,d4]@30 c#4@6 ~@13 a4@12 c#4@12 ~@18 a3@7 b3@29 ~@25 [b4,g5]@9, ~@12 [a2,c#6]@43 f#3@23 ~@37 d4@6 ~ a3@19 ~@11 b3@19 ~@48 e3@21, ~@18 e3@37 d4@18 d3@37 ~@12 d3@34 ~@8 d3@42 e2@34, ~@24 g3@18 ~ [g3,e4]@16 ~@2 d2@48 d2@46 ~@15 d4@36 ~ [b4,g5]@17 [b4,g5] [g3,b3]@15, ~@30 c#4@28 ~@9 a2@43 ~@6 a2@40 ~@2 g2@49 ~@6 b2@27]/5", // D Em A C Em G
  Z: "[[a4,f#5]@9 [f#4,d5]@6 ~@18 d4@2 e4@2 d4@3 ~@11 a4@6 [e4,c#5]@6 ~ [f#4,d5]@5 ~ [e4,c#5]@6 [c#4,a4]@4 ~@2 [c#4,a4]@12 [a3,f#4]@12 ~@18 g3@6 a3@13 b3@18 ~@6 e3@6 [e3,c#4]@6 [f#3,d4]@12 [g3,e4]@18 ~@13 b2@6 e3@6 [a2,f#3]@6, ~@15 a2@25 c#4@19 ~@10 f#3@37 ~@12 d3@43 ~@48 d2@31, ~@16 [g4,e5]@48 ~@42 [d4,b4]@55 ~@79, ~@22 e3@37 ~@4 b2@43 ~@6 g2@49 a2@50 ~@4 a2@15 ~@10, ~@27 g3@18 e4@12 ~@19 b3@37 ~@108 g3@7 ~@12]/5", // D C#m D C#m F#m D C#m D …
  AA: "[~@18 c#4@6 d4@6 ~@49 a5@3 d6@2 ~ b3@30 [e2,e3,g3,b3]@24 [a2,e3,a3,c#4]@25 ~@6 a2@5 ~ b2@6 e3@6 [a2,f#3]@24 c#5@6 d5@6 ~@61 [g5,d6]@25 ~ e3@25, ~@18 d2@30 c#4@12 b3@20 ~@4 b5@31 ~@115 a5@25 b4@11 ~@7 [a3,d5]@35 ~@28, ~@24 a2@41 ~ g2@48 ~@50 d2@46 ~@2 d2@48 ~ g2@49 ~@26, ~@30 [d3,a3]@36 ~@7 d3@42 ~@103 a2@25 c#5@18 ~@12 g5@6 b3@31 [e4,g4,b4]@26, ~@36 a4@29 ~@14 a3@7 ~@89 g3@7 ~@42 [d3,a4]@36 ~@7 d3@43 ~@26]/7", // Em A D G5 D5 Em D5
  AB: "[~ a4@27 ~@4, ~@2 [a3,e4,c#5]@81 ~@13]/2", // A
  AC: "[~@3 c#4@6 ~@54 g3@7 a3@6 b3@24 ~@12 [g3,e4]@7 ~@43 a2@8 ~@8 e3@9 [a2,f#3]@96 ~@5, ~@3 d2@17 a4@13 c#4@12 b3@18 ~@37 [b3,g4]@21 ~@25 d4@12 ~@130, ~@9 [a2,d4]@42 g2@49 e2@25 a2@29 d2@96 ~@38, ~@14 d3@38 ~@5 d3@42 ~@20 [f#3,d4]@16 ~@11 f#3@25 ~@117, ~@15 a3@37 ~@54 [a3,f#4]@15 ~@11 [e3,c#4]@21 ~@17 [b2,g3]@12 ~@106]/6", // C D Em D5 D C#m Em
})).s("gm_piano").gain(0.32).pan(0.6)

// bass · electric bass finger
const bass = note("<~@19 A B A B C D E A F A B A C D E G@5 H@4 I@4 J@7 K@2 L@7>".pickRestart({
  A: "a1", B: "a2", C: "g2", D: "g1", E: "g2 e2", F: "a2@6 d#2 e2", G: "[a2@59 d2@49 g2@48 a2@49 d2@35]/5",
  H: "[~ a2@12 ~ d2@48 g1@49 e2@48 a2@33]/4", I: "[~@4 a1@6 a1@6 b2@48 g1@49 a1@49 d2@30]/4",
  J: "[~@6 g#2@6 a2@6 d3@49 g1@48 e2@24 ~ a1@24 d2@6 a2@6 c#3@6 e3@6 d3@24 d2@49 g1@49 e2@26]/7", K: "[~ a1@36 ~@11]/2",
  L: "[~@3 d2@48 g1@49 e1@25 a1@29 d2@33 d1@105 ~@44]/7",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · string ensemble 1
const string_ensemble_1 = note("<A@4 ~@6 B@5 ~ C D@6 E@8 F@5 ~@2 G H@2 I J@6 K@4 ~ L@3 ~ M@6>".pickRestart({
  A: "[~@47 [b3,g4]@6 [a3,f#4]@6 [g3,e4]@6 ~ f#3@11 [e3,c#4]@12 ~@18 g3@12 f#3@29 ~@44, ~@47 e2@18 d4@13 ~@11 d4@59 ~@44, ~@66 a2@29 d2@52 ~@45, ~@89 f#3@18 ~@85]/4", // Em D C C#m
  B: "[~@47 b2@35 c#3@7 d3@6 a3@6 g3@6 d3@7 b3@29 ~ [e3,c#4]@18 [f#3,d4]@11 [g3,e4]@12 ~@12 d3@6 a3@6 g3@7 f#3@23 ~, ~@95 g2@48 a2@47 d2@49 ~, ~@185 f#4@54 ~, ~@185 a3@12 ~@43]/5", // C#m D C
  C: "~@6 [b3,d4]@6 [d4,g4]@6 [c#4,a4]@5 ~ d4@24, ~@23 b4@25", // Bm G5 F#m
  D: "[[e2,b3,d4,g4]@23 d4@12 c#4@12 [a3,d4,f#4]@13 [b3,d4,g4]@11 ~ [a3,d4]@23 ~ a4@36 e5@11 [a2,c#4,a5]@48 [a2,d4,b5]@48 ~ e6@47 [g3,b3], ~@23 [a2,a3,e4]@24 d2@48 [a2,d4]@49 ~@95 [a2,c#4]@49, ~@71 f#4@25 ~@192]/6", // Em7 D G D5 A Bm7 G A5 …
  E: "[~@29 [a3,c#4]@12 ~@55 g2@23 ~ e2@23 ~@24 c#4@24 ~ a2@46 ~ [a2,a5]@48 b5@36 c#6@6 a5@6 e6@48 g5, g2@95 ~@48 a3@49 ~@192, b5@47 b4@48 ~@96 a4@48 ~@145, ~@41 b3@103 ~ a2@47 ~@95 a2@97, ~@41 d4@12 g3@66 d4@49 ~@216]/8", // A
  F: "[b5@29 [a5,c#6]@13 d6@12 g5@11 [b4,d5]@6 [b4,g5]@7 [c#5,a5]@6 [d5,b5]@6 ~@6 [b4,d5]@23 [e2,g4,b4]@24 d5@27 c#5@34 ~@36, g2@94 ~ g2@25 ~@23 [a2,a4]@60 ~@37, ~@42 b5@23 ~@25 [b4,g5]@8 ~@142]/5", // A Bm Em F#m G Bm Em A …
  G: "~@37 [f#3,d4]@6 [e3,c#4]@5", // D C#m
  H: "[~ [f#3,d4]@6 ~ g3@5 ~ a3@47 [b3,g4]@6 [a3,f#4]@7 [g3,e4]@6 [d4,b4]@16, ~@7 e4@6 f#4@50 ~@33]/2", // D Em D C G
  I: "~@8 [a3,f#4]@6 ~ b3@18 [b3,g4]@4 ~@2 g4@8 [a3,f#4], ~@14 g4@18 ~@6 b3@9 ~", // D Em D
  J: "[~@9 f#3@6 ~@41 d5 e5 f#5 g5 a5 b5 ~ d6@36 b5@6 c#6@6 ~ d6@6 c#6@6 a5@6 f#6@31 ~@5 e3@5 ~ [e3,c#4]@7 [f#3,d4]@12 [g3,e4]@18 f#3@13 g3@11 f#3@25 [f#3,d4]@30, ~@8 d4@7 e4@47 c#6@2 ~@47 g3@50 [a2,e6]@49 ~@78, ~@16 g3@47 [b3,d4]@98 ~@127, ~@39 c#4@24 [b2,f#3]@49 g2@50 ~@47 [d2,d4,d6]@51 ~@28]/6", // C#m D C D A5 Bm B5 D
  K: "[~@18 [b3,g4]@6 ~ a4@6 [d4,b4]@5 [d4,b4]@31 [e2,e3,g3,b3,d4]@24 d4@12 c#4@12 ~@12 g3@6 e3@6 f#3@26 ~@27, ~@18 g2@49 ~@24 [a2,e3,g3]@24 f#3@12 ~@65, ~@24 c#4@6 ~@85 d4@49 ~@28, ~@116 d2@49 ~@27]/4", // Em G Em7 A7
  L: "[~@22 [e2,g3,b3,d4]@29 [a2,a3,c#4]@93, ~@11 e3@61]/3", // Em7 A
  M: "[~@15 g3@6 a3@6 b3@6 d4@6 c#4@6 a3@6 ~@7 [a3,f#4]@6 [g3,e4]@6 ~@14 [e3,c#4]@14 ~@23 g3@17 f#3@107 ~@43, ~@2 g2@49 g4@7 ~@12 f#3@14 ~@14 f#3@25 ~@165, ~@52 e2@26 a2@26 d2@139 ~@45, ~@71 d4@14 ~@13 d4@147 ~@43]/6", // D C C#m
})).s("gm_string_ensemble_1").gain(0.2).pan(0.4)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note("<~@18 A@3 B C D@3 E@2 F G H I@2 J K@2 ~@2 L M@2 N@7 O@8 P@2 Q@5>".pickRestart({
  A: "[~@66 e4@29 ~@19 e4@30, ~@47 a2@44 ~@4 a2@49, ~@9 g3@7 ~ g3@7, ~@60 d4@31 ~@17 c#4@36]/3",
  B: "~@3 e4@5, a2, ~ g3@7, ~ d4@3", C: "~@41 c#4@7, a2, ~ g3@5 g3@2, ~@12 c#4@18 c#4@11 ~@7, ~@3 e4@5",
  D: "[~@12 g3@3 ~@3 [g3,b3]@10 ~@2 [a3,c#4]@8 ~@40 g3@6 d3@6 ~@24 g3@6 ~@18 e3@4 ~@2, g2@42 [b3,d4]@12 [g3,b3]@10 ~ b3@21 ~@4 g3@12 ~@6 b3@13 ~@11 g3@10 ~@2, ~@6 d3@38 ~@4 g2@43 ~@5 g2@18 ~@6 e2@18 ~@6, ~@60 d3@19 ~@23 d3@13 ~@11 b2@12 ~@6]/3", // G A Bm G
  E: "[d4@6 ~@6 e3@6 d4@5 ~ c#4@6 g3@6 ~@6 g3@5 ~@13 a3@6 ~@24 a3@6, a2@23 ~ a2@23 a2@48 ~, ~@6 g3@11 ~@19 e3@12 ~@6 e3@30 e3@12, ~@11 [d4,g4]@5, ~@13 a3@2 ~]/2", // G5
  F: "~@17 c#4@6 ~@13 [e4,c#5]@12, a2@5 [d4,b4]@3, ~ e3@7, ~ a3@3, ~ [c#4,a4]", // C#m G F#m
  G: "~@7 a3, a2, ~@6 e3@41 ~, ~@2 a3 d4@2 a3 d4@2, ~@3 g4@5",
  H: "~@2 a3 [c#4,a4] c#4 ~@2 e3, a2, ~ e3@5 a3@2, ~ a4, ~@5 c#4@3", // F#m
  I: "[~@12 d4@6 [d4,b4]@11 [e4,c#5]@12 ~@49 b3@6, g2@7 f#4@2 d4@2 d4@2 g4 d4@2, b4@18 ~@23 d5@12 ~ b4@15 g4@3 b4@24, ~@3 d3@19 ~@2 g2@24, ~@5 d3@3]/2", // G C#m
  J: "~@3 b3 ~@3 b3, [g2,g4] e2, ~ d3@3 ~ b2@3, ~ d4 ~ d4", // G
  K: "[d4@6 ~ c#4@3 ~@3 e4@6 ~ b4@6 [c#4,a4]@33 ~@37, a2@59 ~@37, ~@3 e3@26 ~@19, ~@10 d4@9 d4@6 ~@71]/2", // F#m
  L: "~@43 a3@5, ~@37 d3@11",
  M: "[~ d4@6 e4@4 ~@8 d4@6 ~@7 a4@12 ~@12 b3@6 ~@30 a3@4, ~@13 d3@49 g2@34, ~@13 c#4@8 ~@5 a3@37 ~@5 d3@28, ~@13 e4@3 ~@28 c#4@19 ~@12 a3@17 ~@4, ~@14 f#4@48 ~@19 b3@15]/2",
  N: "[~@9 f#4@6 ~@18 g4@5 ~ g4@8 ~@10 d4@6 ~@25 c#4@23 ~@12 [c#4,a4]@5 ~@2 c#4@12 [a3,f#4]@12 ~@18 a3@6 b3@31 ~@12 [a3,c#4]@6 [b3,d4]@12 [c#4,e4]@13 ~@18 g4@6 e4@5 [d4,f#4]@25 c#4@6 d4@5 ~@7 a4@12, ~@3 d3@12 e2@49 ~@11 g3@37 ~@5 [e4,c#5]@7 ~@5 a4@13 ~@194, ~@15 g4@16 ~@16 f#4@16 e4@22 ~@26 [f#4,d5]@7 ~@5 b3@31 [d4,b4]@55 ~@48 d3@49 d3@30, ~@20 b2@43 a2@49 b2@42 ~@6 g2@49 a2@49 ~@78, ~@27 e3@36 ~@6 e3@42 ~@7 f#3@35 ~@13 d3@42 ~@7 e3@43 ~@6 a3@43 ~@11 a3@18]/7", // F#m D A Bm C#m D C#m D …
  O: "[c#4@12 b3@6 ~@43 d3@5 ~@19 g3@5 ~@7 e3@7 g3@7 c#4@5 ~@6 a3@6 c#4@6 e4@6 d4@24 c#4@6 d4@5 ~ a3@6 a4@12 c#4@13 ~@24 b3@12 ~@6 b3@6 a3@3 ~@32 c#4@67 ~@27, ~@18 g2@48 ~ e2@24 ~@134 a3@20 ~@17 b2@30 ~@92, ~@25 d3@30 a3@12 ~@6 b2@18 ~@25 d3@48 d3@40 ~@15 d3@31 ~@11 [e3,g3]@25 a2@71 ~@27, ~@31 d4@36 ~@23 a2@25 ~@98 g2@40 ~@7 e2@28 [e3,g3]@70 ~@26, ~@37 b3@30 ~@12 b3@12 ~@116 b3@19 ~@17 d4@12 ~@8 b3@28 ~@93]/8", // Em
  P: "[~@3 c#4@6 d4@5 ~@6 a4@13 c#4@12 ~@25 b3@20 ~@6, ~@3 d3@42 ~@6 g2@37 ~@8, ~@15 a3@18 ~@12 b3@12 d3@31 ~@8, ~@32 a3@7 ~@9]/2",
  Q: "[~@4 [b3,g4]@6 [b2,a3,f#4]@6 ~@21 [e3,c#4]@13 ~@23 g3@9 e3@9 f#3@107 ~@42, ~@4 e2@12 [g3,e4]@6 [f#3,d4]@15 ~@13 d4@146 ~@44, ~@17 e3@12 a2@28 d3@121 ~@62, ~@50 f#3@23 ~@167]/5", // Em B7 C#m C D
})).s("gm_acoustic_guitar_nylon").gain(0.2).pan(0.3)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@35 A B C@4 D@6 E@3 F@6 G@2 H@5>".pickRestart({
  A: "~@17 d4@6 ~@19 c#4@6, ~@11 c#4@7 ~@5 a3@19 ~@6, ~ d3@3, ~@29 a4@19",
  B: "~@43 d3@5, ~@6 b3@9 ~@3 d3@13 ~@5 g2@12, ~@11 g2@19 b3@18, ~@12 a3@11 ~",
  C: "[a3@11 ~@32 c#4@12 c#4@6 ~@42 a3@6 c#4@6 d4@6 ~@49 a3@6 b3@16, ~@12 a2@49 ~@18 e4@6 f#4@25 ~@18 a4@31 ~@33, ~@18 e3@43 d3@48 d3@43 b3@18 ~@22, ~@25 g3@24 ~@18 a3@30 d4@13 ~@12 a3@36 g2@34, ~@30 c#4@6 e4@25 ~@12 d4@18 e4@19 ~@30 c#4@18 ~@6 d3@28]/4",
  D: "[~@33 b3@4 ~@11 g3@15 g2 ~@17 g3@7 ~@12 e4@11 ~@43 b2@6 ~@43 g2@6 ~@6 e3@6 c#4@6 [f#3,d4]@12 [g3,e4]@18 ~@7 a3@6 g4@6 ~@6 a3@6, ~@15 e2@48 ~@12 d4@12 ~ c#4@18 ~@5 b2@42 ~@7 g2@43 ~@6 a2@48 ~@31, ~@20 b2@43 a2@49 ~@18 d4@31 ~@17 b3@31 ~@79, ~@27 g3@11 b3@25 ~@6 e3@44 ~@11 a3@18 a3@19 ~@12 a3@17 a3@19 ~@79, ~@94 g3@19 ~@4 f#3@31 f#3@13 ~@5 d3@31 d3@12 ~@12 e3@35 ~ d3@31]/6", // D C
  E: "[~@18 c#4@6 d4@6 ~@6 a4@30 ~@43 f#4@6 ~@18 f#4@6 [a2,c#4]@5, ~@18 d3@48 g2@37 g2@12 e2@16 ~@13, ~@30 a3@36 ~@7 d3@23 ~@25 b2@18 ~@5, ~@79 a3@35 ~@30, ~@85 b3@30 g4@24 ~@5]/3", // A
  F: "[~@8 a3@6 c#4@6 ~@12 c#4@6 e4@6 d4@24 c#4@6 d4@6 ~@49 a3@6 ~@32 b3@24 ~@5 e4@83 ~@9, ~@20 d3@48 d3@43 b3@19 ~@5 b3@29 e3@27 e3@88 ~@9, ~@20 d4@19 ~@48 a4@31 ~@45 [e2,b2]@31 c#4@85 ~@9, ~@26 a3@13 ~@41 a3@37 g2@49 ~@27 a3@87 ~@8, ~@98 c#4@19 ~@6 d3@43 g3@29 ~@93]/6", // E5
  G: "[~@3 c#4@5 d4@6 ~@7 a4@12 ~@12 b3@6 ~@12 a3@6 b3@25 ~@2, ~ d3@16 g2@14 ~, ~@15 a3@18 c#4@18 ~@6 d3@37 ~@2]/2",
  H: "[~@4 g4@6 f#4@6 e4@7 ~@13 c#4@14 ~@15 f#3@8 g3@9 e3@9 f#3@104 ~@45, ~@4 e2@25 a2@29 d3@138 ~@44, ~@23 d4@13 ~@14 d4@12 ~@178]/5",
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.7)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note("<~@37 A B ~@4 C ~@2 D@2 E F G ~@2 H@3 ~@7>".pickRestart({
  A: "~@6 d3@5 ~@37", B: "~ g3@12 ~@35", C: "~@10 c#4@7 ~@31", D: "[~@35 e4@6 ~ f#4@25 ~@29]/2",
  E: "~@13 b3@10 ~@25, c#4@3 ~@5", F: "d3@13 d3@5 ~@14 e3@12 ~@4", G: "~ e3@16 ~@9 f#3@3 ~@19", H: "[~@47 a2@88 ~@9]/3",
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.7)

// drums · kick
const kick = s("bd").struct("<~@19 A@16 ~@8 B ~ C D@2 E@2 F ~@12>".pickRestart({
  A: "x", B: "~ x ~", C: "~@17 x ~@30", D: "~@3 x ~@4", E: "~@19 x ~@28", F: "~@5 x ~@6",
})).gain(0.35)

// drums · rim
const rim = s("rim").struct("<~@19 A@14 ~@10 B C@2 D@2 E F ~@13>".pickRestart({
  A: "~ x", B: "~@5 x", C: "~@41 x ~@6", D: "~@7 x", E: "~@43 x ~@4", F: "~@11 x",
})).gain(0.35)

// drums · hihat
const hihat = s("hh").struct(`<
  A B@17 C D@2 E D@5 E D@3 E D F ~ G@2 H@2 I J@2 ~ K L M N O P Q R S T ~@2 U ~@7
>`.pickRestart({
  A: "x!4", B: "~ x", C: "~@4 x!2 ~@2", D: "x ~ x ~@3 x!2", E: "x!2 ~ x", F: "x ~ x ~ x ~ x!2", G: "~@3 x",
  H: "~@37 x ~@10", I: "~@19 x ~@4", J: "~@13 x ~@2", K: "~@4 x ~@2 x ~@4", L: "~@2 x ~@2 x ~@2 x ~@5 x ~@9",
  M: "~@5 x ~@5 x ~@5 x ~@11 x ~@18", N: "~@6 x ~@10 x ~@11 x ~@18", O: "~ x!3 ~ x ~@2",
  P: "~@7 x ~@4 x ~@6 x ~@10 x ~@17", Q: "~@7 x ~@5 x ~@5 x ~@11 x ~@16", R: "~@4 x ~@2 x ~@2 x ~@13", S: "~@11 x",
  T: "~@15 x", U: "~@9 x ~@3 x ~@2",
})).gain(0.2)

// drums · open hat
const open_hat = s("oh").struct("<~@18 A ~@15 B ~@7 C ~@7 D ~@12>".pickRestart({
  A: "~@3 x", B: "x", C: "~@13 x ~@2", D: "~@11 x",
})).gain(0.3)

// drums · ride
const ride = s("rd").struct("<~@34 A ~@15 B C ~@6 D E ~@3>".pickRestart({
  A: "~@12 x ~@6 x ~@6 x ~@21", B: "~@16 x ~@2 x ~@4", C: "~@4 x ~@2 x ~@2 x ~@13", D: "~@4 x ~@24 x ~@13 x ~@4",
  E: "~@10 x ~@28 x ~ x!2 ~ x ~@3",
})).gain(0.2)

stack(
  piano, bass, string_ensemble_1, acoustic_guitar_nylon, acoustic_guitar_steel, acoustic_guitar_steel_2, kick, rim,
  hihat, open_hat, ride
)

More by Alabama